← All papers
#001Trust: MediumSimulationProp firms

A barrier model of the prop-firm challenge: pass rates and expected value

Prop-Firm Challenges: A Barrier Model of Pass Rates and Expected Value

Rubén Villahermosa · independent researcher, Madrid · SSRN 7445798, preprint · 11 September 2026 · 15 pp. · Read the original

In brief

Topic

Prop firms

Markets

Futures, Indices

Timeframe

M1

Data

OHLC

Evidence

Simulation

Status

Numbers recomputed
Trust: Medium1 discrepancy foundTestable ideas: 13

For the paper: the barrier logic, account parameters and estimation windows are described well enough to rebuild the construction, every table comes with its seeds and sample sizes, and the author's own re-implementation is shown honestly even though it differs by almost a factor of two. Against it: no code, no data, a preprint with no peer review, and the conclusion that the product is slightly positive at the promotional price suits a man who traded such accounts himself and sells courses and indicators to retail. The author disclosed that conflict himself.

Verifiability

Code○ not attached
Data○ unavailable
Peer review○ no, preprint
Conflict of interest● disclosed by the author

How to read this walk-through. The formulas are taken apart from scratch: in words, symbol by symbol, on numbers. The main conclusion can be carried away without reading a single formula, it is in the section «The method in one line». Everything else can be read in any order.

1. How the product works

The challenge has two stages. In the evaluation (operators call it «evaluation», «combine» or «challenge») the client pays a fee ff and has to grow the simulated balance by the target TT before the drawdown reaches the limit LL. Once passed, the account becomes funded: the client keeps trading and on every qualifying payout receives a share ss of min(profit for the cycle, cap), up to NN payouts.

The key fact from which the whole economics follows: the accounts are simulated, and the counterparty on them is the operator itself. A payout to the client is not a share of market revenue. It is the firm's marketing and retention expense, and it carries exactly the incentives a marketing expense carries.

What L is. The whole paper counts money in units of the loss limit: LL is the account's loss limit, and every monetary quantity is expressed as a multiple of it. For the class of accounts the author works with, LL is on the order of a thousand dollars. The device is convenient because results carry over to an account of a different size with no recalculation.

The author reduces the challenge to a set of parameters. The normalised family the whole paper is built on:

Parameter Symbol Value
Profit target θ=T/L\theta = T/L 1.25
Floor lock-in threshold λ=Λ/L\lambda = \Lambda/L 1.10
Consistency threshold cc 1/2
Fee φ=f/L\varphi = f/L 0.05 / 0.07 / 0.10 / 0.14
Nominal account size A/LA/L 25
Profit share to the client ss 0.9
Payout s⋅min⁡(0.5⋅profit, 1 L)s \cdot \min(0.5 \cdot \text{profit},\ 1\,L), at least 0.5 L
Qualifying-day threshold 0.10 L
Working float 2 L

Three features of the rules determine everything that follows.

The loss limit is a hard intraday barrier. The floor is breached the moment floating equity touches it, not at the close of the day. So the cushion (balance minus floor) is not a soft constraint but a stop the broker places on the client's behalf.

Before lock-in the floor trails the high-water mark. Until accumulated profit exceeds the threshold Λ\Lambda, the floor rises behind the balance high on closes. A win lifts the floor instead of widening the cushion. So before lock-in a winning day does not make the account any safer, and this is where the product's main structural lever sits.

A moving consistency target. No single day may deliver more than a share cc of total profit. At c=1/2c = 1/2 this is equivalent to a target that grows together with the best day:

Teff=max⁡(Tbase, mc)=max⁡(Tbase, 2m)T_{\text{eff}} = \max\left(T_{\text{base}},\ \frac{m}{c}\right) = \max(T_{\text{base}},\ 2m)

How to read it. mm («em») is the profit of the largest green day. TbaseT_{\text{base}} is the base target written into the rules. TeffT_{\text{eff}} («the effective target») is the target the client actually has to take.

