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.

BankrollReliable nowTrading profit if validatedAfter 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.

BankrollIf realZero edgeWeightedWith $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 endsunknownunknown
  • 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

$354M
paid by takers per day
−$1.17M
takers' net result per day, before fees (−0.33%)
$7.23M
taker fees to Kalshi per day (2.0%)
$0.65M
maker fees per day (sports only)

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 modelAstra's quick checkFable'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:

MetricWhat it tells youFrom
Monthly net profitSettled profit plus paid rewards, minus every running cost; subscriptions shown separately. Does it pay its bills?Both
DrawdownBiggest 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 cashProfit 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
TurnoverHow many times the money in use cycles a month, and how long it is locked up.Astra
Closing-line valueDid the price move our way before the market closed? A fast early signal, not proof of profit.Both
Maker markoutAfter our resting order fills, does the price move against us? Shows whether better-informed traders are picking us off.Both
Reward reconciliationRewards estimated versus rewards actually credited. Stops a paper business earning imaginary income.Astra
Owner hoursTime 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

  1. 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”.
  2. 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.
  3. 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¢.
  4. 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

  1. 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”.
  2. 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.
  3. Rewards were placed on the sports maker, where the recorded census found no reward programs at all.
  4. The 1.24-second lag was reported without noting that our own recorder receives data a median 5.2 seconds late.
  5. 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

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

RankIdeaHow it worksThe number that decides it
1Nested 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
2Stale orders on long-dated laddersAfter 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
3The minute after a scheduled releaseInflation 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

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

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

Why it can't be measured yet

Input check, October 2–14Result
College-football games in the window101
Games with a recorded Kalshi book within 30 minutes before the decision59
… within 2 seconds, as the rule needs2
Games with a Pinnacle price within 30 seconds0
Games with a record of when we received Pinnacle's price0
Attempts that could be scored0

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

1. Paper firstEvery new idea runs on paper, with fees, realistic fills and fresh prices.
2. Passed testThe referee scores the frozen rule on data it hasn't seen: at least 10 dates and 30 picks.
3. Forward paperThe same rule on new dates, same code, same costs.
4. The owner's yesA separate grant, starting at one contract.

No live money moves without all three: a passed test, forward paper, and the owner's yes.

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.