The full mechanics

Every rule, every loop, every guardrail.

This page is long on purpose. It walks through the simulator, the live trade gate, the drawdown math, the evaluation order, the funded payout flow, the copy-trading sizing model, the resolution sweep, and the loops that keep the whole thing honest. If you want the short version, three steps live on the homepage.

Reading time · ~12 min15 chaptersNumbers update with your tier
Pick a tier to preview
Bankroll
$100,000
Profit target
$20,000
Fee
$999
Tier
Apex
ROI calculator
70/30 split
EdgeGrossTake-home
Conservative
5% / mo
$5,000
$3,500/mo
$42,000/yr
Steady
10% / mo
$10,000
$7,000/mo
$84,000/yr
Aggressive
20% / mo
$20,000
$14,000/mo
$168,000/yr

Estimate only. You keep 70% of every dollar of profit, no ceiling. Annualized assumes a steady monthly edge.

8% daily / 20% total drawdown. Same rules every tier.

On this page · 15 sections
  1. 01Overview
  2. 02Sign up & pay
  3. 03The sim bankroll
  4. 04The trade gate
  5. 05Prices & fills
  6. 06Daily drawdown
  7. 07Total drawdown
  8. 08Profit target
  9. 09Pass evaluation
  10. 10Funded account
  11. 11Payouts
  12. 12Copy trading
  13. 13Resolution & safety
  14. 14Operational rhythm
  15. 15FAQ
Chapter 01
01

What you’re actually buying

We’re a prop firm for prediction markets. You pay a one-time fee, prove you can grow a sim account by 20% without blowing it up, and we put you on a real funded account where you keep 70–80% of every dollar of profit. No subscription. No monthly fee. No hidden re-billing.

Most “trading” products either sell you a course or sell you a chart. We sell you capital. The challenge fee buys you a stress-tested simulator wired to live Kalshi and Polymarket markets. Pass the test once and every fill from then on uses our money against the real order book. The fee is the audition. The funded account is the job.

Everything below is exactly how the system works. Same engine in the simulator and in funded mode, same trade gate, same drawdown math, same evaluation. The only difference between sim and funded is whose dollars are on the line.

Selected tier
Apex
$999 one-time fee
Funded bankroll
$100,000
Real capital after pass
Profit split
70–80%
Higher Profit Split add-on → 80%

Numbers update with the tier you select on /pricing.

Chapter 02
02

Sign up, pay the fee, start trading

The path from landing page to your first sim trade is four steps and roughly five minutes. Nothing happens behind the scenes you can’t see.

  1. 01
    Create an account

    Email + password through Clerk. We verify the email so the recovery path actually works. No social-login dark patterns.

  2. 02
    Pick a tier and any add-ons

    Apex is $999 for a $100,000 funded bankroll on pass. Add-ons (Double Up, Higher Profit Split, Bi-Weekly Payouts, etc.) are priced as a percentage of the tier fee and stack.

  3. 03
    Pay through Stripe Checkout

    Card or Apple Pay. Stripe Checkout is hosted by Stripe, so your card details never touch our servers. The webhook flips your account to challenge-active the instant the charge confirms.

  4. 04
    Pick a challenge type

    Standard 30-day, Express 7-day, or Blitz 48-hour. Different time windows, same drawdown rules. Choose based on how fast you want to be evaluated, not how easy the rules are. They are identical.

Chapter 03
03

The simulator is not a toy

When you start a challenge, we open a fresh row in our database for you with a starting cash balance equal to $100,000. That number is your sim bankroll. Every trade executes against the live Kalshi/Polymarket order book: same prices a real trader sees, same fills, same fees, same slippage.

The simulator is built on the same engine that will eventually move real money on the funded account. It is not a delayed quote stream, not a synthetic market, not a “trading game.” If you trade a $100 position in the sim and the market moves three cents in your favour, you make exactly the same dollar number you would make on a $100 funded position. The only thing different is which row of the database the cash balance lives in.

What we wire up at the moment you click “start challenge”:

  • cash_balance = $100,000 (your starting capital)
  • current_equity = cash + market value of any open positions (always)
  • high_water_mark = current_equity (the peak we measure total drawdown against)
  • start_of_day_equity = current_equity (resets at 00:00 UTC every day)
  • trade_count, active_days, categories_traded: counters used to validate the pass criteria
Chapter 04
04

Every trade passes a three-layer gate

