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.

LimitStandardProWhen it refuses
Per-round size$20$60before the order is placed
Total open exposure$100$300before the order is placed
Daily loss$30$90before the order is placed, and it ends the run if breached
Minimum hold20 seconds20 secondswhen you try to close too soon
Maximum drawdown25%20%before the order is placed, and it ends the run if breached
Price band0.10 to 0.90samebefore the order is placed
Settlement lockout30 secondssamebefore the order is placed

What each one is for

Per-round size

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

Total open exposure

The most you can have committed across every open round at once. Five full-size rounds on Standard, five on Pro. 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 Standard seat went to zero at the same moment, the loss would be $100, against $125 of reserved cover.

Daily loss

The most you may lose in one day. Hit it and the run is over, not paused.

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.

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 25% below your peak on Standard, or 20% on Pro, and the run ends.

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.

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.

Two limits that exist only during the challenge

The price band and the settlement lockout are enforced during the challenge and not by the on-chain program on a funded seat.

The reason is honest rather than convenient. The program sees an amount of money moving, not a price, and it has no notion of when a round ends. Wiring those two in would mean the program decoding the venue's own instruction format, which is exactly the coupling Fortell avoided by measuring what the trade actually cost instead of what it claimed to cost.

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 $500 seat, every one of the five 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, and a close attempted with zero seconds held. The same seat then bought, held, closed and claimed successfully.

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.