Fortell
Reference / rails.md

The risk rails

Seven limits. They are the same limits during the paid challenge and on a funded seat, which is the whole point: a funded trader must not be able to do what the evaluation forbade.

None of them is advisory. Each one refuses the order rather than warning you about it.

Limit$10,000 Notional AccountWhen it refuses
Per-round size$50before the order is placed
Total open exposure$200before the order is placed
Daily loss$125 on day one, then half of whatever you start the day withbefore the order is placed, and it ends the run if breached
Minimum hold20 secondswhen you try to close too soon
Maximum drawdown2.5%before the order is placed, and it ends the run if breached
Price band0.10 to 0.90before the order is placed
Settlement lockout30 secondsbefore the order is placed

The same numbers on both markets. The table is written in the prediction account's words, and the US stocks account enforces the same figures with two readings changed: the per-round size is the cap on one name's marked notional, and total open exposure is the gross across names. A perpetual has no round to end and no price between 0 and 1, so the price band and the settlement lockout do not apply there; a stale mark refuses an order instead, and there is no leverage. That page states each of those.

What each one is for

Per-round size

The most you can have committed to a single round at once. It stops one call from being the whole challenge, which is the difference between a track record and a coin flip.

It counts what you are holding, not what you have traded. Closing a position hands the whole cap back and a partial exit hands back its share, so entering a round early, closing flat at a profit and entering it again later is an ordinary thing you may do. It is the same rule the funded seat applies, where the limit is on the size of one order. What stops you re-entering is never this cap; it is the daily loss limit below, and only while you still have worst case on the book.

Total open exposure

The most you can have committed across every open round at once. Four full-size rounds. Without it, the per-round cap does nothing: you could reach any exposure you liked by opening more rounds.

This is what bounds the worst case Fortell has to cover. If every open round on a seat went to zero at the same moment, the loss would be $200, against $250 of reserved cover.

In practice the daily loss limit reaches you first. It reserves the worst case on everything you already hold, so a trader starting a day flat can have two full-size rounds open plus $25, or several smaller ones adding up to $125, and not four of $50. The aggregate cap is only reachable once the day has banked enough profit to pay for the difference - $75 of it, because a flat day gives you $125 of room against a $200 aggregate cap.

Daily loss

The most you may lose in one day. Reaching it is breaching it, and a breach ends the seat, permanently, exactly as the drawdown floor does: nothing un-freezes a seat, and the next day does not give it back. You may trade right up to the line - the largest order the product offers you is the one whose worst case lands your day exactly on it - and landing there ends the run.

Until 23 August 2026 reaching it was not a breach: down exactly the limit you were out of room for the window, and the room came back when it rolled. The change was made because under that rule the limit could not be reached at all - no order the product admits takes you past it - so the published number was a clamp rather than a limit. The two loss limits now have one shape.

The day is a UTC day. It turns over at 00:00 UTC, the same instant for everyone, which is not your own midnight unless you live on UTC: five and a half hours east of UTC your allowance resets in the early morning. Every screen that shows you this limit also states when the current one ends in your own time zone. The detail and a worked example are in how a challenge is graded.

Two things about it that surprise people, and both are covered in detail in How a challenge is graded:

  • What counts as lost is realised, so staking money is not losing it.

  • What the software refuses your next order on is worst case, so an open position holds room aside until it settles.

A winning settle hands that room straight back.

On a funded seat the number is not a fixed $125. It is half of whatever you start the day with, and it moves in both directions. During the challenge the limit is a flat dollar figure. On the seat there is no fixed-dollar field at all: the program takes the balance your seat is flat at when the day opens and allows you to lose half of it.

You start the day withYour allowance that day
$250, the day you are funded$125
$350, after banking $100$175
$150, after losing $100$75

The trailing is deliberate. A fixed cap would let a seat that has doubled risk the same small number, and would let a seat that has halved risk a number it can no longer afford. Half of what you actually hold is the same rule at every size, which is what makes it a pace rather than a number. It is also why a bad day costs you twice: the loss, and a smaller allowance the next morning.

Inside a day it does not move at all. The allowance is fixed against the balance the day opened at, so profit you make during the day adds to the room you have left rather than raising the limit. Up $10 in the morning on a $125 allowance and you can now fall $135 from where you stand - the floor has not moved, you have.

Minimum hold

You must hold a position for 20 seconds before you can close it. It stops a seat from scalping the settlement tick, which is a trade against the venue's plumbing rather than a forecast.

Maximum drawdown

Measured from the highest your equity has ever been, not from where you started. Fall 2.5% below your peak and the run ends.

Read that percentage against the money, not against the label. 2.5% of a $10,000 notional is $250, and $250 is the entire first-loss cover Fortell reserves for the seat. A smaller percentage on a bigger account is not a looser rule.

On a funded seat this is enforced twice: your seat freezes if it ever sits below the floor at a moment when you have nothing open, and separately, any buy that could take you below the floor if the position went to zero is refused before it happens. The second check is why the maximum a seat can lose is exactly the cover reserved for it.