A market with a nominal price isn’t always a market you can actually trade. Before any fill, the engine runs three checks in strictest-first order. If any one of them rejects, the order is refused and your cash is untouched.

  1. 01
    DB status check

    We pull the market’s last-known status from our own database. If it is resolved, settled, closed, finalized, or determined, we reject. This is the most authoritative signal but it lags by up to five minutes (the market_sync cadence) or one minute (the resolution sweep cadence).

  2. 02
    Resolution date check

    If the market’s resolution date is in the past, we reject, even if our DB still says active. This catches the gap between a market actually ending and the source-of-truth sweep getting around to flipping the row.

  3. 03
    Live platform status check

    We hit Kalshi or Polymarket directly to ask if the market is still live this second. This closes the tightest window: a market that just settled on the platform but whose DB row hasn’t been updated yet. Without this, a trader could unwind a losing position at a stale mid the instant the outcome is known.

On top of the three-layer gate, every fill on a real platform must come off a fresh quote: a snapshot less than three seconds old. If we cannot get a fresh quote (rate limit, network blip, an exchange having a bad day) the order is rejected with Live quote unavailable. We never serve a fill off stale data. Better to reject a trade than to fill it at the wrong price.

Chapter 05
05

How prices, slippage, and fees actually work

Prediction-market contracts settle to either $1 or $0. Every price you see is a probability. 0.62 means the market thinks there is a 62% chance the contract pays $1. Your fill price determines your edge.

Fill price

When the market has a real order book (most Kalshi and Polymarket markets do during active hours), we walk the book to compute your fill, the same way a real broker would. You take the best ask, then the next ask if your size eats through the first level, and so on. The weighted average is your fill.

When there is no live book (a thin market, a temporary outage) we fall back to a simple size-based model: slippage = 0.1% per contract, capped at 2%. This is deliberately conservative; it is harder to make money in the simulator than on a perfectly deep book.

Fees, by platform

  • Kalshi: min($0.05, 15% of potential profit) per contract. At a 0.50 mid, that’s $0.05/contract; at 0.99 YES, it’s $0.0015/contract. The 15%-of-profit rule binds at mid prices, the 5¢ cap binds at extremes.
  • Polymarket: 2% of the potential payout per contract. A YES buy at 0.40 has a $0.60 potential payout, so the fee is $0.012/contract. Symmetric for NO.
  • Both fees are charged at fill time, debited from cash. We round to 4 decimal places so accumulated rounding does not leak into your equity over hundreds of trades.

Position size cap

Any single position, including additions to an existing one, is capped at 15% of your sim bankroll, valued at fill price. This is a deliberate guard against the “ladder buy” pattern where a trader doubles down on a losing position to a size that no longer represents a real bet. The cap is enforced on the combined exposure: existing + new. You can size up over multiple fills, but you cannot bypass the cap by splitting an order.

Chapter 06
06

Daily drawdown: 8% from start of day

Every day at 00:00 UTC we snapshot your equity. From that moment until the next reset, your equity may not drop more than 8% below that snapshot. On the Apex tier, that’s a hard floor of $92,000 relative to wherever you opened the day.

Start-of-day equity
$100,000
Resets at 00:00 UTC
Daily floor (−8%)
$92,000
Room to lose today
$8,000
Same on every tier

Daily drawdown is measured against where you opened the day, not your high water mark. If you grew the account by 5% yesterday, your start-of-day equity is bumped up to that new number, meaning you have a tiny bit more dollar room to lose the next day, but the same 8% guardrail. Conversely, a 3% red day shrinks tomorrow’s dollar floor by 3%.

We compare the breach at basis-point granularity. If your float drift puts you a hundredth of a percent over the line, it is not a breach. Only an honest excess past 8% counts. This is a defensive choice; we’d rather false-negative on a phantom breach than fail a real trader on float noise.

Chapter 07
07

Total drawdown: 20% from your high water mark

The total drawdown is measured against your highest-ever equity, not your starting bankroll. The first time you push your account into the green, the high water mark moves up and stays there. From that peak, equity may not drop more than 20%.

Starting bankroll
$100,000
Floor at start (−20%)
$80,000
If you reach 110% bankroll
$88,000
Floor moves up with HWM

Total drawdown is the second guardrail. Daily drawdown handles within-day risk; total drawdown handles the death-by-a-thousand-cuts case where you grind down the account over weeks of sub-8% red days. A 20% peak-to-trough drop ends the challenge regardless of how long it took.

The total drawdown check uses the same basis-point comparison as the daily check. Float drift gets ignored, only an honest excess past 20% triggers a fail. The failure reason on the row reads Total drawdown limit breached: 20.34% > 20.00% with the actual numbers, so you can see exactly how it happened.

