Trade Bot Dictionary · Cross-platform

consensus_anchor

consensus_anchor asks two betting markets the same question and averages their answers. When an event is listed on both Kalshi and Polymarket — the September Fed meeting, tonight's Tigers game — each book has its own price. This signal takes the midpoint of each book's bid and ask, averages the two, and calls the result the consensus fair value: one number, in cents, that is meant to be a better estimate than either book on its own. You set a threshold. The bot may only trade markets whose consensus clears it.

Bots using it
0 (none live, none out-of-sample, none ever)
Data source
Kalshi + Polymarket public APIs — no feed of its own
Poller · table
Neither. Computed in memory, cached 120 s
Markets it can answer for
27 of 1,552 open Kalshi markets (1.74%, checked today)
Backtest-replayable
No — though 361,439 rows of the exact number are already on disk (catch #6)
Anchor module
quants/consensus_anchor.py

This is the companion to arb_anchor, and it is worth being clear about the difference. arb_anchor gates on the gap between the two books — the disagreement. consensus_anchor gates on the blend — what the two of them jointly imply. Same plumbing, same matched pairs, opposite question. Everything the arb page says about that plumbing applies here too, so read that one as well if you are thinking of using this.

Two things make this page different from most in the dictionary. The first is good news, and it is rare enough on this shelf to lead with: the settings the site ships for consensus_anchor are real settings. The builder's default of 60¢ is open on 12.30% of the matched-market readings we have recorded; the starter bot's 55¢ is open on 21.86%. After a run of signals whose recommended numbers turned out to be permanently on or permanently off — btc_dominance_anchor's default has been unable to open since June 2024 — this one discriminates. And its validate_config is the first in this dictionary to reject a backwards band: {above:70, below:30} is refused with a real error message, where finance_anchor and four others accept the same nonsense and quietly never open.

The second thing is not good news. Right now, every single one of the eighteen Fed pairs this signal can see is matching one year's meeting against a different year's. The Kalshi leg is December 2027; the Polymarket leg is December 2026. The matcher keys on the month name and throws the year away. The docstring calls these "identical-resolution events only" and the plain-English rendering the builder shows you ends with the words "same event". Eighteen out of eighteen, they are not the same event.

Where the number actually comes from

Nowhere, in the sense this dictionary usually means. consensus_anchor has no poller, no cron job and no table. The registry agrees — it resolves the poller as null and the cron as null — and for once that is not an artefact, it is the truth. The number is computed from scratch, in the web process's memory, the moment a bot asks for it.

What it is computed from is two market feeds we already run for other reasons:

When the gate is called, quants/arb.py reads both tables, pairs them by rule into matched events, and computes for each pair:

fair_cents = round( ( (kalshi_bid + kalshi_ask)/2 + (poly_bid + poly_ask)/2 ) / 2 )

That result is cached for 120 seconds in a module-level dictionary keyed by Kalshi ticker, and the gate is a two-line comparison against your threshold. That is the whole signal. There is no model, no history, no training. It is arithmetic on two prices.

The one thing the registry gets wrong

The registry reports a table called arb_anchor. No such table exists — not in predictive.db, quants.db, analytics.db or tinycorp_signal.db, all four checked. The cause is the same regex artefact that put a phantom eco_anchor table on the eco_anchor page: the registry harvests any back-ticked lowercase word out of a docstring and calls it a table, and this module's docstring mentions arb_anchor in a sentence about which signal is which.

There is a history — it just isn't the one the gate reads

Every five minutes, predictive/kalshi_finance_poller.py calls arb.snapshot(), which writes the current matched pairs — including fair_cents — into a table called cross_market_history. It holds 361,439 rows covering 1,429 distinct market pairs across 17,241 snapshots, from 10 June to today. Median gap between snapshots: 300 seconds. In sixty-four days there has been exactly one interruption longer than an hour (1.8 h, on 21 July).

That is the healthiest data pipeline described anywhere in this dictionary, and it is worth pausing on, because most of the other pages here are about feeds that died. Nothing reads this table. The gate recomputes the number live and the recording is a side effect — which turns out to be the only reason this page could be written at all, and the reason catch #6 is as damning as it is. (Small correction while we are here: arb.py's own comment says the snapshot "rides the existing kalshi poller cron". It doesn't — it rides kalshi_finance_poller at */5, which is exactly why the recorded interval is five minutes and not one.)

What it does for your bot

It is a per-market filter, not a master switch. Unlike crypto_momentum_anchor or aqi_anchor, which shut a bot down globally, this one is asked market by market: for this specific contract, is the blended fair value above (or below) my number? Markets that clear it stay in the candidate list; markets that don't are dropped.

And it fails closed on everything it cannot answer for. That is a much bigger deal than it sounds. The index is keyed by Kalshi ticker and contains only Fed rate decisions and MLB games — the only two event types arb.py has a verified matcher for. Right now that is 27 tickers out of 1,552 open Kalshi markets: 1.74%. Over the whole recorded window it has been 1,585 tickers out of the 543,978 we have ever seen. Everything else returns False. Turning this signal on does not filter your bot's universe so much as replace it.

Polymarket is worse than that. The index is keyed by Kalshi ticker; Polymarket's own ticker column holds URL slugs like will-austria-win-the-2026-fifa-world-cup. Zero of the 137,324 Polymarket rows we hold can ever match a key in this index, so a bot configured for both books — which is exactly how the starter bot ships — will never place a Polymarket trade while this gate is on. The signal reads both books and can only ever trade one of them.

THE DATA PATH — NO POLLER, NO TABLE, JUST ARITHMETIC ON TWO PRICES Kalshi API run_poller.sh * * * * * Polymarket API run_poller_poly.sh */2 * * * * arb.ticker_index() pairs by RULE Fed + MLB only in memory · 120 s _shop() → fair_cents avg( kalshi mid , poly mid ) no poller · no table the gate fair ≥ 60 ? no pair → False fails closed this market clears → tradeable else → dropped markets it can answer for: 543,978 seen 1,585 ever paired 27 right now THE KEY IS THE MONTH NAME. THE YEAR IS THROWN AWAY. KXFEDDECISION-26DEC-H0 FOMC · 9 Dec 2026 KXFEDDECISION-27DEC-H0 FOMC · 8 Dec 2027 key = ("december", "hold") last write wins — 2027 survives Polymarket: "no change … December 2026 meeting?" resolves 9 Dec 2026 "consensus" = 60¢ avg( Dec-2027 , Dec-2026 ) two meetings, 364 days apart correct answer: 70¢ Live today: 18 of 18 Fed pairs are cross-year · mean error 4.28¢, max 10¢ · the "gap" it reports averages 10.78¢ where the correct pair's gap is 1.61¢ FIFTY-THREE DAYS OF ONE MARKET — "WILL THE FED HOLD IN SEPTEMBER 2026?" 35¢ 45¢ 55¢ 65¢ 75¢ 60¢ default 22 Jun 1 Jul 14 Jul 31 Jul 13 Aug what the correct pairing says what the gate actually reads days the two disagree at 60¢ — 11 of 53 (20.8%) TWO INDEPENDENT TESTS OF "BETTER THAN EITHER BOOK ALONE" 1 · Did it call settled games better? Brier score, 107 settled MLB pairs, last pre-game reading. Left is better. Dots, not bars — the axis does not start at zero. 0.2420 0.2440 0.2460 0.2480 0.2500 base rate only 0.24980 Polymarket alone 0.24485 CONSENSUS 0.24311 Kalshi mid alone 0.24294 shaded: the 95% CI on consensus − Kalshi mid (+0.00017 [−0.00502, +0.00535]) — it runs off this axis to the left and swallows all four estimates. The three market forecasts sit within 0.002 of each other. A dead heat, not a win. 2 · Do its five Fed outcomes add up to a dollar? Mean |sum of the 5 outcomes − 100¢|, 53 meeting-days, year-correct pairs, midpoints both sides. Shorter is better. Kalshi mids 2.63¢ Polymarket mids 2.61¢ CONSENSUS 2.45¢ a wash — all three within 0.2¢, and the blend is ahead of Kalshi on 27 of the 53 days. A coin flip. Both tests, same answer: we cannot detect a difference. The blend is not measurably better than the books it blends — and not measurably worse. What averaging buys is insurance: you land near the sharper book without knowing which it is. Sources: quants/arb.py and quants/consensus_anchor.py (code) · cross_market_history, kalshi_markets, polymarket_markets, market_price_snapshots (predictive.db) Window 10 Jun – 13 Aug 2026, 361,439 recorded pair-readings = 1,429 markets / 2,894 market-days. Settlement truth is Kalshi's own `result` field. Band C rebuilds the correct pairing from stored prices for both legs. No bot has ever used this signal, so there is no profit or loss on this page.
Top: the whole pipeline. Two feeds we already poll, paired in memory, averaged, compared to your number — and 27 of today's 1,552 open Kalshi markets are all it can speak to. Second: the defect. Kalshi files each FOMC meeting as 26DEC, 27DEC; the matcher's key is the month name alone, so the two collide and the later listing silently overwrites the earlier one before it is paired with Polymarket's 2026 contract. Third: what that costs on the single most important market in the universe — the blue line is what a correct pairing would have said, the red dashed line is what the gate actually read, and the shaded strips are the days where they give opposite answers at the builder's own default threshold. Bottom: the module's central claim, tested two ways.

Find #1 — eighteen out of eighteen Fed pairs are the wrong year

Kalshi names its FOMC markets KXFEDDECISION-<YYMON>-<OUTCOME>: KXFEDDECISION-26DEC-H0 is "no change at the December 2026 meeting". The matcher in arb.py pulls the month out with parts[1][2:] — the last three characters — and builds its lookup key from the month and the outcome only. The two-digit year is read and discarded. On the Polymarket side, _poly_fed_key() scans the title for a month name and does the same thing.

Kalshi currently lists twelve future FOMC meetings, running from September 2026 to January 2028. Four month names appear twice in that list — September, October, December, January — which means 20 of the 60 open Kalshi Fed markets are fighting over 20 keys. The pairing is built into a plain dictionary, so the loser is not reported or logged. It is simply overwritten.

Here is the entire live Fed surface, read from production today. Every row is a mismatch:

OutcomeKalshi leg it usedPolymarket legApartIts fairCorrect
No change27SEP 15 Sep 2027Sep 2026364 d70¢70¢
No change27OCT 27 Oct 2027Oct 2026364 d62¢71¢
No change27DEC 8 Dec 2027Dec 2026364 d60¢70¢
No change28JAN 26 Jan 2028Jan 2027365 d62¢61¢
Cut 25 bps27SEPSep 2026364 d
Hike 25 bps27SEPSep 2026364 d25¢30¢
…12 more rows, same story. All 18 pairs: mean error 4.28¢, max 10¢, exactly 1 of 18 right.

I did not take this from a code reading. I reproduced the shipped numbers by hand from the raw prices on both books, three times over, and they match to the cent. For the December no-change row: Kalshi's 2027 market is bid 51 / ask 52, midpoint 51.5; Polymarket's 2026 contract is bid 68 / ask 69, midpoint 68.5; average them and round and you get 60, which is exactly what the live index serves. The correctly-matched pair — Kalshi's 2026 market, bid 68 / ask 73 — gives 70.

The knock-on for its sibling signal is worse than for this one. The cross-book gap that arb_anchor reads and that the arbitrage page displays as an edge is currently averaging 10.78¢ across these pairs. The correctly-matched gap is 1.61¢. Roughly six-sevenths of the Fed "edge" on that surface right now is a calendar artefact, not a disagreement between traders.

It happened at 16:20 UTC on 16 June, and we recorded it

The pairs were right when the recording started. At 16:15 UTC on 16 June the September pair was KXFEDDECISION-26SEP-H0 against Polymarket's September 2026 contract, consensus 74¢. At 16:20 — the very next snapshot — the Kalshi leg was KXFEDDECISION-27SEP-H0 and the consensus was 64¢. Nothing happened in the world. Kalshi listed its 2027 calendar, the new tickers landed later in the result set, and they took the keys. June, July and September all flipped in that same five-minute window. The June pair flipped the day before the June 2026 meeting it was supposed to be tracking.

Ten cents in one poll, and the label on the row still said "September 2026" — because fed_pairs() builds its display label as the month name plus the hardcoded string " 2026". That is why our own recorded history contains 1,684 rows labelled "January 2026", a meeting that took place seven months before the row was written, whose meeting_date column in the same row reads 2028-01-26.

What it has cost on the market that matters

"Will the Fed hold rates in September 2026" is the single most liquid contract in this signal's universe and the only kind of market the shipped starter bot can reach. Both legs of the correct pair have full price history in market_price_snapshots, so I rebuilt what the consensus should have been, day by day, and set it against what the gate actually read. Fifty-three consecutive days, 22 June to today:

That last number is the honest measure of the defect. One day in five, on the flagship market, the gate says trade when it should say stand down, or the reverse.

Find #2 — "better than either book alone" does not replicate

The module's docstring makes a specific, testable claim: the blend is "the single consensus probability a trader actually wants, better than either book alone." We can check it, because 107 of the matched MLB pairs in our recorded history have since settled and Kalshi tells us which way.

For each of those, I took the last reading before the game started and scored three forecasts against the real result with the Brier score — the standard measure for probability forecasts, where lower is better and 0.25 is what you get from knowing nothing but the base rate.

ForecastBrierLog lossRight
Kalshi's own midpoint0.242940.6804856.1%
The consensus blend0.243110.6808154.2%
Kalshi's ask (what you'd pay)0.243380.6821955.1%
Polymarket's price0.244850.6845154.2%
knowing only the base rate0.2498051.4%

