Andre Romero-Carey Prediction market research

Portfolio project · Research software

Do prediction-market prices still add up after fees?

I built a research scanner that reads Kalshi and Polymarket order books, tests prices against basic probability rules, and charges every apparent gap each venue’s exact fee formula. It is for research and paper simulation only. It never places a trade.

One of the seven demo cases, computed live on this page from a synthetic order book.

Project scale, dated

Markets catalogued
3.77M
Historical total since collection began on Jul 11, 2026, including closed markets. As of Sep 29, 2026.
Open markets eligible
314,627
Active coverage: open markets that passed the scanner’s eligibility filters in its latest market selection, Sep 23, 2026.
Re-priced per scan
6,000
Markets quoted from live order books in each scheduled 2-minute scan (3,294 Kalshi, 2,706 Polymarket), Sep 23, 2026.
Automated tests
1,416
All passing in a full backend test run on Sep 29, 2026.

Figures come from the project’s own collector records. They are dated snapshots, not live data.

Run the scanner’s checks yourself

Pick an example and change the order size. The page walks the order book level by level, applies the venue’s fee to every fill, and shows whether any gap survives.

Synthetic data. These seven order books were written by hand to mirror cases the scanner handles. Venue data terms restrict republishing collected market data, so no record here comes from Kalshi or Polymarket, and nothing is live. The fee and sizing math is a port of the project’s Python code and was checked against it.

Check
Result

    What I did

    I own this project end to end. I set the research question and the rules the system must follow, and I built it by directing AI coding agents (Claude Code and OpenAI Codex) through written plans, cross-model plan reviews and automated test gates. Four decisions shaped it:

    Set the standard of evidence

    Every flag uses prices someone could actually trade at, each venue’s own fee schedule, and a calculation a person can check by hand. There is no trading code, by design.

    Cut what couldn’t be trusted

    I removed cross-venue matching. Markets with the same title on the two venues can settle differently, so a “match” was never a guaranteed hedge.

    Kept the evaluation honest

    Simulated fills re-walk the book with added latency and slippage, results are versioned, and a pre-registered plan will fix the sample before any outcome is seen.

    Run it every day

    The collector runs unattended on my Mac with a watchdog, verified backups, and a check that pauses decisions when a venue changes its API documentation.

    29¢

    What seven listed candidates’ YES prices summed to. The scanner read it as a 69¢ edge.

    The hard part: most “free money” is an artifact

    During testing, the scanner flagged an event with seven named candidates whose YES prices summed to about 29¢. It reported a 69¢ edge for buying one of each.

    It was not a lock. The candidate list was still open, so someone not on it could win and every contract would pay $0. The fix: a set now counts as complete only when it has a catch-all outcome, or a numeric ladder that covers every value with no gaps.

    Two related traps shaped that rule. A film titled Another Simple Favor matched the word “another” and let an open list pass as complete, so matching now uses whole labels only. And open ends alone prove nothing: a ladder of “2.9 or below” and “3.4 or above” leaves 3.0 to 3.3 uncovered.

    Limits

    What this project does not show yet.

    Research only
    No orders, accounts or money. Simulated fills are not trades, and nothing here is investment advice.
    No proven edge
    The pre-registered evaluation has not been activated yet, so this page makes no return or accuracy claims.
    Partial coverage
    Each scan re-prices a rotating 6,000-market slice of about 315,000 eligible markets, and the record has gaps. When a venue changes its API documentation, decision writes pause until someone reviews the change. That pause was in effect when this page was published on Sep 29, 2026.
    Modeled fees
    Fees follow published schedules with conservative rounding. Kalshi’s order-level rebates are not modeled.
    Illustrative sample
    The demo’s order books are synthetic. They show how the checks work, not how often these cases occur.