Research and paper only · not financial advice · not an income forecast
Kalshi Income Plan
Saturday October 17, 2026 · written 2:48 AM EDT
Two research agents, called Astra and Fable here, were each asked the same question and wrote a plan without reading the other's. Then each reviewed the other's plan, and both revised. This page puts the two side by side. It is the companion to the Kalshi money plan, which covers what runs today.
1. One screen
“You have $X and the Kalshi API. Make an income.”
Asked for three bankrolls: $250, $2,500 and $25,000.
The honest answer
Neither plan found a proven, reliable income at any of the three bankrolls yet. Both put “reliable money you could withdraw today” at $0.
$250 is a lab, not a business. It buys one-contract experiments that add evidence, not wages. At $25,000 most of the money would sit unused at first, by design, because the strategies that look good fill up long before the money runs out.
The two plans' bankroll tables, side by side
Read these as “what the arithmetic says if the measured edges turn out to be real”, not as forecasts. Astra's is deliberately conservative. Fable's is its revised table; its first version was withdrawn (section 4 explains why).
Astra: conservative scenarios
Monthly, after trading costs, after a strategy has passed its tests. Formula: money in use × times it turns over × profit kept per dollar − running costs.
| Bankroll | Reliable now | Trading profit if validated | After running costs |
|---|---|---|---|
| $250 | $0 | $1.50–$4.50 | −$3.50 to −$0.50 |
| $2,500 | $0 | $20–$60 | −$10 to +$30 |
| $25,000 | $0 | $200–$600 | +$50 to +$450 |
- Assumes at most 20% of the bankroll is ever in use, turned over 6–8 times a month, keeping 0.5%–1.5% per dollar traded.
- If the edge is zero: −$5 / −$30 / −$150 a month (the running-cost budgets).
- Charging the shared $400 a month of subscriptions too: −$403.50 to −$400.50, −$410 to −$370, and −$350 to +$50.
- Reward income counted at zero.
Fable: revised, probability-weighted
Monthly. “Weighted” multiplies each strategy by Fable's own judgement of the chance its edge is real (weather 0.6, gas 0.5, mention taker 0.6, mention maker 0.6): judgements, not statistics.
| Bankroll | If real | Zero edge | Weighted | With $400 subs |
|---|---|---|---|---|
| $250 | +$45 to +$60 | −$25 | +$15 | −$385 |
| $2,500 | +$320 to +$520 | −$145 to −$250 | +$140 | −$260 |
| $25,000 (first 90 days) | +$650 to +$900 | −$350 to −$500 | +$300 | −$100 |
| $25,000 (after a reward pilot that pays) | +$1,500 to +$3,500 | −$600, program ends | unknown | unknown |
- Weighted return on the whole bankroll: 6%, 5.6% and 1.2% a month. At $25,000 Fable calls 1.2% “a savings account with extra steps unless the reward pilot pays”.
- Replaces a first table (“about +$30 / +$250 / +$900”) that was built partly on withdrawn numbers.
- Astra's reply: the $2,500 row's $800 weather and $600 gas floats do not fit inside a $500 combined cash cap, and the $250 row must fit a $50 cap. Not yet recomputed.
Where they agree: both put the subscription bill out of reach at $250 and $2,500, and both say $25,000 is a supplement at best until something is proven. Where they differ: Astra won't name a number it can't defend. Fable names the number you would earn if the measured edges hold, with odds attached.
The recommendation, in four points
- Be the patient side (the one whose order waits on the book) only in slow markets: mentions (will a speaker say a given word), entertainment, weather, and 15-minute commodities. These are where impatient buyers lose the most per dollar staked: mentions −3.0%, entertainment −2.0%, weather −1.4%, 15-minute commodities −1.2%. Mentions, weather, gas and rain also charge the patient side no fee.
- Build a broken-prices scanner. It looks for prices that break simple logic, and nothing else: a ladder where “above X” is cheaper than “above X+1”; a narrow claim priced above the broader claim that contains it (“wins by 7+” above “wins”); old orders left resting after the thing they track has moved; and the first seconds after a scheduled data release, before resting orders are updated.
- Reward pools are the one thing found that grows with capital. Kalshi pays pools to traders who keep orders on both sides of some markets. But the scoring rules must be read in full first, and the first pilot runs on paper.
- Sports stays on paper. Before kickoff, Kalshi's price sits a median 0.94¢ from the sharp bookmaker's (Pinnacle's) fair price, and only 0.4% of sides showed a gap of 2¢ or more after fees. In fast markets the buyer who takes the posted price tends to be the better-informed one (section 2).
2. Where the money goes
Every trade has a taker, who accepts a price already on the board, and a maker, whose resting order was there. Before fees, whatever one wins the other loses. Fable measured this on two weeks of Kalshi's own trade record (October 2–15, 2026, 127.5 million trades, settled markets only). That is a snapshot dominated by in-play sports and 15-minute crypto, not a law.
The pie: Kalshi's fees are about six times what takers lose to makers
Per day, October 2–15. In sports alone, fees run $5.3 million a day against a $0.48 million transfer: eleven to one. Every strategy's first competitor is the fee.
Who loses, by category, as a share of what they stake
Takers' result before fees, as a percent of what they paid. Red = takers lose (makers win). Green = takers win (makers lose).
Science and tech runs off the scale (dashed end). In dollars the biggest losses are in crypto and sports, simply because that is where the volume is. The slow small families (mentions, weather, entertainment) add up to about $28 thousand a day of taker losses across the whole exchange, against about $24 thousand of fees in the same families. In gas, yields and politics the takers win, so makers there lose; a reward-pool business in gas has to pay for that.
The surprise: cheap-side takers win when the money is counted
Older studies of daily closing prices find that people who buy contracts under 10¢ lose over 60% of their money. Weighted by dollars on this October trade record, it runs the other way: takers who bought the cheap side won, and takers who bought the expensive side lost.
Why it matters: most of this volume is in-play sports and 15-minute crypto. There, the person who grabs a 30¢ price the moment a touchdown is scored knows something the resting order doesn't. So “be the house” only works where the market is slow. In a fast, deep sports book, a patient order is the one getting picked off, by about 2¢ a contract. Astra's separate one-night check on a single fight card found the same thing: takers gained +0.74¢ a contract on the winner markets and +1.13¢ on the method-of-victory markets.
3. The two plans compared
| Business model | Astra's quick check | Fable's quick check |
|---|---|---|
| Patient two-sided quoting around a fair price (market making) | Across 379 football games the best nominal maker edge averaged 1.39¢, but none had both price feeds fresh within 30 seconds. | Pre-kickoff spread is 1¢ wide. An earlier maker test without an outside price lost −21¢ per filled contract. |
| Taking prices that disagree with the sharp bookmaker | Average gap after fees −0.57¢; only 6 of 379 games above 2¢, none with fresh data. | 0.4% of 758 sides net 2¢ or more; none net 4¢. |
| Small-market habits (buy the day-ahead favourite on weather and gas) | Weather +5.48¢ a contract (260 picks, 61 dates); gas +4.45¢ (490 picks, 58 dates). Already-seen data, not proof. | Weather +5.47¢ pooled but weak statistically; gas positive but not significant. |
| Related markets lagging the main one (in-play) | First reaction in a related market: median 1.24 seconds. | The price level keeps adjusting over about a minute; worth about one round trip in costs. |
| Arithmetic packages (buy every outcome for under $1) | Median two-side sum $1.01; 2 games at $0.99 before fees, 0 after. | Gas ladders broke 1,287 times in 11 days, but a median break lived 5 seconds. |
| Exchange reward pools (Kalshi pays for posted liquidity) | 25 past program/book pairs: median pool $100, about $6.26 an hour. No measured payout to us. | 39,716 programs in two weeks, none on game-winner, spread or total markets; only 974 of 6,611 ever qualified. |
| Speed on news or video | Archived Kalshi quotes a median 40 minutes old at the decision: can't test speed. | Not ours: legal video streams run about 30 seconds behind. |
| Selling parlays and cross-venue gaps | Cross-venue: observer only. | Parlay sellers earned +2.14¢ on 2-leg combos, but a new quoter can't see the losing quotes. Cross-venue gap below fees. |
What Astra recommends
A narrow inventory desk priced off an outside fair price: patient pregame quotes around a fresh sharp-bookmaker probability, taking only unusually large verified gaps, accepting reward payments only where quotes qualify anyway. Weather and gas stay small experiments.
Spending ceilings after validation total $50 / $500 / $5,000, leaving $200 / $2,000 / $20,000 untouched. Related-market lag, packages and speed get $0.
What Fable recommends (revised)
Be the house in small markets: buy the day-ahead favourite on weather and gas, hit the 3–10¢ long-shot bids in mention markets, and keep the mention maker on paper. At $25,000, add reward quoting in gas, rain or mention markets, but count it at zero until a real payment reconciles.
Sports stays on paper; related-market lag gets $0 until a proper test.
What to measure instead of dollars per hour
Both agreed “net dollars per hour” is the wrong target to run the desks on. It divides by hours nobody trades, hides the capital behind it, and only moves after settlement. The combined scorecard:
| Metric | What it tells you | From |
|---|---|---|
| Monthly net profit | Settled profit plus paid rewards, minus every running cost; subscriptions shown separately. Does it pay its bills? | Both |
| Drawdown | Biggest drop from the high point, with open positions valued at what they would sell for now. Do we survive long enough to learn? | Both |
| Return on bankroll and on peak cash | Profit on the whole bankroll, next to the most cash ever tied up. Stops a small working float from making the return look big. | Astra; Fable adopted |
| Turnover | How many times the money in use cycles a month, and how long it is locked up. | Astra |
| Closing-line value | Did the price move our way before the market closed? A fast early signal, not proof of profit. | Both |
| Maker markout | After our resting order fills, does the price move against us? Shows whether better-informed traders are picking us off. | Both |
| Reward reconciliation | Rewards estimated versus rewards actually credited. Stops a paper business earning imaginary income. | Astra |
| Owner hours | Time the owner actually spends, and net dollars per owner hour. | Astra; Fable adopted |
4. Peer review: the system working
Each agent wrote alone, saved its work, and only then read the other's. Both caught real mistakes, and both changed their plans. That is the point of running two: the errors below were caught before any money moved.
What Astra caught in Fable's plan
- It reused withdrawn numbers. The mention-market maker figures came from a report Fable's own later correction had withdrawn. Corrected: the queue ahead of a new order is a median 144 contracts, not 1.4. Fills were 10 markets, not 18. Profit was $0.068 an hour, not $0.1255, and only $0.007 when quotes had to be under two minutes old. Cash is locked a median 40 hours, not overnight. And “confirmed” became “direction only”.
- The cash floats didn't fit the reserve. At $2,500 the allocations used the whole bankroll with no buffer, and at $25,000 they added up to $26,000.
- The related-market trade pays two fees. Buying and selling again a few minutes later costs about 3.5¢ in fees plus the spread. So the 1.7–1.8¢ drift nets about −2.7¢, not −1¢.
- Unpaid reward pools aren't proven free money. A low payout count can mean payments weren't seen, not that nobody claimed them. A 1,000-contract quote changes the book itself. The proposed $15,000 allocation was premature.
What Fable caught in Astra's plan
- Too conservative to be a plan. $1.50–$4.50 a month at $250 sits below the replay of the one strategy already running. “A plan that cannot be wrong on the upside is not more honest”.
- The core strategy has no revenue line. A Pinnacle-anchored sports maker joins a book that is 1¢ wide, against professionals who keep Kalshi within about a cent of Pinnacle.
- Rewards were placed on the sports maker, where the recorded census found no reward programs at all.
- The 1.24-second lag was reported without noting that our own recorder receives data a median 5.2 seconds late.
- The “who loses” sensitivity table invited exactly the multiplication it warned against. It should be replaced by the measured pie in section 2.
How each responded
- Fable put a correction banner on its first plan and wrote a revision that recomputes every dependent number. It adopted Astra's capital rules: at most 20% of the bankroll reserved for positions plus resting orders, 1% per event, 3% per group of related bets. It renamed “central estimates” to “if the measured edges hold” and added owner hours and return on total bankroll.
- Astra accepted that its 20% cap, turnover and profit-kept figures are policy assumptions, not a forecast. It split sports-maker research from reward-market research, and added a first-week watcher for fee, rule and reward-term changes. It also pushed back on one point. A 1¢ spread does not cap a maker's value at half a cent unless the fair price sits exactly at the midpoint. The question is whether an outside-priced edge survives freshness, fees and bad fills.
- The lag disagreement resolved: both were right. The related market prints within seconds, but only 52% of those first prints go the same way as the main move. The price level finishes adjusting over the next minute (+4.4¢ at one minute, falling to +1.4¢ at five). Neither shows a price you could actually fill at a profit.
5. Ideas
A sixth round looked for new ways to extract value, generalised from the owner's two leads into mechanisms rather than trades.
Fable's top three
| Rank | Idea | How it works | The number that decides it |
|---|---|---|---|
| 1 | Nested claims across series | “Wins by 7 or more” can never be worth more than “wins”. The same game is listed in a dozen series, each with its own traders, and they don't update together. | Share of minutes a strict pair is upside-down by more than two fees, and the size there |
| 2 | Stale orders on long-dated ladders | After the underlying moves (a yield, a Fed statement), old resting orders stay up for hours, priced in the old world. | Dollars a day of resting size more than 10¢ from a model fair price, and how long it survives |
| 3 | The minute after a scheduled release | Inflation data, jobs data, the daily gas figure: the book one second before is priced without the number. | Contracts traded at pre-release prices in the 60 seconds after, valued at settlement |
The other ideas on Fable's list
- “At any time before” must be worth at least “at the close on” for the same level. Only the rules text tells them apart.
- Settlements that land exactly on a strike, where the inclusive wording decides which bin pays.
- The market settling on a different data source than the one most traders watch.
- Monthly and weekly averages that are mostly locked in, but priced as if still open.
- New listings priced off one quoter's first guess.
- Reward-pool scoring: where the reference price sits, and program hours nobody qualifies for.
- Early-close and void rules, which make a contract worth more than a plain yes/no.
- The same question listed twice under two series.
- Choosing the cheapest fee structure for the same exposure.
- Whether a speech being cancelled is priced into all its word markets.
- The related-market maker from the fight-bot lead.
Must read before any reward pilot: the scoring sets a reference price where resting size reaches one fifth of the target. If a lone quoter's own orders can set it, unclaimed pools may be real. If not, the reward business is the cost of fills plus a share of the pool.
Astra's round 6: measuring now
- Ladder consistency (“above X” never cheaper than “above X+1”). Scanned on both the archived price history and the recorded order books.
- Final seconds: as 15-minute and hourly markets lock in a settlement average, is the price still under-confident?
These runs finished their first passes between 2:36 and 2:41 AM. Astra has not written them up yet, so this page reports no results from them. The raw scanner alerts have not been checked for false matches.
The owner's two outside leads, as mechanisms
The UFC in-play bot (a short video)
The claim: a bot watches the fight and trades faster than humans. It is backtest only; no live result was shown. The creator's own finding was that the edge dies past about a 10-second stream delay, and legal streams run about 30 seconds behind.
Our read: the related market first reacts in a median 1.24 seconds, and our own recorder receives data a median 5.24 seconds late. That race is about one second, and it is not ours to win. The only version worth a test is a patient order resting at the implied price, and that is $0 until a proper test.
The Treasury ladder trade (a YouTube video)
On a 30-year yield ladder, “above 5.49%” traded near 88¢ while “above 5.51%”, two basis points higher, was offered at 5¢. It was one forgotten 100-contract order. The trader read the rules word for word and placed a test order. He then bought 444 contracts at about 10¢, which traded at 65–83¢ the next day.
Our read: no forecast was needed, just a price that broke logic. His own words: “rare, small and gone within hours”. Rare, small, real. This is the broken-prices scanner in recommendation 2. Gas ladders broke the same way 1,287 times in 11 days, but a median break lived only 5 seconds.
6. The maker proposal: written down, not yet measurable
The owner reopened maker strategies, the ones that post a patient order and wait to be filled. The decision is recorded as maker strategy research reopened (M-151). It allows research, testing by the referee and forward paper trading. The referee is our independent scoring program, which judges a rule on data it was not built on. Live money still needs a passed test, paper evidence and the owner's separate yes.
Astra froze one rule and published a fingerprint (hash) of the file, so it can't be quietly changed after the results are seen.
Pinnacle-anchored college-football pregame maker, in plain words
- College-football game winners only. One decision per game, exactly five minutes before the scheduled start.
- Kalshi's order book must be no more than 2 seconds old, and Pinnacle's price no more than 30 seconds old.
- Strip Pinnacle's margin out of its odds to get a fair probability, then subtract 1¢ for safety.
- Post a one-contract order at the current bid, only if it clears that safe value by at least 1¢ after a conservative maker fee. Bids from 20¢ to 80¢ only; spread 1–2¢.
- The order lives 30 seconds, assumes it is last in line, and if filled is held to settlement. A $50 research-only cash ledger.
- Rewards count as exactly $0.
Why it can't be measured yet
| Input check, October 2–14 | Result |
|---|---|
| College-football games in the window | 101 |
| Games with a recorded Kalshi book within 30 minutes before the decision | 59 |
| … within 2 seconds, as the rule needs | 2 |
| Games with a Pinnacle price within 30 seconds | 0 |
| Games with a record of when we received Pinnacle's price | 0 |
| Attempts that could be scored | 0 |
The stored Pinnacle prices were 204 to 1,464 seconds old, median 264 seconds. The rule needs 30. “Not measurable” is not “failed”: fills and profit are unknown, not zero. No threshold was loosened after seeing the result. The fix is a recorder that captures fresh, time-stamped prices going forward. Older held-back data would not help.
Fable's warning stands beside it: in deep sports books our fills are the ones least likely to be good ones. Astra's answer: that is exactly what the frozen rule is built to test, and reopening makes testing allowed, not profitable.
Decision: maker strategies are reopened for research and paper. This proposal waits for the referee owner to review it and for fresh data. Nothing has been submitted.
7. Next steps and gates
No live money moves without all three: a passed test, forward paper, and the owner's yes.
- Week one: fresh, rule-matched prices with source and receipt times, and realistic fills. Add a watcher that halts a desk if a fee, rule or reward term changes.
- The broken-prices scanner runs as a paper desk. It logs every violation it finds, how big it was, how much size was there and how long it lived, before anyone considers trading it.
- Reward rules are read in full before any pilot. The reward pilot runs on paper first, with rewards at zero until a credited payment reconciles.
- Sizing goes up only on evidence, never by the calendar. A step needs 100 settled fills across at least 10 dates, a mean above 0¢ after fees and no price move against us after fills. Never two steps in one week.
- Day 30: an income statement, a drawdown and capital report, owner hours, and a continue-or-stop decision. A positive month alone does not earn more size.
8. Kill criteria: when to admit there is no income here
Astra's stop rules
- No clean data in week one: if price gaps can't be synchronized and rules matched, stop. Fix the recording once; otherwise shelve.
- Economics fail: if fills, fees and adverse selection erase the margin, don't submit it. If it only pays with rewards, call it a subsidy business.
- Forward test fails: negative average after 30 settled dates.
- Execution worse than assumed: pause at once. The same applies to a fee or rule change.
- Can't cover costs at approved risk: run no paid lane. Never fix a negative margin with more capital.
- Calendar: review at 30 days, and one extension to 90 only if a real candidate remains. At 90 days with nothing, stop and archive it as research.
- Reward program ends: drop unearned rewards from the budget immediately. Never churn volume to restore income.
Fable's kill criteria
- Pooled net after fees at or below zero over 60 settled dates, tried at real size. Ends the plan.
- No desk has passed the referee and 30 forward dates by day 90. Ends the plan.
- The early signals are negative on every desk for 14 days. Ends the plan.
- Fills are under a quarter of plan after 30 days, which caps income under $150 a month. Ends a desk or tier.
- At $2,500, under $100 a month for three months running. Ends a desk or tier.
- The venue removes the mechanism: the reward program ends, or a fee or settlement-source change. Ends a desk or tier.
- The reward replay or pilot loses more on fills than the pool pays. Then $25,000 drops back to the $2,500 plan.
Both say the same thing at the end: if it's dead, say so, with the numbers, the same day. Then ask what else the time should go to.