The blend came third of four, a rounding error behind Kalshi's own midpoint. Paired bootstrap on the same 107 games: consensus minus Kalshi mid is +0.00017, 95% CI [−0.00502, +0.00535]; consensus minus Polymarket is −0.00174, CI [−0.00720, +0.00363]. Both intervals straddle zero comfortably.

So the honest verb is "unsupported", not "false". With 107 games we cannot tell these three apart, and we would not expect to — major-league moneylines are close to coin flips and all four forecasts sit within 0.007 of the base rate. What we can say is that after two months of recording, the claim printed in the code has no evidence behind it, and the one ordering we did observe puts the blend below one of its own ingredients.

Find #3 — a second test, and a correction we owe you

A single result on 107 games proves little, so here is an independent check that needs no settlements at all, only arithmetic. Each FOMC meeting has five mutually exclusive outcomes — hold, cut 25, cut more, hike 25, hike more. Exactly one must happen, so a coherent set of probabilities has to sum to 100¢. How close each book gets is a measure of how much like a probability its numbers really are.

The first version of this test, which was on this page for about an hour, was wrong, and the correction reverses its conclusion. It compared the sum of Kalshi's asks against a consensus built from midpoints — an ask sum is inflated by the spread by construction, so Kalshi was always going to lose — and it ran over the mismatched pairs from Find #1, where the Kalshi legs are thinly-quoted 2027 contracts. It produced a headline number of 43.84¢ for Kalshi against 5.70¢ for the blend. That comparison was not like for like and the number meant nothing.