Chapter 08
08

Profit target: 20% of your starting bankroll

Hit a final equity at or above $120,000 on the Apex tier (a 20% gain) and, provided you have also met the activity floors below, you pass.

Starting equity
$100,000
Pass at
$120,000
+$20,000
Pass percentage
20%
Same on every tier

Activity floors

  • Standard 30-day: minimum 20 trades, max 100 trades, at least 12 active days
  • Express 7-day: minimum 10 trades, max 50 trades, at least 5 active days
  • Blitz 48-hour: minimum 5 trades, max 25 trades, no active-day floor

We compare your final equity to the target at cent precision. A trader at $11,999.999 from float drift still passes against a $12,000 target. We round both sides to the nearest cent first. You should never lose a pass to a rounding bug.

Chapter 09
09

How we decide pass vs. fail in the same snapshot

Every 30 seconds we re-mark every active challenge to current prices, then run the evaluation. Order matters: pass is checked first, fail second. Here is why.

Imagine a trader’s equity swings up to the profit target and then dips below the daily drawdown limit, all between two 30-second ticks. We see the snapshot at the bottom of the dip with both conditions true: target met AND drawdown breached. What do we do?

We pass them. Hitting the profit target is proof the trader reached the win condition. The drawdown that also shows in the same snapshot is normal volatility around an already-met outcome. Failing them for that swing punishes a payout we owe and matches no prop firm’s precedent. FTMO and the rest pass on the same logic.

  1. 01
    Pass criteria first

    Equity at-or-above target AND trade count ≥ minimum AND active days ≥ minimum (when required). If true, status flips to passed and we kick off funded-account creation in the same transaction.

  2. 02
    Daily drawdown second

    Only checked if the trader did not pass on this snapshot. Equity below the day’s −8% floor → status = failed, reason recorded.

  3. 03
    Total drawdown third

    Only checked if neither pass nor daily fail fired. Equity below high-water-mark −20% → status = failed.

Chapter 10
10

Pass → funded account, automatically

The instant the engine flips your challenge to passed, we open a FundedAccount row in the same transaction. Same tier, same bankroll, real capital. The Double Up add-on doubles that bankroll on promotion.

Tier on pass
Apex
Inherited from challenge
Funded bankroll
$100,000
2× with Double Up
Profit split
70% / 80%
80% with the add-on

We treat promotion as a single atomic operation: status changes to passed, FundedAccount gets created, and your dashboard updates, all under the same row-lock. There is no race where two concurrent ticks could double-promote a single pass; the database has a UNIQUE constraint on qualifying_challenge_id as the last line of defense, and the application logic prevents it from ever firing.

Same rules, real capital

  • 8% daily drawdown, same as the challenge, measured the same way, off the same engine.
  • 20% total drawdown, same single hard ceiling.
  • 15% per-position cap, same protection against catastrophic single-bet losses.
  • Three-layer trade gate, same protection against trading a market that has just resolved.
Chapter 11
11

How payouts work, end to end

Make money, request a withdrawal, an ops engineer reviews and pays. Default cadence is monthly; the Bi-Weekly Payouts add-on switches it to every 14 days.

  1. 01
    Lifetime P&L accrues continuously

    Every realized gain or loss on the funded account updates lifetime_pnl_usd. Your share is lifetime_pnl × profit_split, and that is the pool.

  2. 02
    Available to withdraw = your share − already-paid

    We track lifetime_payouts_usd separately, so you can never withdraw the same dollar twice. Available is always non-negative: losses do not put you in the red, they bring available down to zero.

  3. 03
    Request, ops review, Stripe transfer

    Tap Request Payout, name an amount ≥ $25, the row goes pending. Ops gets a Discord ping. Funds land via Stripe in a few business days, account marked paid.

  4. 04
    Eligibility window

    First payout window opens 30 days after promotion (14 days with the add-on). After the first one, every successful payout starts the clock again.

Chapter 12
12

Copy trading: paper-only until ops flips the switch

On top of the funded program we run a copy-trading engine that mirrors top-ranked sharp traders into a separate firm pool. It is in paper mode by default and stays there until an operator explicitly enables live execution. This section explains how the system thinks, even though it is not moving real money yet.