Step by step. Double the best day. If the result is larger than the base target, that is now the target. If it is smaller, the target stays the base one.

A worked example straight off the author's dashboard. The best day delivered 0.6445 L, that is $644.50. Doubling it: 1.289 L, that is $1,289.00. The base target was 1.25 L. Since 1.289 exceeds 1.25, the dashboard displayed a target of 1.289 L. The client earned 644 dollars and by doing so raised his own bar by 39 dollars.

Why the operator wants the rule. Formally, so that the client does not pass the evaluation on a single lucky trade. In practice, as shown below, it costs the client nothing if he repeats the same bracket.

The author marks honestly the boundary of what he knows from documents. The loss limit and the lock-in threshold come from the funded-account agreement he holds, and are confirmed by a live dashboard. The profit target and the consistency threshold are absent from that agreement: they belong to the evaluation stage, which is governed by a separate document unavailable to him, and are known only from the dashboards of two accounts.

2. The method in one line

P(passed)=LT+LP(\text{passed}) = \frac{L}{T + L}

What this is. The probability of passing the evaluation for a participant who cannot predict market direction. All you need to know is the loss limit and the profit target.

What each symbol means:

  • LL («el») is the loss limit, that is, how much can be lost before elimination.
  • TT («tee») is the profit target, that is, how much has to be earned to pass.
  • P(⋅)P(\cdot) is a probability.

Step by step. Add the target and the limit. Divide the limit by that sum.

A worked example. Loss limit $2,000, profit target $2,500. The sum is $4,500. Dividing: 2000 / 4500 = 0.444, that is 44.4 %.

Why this matters. The number does not depend on market volatility. Calm market or panic, index or currency pair, the probability is the same. Only the time to resolution changes, not the resolution itself. From which it follows immediately that advertising along the lines of «our challenge is passed by the best traders» is not describing the mechanics: 44 % of the mechanics is the geometry of two numbers in the rules.

Why it is true, in two sentences and with no derivation. The profit of a participant with no edge is a fair game: on average it neither rises nor falls. If the game is fair, the mean value at the stopping moment equals the start, that is, zero. There are only two resolutions, +T+T and −L-L, and the only way their mean gives zero is with weights L/(T+L)L/(T+L) and T/(T+L)T/(T+L).

The formal version. Let XtX_t be accumulated profit, X0=0X_0 = 0, and let a participant with no skill be one whose XX is a continuous martingale. The evaluation is passed on reaching +T+T and failed on reaching −L-L.

What a martingale is. A process whose expected future value equals its current one: on average it goes nowhere. Flipping a fair coin for money is a martingale. Flipping a coin in a casino that takes a cut is not, there is a negative drift there.

What the optional stopping theorem is. If the game is fair and you agree to stop by some rule, then the mean at the stopping moment equals what you started with. You cannot invent a clever exit rule that makes a fair game profitable.

The ceiling proposition. If the floor is fixed, the path is continuous and the horizon unbounded, then P=L/(T+L)P = L/(T+L) exactly. But if the floor trails the high-water mark, if the path jumps and overshoots the barrier, or if the horizon is bounded, then

P(passed)≤LT+LP(\text{passed}) \le \frac{L}{T+L}

Equality is reached only in the case of «fixed floor, continuity, unbounded horizon».

This is where the paper's contribution sits. The identity itself has been known since Feller, it is the classical gambler's ruin problem. The novelty is in the object it is applied to, and in the demonstration that the object violates all three conditions at once:

  • the floor is a drawdown trailing the high-water mark on closes, not a fixed level;
  • the participant trades a size at which the adverse excursion of a single session exceeds the cushion several times over, so the path jumps rather than flows;
  • positions are closed at the session close, so the horizon is bounded.