Done properly — year-correct pairs only, midpoints on both sides, across 53 meeting-days rebuilt from stored prices for all ten legs of each meeting:

BookMean |sum − 100¢|MedianMean sum
Kalshi midpoints2.63¢2.50¢101.63¢
Polymarket midpoints2.61¢3.00¢102.39¢
The consensus blend2.45¢2.00¢102.08¢

All three within 0.2¢ of each other. The blend is nominally the most coherent of the three, and beats Kalshi's midpoint on 27 of the 53 days — which is to say, a coin flip. The honest verdict is a wash, and the corrected test agrees with the Brier test rather than adding to it: we cannot tell these three apart.

That is not a mystery and it is not a bug. It is what an unweighted average of two correlated estimates does — it lands between them, and can only beat both if their errors point in opposite directions. Here the two books already correlate at r = 0.80 across our whole record (0.97 on baseball), so there is very little room between them for a blend to occupy. And the average is a fixed 50/50, blind to which book is liquid and which is thin. If you wanted a blend that could genuinely beat both, the obvious candidate is weighting each book by how tightly it is quoted rather than splitting evenly — that is not what this does, and nobody has tested it.

What the blend does buy you is insurance. Without knowing in advance which book is sharper on a given market, averaging lands you near the sharper one. That is a real and unglamorous benefit. It is not "better than either book alone".

