DEV Community

Okeke Jenny
Okeke Jenny

Posted on

The expected value of a prop firm challenge, in Python

Most "is this challenge worth it" comparisons stop at fee vs account size. That comparison is missing the two numbers that actually decide it: how many attempts you will need, and what the whole exercise averages out to. Both are easy to compute, and computing them changes the answer more often than any firm comparison does.

The model

Four inputs:

Symbol Meaning
F challenge fee — per attempt
T profit target in dollars (account size x target %)
s your profit split (the share you keep)
p your probability of passing a single attempt

Everything else is derived:

  • net payout N = T * s
  • expected attempts E = 1 / p
  • expected fee outlay C = F * E
  • expected value of the venture V = N - C
  • expected value per attempt v = p * N - F (which is V * p)

Setting V = 0 gives a result worth memorising: the break-even pass rate is p* = F / N.

A script

def challenge_ev(account, target_pct, fee, split, pass_rate):
    """Expected value of buying a prop firm challenge until you pass."""
    target = account * target_pct
    net = target * split
    e_attempts = 1 / pass_rate
    expected_fees = fee * e_attempts
    return {
        "net_payout": net,
        "expected_attempts": e_attempts,
        "expected_fee_outlay": expected_fees,
        "ev_venture": net - expected_fees,
        "ev_per_attempt": pass_rate * net - fee,
        "break_even_pass_rate": fee / net,
    }

for p in (0.20, 0.35, 0.50, 0.70):
    r = challenge_ev(100_000, 0.08, 550, 0.80, p)
    print(p, round(r["expected_attempts"], 2), round(r["expected_fee_outlay"]), round(r["ev_venture"]))
Enter fullscreen mode Exit fullscreen mode

A $100k account, an 8% target ($8,000 gross), an 80% split, a $550 fee:

20%  E=5.00  fees=$2,750  EV=$3,650
35%  E=2.86  fees=$1,571  EV=$4,829
50%  E=2.00  fees=$1,100  EV=$5,300
70%  E=1.43  fees=$786    EV=$5,614
Enter fullscreen mode Exit fullscreen mode

What the numbers say

1. The break-even pass rate is much lower than people assume. With a $6,400 net payout and a $550 fee, p* = 8.6%. You do not need to be good, you need to be better than one attempt in twelve. That is the useful way to read a challenge: not "is this hard", but "am I above 8.6%".

2. The fee is per attempt, and the expected outlay is a multiple of it. At a 35% pass rate you will buy 2.86 challenges on average, not one — so a "$550 challenge" is a ~$1,571 decision. Firms advertise the per-attempt price because it is the smaller number.

3. Improving the pass rate is worth more than shopping for a cheaper firm. Moving 35% to 50% adds roughly $470 of expected value; cutting the fee from $550 to $450 adds roughly $130. Optimising the input you actually control dominates optimising the marketing.

4. The split compounds, the fee does not. The fee is paid once per attempt; the split applies to every payout, forever. Two firms with the same target and a 10-point split difference are not close, and a single-challenge EV view hides that completely.

The two inputs people get wrong

p is the hard one, and it is hard because of memory, not dishonesty: traders benchmark against the attempt they remember passing, not the ones they quietly failed. If you are unsure, start at 30-40% for a self-traded challenge and see whether the number still works. If it does not survive a conservative pass rate, it was never a good bet — it was a good feeling.

Split is the other. Enter the share you keep, applied to net profit, not the target. Reading an 80% split as though the payout equals the target is the single most common arithmetic error in this category.

Two things this model deliberately does not include: consistency rules (they change when you can withdraw, not the total — but a blocked payout is worth less than an available one) and taxes, platform fees and transfer costs (small individually, not always small together).

A note on what I do

I run a flat-fee prop firm passing service, so read this with that in mind. The math above is the argument for it, and it is also the argument against it: a service makes sense exactly when it raises p toward 1 and replaces a cost that scales with your failures with one that does not. Run your own numbers twice — once at your honest self-traded pass rate, once at a near-certain one — and compare the gap to the fee. If the gap is smaller than the fee, trade it yourself.

If you just want the numbers without writing the script, I put the same model in a free browser calculator, no signup: prop firm profit calculator. It returns expected attempts, expected fee outlay, expected value per attempt and the break-even pass rate. If you write about this, it is also embeddable with one line of HTML.

The formula is four lines of Python either way. The value is in running it before you buy, rather than after the third retry.

Top comments (0)