Why a trailing floor cannot help, in plain terms. Write MtM_t for the profit high-water mark up to moment tt. A trailing floor kills the account when the drawdown from the high reaches LL. A fixed one kills it when profit falls to −L-L. But the high is never below zero, so at any moment when profit has reached −L-L, the drawdown from the high is certainly no less than LL. So the trailing floor fires no later than the fixed one on every single path. The event «reached the target before dying» under a trailing floor is a subset of the same event under a fixed one. A subset's probability is never larger.

3. Friction: how commission turns a fair game unfair

Commissions and slippage produce a negative drift. Over the evaluation window one round turn costs 0.0035 L of commission plus one tick of adverse fill on entry and on the stop, and the mean result of a single day is −0.0191 L, that is, about 1.9 % of the cushion per session.

For Brownian motion with drift μ\mu and variance σ2\sigma^2:

P(passed)=1−e−2μL/σ21−e−2μ(T+L)/σ2P(\text{passed}) = \frac{1 - e^{-2\mu L/\sigma^2}}{1 - e^{-2\mu (T+L)/\sigma^2}}

What this is. The same probability of passing, but for a participant who has a systematic drift, up or down. Commission makes the drift negative.

What each symbol means:

  • μ\mu («mu») is the mean drift per unit of time. Negative if you pay commission and have no edge.
  • σ2\sigma^2 («sigma squared») is the variance, the spread of the swings squared.
  • ee is Euler's number, 2.718…, and exe^{x} is the exponential.
  • LL and TT are the same as before.

What happens at the edges. As μ\mu tends to zero the fraction turns into exactly L/(T+L)L/(T+L): the formula from the previous section is a special case. For μ<0\mu < 0 the value is always smaller.

What it costs in this paper. At the measured drift, commission alone removes about 1.7 percentage points from the ceiling.

A subtlety worth remembering. Independence from volatility is exact only at a fixed number of round turns. Commission is charged per trade, not per unit of time. So a strategy that makes more trades to cover the same distance pays more, and trading frequency drags volatility back into the problem through the side door. The direct practical conclusion: on a challenge it is not being wrong that is expensive, it is trading often.

4. The consistency rule costs nothing, but it stands on a knife edge

Proposition. The constraint max⁡(d1,d2)/(d1+d2)≤1/2\max(d_1, d_2)/(d_1 + d_2) \le 1/2 holds if and only if d1=d2d_1 = d_2.

How to read it. d1d_1 and d2d_2 are the profits of two green days. On the left is the best day's share of total profit. The rule requires that it not exceed one half.

Why equality is the only case. If the days differ, the better of them exceeds the average, and the average of two days is exactly half their sum. So the best day is strictly more than half the sum, and the rule is violated. It checks out on numbers: days of 600 and 400 give 600/1000 = 60 %, rule violated. Days of 500 and 500 give 500/1000 = 50 %, rule satisfied exactly at the boundary.

What follows in practice. A participant who takes the same bracket on both days earns the same amount twice: the target is taken by a limit order that fills at the limit, and commission is deterministic. The rule holds with exact equality, and a two-day pass costs nothing.

Then the author does the thing that sets the paper apart. He does not stop at «the rule does not get in the way» but shows that it is a knife edge, not a margin. Since the effective target equals exactly twice the best day, two days add up to it only if they are identical. Every two-day pass lands on exactly 50.000 % with a remainder of exactly zero.

A check on a sub-window of 704 sessions and 564 overlapping accounts: any construction whose daily net profit exceeds half the base target passes in two days, and 97 % of such passes carry less than 0.001 L of margin above the effective target. Any construction whose daily profit stays below half the base target never raises its own bar, is structurally forced into a third day, and carries no such margin on any pass, but pays for it with a lower daily win probability. That trade-off, not the nominal 50 %, is the economic content of the rule.

