BANGER
Product status: Banger’s public beta is paper-only. References to live execution are future-looking. Venue rules and legal claims can change; verify current primary sources for your jurisdiction.
2026-07-13 · 6 min read · facts as of 2026-07-13

From Backtest to Live: A Pre-Flight Checklist

A paper-trading run that prints a clean equity curve is not permission to go live. It is a hypothesis. The gap between a backtest and a funded account is paved with costs and failure modes that your simulation quietly ignored. This is the checklist to run before you route a single real order on Kalshi or Polymarket.

1. Recompute edge after the fee your venue actually charges

The most common way a profitable backtest turns into a losing live account is a fee model that was too generous. Both major venues price fees as a function of contract price, and the cost peaks exactly where most speculative flow lives: around 50 cents.

On Polymarket, taker fees follow the formula fee = C x feeRate x p x (1 - p), where C is the number of shares and p is the price. Fees are highest in dollar terms when shares are priced at $0.50 and approach zero near $0.01 or $0.99. The rate is category-dependent: as of July 2026, takers pay a max of $1.00 per 100 shares on politics, finance, tech, and mentions; $1.25 on sports, economics, culture, weather, and other; and $1.75 on crypto. Geopolitics markets are fee-free. Rates have changed multiple times in 2025 and 2026, so always verify against the live docs before sizing a strategy.

Kalshi prices fees the same shape. Kalshi charges fees based on the contract price, and contracts priced around 40 to 60 cents carry the highest fees. Per its published schedule (last updated July 7, 2026), the taker fee formula is: fee per contract = multiplier x price x (1 - price), where the multiplier is 0.07 for most general markets, producing a max taker fee of 1.75 cents per contract at a 50-cent price. The practical takeaway for both venues: a strategy that trades near 50 cents pays the maximum fee load, so recompute edge at the actual prices your entries hit, not an average.

One structural lever both venues hand you: makers are treated differently, but not identically. On Polymarket, makers are never charged fees — only takers pay. On Kalshi, maker orders (limit orders that rest on the book) are charged a reduced fee, currently 25% of the taker rate, rather than the full taker amount. On either venue, if your backtest assumed market orders but your edge only survives as a maker, that is a different strategy and it needs its own paper run.

2. Stop assuming your fill price is the mid

Fees are the cost you can compute. Slippage is the cost you discover. A backtest that fills at the last trade price or the midpoint is lying to you about thin books. On prediction markets the spread is frequently the dominant cost, not the fee.

The honest framing: a market priced 53c bid / 58c ask has a 5c spread, half of which you eat crossing, which is functionally a 2.5% taker cost even if the fee schedule says zero. On liquid markets your structural cost is genuinely small, but on thin markets you can pay as much or more than sportsbook vig once spread is included, so always check the book depth before trusting the headline fee number.

Before going live, re-run your paper test with a pessimistic fill model:

3. Watch out for partial-fill and minimum-size traps

Order-type mechanics can leave you holding positions your backtest never simulated. On Polymarket, resting limit orders carry a floor: GTC and GTD orders rest on the public book, so Polymarket enforces a 5-share minimum to keep the book free of dust. That bites on exits. If a partial fill leaves you holding a position smaller than 5 shares, a GTC sell of 1.5 shares is rejected for being under the minimum, while a FAK sell fills against the bid and exits the residual. If your strategy assumes it can always flatten, verify the exit path for odd-lot residuals before real money is on the line.

4. Write the risk envelope down before you flip the switch

Live trading fails in ways paper trading cannot: a bug loops, a market gaps, an API returns stale data. Your defense is a set of hard limits that live outside the strategy logic, so a broken strategy cannot talk its way past them. At minimum, define:

This is where a declarative risk layer earns its keep. In Banger you express these as an envelope around the strategy rather than conditionals inside it, so the caps hold even when the strategy misbehaves. The strategy proposes; the envelope disposes. Note that venues also enforce their own ceilings independent of yours: Kalshi's published rulebook defines position limits (expressed as maximum loss exposure) that vary by market and are set to reduce the threat of market manipulation. Your local max-position cap should sit at or below those.

5. Rehearse the failure paths, not just the happy path

A strategy is only as reliable as its behavior when things break. Before going live, deliberately trigger the ugly cases in paper: a rejected order, a disconnect mid-fill, a market that resolves while you hold a position, a duplicate signal. Confirm the strategy does something sane each time rather than retrying blindly or double-submitting.

One resolution nuance worth pricing in: some markets charge on winnings rather than per fill. For example, Polymarket introduced a 2% fee on winnings for NCAA men's basketball on February 18, 2026, applied to the profit on a winning position rather than every fill — buying at 60c that resolves to $1 yields 40c gross profit and a 2c fee, leaving 38c net. This is distinct from Polymarket's general per-category per-trade fee structure (which applies to markets deployed on or after March 23, 2026). Check the specific fee structure for each market you trade: a hold-to-settlement strategy has a different cost profile than a scalping one, and your P&L accounting has to match how that specific market actually charges.

The rule that keeps you honest

Never let a strategy touch real money until you have run it against the live order book, in paper mode, with a pessimistic fill model and the exact risk envelope you intend to trade. With Banger the flow is deliberately boring: pip install bangertrades, then banger run strategy.py --paper against live quotes, and only drop the --paper flag once the paper run survives real fees, real spreads, and your own kill switch. Banger never holds your funds; you bring your own venue keys, so the only thing between a backtest and a blown account is this checklist.

pip install bangertrades

# paper: live order book, simulated fills, real risk envelope
banger run strategy.py --paper

# live: same envelope, real orders, your own venue keys
banger run strategy.py

Fee schedules, market-specific fees, and position limits change without notice on both venues. Re-verify the numbers above against each venue's live order preview and official documentation before you commit capital, because the cost that kills an edge is usually the one that changed since you last checked.

Sources

Keep reading

Run your first strategy free

Paper-trade on Polymarket and Kalshi market data without venue keys.

Start free