Methods: sub-cent taker buys on Polymarket, July to September 2026
The data, calculations, and limits behind “A billion cheap contracts, $2.7 million.”
This companion documents the data, calculations and limits behind the article. Every buy, with a search, summary totals and downloads, is on the data page. Every return values a purchase at its settlement payout, after the taker fee. No return measures the profit of a wallet or the return of an order placed today.
The question
The article asks two measured questions about the third quarter of 2026. How much money did the contracts bought below one cent represent? What did those purchases pay if held to settlement? The study measures contracts, money paid and settlement payouts. It does not test whether a large contract count predicts a profitable trade, and it does not measure what any buyer knew or earned.
We wrote the analysis rules down on November 3, 2026, before any payout join or return calculation. Six later changes, C1 to C6, and one departure found in review are listed with their dates under Changes after the rules were written.
Source and window
- Venue: Polymarket's international exchange, the two V2 exchange contracts on Polygon: CTF Exchange
0xE111180000d2663C0091e4f400237545B87B996Band Neg Risk CTF Exchange0xe2222d279d744050d28e00520010520000310F59. - Window: block times from July 1, 2026, 00:00 UTC to October 1, 2026, 00:00 UTC (blocks 89,439,337 to 94,738,440). A month is the UTC calendar month of the block time.
- Fills: every exchange log in every block of the window, as one Polygon RPC endpoint returned them. The scan holds 155,226,449 taker fills and 261,276,549 maker legs. The coverage check shows that every block was requested and stored. It does not show that the endpoint returned every log (Data checks and limits).
- Settlement: every
ConditionResolutionevent of Conditional Tokens (0x4D97DCd97eC945f40cF65F87097ACe5EA0476045) from July 1 to November 3, 2026, 00:00 UTC. The venue's final price is a cross-check only. - Market descriptions: Polymarket's public Gamma and Data APIs, read on November 3 and 4, 2026, for token, event, title, rule text, fee category and scheduled times.
Unit, price and money
- Unit: one taker-buy allocation. That is one taker BUY order matched against one maker order inside one match (change C1). One taker order can produce several allocations at different prices.
- Price: each allocation's exact price, from its own maker leg: collateral before the fee divided by contracts, with no rounding. A match's average price is a cross-check only.
- Sub-cent (band A): an allocation priced strictly below 1 cent a contract. Three descriptive sub-bands split band A: below 0.2 cents, 0.2 to below 0.5 cents, and 0.5 to below 1 cent. The sub-bands were fixed before any return calculation.
- Paid: collateral plus the taker fee. The chain records one fee for each match. We divide it across the match's allocations in proportion to their collateral. Rebates are off-chain, so all fees are gross.
- Payout: contracts times the payout fraction of the bought outcome in the
ConditionResolutionevent. - Shares of contracts and money (all-fill coverage): the denominator is every taker-buy allocation at every price, from both V2 exchanges, in the same window, from the same scan. It holds 13.7 billion contracts and $6.63 billion paid in the quarter. Band A is the part priced below 1 cent. Numerator and denominator both include every 30-day status. Taker sells are in neither. These are gross purchase flows. The same exposure can be bought, sold and bought again, so they do not measure open interest, the number of traders or new money.
- Fee category: the market's Gamma
feeTypevalue in our November 3 and 4 snapshot, mapped to a label.sports_fees…is "Sports",crypto_fees…is "Crypto",finance…is "Finance", andweather_fees,politics_fees,culture_fees,tech_fees,economics_fees,mentions_feesandgeneral_feestake their own names.zero_feesis "Fee-free". An empty value is "No fee type". A market without a Gamma row is "Unknown (no Gamma row)". The label is the venue's fee schedule group at the time of the snapshot, which can differ from the group at the time of a trade. It is not an editorial category.
The 30-day settlement rule
Each allocation has its own horizon: its block time plus 30 days. At that horizon, it has one status:
- settled: our settlement scan holds its condition's settlement at or before the horizon.
- unresolved: our settlement scan holds no settlement of its condition by the horizon.
- unknown: its token does not map to a condition (13 allocations, all outside band A).
- bought after settlement: our settlement scan records its condition's settlement before the buy. These buys stay out of returns ($17,641 of band-A paid in the quarter).
Only settled allocations enter returns. The settlement scan ends on November 3, 2026, so every September buy has at least 33 days of follow-up. Band-A paid by status (values):
| Period | Band-A paid | Settled in 30 days | Not settled in 30 days | of which settled by November 3 | of which not settled by November 3 | Bought after settlement | Unknown |
|---|---|---|---|---|---|---|---|
| July | $1,590,551 | 88.0% | 11.5% | $42,699 | $139,962 | $8,834 | $0 |
| August | $495,821 | 69.2% | 29.9% | $38,130 | $109,910 | $4,627 | $0 |
| September | $614,925 | 74.3% | 25.0% | $24,292 | $129,645 | $4,180 | $0 |
| Quarter | $2,701,297 | 81.4% | 17.9% | $105,122 | $379,517 | $17,641 | $0 |
The statuses add up to all band-A paid in every period. "Not settled in 30 days" does not mean "still open". Every band-A token maps to a condition through the venue's token list, so no band-A allocation is unknown. A mapped token shows which market a purchase belongs to. It does not show that the market settled. The not-settled group holds 974 band-A allocations whose market the venue shows as resolved, but whose settlement our July 1 to November 3 scan does not contain (145 in July, 529 in August, 300 in September). A settlement before July 1 or after November 3, or a log that the endpoint did not return, would look like this. We did not establish the reason for any of them. They paid $871 in 74 markets ($83 in July, $97 in August and $692 in September), and they stay out of the returns.
Returns
Both returns are hypothetical. Each one values a purchase at its settlement payout, as if the buyer held it to the end. A buyer can sell earlier, and the study does not follow wallets. The fills went to the buyers who took them, so the returns are not available to a new order.
- Return per dollar (pooled): total payout over total paid, minus one, for the settled band-A allocations of the period.
- Return per event (equal-event): for each event, its payout over its paid, minus one. Then the plain mean over events. An event is a Data API event, one group of related markets. In the quarter, an event with settled buys in two months counts once. So the monthly counts (15,216, 16,819 and 14,742) sum to 46,777, and the quarter has 46,221.
- Decomposition: an event without payout adds exactly −1 to the per-event mean. So the per-event mean plus one equals the share of events with payout times their mean payout-to-paid ratio. For the quarter: 530 of 46,221 events had payout (1.15%), with a mean ratio of 168. The product is 1.93, which gives +92.8%. This is arithmetic on the observed events. It is not a cause and not a forecast.
- Median event return: −100% in every month and for the quarter. More than half of the events paid nothing.
- Before the fee: the quarter's per-dollar return is −19.0% before the taker fee and −22.3% after it. Taker fees were 4.2% of the collateral of settled band-A buys, and 4.1% of the collateral of all band-A buys.
Resampling ranges
- The ranges come from event resampling: 2,000 draws of events with replacement, seed 20261103, and the central 95% of the draws (2.5th to 97.5th percentile).
- The quarter is a census of the captured purchases, not a random sample from a larger population. Its return is fixed by the data and the join. A range shows how much a result depends on which events occurred, if each event is a separate draw. Related events, such as price markets on one asset on one day, may not be separate, so the ranges can be too narrow.
- Series resampling, with the same settings, is the sensitivity check. A series is the venue's series label of the market's first Gamma event, or the event itself when that label is empty: 1,110 series in July, 1,091 in August, 1,244 in September and 2,264 in the quarter. The written rules defined a series differently, as the event slug without its date or time (Changes after the rules were written). In the reported run, every per-dollar series range is wider than its event range, and every one includes zero. In 21 more runs, every series range includes zero, but August's series range is narrower than its event range in 9 of them (Supporting values).
- The ends of a range move between runs. A rerun of the original code on the stored study tables, with seed 20261103, gives every reported range exactly. Twenty-one more runs, with seed 20261103 and a different draw method and with seeds 1 to 20, put the quarter's lower end between −60.2% and −56.2% and its upper end between +35.0% and +42.3%. The reported run gives −59.8% and +45.5%, so its upper end is higher than in any of these runs.
- The ranges are not forecasts. They do not cover the study limits under Data checks and limits.
Purchases not settled within 30 days
Settled-only returns leave out the purchases that did not settle within 30 days of the buy: $484,639 of band-A paid in the quarter. We put them back under two scenarios:
| Period | Settled only | Not settled in 30 days, worth nothing | Not settled in 30 days, paid the settled payout per contract | Break-even, as a multiple of the settled payout per contract |
|---|---|---|---|---|
| July | −41.3% | −48.1% | −43.9% | 11.6 times |
| August | +76.7% | +23.5% | +69.1% | (positive in every case) |
| September | −38.3% | −53.9% | −37.4% | 3.3 times |
| Quarter | −22.3% | −36.3% | −25.2% | 3.3 times |
The settled payout per contract is 0.19 cents for the quarter. The break-even column gives the payout per contract not settled in 30 days, as a multiple of that amount, that brings the period to a return of zero.
By November 3, part of this money had settled, so its payout is known:
| Period | Paid, settled after 30 days but by November 3 | Payout | Return | All purchases with a known payout by November 3 |
|---|---|---|---|---|
| July | $42,699 | $36,956 | −13.5% | −40.5% |
| August | $38,130 | $10,530 | −72.4% | +61.8% |
| September | $24,292 | $3,431 | −85.9% | −40.7% |
| Quarter | $105,122 | $50,916 | −51.6% | −23.6% |
The last column adds these purchases to the settled-only group. The settled-only return stays the main result: we fixed the 30-day rule before any return calculation, and purchases that settled later had different follow-up times. Markets that settle early can differ from markets that settle late, so neither group is a random part of the whole.
Spend floors
We chose this analysis after we saw the results. It is a diagnostic of the per-event average, not a strategy and not a better sample.
- Method: one read-only run on the study's per-event table. For each floor ($0, $1, $10, $100), it keeps the events whose settled band-A paid is at or above the floor and recomputes both returns on the kept events. An event's total covers only its settled band-A purchases, not every purchase in the event. Events group per month and once over the quarter, as in the main tables.
- Baseline check: at the $0 floor, the run reproduces the main tables' event counts and both returns in every period.
- Main result: events with under $1 paid are about a third of the events and 0.18% of the quarter's settled band-A paid, but 61% of the sum of each event's payout divided by its paid. That sum is a gross multiple, not the net return. Without these events, the per-event return is −2.1% in July, −4.7% in August, +67.7% in September and +16.8% for the quarter. The per-dollar return moves by less than half a point.
- Review: a separate internal Splitrule review checked the 16 arithmetic identities of the floor table (four periods by four floors). The same review then recomputed the floor results from an event-level export. The $1-floor per-event returns for each month and the quarter matched, and so did the share of events under $1, their share of money and their share of the sum of payout multiples. For the quarter, the per-event returns, event counts and median at the $10 and $100 floors also matched. On November 6, a rebuild from the stored allocation rows gave every floor result for every month and the quarter, medians included (Supporting values).
Concentration and removal tests
- We rank events three ways: by gross payout, by net gain (payout minus paid) and by net loss.
- The removal tests drop the top 1 or top 3 events by net gain, by net loss, or both, and recompute the per-dollar return on what is left. The rules fixed these tests before any return calculation. Removal on both sides keeps the test from selecting on one outcome.
- We also report how many events supply half, 80% and 90% of each period's payout.
- Results: half of the quarter's band-A payout came from 7 events. Without the top 3 winners, every month is negative. Without the top 3 losers, every month is positive. Without the top 3 winners and the top 3 losers together, the return is −57.2% in July, +7.0% in August, −23.3% in September and −18.0% for the quarter, so every period keeps its sign.
- Below 0.2 cents: three events supplied 93.0% of July's payout in this slice. Without each month's top 3 winners, the slice returned −90.4% in July, −59.3% in August and −4.9% in September. Without the top 3 winners and the top 3 losers together, it returned −84.2%, −57.5% and +5.5%. We added this sub-band test on November 5, after the two internal reviews.
Settlement history
We added this check on November 5, after two separate internal Splitrule reviews and after we had seen all Q3 results. It is descriptive. The rules did not name it.
- Source: the venue's Gamma market rows in our snapshot of November 3 to 4. Each row lists the states of its market's proposed result (
umaResolutionStatuses). 106,185 of the 106,276 band-A markets have a row, and every one of these rows has the list. The list is empty for 20,926 of them, which count as not disputed. The other 91 markets have no Gamma row, so they have no list. Their 971 buys paid $1,072 and supplied none of the settled payout. - Disputed: a market counts as disputed if its list holds the state "disputed" at least once. In 89 of the 278 disputed markets with settled buys, the list gives each state twice in a row, so we do not count challenges.
- 50-50: a market counts as a 50-50 settlement if its on-chain payout splits evenly between its two outcomes. Each contract then pays half a dollar on either side. A 50-50 payout is not a long shot that won.
- Rows: we rebuilt the settled band-A rows from the stored allocation batches with the study's own status rules. All 46,777 month and event totals and all nine sub-band totals agree with the study's tables to the cent.
| Period | Payout from disputed markets | Payout from 50-50 settlements | Return without either | Return as reported |
|---|---|---|---|---|
| July | 2.4% | 0.2% | −36.3% | −41.3% |
| August | 0.5% | 1.2% | +77.3% | +76.7% |
| September | 34.6% | 14.3% | −59.6% | −38.3% |
| Quarter | 7.0% | 2.9% | −22.8% | −22.3% |
- The two groups overlap: 85.2% of the quarter's 50-50 payout, and 99.8% of September's, came from markets that were also disputed. The 32 markets that settled 50-50 are all in the sports fee category. Their settled sub-cent buys paid $131 and received $48,906.
- Below 0.2 cents, disputed markets supplied 2.1% of the payout in July, 1.1% in August and 61.0% in September. Without them, the slice returned +73.5%, +68.7% and −27.7%. In July and August, these markets held a larger share of the slice's spend than of its payout.
- September's two largest payouts below 0.2 cents, 34.9% of that slice's payout, both came from disputed markets. The Solana market in the timing sidebar is one of them. July's three largest payouts below 0.2 cents came from markets with no dispute.
- Limit: a dispute shows that someone challenged a proposed result. It does not show that the final result was wrong, who disputed it, or what any buyer knew. The list is the venue's record at the time of our snapshot.
Timing check
- Fixed cutoff: a market has a fixed cutoff only when its rule text names a price observation that ends at a fixed time, and every source agrees on that time: rule text, title, slug and the Gamma times (change C6). Six rule families qualify, for example a crypto price candle that begins at a stated minute. For a one-minute candle, we use the open-time label of the named exchange, so the cutoff is the candle time plus 60 seconds. The rule text does not name the edge, so this is our reading. Under the other reading, 396 band-A allocations change class, with $456 paid, and none of them paid out.
- No established cutoff: every other market, and every market whose check fails. This is 90.4% of the quarter's settled band-A paid. The check gives no result about timing for these markets.
- Classes: in fixed-cutoff markets, a buy is "before cutoff" if its block time is earlier than the cutoff. It is "cutoff to settlement" if its block time is at or after the cutoff and not after the block time of the settlement.
- Block time: the time of the block that recorded the match transaction. The match happened off chain before that, by an unknown delay. So "after the cutoff" means "recorded on chain after the cutoff". The same applies to the case facts "less than an hour before settlement": both times are block times.
- Order times: for each cutoff-to-settlement match (11,141 transactions) and a control sample of 3,000 settled band-A transactions, we read the match transaction once and decoded the orders. A stated order time is what the signer's software wrote into the order. The exchange does not check it, and some stated times are later than the block time.
- Returns by class: the pooled return of a timing class changes with the month and with the class rules. The cutoff-to-settlement class returned −20.8% for the quarter under the final classes and +9.6% under the classes before change C6. So Figure 6 shows shares of money only, and the article gives that class's monthly results.
- Limit of the check: block time shows when a buy reached the chain. No part of this study shows what any buyer knew.
Data checks and limits
Checks over every row:
- The fill scan covers every block of the window, with no gap and no overlap. The settlement scan covers every block to November 3, with no gap.
- Every maker leg pairs with its taker fill. Contracts and collateral add up exactly, apart from a documented one-unit refund on 120,990 mint matches (change C4).
- For every settled allocation, the on-chain payout agrees with the venue's final price.
- A second machine joined two batches again from copied inputs, with content hashes equal to the first machine's.
Sampled checks:
- 60 stored chunks re-read from the endpoint gave the same events.
- 120 refund receipts confirm the one-unit refund.
- In the September 14 to 20 pilot week, 24 chunks agree with full receipt logs. 11,305 of 11,308 on-chain fills in 60 conditions match a row in the venue's trade API.
- 300 conditions and 310 tokens recompute from their condition IDs with no mismatch.
Limits:
- Every log read comes from the same RPC endpoint. No check rules out an omission that the endpoint repeats on every request. Outside the pilot week, no independent source tests that the fill logs are complete.
- Fees are gross. Rebates are unknown.
- Returns cover settled buys only. Purchases not settled within 30 days shows how the others change them.
- The study does not follow wallets, so it gives no profit or loss for any trader.
Changes after the rules were written
| Change | Date (UTC) | What it changed |
|---|---|---|
| C1 | November 3, before any payout join | Unit becomes the allocation, priced exactly from its maker leg. Fee divided across allocations. Three rankings. |
| C2 | November 3, 22:09 | Timing classes, time bins and order-time reads, before any Q3 timing table. |
| C3 | November 3, 23:06 | Order of a fill and a settlement in the same block: by block, then by log index. |
| C4 | November 4, 02:51 | One-unit refund to the taker in mint matches. |
| C5 | November 4 | Metadata classes, reconciliation and execution. |
| C6 | November 4 | Cutoff checks: every source must agree, two-sided window checks, the US equity calendar, and limits for the order-time reads. Written after we had seen the Q3 return, ranking and coverage tables, and before any Q3 timing table. |
| Series | November 3, first payout join (found November 5) | The series-resampling check uses the venue's series label, with the event as a fallback, not the event slug without its date or time. No change record named this at the time. The reported series ranges use the venue's label. |
| Settlement history | November 5, after all Q3 results and the two internal reviews | Payout from disputed markets and 50-50 settlements, and the removal tests below 0.2 cents. Descriptive only. |
Under C3, band-A allocations in the same block as their settlement came before it 220 times in July, 148 in August and 42 in September, and after it 7, 3 and 0 times. The old timestamp rule changes the quarter's settled band-A paid by $8.95, of $2,199,018. The pilot week, rerun with the final code, gives the same 14,018,127 allocations as the original pilot. Two allocations changed status, both because of C3.
Supporting values
We added this section on November 6, 2026. It gives values that the article states but that no earlier table showed. Each one was rebuilt with new queries from the stored study data: the scan files, the joined allocation rows and the Gamma snapshot. No new data was collected. The supporting values file holds every value, with its definition and source.
- Scan: the stored scan holds 416,502,998 exchange events in 526 files: 155,226,449 taker fills and 261,276,549 maker legs. The files cover the window with no gap and no overlap. This repeats the count of what the endpoint returned. It does not test whether the endpoint returned every log.
- Denominators: 220,676,114 taker-buy allocations at every price, with 13,670,681,151.10 contracts and $6,631,767,747.56 paid.
- Timing case: the September Solana market in the sidebar is event 1022034. Its 30 settled sub-cent buys were recorded 3 to 22 seconds after the cutoff and before the settlement. They paid $22.80 and received $21,231.48.
Return per event by spend floor, with the per-event resampling range of the reported run. The median event return is −100% at every floor, in every month and for the quarter.
| Period | Per event, all events | $1 floor | $10 floor | $100 floor | Median event, every floor | Per-event resampling range |
|---|---|---|---|---|---|---|
| July | +30.6% | −2.1% | +24.8% | +468.5% | −100% | −11.1% to +75.0% |
| August | +66.4% | −4.7% | +19.8% | +94.3% | −100% | +22.5% to +115.5% |
| September | +190.3% | +67.7% | +111.4% | −40.5% | −100% | +121.7% to +266.0% |
| Quarter | +92.8% | +16.8% | +49.4% | +201.8% | −100% | +62.8% to +125.0% |
Return per dollar without the largest events (Concentration and removal tests).
| Period | As reported | Without the top 3 winners | Without the top 3 losers | Without both |
|---|---|---|---|---|
| July | −41.3% | −76.1% | +4.7% | −57.2% |
| August | +76.7% | −10.9% | +110.4% | +7.0% |
| September | −38.3% | −54.9% | +4.9% | −23.3% |
| Quarter | −22.3% | −45.7% | +17.2% | −18.0% |
Taker fills with sub-cent buys, by the band-A money in each fill, every 30-day status.
| Period | Fills | Fills under $1 | Their share of the money |
|---|---|---|---|
| July | 317,513 | 47.3% | 1.7% |
| August | 2,555,487 | 97.2% | 8.6% |
| September | 2,643,837 | 97.5% | 6.6% |
| Quarter | 5,516,837 | 94.5% | 4.1% |
Data and credits
The tables behind the figures hold monthly or event-rank values only. They hold no wallet address and no transaction hash.
- Data page: every sub-cent buy, with a search, summary totals and the bulk downloads.
- Supporting values: each value of Supporting values, with its definition and source.
- Figure 1 values: contracts and money paid below one cent, with their shares, by month.
- Figure 2 values: per-dollar returns, intervals and the two scenarios.
- Figure 3 values: per-dollar and per-event returns, with and without events under $1, and the median event return.
- Figure 4 values: events, money and the sum of payout multiples by spend bucket.
- Figure 5 values: cumulative payout share by event rank.
- Figure 6 values: settled money by timing class, with the pooled returns that the figure leaves out (Timing check).
- Status values: band-A paid by 30-day status.
Data: Polygon chain logs and Polymarket's public Gamma and Data APIs. Analysis and graphics: Splitrule.
Chivo and Source Sans 3 font binaries are unmodified. They use the SIL Open Font License 1.1. The Chivo license, Source Sans 3 license and retained copyright notices accompany the files. Chivo is credited to The Chivo Project Authors. Source Sans 3 is credited to Adobe, with its retained Reserved Font Name notice.
Corrections
November 6, 2026. No return, share or count in the article changed.
- Settlement history: this page said that all 106,276 band-A markets have a Gamma row. 91 of them have none. The count had included the placeholder lines that our metadata reader writes for markets that the venue did not return. The data page already gave the right count.
- Resampling ranges: this page gave five more runs with other seeds. Their seeds were not recorded, so 21 recorded runs replace them. This page now also says that August's series range is sometimes narrower than its event range.
- Reviews: two sentences described the reviews as outside or independent. Both were separate internal Splitrule reviews.
- Additions: the fee share names its denominator, the 974 allocations without a settlement in the scan have their dollars, negative numbers use a minus sign, and the new Supporting values section gives values that no earlier table showed.