Three conditions without which the proposition falls apart:

  1. One trade a day. The rule compares the best day against the sum, so a day assembled from several trades gives an arbitrary sum, and equality is lost. This is exactly what happened on the single live account the author observes: the first day was traded three times.
  2. The same target on both days. 128 ticks, not «roughly 0.64 L». The equality is either exact or it is not there.
  3. Read the shortfall off the operator's dashboard rather than computing it yourself. The operator publishes the effective target and the remainder, and the arbiter here is the operator.

And here is the most honest page of the paper. Two implementation details on the operator's side the author cannot establish from any document he holds:

  • Whether the rule is weak or strict (≤1/2\le 1/2 versus <1/2< 1/2). Secondary descriptions say the best day «cannot exceed» one half, which reads as weak, but the evaluation-stage agreement is unavailable to him.
  • Whether the dashboard rounds the effective target. Of the two dashboard states, one matches 2m2m to the cent (0.6445 L turns into 1.289 L), and the second does not: 0.8248 L gives 1.6496 L, while 1.65 L is displayed. In dollars $824.80 turns into $1,649.60, and $1,650.00 is shown.

The stakes are enormous. If either assumption is wrong, the two-day pass is unreachable. Then, given a cheap way to step over the line (a top-up day the size of the shortfall), it costs about 0.001 L, while without one the pass rate falls from 34.8 % to 21.4 %, and expectation from +0.053 L to +0.004 L. The author names this outright as the single assumption the whole section rests on.

A separate caveat about execution mechanics, which does the author credit. A resting limit order can in principle fill better than the limit if price passed through it inside the bar. At minute resolution this is unobservable: across 990 sessions that reached the target not a single case was found, but the test cannot see inside a bar either. So the author writes «not measured» rather than «absent». And he notes that the asymmetry works against the participant: a better fill makes that day the largest and raises the effective target.

5. Why the ceiling is unreachable from both ends

The most substantive technical result in the paper. The 44.4 % ceiling is not reached at any position size, and the reasons at the two ends of the range are different.

A large size breaks continuity. On one full contract against a cushion of 1 L, the median adverse excursion of a single unbracketed session is 1.66 L, and two sessions out of three would breach the floor outright. The optional stopping theorem assumes the process flows continuously and stops exactly on the barrier. Here the very first step overshoots the barrier, and the identity stops working.

A small size restores continuity but pays fixed friction per step. At a step of 0.064 L, commission plus a tick of slippage on entry and on the stop amounts to 3.4 % of the step, and about 180 steps are required.

Sweeping position size at a constant target-to-stop ratio of 2:3 gives a picture with a maximum in the middle:

Position size Probability of passing
Ceiling under a fixed floor (geometry) 44.4 %
One full contract (optimum) 40.4 %
Three micro contracts 28.4 %
One micro contract 0.5 %
Optimum under a trailing floor 34.7 %

The trailing floor removes another 5.7 points at the optimum, and the more so the smaller the step. The mechanism here is non-obvious and important: a sequence of small winning days lifts the floor by exactly the amount won, and the cushion never widens. From which comes a conclusion worth setting apart:

Strategies with a high share of winning days and a small step are precisely the configuration that a trailing drawdown punishes hardest. The intuition «I will take a little, often, and not take risk» works in reverse on this product.

6. The funded stage and the full cycle

At the funded stage the floor trails the balance high until accumulated profit exceeds Λ\Lambda, after which it locks forever. The usable cushion is Ct=Bt−Ft=L−DDtC_t = B_t - F_t = L - DD_t, where DDtDD_t is the current drawdown from the peak. The account dies exactly when the drawdown from the peak reaches LL.

The problem «reach +Λ+\Lambda before the drawdown reaches LL» is a first passage on drawdown from the running maximum. It is path-dependent and has no elementary closed form. But an upper bound comes from the same domination: P(lock-in)≤L/(Λ+L)P(\text{lock-in}) \le L/(\Lambda + L).