The catch

1 · The Fed pairs are matching different years — all eighteen of them

Covered above. The short version: the matcher keys on the month name, Kalshi lists twelve meetings across three calendar years, four month names collide, and the survivor is whichever row the database happened to return last. Neither query has an ORDER BY, so which meeting wins is not even decided by the code — and the two sides break the tie in opposite directions: the Kalshi loop overwrites, so the last row wins, while the Polymarket loop guards with if k not in poly, so the first row wins. It is silent — no log line, no warning, no field on the row that would let you notice. The plain-English description the builder shows ends with the words "same event", and the docstring promises "identical resolution". Not fixed in this pass — the fix belongs in quants/arb.py, which a live bot depends on, and rewriting live matching logic is outside what this loop is allowed to touch. Written up and flagged.

2 · The blend is not better than the books it blends

Two independent tests, same answer: it beats the worse book, ties the better one. The docstring's "better than either book alone" is not supported by anything we have recorded. If you are choosing between this gate and simply using Kalshi's midpoint, our data cannot tell you the blend is the better choice.

3 · It answers for 1.74% of the market, and refuses the rest

27 of 1,552 open Kalshi markets today; 1,585 of 543,978 ever. Everything outside Fed decisions and MLB games returns False, because arb.py only has verified matchers for those two. That is the correct behaviour for a gate built on confirmed pairs — guessing would be worse — but it means switching this on does not narrow your bot's universe, it replaces it. If your bot's category filter and this gate's universe do not overlap, the bot silently never trades and nothing tells you why.