Sharp Score is a percentile rank derived from a trader’s risk-adjusted returns. Traders who clear a stability bar over a 30-day window become eligible for paper-shadow tracking. When they place a trade in the simulator, the engine considers a mirrored position in the firm pool, sized by their sharp tier:

  • Top 1%: $7,500 allocation (midpoint of $5–10K)
  • Top 2.5%: $3,000 allocation
  • Top 5–10%: $750 allocation
  • Cooldown: $0, paper-only shadow for 30 days after qualifying, regardless of score

Six veto checks before a copy trade fires

  • Liquidity: live order-book depth must be ≥ 3× our intended size
  • Position cap: no single copy trade may be > 25% of the trader’s allocation
  • Hard cap: and never > $2,500 per copy trade in absolute terms
  • Per-trader DD: if the trader is down 15% on the day, their copies pause
  • Firm DD: if the firm pool is down 5% on the day, the kill switch trips
  • Sim-to-live drift: if the live price has moved >2% from the sim fill, the edge is gone, skip
Chapter 13
13

When markets resolve, positions settle automatically

Prediction markets resolve to YES or NO at $1 or $0. We do not interpret outcomes; we read them from the platform itself. Once Kalshi or Polymarket reports a market as resolved, every open position settles at the platform-reported outcome.

A resolution sweep runs every 60 seconds against every market with at least one open position across the entire system. For each market, the chain is:

  1. 01
    Polymarket: Gamma API first

    Read the market row from Gamma. If it reports a resolved outcome, settle. If Gamma is silent or returns empty (a real failure mode, since Gamma occasionally drops rows), fall through.

  2. 02
    Polymarket: data-api /trades fallback

    If Gamma was inconclusive but the trades API shows recent fills concentrated at $1 or $0, that’s a settled market we can detect from the trade tape. Settle at the inferred outcome.

  3. 03
    Kalshi: signed market endpoint

    Read the market row from Kalshi v2 with our RSA-PSS signed key. If status is settled and result is reported, settle every open position at the outcome.

  4. 04
    Orphan recovery

    If we have an open position whose market_id no longer maps to a known row (the platform purged it), we fetch the market directly from the source and recover. We never silently skip a market with open positions: every sweep tick produces either a settle event or an explicit unresolved-alert event.

On settlement, every open position in that market closes at the resolved price. Realized P&L flows into your equity, the position is marked closed, and the next mark-to-market tick runs evaluation against your new equity, which is when a settlement might be the snapshot that pushes you over the profit target or under a drawdown floor.

Chapter 14
14

The system’s heartbeat

Behind every challenge, a small set of background loops runs on tight cadences. None of these are user-visible, but together they are what makes the engine trustworthy.

  • Mark-to-market every 30 seconds: re-prices every active challenge against live quotes, then runs evaluation.
  • Expiry check every 60 seconds: finds challenges past their deadline, force-closes open positions at current prices, runs evaluation one last time.
  • Daily reset at 00:00 UTC: under a row-lock, snapshots start_of_day_equity to current_equity for every active challenge.
  • Resolution sweep every 60 seconds: detects and settles resolved markets across the entire system.
  • Market sync every 5 minutes: refreshes the catalog of active markets from Kalshi and Polymarket.
  • Equity audit, continuous: verifies the equity invariant cash + market_value == current_equity on every active challenge and auto-corrects drift > $0.02.
Chapter 15
15

Questions we get a lot

Do I have to use a specific strategy?
No. Trade NBA moneylines, election markets, weather contracts, anything live on Kalshi or Polymarket. The engine does not know what category your edge is in. It only watches the equity curve.
What if the platform has an outage?
We refuse trades during outages. The fresh-quote gate rejects fills with no quote less than three seconds old; the trade gate rejects markets we cannot get a status from. You do not lose money to an exchange having a bad day. You just cannot trade until it is back.
Is the simulator’s pricing the same as the live book?
Yes. We walk the same Kalshi/Polymarket order books, charge the same fees, take the same slippage. The only thing different in funded mode is whose dollars are in the balance.
Can I retry if I fail?
You can buy a new challenge any time. The Free Retry add-on bundles one retry into the original purchase if you want to pre-pay for the safety net.
What happens to my open positions if my challenge expires?
At expiry the engine force-closes every open position at the current mid, then runs evaluation one final time. If the closed-out equity meets pass criteria, you pass; otherwise the challenge is marked failed with reason “Challenge expired without meeting pass criteria.” No silent loss. You can see every fill on the trade history page.
What’s the catch?
There is no hidden catch. The rules above are it. Some traders pass, most do not, and the ones who do get paid. The fee covers the cost of running real capital against a population where the average outcome is failure. We have built the system so that paying customers who do the work get the upside, and that is all.