Lock-in is best taken in a single day. Two reasons. Splitting it across several days exposes the account again to the trailing barrier, whose floor jumps on every new high. And since commissions make the funded game unfair to the downside, «bold play» is optimal.

What bold play is. A result from gambling theory: if the game is unfavourable to you, it is optimal to bet large and rarely rather than small and often. With small bets you give the negative expectation time to work. The practical translation for a funded account: carry it to the lock-in threshold in one trade.

Modelled as a single bracket with a target just past the lock-in threshold (240 ticks against a floor of 192 ticks), lock-in gives 192/(240+192)=44.4 %192/(240+192) = 44.4\ \%.

The full cycle. A funded account is an absorbing renewal process: each qualifying cycle pays s⋅min⁡(0.5⋅profit,κ)s \cdot \min(0.5 \cdot \text{profit}, \kappa), up to NN times, and the cushion thins on every payout, because a withdrawal reduces the balance while a locked floor does not come down.

EVbuyer=−f+P(passed)⋅VEV_{\text{buyer}} = -f + P(\text{passed}) \cdot V

What each symbol means:

  • ff is the fee per attempt.
  • VV is the expected total payout from a funded account, conditional on getting one.
  • P(passed)P(\text{passed}) is the evaluation pass rate.

Step by step. Multiply the expected payout by the chance of reaching it, subtract the fee.

A worked example on the paper's numbers. V=0.3501 LV = 0.3501\,L and P=0.3473P = 0.3473. The product is 0.1216 L, the expected takings from one purchase. At a fee of 0.05 L the expectation is +0.0716 L+0.0716\,L, at 0.07 L it is +0.0516 L+0.0516\,L, at 0.14 L it is −0.0184 L-0.0184\,L.

The evaluation funnel

Quantity Value
Green-day rate 58.8 %
(green-day rate)² 34.6 %
Observed P(passed)P(\text{passed}) 34.73 % [34.52, 34.94]
Expectation per attempt at φ=0.05 / 0.07\varphi = 0.05\,/\,0.07 +0.0716 L / +0.0516 L (±0.0017)
Expectation per attempt at list price, φ=0.14\varphi = 0.14 −0.0184 L

A pass requires two green days, so the pass rate obeys the identity P≈(green-day rate)2P \approx (\text{green-day rate})^2. The check: 0.5882=34.57 %0.588^2 = 34.57\ \% against the observed 34.73 %. Agreement to two tenths of a point is a strong internal check showing that the simulation does what it claims.

Geometry against realisation, stage by stage

Stage Instrument Target / stop (L) Target / stop (ticks) Ceiling Realised Unresolved at the close
Evaluation one full contract 0.64 / 0.96 128 / 192 60.0 % 58.8 % [57.1, 60.4] 2.6 %
Floor lock-in one full contract 1.20 / 0.96 240 / 192 44.4 % 44.3 % [42.6, 46.0] 5.4 %
Qualifying trade three micro contracts 0.15 / 0.30 100 / 200 66.7 % 64.9 % [63.3, 66.5] 2.1 %

All three ceilings recompute and agree: 0.96/1.60=60.0 %0.96/1.60 = 60.0\ \%, 0.96/2.16=44.4 %0.96/2.16 = 44.4\ \%, 0.30/0.45=66.7 %0.30/0.45 = 66.7\ \%. The realised values sit below the ceiling, as the ceiling proposition requires.

The author notes separately that this check is a consistency test, not a proof of correctness: the stopping identity applies to an unbounded horizon, while daily statistics are bounded by the session close, so the bound holds only while the share of unresolved days is small. He honestly reports that share beside every stage and points out that on windows where the contract traded far cheaper and the same dollar bracket was wide relative to the session range, the unresolved share grows and the conditional win rate exceeds the nominal ceiling. That caveat turns out below to be exactly the defect the Youngblood paper did not see.

7. The seller's side

The account is simulated, so the operator's only cash outflow is a payout. The operator breaks even against a population whose pass rate equals