And the builder files it under universal recipes — the ones described as working in any category, offered alongside every other signal whatever you are trading. Point it at politics, crypto, weather or entertainment and it is shut on every market, permanently, with no message. "Nobody has ever used this signal" and "it returns False on 98% of what people configure" are not unrelated facts.

4 · A bot set to trade Polymarket will never trade Polymarket

The index is keyed by Kalshi ticker. Polymarket's ticker column holds URL slugs — will-austria-win-the-2026-fifa-world-cup. 0 of 137,324 Polymarket rows can match a key, so every Polymarket candidate fails closed. The starter bot we ship is configured platforms: ['kalshi', 'poly']. It reads two books and can trade exactly one.

5 · Wrong grain: the gate is per-contract, the index is per-game

arb.py was built for arbitrage, where one row per game is the right shape — you only need the biggest disagreement. So mlb_pairs() emits one entry per game, for whichever team currently has the wider cross-book gap, and ticker_index inherits that. But consensus_anchor is asked about a contract. For any given baseball game, one of the two team tickers is in the index and the other simply is not — and the one that is not fails closed.

Which one is in changes as prices move: across 126,571 consecutive-poll observations the quoted team flips 4.80% of the time, and 690 of 696 games flipped at least once. Per ticker, that works out at a median 41.7% of its own game-window polls where the gate can answer at all. To be fair to the design, roughly half is exactly what you should expect from storing one of two sides — that number is not evidence of a fault on top of the grain mismatch, it is the grain mismatch, measured. And note what a bot experiences is not the consensus moving; it is the gate going from yes to no answer, for reasons that have nothing to do with the market it is looking at.

6 · Not backtest-replayable — and here the standing excuse is refuted by our own table

consensus_anchor appears nowhere in quants/backtest.py: not in the supported list, not even in the documentary "unsupported" list. It is caught only by the catch-all, so a backtest that includes this gate runs without it and still returns a performance curve, flagging unsupported_rules. That curve is not testing this signal.