On day one that floor is at zero, and that is the design rather than a gap. The floor sits a fixed distance below the highest your seat has ever been worth, and on a brand-new seat the highest it has ever been worth is the $250 it was funded with - so the floor is $250 minus $250, which is nothing. A fresh seat may lose the whole of it. That is exactly the promise on this page read the other way round: the $250 is Fortell's own first-loss cover, the maximum a seat can lose is that cover, and a floor that refused anything on day one would be a floor that made the cover smaller than it says it is.

So on day one it is the daily rule that paces you, and the drawdown floor rises as you bank profit. Every dollar of profit you take the seat to lifts the peak, and the floor follows it up by the same dollar. At $250 of retained profit the floor reaches the money Fortell put in, and from there on the seat cannot cost Fortell a cent. Your seat is bounded at $250 the whole time; what changes is who that $250 is standing in front of.

Price band

You may only enter between 0.10 and 0.90.

Outside that band you are not forecasting, you are buying a lottery ticket in one direction or selling one in the other. At 0.01 you win about 99 times in a hundred and the hundredth erases all of them, while a naive edge measure would score a one-cent buy that resolves yes as +99 cents. The band removes the whole strategy rather than trying to score around it.

Settlement lockout

You cannot open a new position within 30 seconds of a round resolving.

The number is worth explaining, because the underlying settings say 15 and 20 seconds and the answer is still 30. Scoring ignores any call entered less than 30 seconds before resolution. Without the floor there was a window in which an order was accepted and then silently never counted: you spent cash and your per-round allowance on a call that could never reach your score, and nothing told you.

The price band and the lockout on a funded seat

Both are enforced by the on-chain program, and until recently neither was. This page used to say they were challenge-only, and it gave a reason: the program sees an amount of money moving, not a price, and it has no notion of when a round ends. The first half turned out to be wrong and the second half turned out to be avoidable.

The price is the money and the position, divided. The program already measures the cash that left your seat and the contracts that arrived in it - that is how every size and loss limit on a funded seat is charged. Those two numbers are the price you actually paid, including the venue's spread, so no instruction has to be decoded to know it. What was missing was not information, it was a check.

The deadline is a fact about the round, and the round is already in front of the program. The venue's own round account travels with every order, and it carries the round's close time at a fixed place. The program finds that account by what it is - who owns it, its exact size, its type marker - rather than by where it sits in the order, so a different market layout cannot move it and a spare account cannot be slipped in to stand for it. If it cannot find exactly one, the order is refused rather than allowed through with the deadline skipped.

What you may notice as a trader. The band is charged against the price you FILLED at, not the price you were quoted, so an order quoted just inside the band can still be refused: the spread is part of what you paid. No smaller size fixes that, because the price is the price. The remedy is a different round.

How a funded seat's limits are enforced

Worth understanding, because it explains why a refusal sometimes looks strange.

On a funded seat, the size and loss limits are checked after the trade has run, against the money that actually moved, and the whole transaction is thrown away if a limit is exceeded. The program does not try to read the venue's instruction and work out what it was going to cost. It watches your seat's balance before and after.

That is a deliberately paranoid choice. A venue could change its instruction format, or describe a trade one way and settle it another, and none of that would let a trade past the limits, because the limits are charged against real money that really left.

The one exception is the minimum hold, which is checked before the trade rather than after, because it does not depend on the amount.

Two things you should not assume

A limit set to zero is switched off, not set to zero. On a funded seat, zero in a size limit field means "no limit", not "no size allowed". A seat is created with those fields at zero and they are set immediately afterwards, in the same automated sequence that funds it, and the program refuses to move capital into a seat whose size limits still read zero. But this is a guard at funding time, not a permanent property. Read the seat rather than assuming, and Checking it yourself shows how.

A number in a field is not proof that the limit fires. A non-zero value means the limit is not switched off. It does not, on its own, show that the program refuses a trade that breaks it. Fortell's answer to that is to test the refusals by execution rather than by inspection. On one railed seat, every one of the seven limits the program enforces has been made to refuse a real trade on chain, each with its own error code: a $21 buy against the $20 per-round cap, a buy with open exposure already at $100, a buy that would have left the seat one hundredth of a cent under its drawdown floor, the same against the daily floor, a close attempted with zero seconds held, an order that filled at 0.93 against the 0.10-0.90 band, and an order on a round exactly 30 seconds from resolving. The same seat then bought, held, closed and claimed successfully.

Those two figures are that seat's, not yours. The test predates the limits in the table at the top of this page, and it was run on a seat funded with smaller ones. What it demonstrates is that each rail refuses, which is a property of the program rather than of the numbers loaded into it: the same code reads whichever limits your own seat was funded with, and check 4 below is how you read them.

Those transactions ran on the private test fork. No public explorer reaches it, so there is nothing in that paragraph for you to resolve, and this page quotes no identifier you cannot check. Treat it as Fortell's own account of a test rather than as something you have verified. The part you can verify yourself is the seat in front of you, and the method is check 4 in Checking it yourself.