p∗=φV/Lp^* = \frac{\varphi}{V/L}

How to read it. φ\varphi is the fee in units of the loss limit. V/LV/L is the expected payout from one funded account, also in units of the limit. The ratio gives the population pass rate at which the operator earns nothing and loses nothing.

On numbers. V/L=0.35V/L = 0.35. Then p∗=φ/0.35p^* = \varphi / 0.35: at a fee of 0.05 that is 14.3 %, at 0.07 it is 20.0 %, at 0.10 it is 28.6 %, at 0.14 it is 40.0 %.

The mechanical participant the author models passes 34.7 % of the time. Putting the two facts side by side gives the conclusion the paper was written for: both numbers are compatible only if the real population passes substantially below two thirds of the mechanical rate. This is precisely the mechanism regulators describe in their warnings.

The estimate is moreover made on the conservative side, and the author shows it. VV is computed for his disciplined participant; a less disciplined population reaches fewer payouts per account, its VV is lower, and p∗p^* correspondingly higher. At half the VV, the break-even rate at φ=0.07\varphi = 0.07 equals 40.0 %, which is above the 34.7 % achieved by the best configuration in the entire size sweep. That is, the operator would be profitable even against an optimised buyer.

From which comes a formulation worth remembering whole. At list price the operator is profitable against any buyer with a pass rate below 40 %, including the best one achieved in the paper, and at the same time the buyer's own expectation is already negative. The list price is the point where the product stops being a wager with a debatable edge and becomes a sale. A positive buyer expectation at the promotional price and the seller's margin do not contradict each other: they are two tails of one distribution, and the fee is the parameter that chooses which tail the operator sells into.

8. Repeat purchase and the fifth percentile

The author models the product as a repeated purchase funded from a fixed working float of 2 L, with every payout withdrawn rather than reinvested.

KK accounts Median profit (L) PP(loss) 5th percentile (L) Evaluations bought Fees (L) Share of runs that exhausted the float
3 +27.946 3.5 % +1.79 230 16.118 21.6 %
5 +46.286 3.4 % +3.075 370 25.885 25.5 %
8 +73.302 3.6 % +4.428 584 40.868 27.1 %
10 +91.105 5.2 % −0.882 709 49.621 28.4 %

Two robust observations that matter more than the medians.

First. The share of runs ending with no live accounts and no float is much larger than the probability of a net loss. At K=5K = 5 and the actual fee, 3.4 % of runs end below the initial stake, but 25.5 % end with a dead business. The difference is runs that managed to withdraw more than 2 L before exhausting themselves.

Second. The twenty-fifth percentile sits close to the median rather than halfway to the lower tail: at K=10K = 10 it is +69.446 L against a median of +91.105 L, while the fifth percentile is at zero or below. Almost all the probability mass sits in a narrow upper band, and the rest in a thin tail right at the stake.

The working float is a tail parameter, not a return parameter. Between 3 L and 5 L the median shifts by 0.9 %, while the probability of a net loss falls from 1.3 % to 0.1 %.

And the most valuable methodological remark in the paper. The author reports the fifth percentile of the running minimum of the working balance beside the fifth percentile of the outcome, and the two diverge completely. The terminal fifth percentile is positive at every KK and every policy, while the balance itself in the worst 5 % of runs passes practically through zero (one to six thousandths of an L) at every KK and every policy.

One quantity says how much the enterprise has left at the end. The other says how close it comes, at its worst moment, to being unable to buy even one more attempt. An enterprise with a median outcome in the tens of L can spend part of its life in that state, and a table of terminal quantiles will not show it.

An artefact of the rule structure

Two accounts on opposite sides of the same session win on at least one of them 99.8 % of the time, against 83.0 % if the outcomes were independent. That is 16.8 points extracted from the structure of the rules rather than from the market. At the lock-in stage it is 88.6 % against 69.0 % (+19.6), on the qualifying trade 99.8 % against 87.7 % (+12.1).