The reason given in the code for the whole family is that these anchors "need a forward-captured series we don't have retroactively". For this one that is simply not true, and it is the clearest case in the dictionary. cross_market_history holds 361,439 rows of fair_cents, keyed by Kalshi ticker and timestamp, going back to 10 June — the exact number the gate reads, at five-minute resolution, captured forward. It was written for this. Nothing has ever read it. Same finding as btc_dominance_anchor and aqi_anchor, except that here we did not have to go looking for an outside archive — we built the archive ourselves and then forgot about it.

7 · Away from the line it is the price. Near the line, mostly still the price.

The consensus fair value correlates with the Kalshi ask at r = 0.897. Take that with a pinch of salt: the Kalshi midpoint is literally one of the two ingredients, so a high correlation is half arithmetic. The number that isn't arithmetic is this — the two books already agree with each other at r = 0.80 across our whole record, and r = 0.97 on baseball. There is not much daylight between them for a blend to add.

The fair comparison is against the price filter already sitting in the builder. Counting one observation per market per day — 2,894 pair-days, not the 361,439 five-minute copies of them — the gate "consensus ≥ 55¢" and the plain rule "yes_ask ≥ 55¢" agree 94.6% of the time, Cohen's κ = 0.88. Restrict to the rows that are actually near the decision, within 8¢ of the threshold, and agreement falls to 87.8%, κ = 0.75. So it does diverge where divergence matters — but four times in five it still says what the price box would have said.

Split by book, the divergence is almost all on the Fed side (in-band κ 0.375 at 55¢) and baseball is nearly a carbon copy of the price (in-band κ 0.794). And the Fed side is the side with the year bug — so the one place this gate looks most like an independent signal is the one place we cannot credit it, because the disagreement may simply be the wrong meeting. Same trap as resolution_anchor, which mostly restates the price it was meant to second-guess.

The test that would settle it is to look only at the rows where the two rules disagree and ask which one was right. We have the settlements to try it and the answer is 5 right out of 8 at 55¢, and 5 out of 6 at 60¢ — pointing the signal's way, and far too small to mean anything. That is the experiment to run when there are a few hundred of them.

8 · It compares midpoints; you buy at the ask — but this one is smaller than it looks

fair_cents is built from bid/ask midpoints, and you cannot trade a midpoint. So {above: 60} does not mean "only pay 60¢ or more" — it admits markets whose ask is a little higher than that. On baseball the fair value sits 1.15¢ below the Kalshi ask, and 69% of even that is simply half the bid/ask spread, which is true by definition of any midpoint and would be equally true if you used Kalshi's midpoint on its own. Only the remaining 0.36¢ is Polymarket actually pulling the number down.

We first measured 8.47¢ on the Fed side and it looked alarming. It isn't a property of the signal: the correctly-matched 2026 Fed contracts have a mean spread of only 3.47¢ (median 2¢), so half a spread is under 2¢. The rest of that 8.47¢ is catch #1 — thinly-quoted 2027 ladders being averaged against 2026 prices. Worth knowing that the threshold you set is not the price you pay; not worth more than a sentence beyond that.

9 · It has no idea which side you are betting

The engine calls it with the ticker and your threshold — not your YES/NO side. fair_cents is always the YES probability. So a NO bot with {above: 60} is buying NO in markets the consensus says are 60%+ likely to go YES: it is fading the consensus while the builder recipe is called "Back the consensus". The English is literally accurate — it does say "the fair value is ≥ 60¢" — but the recipe name and the starter's blurb are YES-side language on a side-blind gate. Milder than arb_anchor's cheaper_only, which actively steers a NO bot the wrong way, but the same family.

10 · Small print: two dead configs, and a rounded number on a knife edge

The backwards band is caught — see the defence below — but {above: 100} and {below: 0} both pass validation and render as clean English. Neither can ever be satisfied: a rounded midpoint of two midpoints reaches 100 only if both books are pinned at 100, and by then the market is over.

