Start with the contract.
Yes No Flow focuses on Kalshi earnings-call mention markets. We read the event directory with cursor pagination and show earnings events in call-date order. The directory reports when discovery is still running or coverage is incomplete.
Event pages retrieve their actual constituent contracts. Each phrase retains its exchange ticker and rule text. The displayed trading close is separate from event occurrence. When a schedule is not supplied, we say so.
Read the quote correctly.
YES and NO asks are purchase quotes from the market-data API. They are not model probabilities or guaranteed fills. Quotes refresh every 30 seconds while a page is visible; the directory is cached for about three minutes. Fetch time describes when the API response was received. A snapshot older than 90 seconds is marked stale and cannot feed the position calculator.
The calculator uses decimal arithmetic and the market’s notional value. It shows purchase cost from the ask and quantity, winning payout, possible profit, and maximum loss. The displayed ask does not guarantee your full quantity will fill at that price.
Keep source types separate.
The historical archive links to real, issuer-published earnings-call transcripts from the last two years. Its directly indexed transcript collection covers Microsoft and Citi; other listed companies link to their own investor-relations archives. This is explicitly limited coverage. Full transcript text remains at its source.
SEC filings and XBRL facts provide written business context. A phrase in a 10-Q is not proof of a spoken mention. Quarterly charts exclude annual and year-to-date periods, and use the latest filed value for each reporting period, including restatements where present.
Read mention history.
Earnings event pages compare the current phrases with available calls from the preceding two calendar years in the same Kalshi series, using both recent and archived settled markets. There is no six-call cap. The latest available call appears first. Call dates use the event’s displayed date before its strike date or ticker. Undated events and calls after the event being researched are excluded.
Verified issuer transcripts add call dates and source links even when no Kalshi event exists for that call. Calls are joined by company and exact call date. Public Stock Analysis transcripts also supply literal mention counts, including for phrases that were not traded. Each cell shows a mention count or “Not mentioned,” searching all speakers with case-insensitive whole-term matching, regular plurals, the displayed alternatives, and count thresholds. These are separate from Kalshi’s speaker and settlement rules. Transcript observations never enter trend or value calculations. A two-year window does not imply complete transcript or market coverage for every company.
The latest available earnings call is highlighted, even when its transcript is unavailable. “Mentioned in 6 of 8 checked calls” counts calls where spoken presence or absence is known, including untraded phrases. Unknown calls are listed separately and excluded from that denominator. For count thresholds, this summary measures whether the phrase appeared at least once; select a cell to check whether its count met the threshold.
“Transcript unavailable” means the transcript is unavailable, incomplete without a match, or could not be verified against the company and call date. A partial transcript can confirm a mention, but cannot confirm absence or a missed threshold. Only derived counts are cached; transcript text remains at its source. “Not traded” means the complete event inventory had no contract for that exact phrase and threshold. Select a cell for its transcript, threshold check, settled Kalshi outcome, and historical rules. Trading data can be unavailable when no historical event is indexed.
Yes and No are exchange settlement outcomes under each historical contract’s rules, not raw transcript mention counts. We match the complete phrase label, including alternatives and count thresholds, while normalizing case, whitespace, and typographic quotation marks. Missing listings, unavailable data, and unresolved contracts never count as No. Cell details flag changes in rule text and link to the historical contract.
How trend status is calculated.
Momentum compares the Yes rate in the two most recent resolved listings with the rate in earlier listings, within the two-year window. A difference of at least 25 percentage points is increasing or declining momentum. At least one earlier result is needed to measure change. An unbroken run of Yes or No is labeled Consistent, not increasing or declining.
Likely requires at least two Yes outcomes, Yes in the latest resolved listing, and either Yes in both recent listings or increasing momentum. Unlikely uses the same rule for No: at least two No outcomes, No in the latest listing, and either No in both recent listings or declining momentum. Likely also requires recent-weighted Yes evidence to exceed No evidence; Unlikely requires the reverse, using the same 0.8 decay as the value model. Conflicting evidence is Mixed. Fewer than two resolved listings, or an unavailable or unresolved latest listed result, produces Insufficient history.
Settlement trends use the recent and earlier Yes counts. Missing listings and unavailable results are excluded from those counts, never treated as No. Comparisons use the exact phrase and threshold, with rule differences flagged in the table. These labels describe sparse historical settlement data; they are not calibrated probabilities or trade recommendations.
Estimate value against the ask.
The experimental history-decay-v1 model estimates P(YES) from at least two resolved listings. A Beta(1,1) prior contributes one Yes and one No. The most recent resolved listing receives weight 1; older resolved listings receive 0.8, 0.64, and successive powers of 0.8. P(YES) = (1 + weighted Yes) / (2 + weighted Yes + weighted No). P(NO) = 1 − P(YES). Missing listings are excluded. Decay currently follows the order of settled listings, rather than elapsed calendar time. The display labels this “History estimate,” shows YES or NO beside the rounded percentage, and includes the settled sample size.
This smooths extreme frequencies and gives more weight to recent results. The prior and decay are chosen assumptions, not parameters fitted to trading returns or calibrated on future calls. Two to four observations are labeled Low evidence; five or more remain Limited evidence. Different historical rules are flagged. A small sample can produce a large disagreement with a market that has more information.
For each available YES and NO ask, EV per contract = model P(side) × contract payout − ask. The matrix selects the side with the higher EV and sorts all scored words from greatest to least EV. Positive EV is flagged Potential mispricing under this model, not a proven market error. A word can be consistently mentioned while its NO side has the better modeled value at a sufficiently low price.
Missing asks, nonbinary contracts, closed markets, and quotes older than 90 seconds are excluded. A displayed ask does not guarantee depth or a fill.
History refreshes hourly and can skip earnings calls without Kalshi listings. Quotes refresh every 30 seconds while the page is visible. The model uses historical settlement results, not full transcripts, company news, analyst forecasts, or a demonstrated predictive advantage.
Compare opportunities across events.
The homepage combines all positive estimated-value contracts from the currently discovered open earnings-mention events into one list, sorted by EV per contract by default. Select Soonest event to sort by call date, with highest EV first on each date and undated events last. It keeps each exact contract and call identity, selecting the better quoted YES or NO side. Progress, unavailable events, and incomplete history are reported; a partial scan is not a complete ranking. Quotes refresh 30 seconds after a scan finishes and event discovery refreshes every three minutes while the page is visible. Expired or stale quotes leave the list.
Backtesting v2: historical trades and forecast accuracy.
The v2 ledger reconstructs twelve months of historical events using an experimental settlement-based model. Its prior and recency decay are learned on earlier reporting quarters, selected by held-out log loss. A forecast requires comparable earlier settlements with known settlement times. Known equivalent rule templates are reconciled; unsupported rules and material differences are excluded. Historical rule revisions remain a limitation. This reconstruction does not backdate transcript, news or peer evidence.
The ledger selects the quoted YES or NO side with the largest positive expected return at midnight UTC on the call date. Expected profit on a $10 stake equals $10 × (selected-side probability ÷ entry ask − 1). Realized simulated profit uses the actual settlement, with fractional contracts and row-level cent rounding. Historical candles do not verify executable size or fills. Missing quotes and insufficient training remain unscored; these experimental estimates are not established trading edges. Model diagnostics remain available separately.
The experimental v2 lab compares the original settlement-decay formula, historical language, company developments, peer developments, market alone, and market plus evidence. It includes every imported contract, including missing estimates. It does not replace the live v1 board. No accuracy improvement or promotion is claimed without measured evidence.
Verified, complete transcripts are recounted under the target contract’s exact variants, eligible speakers, Q&A scope and count threshold. Transcript observations remain separate from official settlements. Official company wording, topic-only context and counterevidence are separate features. Peer changes are relative to each peer’s normal usage and grouped to avoid multiplying correlated evidence. Every source needs its publication time, first-seen time, version and link; a historical call date alone is insufficient.
Regularized logistic models learn weights and select recency settings on earlier reporting periods only. All contracts from a call stay in the same outer period. Preprocessing and parameter selection use only training data, with an earlier inner validation period. Related count forecasts are reconciled so a higher threshold cannot have a greater probability. Missing evidence or insufficient training produces “No reliable estimate,” never an invented percentage.
Log loss and Brier score are averaged equally across calls. Coverage, ten-bin calibration and new/sparse/established histories are reported separately. Matched comparisons use the same contracts for each pair of models. Confidence intervals resample whole reporting periods and require at least four periods. All forecast versions are retained; only the earliest checkpoint per contract enters the scores.
Promotion requires at least 300 resolved contracts, 100 calls, four held-out periods and 80% coverage. Both proper scores must beat the settlement and market benchmarks on matched contracts, with 95% period-clustered difference intervals below zero. Ten-bin calibration error must be at most 0.05. Independent extraction/availability audit, subgroup review and confirmation over two subsequent prospective periods are also required. These are review gates, not guarantees. Trading use additionally requires executable size and an empirically validated per-forecast uncertainty margin. Until then, v2 produces no actionable opportunity ranking.
Existing transcript searches do not preserve all required speaker and source-version information. Until audited evidence is imported, the lab shows missing coverage rather than treating a retrospective scrape as a historical forecast. The market-informed model explicitly uses market prices; its contribution is assessed against the market-only midpoint, which is not an executable ask.
V1: measure suggested-trade outcomes.
Backtesting covers the preceding 12 calendar months, ending at UTC midnight on the backfill date. Quick periods and custom inclusive start and end dates filter by earnings call date; win rates, $10 simulations, events, and trades all use the selected period. Every discovered earnings event in that window appears, including events without enough data to score. The backfill applies the frozen history-decay-v1 model retrospectively at 00:00 UTC on each listed call date. It uses the hourly candle ending exactly at that checkpoint and only earlier calls with explicit settlement timestamps before it. Older calls are model inputs, not additional backtested events. Missing quotes, later-opened contracts, incomplete histories, and fewer than two prior settled listings are excluded.
The better positive-value YES or NO side is selected once per contract, with every qualifying contract included. YES uses the historical ask; NO uses $1 minus the historical YES bid, following Kalshi’s binary order-book equivalence. Only $1 binary contracts are reconstructed. The target outcome is used only after selection to score the trade. Historical order size and earlier revisions of contract rules are unavailable, so these are indicative prices and reconstructed results, not verified executions or forecasts published before those events.
Recorded suggestions are a separate ledger, enabled with this release. The first positive-value suggestion per contract and model is saved when the opportunity board scans it, including the original side, ask, timestamp, and model inputs. Refreshes and later side changes do not create more observations. This measures the board’s suggestions, not user purchases or every intraday price change. Recommendation snapshots cannot be updated or deleted; settlement results are stored separately and checked when backtesting is viewed.
A win means the selected side matches the final YES or NO settlement. Win rate is wins divided by wins plus losses; loss rate uses the same denominator. Pending, void, and unknown outcomes are excluded. No resolved trades means no rate, not zero percent. All qualifying suggestions count equally; contracts from one call are correlated. Reconstructed and recorded results are never pooled. Small samples, changed historical rules, retrospective model selection, and incomplete coverage can limit these results. They do not establish calibrated probabilities or future performance.
The $10 simulation allocates exactly $10 to every suggestion at its saved entry ask, allowing fractional contracts. Quantity is $10 divided by ask. A winning trade pays quantity times the contract’s notional value; a losing trade pays zero. Profit or loss is payout minus $10. Each payout is rounded to cents before summing, so row, event, and dashboard totals reconcile. Net return is total profit or loss divided by the stakes of resolved trades only. Pending, void, and invalid-price entries have no assumed payout or refund; their allocations are shown separately and excluded from returns. This is a hypothetical equal-stake comparison, not verified trades or an account balance.
Source definitions: Kalshi event candles · binary order books.
Quartr is an optional licensed transcript integration. Fiscal.ai is linked as an external research resource; there is no active Fiscal.ai account or API connection. Missing source data is unknown, never zero.
Access follows payment verification.
One payment unlocks the ranked opportunity board for one calendar month, with no automatic renewal. Server-created Stripe Checkout sessions support card and Link. Access comes from verified server payment state, not a success-page URL. Billing management uses Stripe’s customer portal.
Data use and publication.
This preview provides research navigation and source transparency. Commercial aggregation or redistribution must follow the providers’ applicable agreements. Public technical access is not a representation that this product has a commercial data license. Full transcript redistribution is not enabled.