Recomputing the independent baseline agrees: 1−(1−0.588)2=83.0 %1-(1-0.588)^2 = 83.0\ \%, 1−(1−0.443)2=69.0 %1-(1-0.443)^2 = 69.0\ \%, 1−(1−0.649)2=87.7 %1-(1-0.649)^2 = 87.7\ \%.

The author immediately cuts off the practical reading. The agreements he studied prohibit not only «simultaneous entry into opposing positions» between linked accounts, but also, in the same clause, any activity «intended to aggregate or hedge the risk of a collection of unrelated accounts». Running several accounts as one book against a common bankroll falls under that wording literally. So the multi-account figures should be read as an upper bound on what the rule structure would concede if it were allowed, not as a construction the buyer can assemble.

9. What is shaky in the paper

The author names most of these himself. What our own recount turned up is marked separately.

The fifth percentile does not reproduce between the paper's own tables. Table 8 and Table 11 report the same quantity (the fifth percentile of profit under simultaneous entry, a fee of 0.07 and a float of 2 L) and give different numbers:

KK Table 8 Table 11 Discrepancy
3 +1.790 +2.175 +0.385
5 +3.075 +2.247 −0.828
8 +4.428 +3.346 −1.082
10 −0.882 −0.882 0

The cause is traceable through the appendix: Table 8 uses the seed 4242+K+fee, Table 11 uses 4242+K+fee+float. The row K=10K = 10 matches because both were computed at N=20 000N = 20\,000 with seed 4322. Formally this is not an error, but the consequence is important and is not spelled out in the text: at N=3 000N = 3\,000 the fifth percentile shifts by more than 1 L from a change of seed alone. The author confirms it himself on the row K=10K = 10: "Across twelve seeds at N = 3,000 the fifth percentile of profit ranges from −1.955 L to +2.23 L, with a median of +0.174 L, and is negative in five of the twelve", and concludes "The terminal fifth percentile at K = 10 is therefore not distinguishable from zero and we do not read a sign from it." The lesson for reading the tables: the «5th percentile» column in Table 8 carries no significant digits past the first, and leaning on it at K<10K < 10 is not possible.

The internal re-implementation diverges on levels. The author implemented the cycle twice: in Python on a full contract and in NinjaScript on a micro contract, over different stretches of data. Both reproduce the qualitative funnel and the identity P≈p2P \approx p^2, but they differ substantially: "differ materially on levels (35.6% versus 27.8% pass; 0.087 L versus 0.051 L per evaluation), and the second implementation was never re-run on the estimation window used here. This is an internal consistency check, not independent replication." The gap in expectation is nearly twofold, and that is the right measure of uncertainty around the claimed +0.052 L.

Non-reproducibility. Neither data nor code is attached to the paper. The data is licensed without redistribution rights, the code is available «on reasonable request to the author». Independent verification requires equivalent minute data on the same contract and window. The author describes the barrier logic, the account parameters, the account-death convention and the evaluation windows in enough detail for the construction to be rewritten, and reports seeds and sample sizes for every table, but, as he writes himself, rewriting is not reproducing.

The conflict of interest is disclosed, but it is real. The author held and traded such accounts, received payouts from them during the sample period, and sells educational material and indicators to retail. The conclusion that the product is slightly positive at the promotional price is a conclusion convenient for a man who sells a trading-adjacent product to retail. The disclosure is made properly, the operator is not named, nobody funded the work, but it is worth keeping in mind while reading.

The evaluation-stage parameters are known only from the dashboards of two accounts. The profit target and the consistency threshold are not confirmed by any document the author holds. The entire consistency section is built on those two numbers.