The number you compare against is also an integer_shop() rounds the average of two midpoints to the nearest cent, using Python's round-half-to-even, so a true fair value of 59.5¢ becomes 60 and 60.5¢ also becomes 60. Set your threshold at 60 and a half-cent of arithmetic decides whether the gate opens. Nothing anywhere warns you that the resolution of the signal is the same size as the granularity of your setting. Minor — and a long way better than the average anchor on this shelf.

The case for the defence

The numbers we ship are real numbers

All three shipped settings discriminate. The builder field default and the "Back the consensus" recipe both use {above: 60} — open on 12.30% of matched-market readings. The starter bot uses {above: 55}21.86%. The docstring's own examples, {below: 40} and {above: 30, below: 70}, come out at 55.45% and 46.12%. (Read those with catch #1 in mind: 64% of the readings behind them are Fed pairs, and those pairs are cross-year. The point survives it — a threshold that opens on 12% of readings is not a threshold stuck on or off, whichever December you are looking at — but the exact percentages would move under a correct matcher.) Not one of them is stuck on or stuck off. Given how many pages in this dictionary end with "the threshold we recommend has never once been reached", that deserves saying out loud.

It is the first anchor here that rejects a backwards band

validate_config refuses {above: 70, below: 30} with "'above' must be ≤ 'below' when both are set (a band)". finance_anchor, crypto_momentum_anchor, btc_dominance_anchor and aqi_anchor all accept the equivalent nonsense and then never open, with no warning. Somebody thought about this one. Its comparison operators are also consistent — above is inclusive and the English says "≥", where tropical_anchor mixes > and >= between two fields of the same gate.

The plumbing under it is the healthiest in this dictionary

17,241 snapshots in sixty-four days, median interval 300 seconds, exactly one gap over an hour. No database is locked epidemic, no dead feed, no silent 404 — the failures that dominate almost every other page here are simply absent. It rides two market pollers that have to work for the whole site to work, which is a genuinely good design decision: this signal cannot rot on its own.

Fail-closed is the right default, and the year bug is not this module's fault

Refusing to answer for a market it has not confirmed a pair for is correct. A fuzzy title match would produce a number for everything and be wrong more often — and the year collision is precisely what happens when a rule turns out to be less strict than it looked. Note also that all of catch #1 lives in quants/arb.py, not in quants/consensus_anchor.py, which is a tidy 60-line module that does exactly what it says. The defect it inherits is in the matcher it was told to trust.

What this page does not tell you

The record: there isn't one

No bot has ever used consensus_anchor. Not live, not out-of-sample, not archived, not as a draft. 0 of the 76 strategy configurations on the site mention it, 0 of 88 saved strategy versions, and 0 of the 1,064 configurations in the genome bank. There are no trades, no fills, no evaluations and no profit or loss, and this page invents none.

Which makes it the third signal in this dictionary with a starter bot, a builder recipe and a builder default that nobody has ever clicked. "Market-Consensus Favorite" is on the starters shelf right now: buy YES on economics markets priced 40–85¢ when the blended consensus is above 55¢. Its universe is Fed decisions, since those are the only economics markets in the index. Run the full funnel over our recorded history and seven distinct markets have ever cleared both its price band and its gate — and every one of the seven is a "No change" outcome. It is a bot that buys "the Fed holds rates", six meetings in a row. That may well be a reasonable bet. It is not the diversified consensus-following strategy the blurb describes, and — see catch #1 — for most of the recorded window it would have been reading the wrong year's meeting.

Everything on this page traces to one of three places: the output of python3 -m quants.signal_registry --json; the source of quants/consensus_anchor.py and quants/arb.py on the production server; or a read-only query against predictive.db and quants.db whose window is stated where the number appears. The recorded window is 10 June – 13 August 2026, 361,439 pair-readings. Settlement outcomes are Kalshi's own result field. Live figures were read from production on 2026-08-13. The registry's arb_anchor table does not exist and the page says so; its live_bots: 0 is correct, and here 0 really does mean 0. All TinyCorp bots trade simulated money.
New here? What is a signal? · Glossary · How a bot works