The operator's discretionary levers are not modelled and do not diversify. The agreement reserves to the operator termination «at any time for any reason or no reason», subjects «excessive or unrealistic profit in a single day or a single trade» to review, and on a finding of prohibited conduct claws back what has accrued and demands the return of what was already paid. And here the paper catches itself out: the floor lock-in day it proposes is by construction a deliberate 4.8 % gain on a single trade, which is exactly the conduct named in that clause of the agreement. The probability of one payout being refused is easy to account for: at q=0.10q = 0.10 the median at K=5K=5 falls from 46.286 L to 37.226 L. But a clawback of what was already paid is one correlated event that removes all realised return, and the author does not attempt to price it.

Counterparty risk is not modelled at all. The accounts are simulated, the balances are not client money.

10. What follows in practice

Compute your own geometric ceiling before any backtest. The ratio of the loss limit to the sum of the limit and the target is a two-minute calculation that sets the upper bound for any strategy without an edge. If a backtest on prop rules gives a pass rate above that ceiling, that is not an edge, it is a bug. Most likely the barrier is being checked at the bar close rather than inside the bar, or the floor is not trailing where it should.

The trailing floor punishes a small step. The paper gives a concrete mechanism by which a high-frequency small-step strategy suffers from trailing drawdown more than a large-step one, even at an equal Sharpe ratio. That is a testable claim on anyone's own data.

The consistency rule should be checked as a knife edge, not as a margin. A portfolio of many strategies almost certainly satisfies a best-day-share constraint with room to spare, since its days are assembled from many trades. But the flip side is that a portfolio has no way of taking the target in a single trade, so the advice «lock in within one day» does not apply to it, and the only protection from the trailing floor is the speed at which profit accumulates.

Look at the running minimum, not the terminal quantile. This carries over to any long run, not just to prop.

And the main thing: the price decides the sign. The only quantity separating a positive expectation from a negative one is the discount on the fee. Not the rules, not the strategy, not the instrument.

11. Testable ideas

No. Idea Type Where to compute
1 Compute the geometric ceiling L/(T+L)L/(T+L) for every prop account in use and put it into backtest acceptance as an upper bound on the pass rate acceptance metric any
2 Verify that the loss-limit barrier in the simulation fires inside the bar on floating equity rather than at the close: an excess over the ceiling is an indicator of exactly this bug audit backtester
3 Model a trailing floor (floor = equity high minus L) and measure how many points of pass rate it removes from each strategy separately design change backtester
4 Test the hypothesis that a small step is punished harder by a trailing floor: sort strategies by stop width and plot the loss of pass rate to trailing drawdown diagnostic Python
5 Sweep position size at a constant target-to-stop ratio looking for the maximum pass rate; check that the curve is single-peaked and the optimum is not at an edge acceptance metric backtester
6 Measure the median adverse session excursion in units of the account cushion: if it exceeds 1, the continuity assumption is violated and barrier formulas do not apply audit Python
7 Report the drift from commission as a separate line in units of cushion per session (−1.9 % for this author) and include it in the report for every prop account acceptance metric any
8 Separate «trading frequency» from «distance»: show that at equal distance covered, the more frequent strategy pays more because commission is charged per trade diagnostic Python
9 Introduce the fifth percentile of the running minimum of the working balance as a mandatory metric beside the terminal quantiles acceptance metric any
10 Check the stability of tail quantiles across ten or more seeds before putting them in a report: this author's fifth percentile wanders by 1 L with the seed audit Python
11 Compute the operator's break-even pass rate p∗=φ/(V/L)p^* = \varphi/(V/L) for your own prop firms and compare it with your actual one diagnostic Python
12 Price the operator's discretionary levers: the probability of a refused payout as a multiplier on the median, and separately the clawback as one correlated event design change Python
13 Do not build constructions where the target is taken by one deliberate large win: that is exactly the conduct the agreement names as grounds for review audit any

The authors' claims

These figures and statements belong to the authors. Where they failed a recount, the walk-through says so.

Other papers

Ideas on this topic

Updated: 2026-09-27