Changelog
Version history and release notes for the Quantum State Engine.
Each release documents new modules, pipeline changes, calibration updates, and system improvements. Released versions are immutable per QSE version governance.
Version Governance
Released versions are locked and immutable. Future changes require version increments and must explicitly document which invariants are being modified.
NHL module
NHL is now an active module. Pick a game from the live NHL schedule, choose Moneyline, Spread, or Over/Under, and run a Confidence Allocation through a dedicated NHL path built on the locked 30-factor NHL taxonomy. Auto Detect recognizes NHL propositions and routes them to the module, Market Console supports NHL markets from both Kalshi and Polymarket through the normal market-analysis flow, and Edge Spotter includes NHL among its supported modules.
Key Highlights
Live schedule and game picker
The Console loads the live NHL schedule with spreads and totals, groups games by day, and pre-fills the proposition from the selected game and bet type.
Locked 30-factor NHL taxonomy
Analyses run on the locked 30-factor NHL taxonomy that has been configured in the Admin panel. Engine math, factor weights, and calibration architecture are unchanged. Results appear in History as an NHL Proposition Console run.
Console, Market Console, and Edge Spotter
Auto Detect recognizes NHL propositions and routes them to the module. Market Console supports NHL markets from both Kalshi and Polymarket through the normal market-analysis flow. Edge Spotter includes NHL among its supported modules.
NHL
- NHL is selectable in the Console for all signed-in plans.
- Live NHL schedule with cached refresh, grouped by day, feeding the game picker.
- Moneyline, Spread, and Over/Under bet types with auto-generated propositions.
- Auto Detect recognizes NHL propositions and routes them to the NHL module.
- Market Console supports NHL markets from Kalshi and Polymarket.
- Edge Spotter includes NHL among its supported modules.
Calibration and Contract Structure
Track Record now publishes an all-time Calibration section for the canonical resolved population: sample size, Model Brier, Market Brier, Brier Skill, and ECE, with a 10-bucket reliability chart. Current Brier Skill is negative and is shown as returned. On this matched resolved population, market prices currently have a lower Brier score than model probabilities. Brier Skill measures probabilistic accuracy on these signals and is separate from directional hit rate. Market Console Kalshi results now show a Contract Structure card with early-close type, a timing-gap indicator, and a text-derived source-phrase indicator. It is descriptive only and is not a resolution-risk score.
Key Highlights
Calibration on Track Record
A new Calibration section shows sample size, Model Brier, Market Brier, Brier Skill, and ECE for the all-time canonical resolved Track Record population, plus a 10-bucket reliability chart comparing mean model confidence with observed outcomes. The current Brier Skill is negative and is displayed exactly as calculated. On this matched resolved population, market prices currently have a lower Brier score than model probabilities. This probabilistic-accuracy comparison is separate from directional hit rate. Calibration is all-time only, so the Track Record time-window selector does not apply to it.
Contract Structure in Market Console
Kalshi results now include a Contract Structure card showing early-close type, a timing-gap indicator, and a source-phrase indicator derived from the market rules text. The source phrase is text-derived and is not a verified settlement source. The card is descriptive only; it is not a resolution-risk score. Polymarket results are unchanged.
Reliability chart presentation
The calibration reliability chart draws straight segments between buckets, showing each bucket's observed outcome frequency at its exact position.
Track Record
- Calibration section shows sample size, Model Brier, Market Brier, Brier Skill, and ECE for the all-time canonical resolved population.
- 10-bucket reliability chart compares mean model confidence with observed YES frequency; current negative Brier Skill is shown as returned and is separate from directional hit rate.
- Calibration is all-time only; the Track Record time-window selector does not apply to it. If calibration data is unavailable, the rest of Track Record is unaffected.
Market Console
- Kalshi results include a Contract Structure card: early-close type, timing-gap indicator, and a text-derived source-phrase indicator.
- The source phrase is derived from the market rules text and is not a verified settlement source.
- The card is descriptive only and is not a resolution-risk score. Polymarket results are unchanged, and no new market check, analysis, allowance, or pricing change applies.
Market Console: Polymarket markets
Market Console now analyzes public Polymarket markets alongside Kalshi. Paste a Polymarket market link or a bare condition id into the same field that accepts Kalshi tickers, Check Market to see the exact market, its outcomes, and current pricing from the live Polymarket order books, then Run QSE Analysis as before. No Polymarket account or wallet connection is required for public market analysis. Daily market check and QSE analysis allowances, pricing, and entitlements are unchanged.
Key Highlights
Read-only public market analysis
QSE reads only public Polymarket market data (metadata, status, close time, outcomes, and live two-sided order books). Nothing is signed, traded, or connected. Kalshi markets behave exactly as before.
Named outcomes, not just Yes/No
Markets whose outcomes are teams or named options show those labels on the confirmation card, the result, and in History (for example "Yankees (YES)" and "Padres (NO)"), together with a note on which side QSE evaluates as YES.
Venue shown everywhere
Every Market Console check, result, and History row carries a Kalshi or Polymarket venue badge, and Polymarket rows include an Open on Polymarket action built from the persisted market identity.
Market Console
- Accepts a Kalshi ticker, a Polymarket market link (polymarket.com/event/<event>/<market>), or a bare Polymarket condition id.
- Event links that contain several markets are declined with a request for the specific market link; no market is guessed.
- Readiness uses the live Polymarket order books directly for both outcomes; the same readiness rules apply to both venues.
- Polymarket markets route to the same applicable QSE modules used for Kalshi, with sports routing based on Polymarket's authoritative sport metadata.
- One market check per Check Market and one QSE analysis per Run, shared across venues; no new allowance, pricing, or entitlement change.
NCAA Football module
NCAA Football (NCAA FB) is now an active Console module. Pick a game from the live college football schedule, choose Moneyline, Spread, or Over/Under, and run a Confidence Allocation through a dedicated NCAA Football executor built on the locked 30-factor NCAAF taxonomy. Auto Detect routes clear college football propositions to the module, and Market Console recognizes KXNCAAFGAME markets as NCAA Football.
Key Highlights
Live schedule and game picker
The Console loads the live NCAA Football schedule with spreads and totals, groups games by day, and pre-fills the proposition from the selected game and bet type. When a totals line is not offered for a game, the total shows as n/a rather than 0.
Dedicated NCAAF executor
Analyses run on a college-football-specific executor and prompt using the locked NCAAF taxonomy (recruiting strength, program momentum, rivalry intensity, blowout risk, and 26 other fixed factors). Engine math, factor weights, and calibration architecture are unchanged. Results appear in History as an NCAA FB Proposition Console run.
Edge Spotter unchanged
This release activates NCAA Football in the Console and Market Console only. Edge Spotter does not publish NCAA Football Signals, so Signals, Track Record, and Opportunity Radar populations are unaffected. NHL remains Coming soon.
NCAA Football
- NCAA FB is selectable in the Console for all signed-in plans.
- Live schedule via the odds provider (americanfootball_ncaaf), with cached refresh.
- Moneyline, Spread, and Over/Under bet types with auto-generated propositions.
- Auto Detect routes clear college football claims to NCAA FB; ambiguous claims fall back as before.
- Market Console: KXNCAAFGAME tickers resolve to the NCAA Football module and follow the normal Check Market then Run flow.
Market Console
A new ticker-first analysis surface at /console/market. Enter one Kalshi market ticker, Check Market to see the exact market QSE would evaluate, confirm it, then Run QSE Analysis for a Confidence Allocation on that market. Market Console sits beside the Proposition Console under the Console menu. Its output is on-demand analysis, not an Edge Spotter published Signal, and it never enters the Signals, Track Record, or Opportunity Radar populations.
Key Highlights
Check first, then run
Check Market resolves the ticker to its module, YES and NO prices, spread, close time, readiness, and the proposition QSE will evaluate. Run QSE Analysis is offered only from that confirmed check, for the same ticker, within 15 minutes, and only once per check. Editing the ticker withdraws the confirmation; only a fresh Check Market restores it.
Two separate daily allowances
A market check and a QSE analysis are counted separately and both reset at 00:00 UTC. Free: 10 market checks, 0 QSE analyses (check and preview only). Pro: 40 market checks, 10 QSE analyses. Power: 120 market checks, 30 QSE analyses. Running QSE from a confirmed check never consumes a second market check, and a run that fails before the engine returns is not counted. Neither allowance draws from QSE Console submissions.
History knows where a run came from
History now labels every row as Proposition Console or Market Console, adds a Source filter, and shows Market Console details: market title, ticker, price snapshot at run time, close time, readiness, and the public Top 5 factors. CSV and JSON exports carry the same provenance. Existing Free, Pro, and Power history retention is unchanged.
Market Console
- New /console/market page: ticker input with tap-friendly help, Check Market confirmation card, Run QSE Analysis, sanitized result with distribution and public factors
- Console navigation is now a parent menu with Proposition Console and Market Console, on desktop and mobile
- Pricing lists Market Console market checks and QSE analyses as separate per-day figures for Free, Pro, and Power
- Glossary adds Market Console, Proposition Console, Market Check, and QSE Analysis (Market Console)
- Modules not yet active for Market Console, such as NCAAF and NHL, return a clear Coming soon response without consuming a QSE analysis
History
- Source badge and Source filter on every History row
- Market Console detail panel with market snapshot, readiness, proposition, distribution, and Top 5 public factors
- CSV and JSON exports include source and Market Console fields
Isolation and accounting
- Market Console runs are never published as Signals and never feed Track Record, Opportunity Radar, or the AutoTrader
- Run authorization is server-verified against the prior check: same user, same ticker, consumed, ready, within 15 minutes, single delivery
- Duplicate runs replay the original result without a second charge; a retry after an engine failure reuses the same check
Historical Paths: Published-Signal Population Alignment
Historical Paths now uses the same public published-Signal population definition as the Edge Spotter Track Record and Homepage. This brings the Historical Paths episode total, nodes, ribbons, and outcome counts into direct alignment with the public signal ledger used elsewhere in QSE.
Key Highlights
One public ledger
Historical Paths, Track Record, and Homepage now derive their published-Signal totals from the same eligibility rules. Signals published since the latest Historical Paths refresh are identified separately so the displayed episode layer can be reconciled to the current Track Record total.
Outcome is not correctness
Resolved YES and Resolved NO describe which side the market resolved to. Track Record Correct and Incorrect describe whether the published Signal direction matched that outcome. These are different measures, even though both surfaces now use the same public published-Signal population.
Exact selection cohorts
Selecting a node or ribbon scopes every figure in the detail panel to precisely the episodes represented by that selection. Summary cards continue to describe the full filtered view, while directional correctness states its resolved-eligible denominator explicitly.
Market Landscape
- Historical Paths population reconciled to the public Published Signals ledger used by Track Record and Homepage
- Outcome stage vocabulary is Resolved YES, Resolved NO, Unresolved; resolution status read live
- Historical Paths section added to About Market Landscape; Sankey diagram, Alluvial diagram, and Historical Paths added to the Glossary
Historical Paths
A new descriptive view at /historical-paths shows how QSE episodes have historically moved through market structure, Signals, AutoTrader participation, PEM decisions, and outcomes. Ribbon width is the number of historical episodes that followed each flow. It is reachable from Market Landscape and from any family in the Family Detail Sheet.
Key Highlights
Five stages, counts only
Landscape state at publication, Signal direction, whether the AutoTrader held a position, the PEM decision class where a position existed, and the canonical outcome. Every proportion is shown next to its sample count n. Nothing ranks paths, forecasts a next state, or claims that a Landscape state changes Signal performance.
PEM only where it applies
PEM decisions are shown only for episodes where the AutoTrader actually held a position. Episodes with no position flow to "PEM not applicable", which is a participation state, not missing data. Repeated decisions collapse into runs, so HOLD, HOLD, HOLD_MONITORING, EXIT reads as HOLD then HOLD_MONITORING then EXIT.
Tap to inspect
Selecting a node or ribbon opens a compact factual panel with episode count, stage breakdowns, directional correctness with n, publication range, module composition, and the most common collapsed PEM decision sequences. Selection persists until cleared, and a tappable legend carries the labels on small screens.
Market Landscape
- New Historical Paths page with a five-stage Sankey and persistent tap selection
- Links from the Market Landscape header and from each Family Detail Sheet, the latter pre-filtered to that family
- Module and time-period filters; family filter when launched from a family
- Aggregate-only read path; no episode identifiers or internal diagnostics are exposed
Family Trajectory
Market Landscape now shows the observed path of a selected family across all four windows. Selecting a family reveals the positions it previously occupied on Marketability and Observed Supply in that same window basis, drawn as a fading trail on the Structural Field and listed in the Family Detail Sheet.
Key Highlights
All four windows, one basis at a time
Trajectory is available on 24h, 72h, 7d, and 28d. The path always uses the same window basis as the position it is drawn behind, so a 7d node is never shown against 72h history.
Observed history only
Points are previously recorded coordinates. Nothing is smoothed, interpolated, or projected forward, and there are no arrowheads, velocity readings, or ranking of families by movement.
Family grain, inherited access
Trajectory stays at family grain and is answered only for a family and window the viewer can already see in Market Landscape. Existing Free, Pro, and Power boundaries are unchanged.
Market Landscape
- Fading historical trail for the selected family on the Structural Field, drawn beneath the nodes
- Observed path list, availability window, and guardrail note in the Family Detail Sheet, including on mobile
- New Marketability change versus prior period row, withheld when no comparable prior window exists
- Hourly landscape history now captured for all four windows rather than 72h alone
- Server-side trajectory read addressed only by the published family key, with the same window entitlement clamp as the landscape read
The Family That Was Never Enough Story
Added a sixth narrative explainer, "The Family That Was Never Enough," to About Market Landscape, placed directly after the Evidence definitions to teach why a withheld change value is an honest absence rather than a measured zero.
Key Highlights
Absence is not zero
When the prior window does not have enough support for a comparison, Change versus prior period is withheld. A printed zero would claim a measurement that was never made.
Evidence maturity in plain language
Preliminary evidence means the current window cleared the minimum observation count while the prior window did not, so the family can be described but not compared.
Gray is not a low value
A family with known axis values stays plotted on the Structural Field. When the selected lens has no honest value, the node renders gray rather than being coloured or omitted.
Market Landscape
- New "The Family That Was Never Enough" story teaser placed directly after the Evidence definitions on About Market Landscape
- Static story content file with canonical, immutable copy and the established emphasis-line treatment
- Documentation and copy only: no evidence thresholds, structural-state logic, calculations, Structural Field behavior, entitlement, or disclosure changes
When the Spread Narrowed Story
Added a fifth narrative explainer, "When the Spread Narrowed," to About Market Landscape, placed directly beside the Trajectory lens definition to teach the difference between a current Marketability level and the direction of spread change among comparable books.
Key Highlights
Level is not direction
Two families can sit at almost the same Marketability level while moving in opposite structural directions. Marketability says where a family is; Trajectory says how comparable books have been changing.
Comparable books only
The story states the Trajectory denominator plainly: a book with no earlier observation of the same market is excluded from the share, not treated as unchanged.
Direction is not a recommendation
Narrowing does not mean prices are wrong, widening does not mean a market is unusable, and neither direction predicts an Edge Spotter signal.
Market Landscape
- New "When the Spread Narrowed" story teaser placed directly after the Trajectory lens definition on About Market Landscape
- Static story content file with canonical, immutable copy and the established emphasis-line treatment
- Documentation and copy only: no engine, math, data, entitlement, or disclosure changes
The Stadium After Midnight Story
Added a fourth narrative explainer, "The Stadium After Midnight," to About Market Landscape, teaching that the 24-hour, 72-hour, 7-day and 28-day windows are rolling lookback spans that all end at the present moment.
Key Highlights
Windows are questions, not versions of the truth
The story shows why the same family can look quiet over one day and full over a month without any of those views being wrong, because each window asks about a different span of the recent past.
No historical playback
A 28-day window does not show the market 28 days ago. Every window ends now; the longer span simply lets more of the recent past into the present view.
Window versus lens
Changing the window moves a family in the Structural Field because it changes what is counted. Changing the lens only changes how the same position is painted.
Market Landscape
- New "The Stadium After Midnight" story teaser placed directly after the Heat, Windows and Lenses definitions on About Market Landscape
- Static story content file with canonical, immutable copy and the established emphasis-line treatment
- Documentation and copy only: no engine, math, data, entitlement, or disclosure changes
One Thousand Eighty-Eight Story
Added a third narrative explainer, "One Thousand Eighty-Eight," to About Market Landscape, teaching why Book observations (all scans) and Distinct tickers observed can report identical numbers in a fast-turnover family without any field being copied.
Key Highlights
Two counts, one market
The story walks through a real Gold Hourly audit where the 72-hour observation and ticker counts both read 1088, and shows the equality is the market lifecycle written in counts, not a data defect.
Denominator discipline
Marketable share divides by book observations across every scan, while Tickers never marketable counts distinct tickers; in families with repeat observations the two are not expected to reconcile.
Same safe story pattern
Reuses the existing static, mobile-safe story dialog: no fetching, viewport-bounded scrolling, keyboard-accessible trigger, and a labelled close control.
Market Landscape
- New "One Thousand Eighty-Eight" story teaser placed beside the Structural Field metric explanation on About Market Landscape
- Static story content file with canonical, immutable copy and a matching emphasis-line treatment
- Documentation and copy only: no engine, math, data, entitlement, or disclosure changes
The Yellow Ring Story
Added a second narrative explainer, "The Yellow Ring," to About Market Landscape, teaching that a yellow ring marks published Edge Spotter activity in the selected window without identifying the market or implying quality.
Key Highlights
Presence is not a recommendation
The story walks through what the yellow ring does and does not communicate: published activity exists in the family, with no claim about signal quality, probability, expected return, or future publication.
Same safe story pattern
Reuses the existing static, mobile-safe story dialog: no fetching, viewport-bounded scrolling, keyboard-accessible trigger, and a labelled close control.
Market Landscape
- New "The Yellow Ring" story teaser placed beside the Structural Field yellow-ring explanation on About Market Landscape
- Static story content file with canonical, immutable copy and a matching emphasis-line treatment
- Window-scoping and tier-invariant presence semantics explained narratively, consistent with the shipped disclosure model
Structural Field Axis Help
Added an axis-help explanation to the Structural Field clarifying that Marketability and Observed Supply remain fixed coordinates while the selected lens changes node colouring.
Key Highlights
Tap-friendly axis explanation
Compact info controls beside both axis titles open one shared explanation: fixed coordinates, colour-only lenses, observation-count node size, and yellow rings as published Edge Spotter activity.
Documentation mirrors the model
About Market Landscape now states explicitly that the axes are fixed and only the node colouring follows the selected lens.
Market Landscape
- Axis-help popover on both Structural Field axis titles, mobile-safe with 44px touch targets
- Axis titles moved from SVG text to HTML so they carry real focusable, labelled controls
- About Market Landscape structural field section states the fixed-coordinate model
- Explanation only: geometry, encodings, lenses, filters and payloads unchanged
Market Landscape Selected Window Labeling
Corrected Market Landscape window labeling so window-scoped Structural Field, Family Detail, and signal-activity copy now follows the selected 24h, 72h, 7d, or 28d window. The separate canonical 72-hour Market Formation reference remains unchanged.
Key Highlights
Selected window is named everywhere it applies
Structural Field placement counts, empty states, legends, read-out, accessibility labels and guardrails now state the selected window instead of generic or default wording.
Canonical Market Formation stays fixed
The canonical 72-hour Market Formation ranking is a separate metric and keeps its fixed period regardless of the Market Landscape window in use.
Market Landscape
- Structural Field copy, legend, read-out and aria labels name the selected window
- Family Detail presence, resolved-signal and unresolved-activity captions name the selected window
- Single window display helper shared by Market Landscape surfaces to prevent future drift
- About Market Landscape states that the field follows the selected window, not a fixed 72 hours
Signal Presence Copy and Documentation Alignment
Copy only. The structural field guardrail is now one consolidated paragraph instead of two stacked blocks, the Family Detail presence caption states exactly what is withheld, and the public documentation was corrected where it still claimed signed out visitors receive no signal information of any kind.
Key Highlights
One guardrail block, not two
The structural field now carries a single consolidated guardrail paragraph, which materially reduces text density on small screens without dropping any honesty claim.
Documentation matches the shipped rule
Public documentation no longer claims signed out visitors receive no signal information. Presence is public for everyone, and plan determines depth beyond presence.
Market Landscape
- The structural field guardrail was consolidated into a single paragraph. The yellow ring sentence is composed in only when markers can actually be drawn, so no viewer reads about an encoding that is absent from the canvas.
- A grammar defect in the ring guardrail sentence was corrected.
- Family Detail now states that presence confirms published activity exists, and does not identify the market, the side, or when the signal was published.
- About Market Landscape documents the yellow ring inside the structural field section, and adds that signal activity does not rank, order, or qualify families.
- The signal supply section and the plan matrix were corrected: presence is public for every visitor, and plan determines depth beyond presence.
- The Market Landscape cross link note was narrowed to name what it actually protects: link presence, family identity masking, and family ordering.
Market Landscape Signal Presence Marker
One consistent yellow ring grammar in the structural field. Every visitor, signed out included, can now see which market families have published Edge Spotter activity in the selected window. Presence only: never a count, a market, a side, a time, or a probability. Exact counts and unresolved market identity remain entitlement gated on the server.
Key Highlights
Free sees where activity exists
The ring answers one question for everyone: has Edge Spotter published anything in this family during the selected window.
Power still owns the detail
What the unresolved opportunity actually is, and the exact family level counts, remain server gated by entitlement.
One ring grammar
Canvas, legend, readout, accessible titles, and Family Detail now describe an identical rule with no second visual language.
Market Landscape
- The public state function now emits a tier invariant boolean presence marker per family, true when any published Edge Spotter signal is associated with that family in the selected window.
- The presence marker is a boolean only. No count, no direction, no timestamp, and no market identifier is attached to it, so an unresolved market cannot be narrowed beyond the family itself.
- The shared public allowlist was extended for the presence marker only. Raw unresolved counts are still deleted before serialisation for callers without the entitlement.
- The structural field now uses a single yellow ring grammar driven by the server marker, instead of a resolved only ring. The ring legend, the focused readout, and the SVG accessible titles all describe the same rule.
- Family Detail states presence plainly for every tier, then keeps the resolved count public and the unresolved activity locked exactly as before.
- Disclosure copy was corrected: a missing ring now means no published activity, not a possible entitlement gap.
Structural Field Mobile Readability Refinement
Presentation only refinement of the optional Market Landscape structural field on small screens: a taller mobile plot, tighter card spacing so the plot leads the card, a compact multi line focused readout, and larger invisible tap targets for small nodes. No axis, encoding, data, entitlement, or model change.
Key Highlights
Chart leads the card on mobile
A taller plot and tighter surrounding spacing make the field easier to inspect on an iPhone without pinch zoom.
Readout wraps instead of running long
Family, module, class, state, marketability, tickers, observations, and the active lens now read as a compact stack.
Presentation only
No axis definitions, encodings, data logic, entitlements, or backend behaviour changed.
Market Landscape
- Increased the mobile structural field plot height by roughly 1.2x using a taller mobile drawing surface. Nodes stay undistorted and the plot still fits the page with no horizontal overflow.
- Tightened spacing and type scale around the plot on mobile so the plot, not the explanatory copy, is the strongest element in the card.
- The focused family readout now wraps into a compact multi line block instead of one long line. No structural value is truncated.
- Added an invisible larger hit area per node so visually small families remain tappable. No pan, no zoom, no gesture capture, so page scrolling is untouched.
- Axis labels are shortened on mobile only to avoid collision. Marketability and observed supply on a log scale remain the two axes.
- Current view remains the default on every device and the structural field remains optional behind the existing toggle.
- No signal overlay was added to the canvas and Family Detail continues to use the same sheet as the grouped view.
Edge Spotter Activity Block in the Market Landscape Family Sheet
The Family Detail sheet now presents published Edge Spotter activity as its own clearly bounded block instead of a single ambiguous row, with the non-inference boundary stated in place and generic navigation to Opportunity Radar and Track Record. Presentation only: the same server-classified disclosure object, the same entitlements, no new fetch, no new field, and no canvas signal overlay.
Key Highlights
Signal activity, plainly bounded
Published Edge Spotter activity now has its own block in the Family sheet, with the non-inference boundary stated beside the value.
Absence is stated as ambiguous
An empty block can mean no published signals or no entitlement, and the copy now says so.
Structural field left unchanged
No signal markers were added to the field. Coverage of the current window is too sparse to encode honestly.
Market Landscape
- Added an Edge Spotter activity block to the Family Detail sheet, replacing the single signal row.
- Entitled viewers see the server-classified disclosure state in words: an exact published count when policy permits, activity observed with the count withheld, or protected.
- Unentitled viewers see the same block with a locked row, the minimum plan, and a labelled example. The protected value is absent from the payload, never hidden in the browser.
- The block states in place that activity does not set a family position, colour, state, or evidence maturity, and that it is not a hit rate, an expected return, or a forecast.
- The block states that absence of activity can mean no published signals or no entitlement, so an empty block is never read as a verified absence.
- Added generic, tier-invariant links to Opportunity Radar and Track Record. No row-level signal link, no per-family signal identity.
- No signal overlay was added to the structural field. Family-level signal coverage of the current window is too sparse to encode on the canvas without inviting an opportunity reading.
Optional Structural Field View on Market Landscape
Market Landscape now offers a second, optional reading of the same data: a flat structural field that places every filtered family by Marketability and observed supply, so families can be compared across modules and market classes. The grouped tile view remains the default on every device. Presentation only: same payload, same server-enforced entitlements, no new fetch, no new dependency, no model, signal, or backend behavior changed.
Key Highlights
Two readings, one dataset
A View toggle adds an optional flat structural field beside the grouped tile view. The grouped view stays the default on every device.
Cross-module structural comparison
Families are placed by Marketability and observed supply in a single space, so a family in one module can be compared with a family in another.
Omitted, never imputed
A family with no honest value on an axis is left out and counted in plain text rather than plotted at zero.
Market Landscape
- Added a View toggle: Current view (grouped tiles) and Structural field. Grouped tiles remain the default.
- Field axes are the two free structural quantities present for every observed family: Marketability horizontally, observed distinct tickers vertically on a log scale.
- Colour continues to encode exactly one selected lens. Node size encodes observation count, dimming encodes evidence maturity, a solid outline marks a comparable prior window, and a diamond marks Newly Observed.
- Families with no honest value on an axis are omitted and counted in plain text, never imputed to zero and never jittered.
- Selecting a node opens the existing Family Detail sheet with unchanged tier parity and disclosure shaping.
- Search, module, market class, state, quick filters, window and lens selections all carry into the field view unchanged.
- A persistent disclaimer states that position, nearness, height, colour and size carry no opportunity, probability, expected return, timing, or signal meaning.
- The field renders as plain SVG with no pan, zoom, orbit, or per-node motion, so it cannot fight iOS Safari scrolling and reduced-motion readers lose nothing. The renderer is code-split and downloaded only when toggled.
Narrative Explainer Added to About Market Landscape
A short story, "The Darkest Square", is now available as an optional modal on the About Market Landscape page. It illustrates how to read a high Liquidity Formation value correctly. Presentation only: static local text, no new analytical capability, no signal, model, data, entitlement, or backend behavior changed.
Key Highlights
Narrative explainer
"The Darkest Square" opens in an optional dialog on About Market Landscape and shows how to read a high Liquidity Formation value correctly.
Documentation
- Added a compact "The Darkest Square" teaser beside the "Reading Liquidity Formation correctly" section.
- The story opens in an accessible dialog with a fixed header, a permanently visible close control, and a single scrolling body.
- No route change, no page state change, and the reader returns to the same page position on close.
Family Detail Sheet Close Control Fixed on iPhone
The Market Landscape Family Detail Sheet is now a true viewport-anchored mobile sheet with a permanently visible close control. Presentation only: no analytical, entitlement, disclosure, or backend behavior changed.
Key Highlights
Desktop unchanged
The right-side desktop panel keeps its width, scrolling, backdrop and keyboard behavior, including Escape to close.
Mobile
- The close control now lives in a fixed sheet header instead of scrolling away with the content
- Only the sheet body scrolls, with scroll containment so gestures no longer transfer to the page behind it
- The sheet is sized against the dynamic viewport, so iOS Safari toolbar changes cannot push the close control off screen
- The close target is at least 44x44 CSS pixels and is labelled Close family details
Market Landscape Promoted to Primary Navigation
The live Market Landscape page identity now matches its place in primary navigation. Presentation only: no analytical, entitlement, or backend behavior changed.
Key Highlights
URL unchanged
The route and canonical URL remain /liquidity. No entitlement, calculation, disclosure, or request behavior changed.
Navigation
- Market Landscape is top-level product navigation on desktop and mobile, no longer a Documentation entry
- The duplicate Plans & Pricing link inside the desktop Documentation menu was removed; Pricing stays a single top-level item
- Documentation keeps About Market Landscape as the methodology reference
Clarity
- The live page heading now reads Market Landscape, with liquidity context retained directly beneath it
- Module-level liquidity grades remain part of the surface
Market Landscape Promoted to Primary Navigation
Market Landscape is a live analytical surface, so it now sits in primary navigation next to Signals, Opportunity Radar and Track Record instead of inside Documentation. Navigation and labelling only: no analytical, entitlement, or disclosure behavior changed.
Key Highlights
Information architecture only
The route stays /liquidity, with no canonical URL, sitemap, metadata, entitlement, or data-fetching change.
Navigation
- Market Landscape is a top-level item on desktop and mobile, ordered Home, Console, Market Landscape, Signals, Opportunity Radar, Track Record
- Documentation keeps About Market Landscape as the methodology reference
- Documentation no longer highlights as active while viewing the live Market Landscape page
- Market Landscape is now findable in documentation search as a product page
- On desktop, History and Settings moved into the account menu so the product row stays fully visible; both remain top-level in the mobile drawer
Clarity
- Primary navigation uses one label, Market Landscape, matching the homepage and pricing vocabulary
- No tier badge on the navigation item: Market Landscape discovery is free, with Pro and Power adding depth
Market Intelligence Navigation Connected
Market Landscape, Signals, Opportunity Radar, and Track Record navigation is better connected, and Opportunity Radar can open the current Market Landscape structure for a module. No analytical, entitlement, or disclosure behavior changed.
Key Highlights
Navigation only, disclosure unchanged
Every cross-surface link renders identically for every tier and is never conditioned on family signal activity. The Radar to Market Landscape bridge carries the public module id only, never a family, series, or market identifier.
Navigation
- Market Landscape now offers a compact Related intelligence block: explore published signals, see how published signals resolved, and explore Opportunity Radar (Power)
- Opportunity Radar carries the same related-intelligence navigation, including the generic historical Track Record link
- Opportunity Radar detail can open the current Market Landscape structure for that module
- Market Landscape supports a module filter in the URL, applied as filtering only
Clarity
- Market Landscape explicitly clarifies that structural activity does not imply a published signal exists
- Market Liquidity page description no longer enumerates a stale module list
Cross-Surface Navigation Between Landscape, Radar, and Track Record
Market Landscape, Opportunity Radar, and Track Record now offer generic navigation to each other. Links are tier-invariant and disclose no signal activity.
Key Highlights
A coherent journey without new disclosure
Structural discovery, live opportunity context, and resolved performance are now reachable from one another using only navigation. No per-family or per-signal deep links were added, so no protected activity can be inferred from a link.
Navigation
- Market Liquidity footer now links to Opportunity Radar
- Opportunity Radar now links to Published signals, Track Record, and Market Landscape
- All cross-links render identically for every tier and are never conditioned on family signal activity
Clarity
- Market Landscape states plainly that a structurally active family can have zero published signals
Homepage Confidence-State Hierarchy Tightened
The Five Confidence States explainer now continues the Console workflow in a more compact homepage section. No analytical behaviour changed.
Key Highlights
Confidence outputs in context
The five states now explain how the Console expresses returned confidence instead of appearing as a late-page appendix.
Homepage
- Five Confidence States moved directly beneath the Console workflow
- The five-state visual and locked score values are preserved in a shorter presentation
- Homepage vertical hierarchy is tightened with no analytical behaviour change
Homepage Product Positioning Clarification
Homepage information architecture and copy clarification only. No entitlement, pricing or analytical behaviour changed.
Key Highlights
Clearer product story
The homepage now explains what QSE observes, where published opportunity context lives, and how published signals are verified.
Homepage
- Market Landscape, Opportunity Radar and Track Record are presented as a connected market intelligence journey
- Market Landscape tier copy reads "Free discovery · Pro+ advanced views · Power full entitled depth" so Pro and Power depth are not implied to be identical
- Edge Spotter public viewing availability is stated clearly: published signals are free to view, Power adds advanced intelligence
- Market structure telemetry is repositioned as supporting context beneath the journey
- No product entitlement, calculation, disclosure or backend behaviour changed
Homepage Product Positioning Corrected
The homepage now presents the market intelligence journey and states Edge Spotter tier availability accurately. Presentation copy only, with no entitlement, pricing or behaviour change.
Key Highlights
Observe, surface, verify
Visitors can now see what QSE observes across market families, where published opportunities emerge, and how published signals performed.
Homepage
- Added a market intelligence journey covering Market Landscape, Opportunity Radar and Track Record
- Edge Spotter is no longer labelled "Power tier"; published signals are free to view and Power adds advanced intelligence
- Market structure telemetry now links through as "Explore Market Landscape" on the existing liquidity route
- Opportunity Radar is described as decision context on top of published Edge Spotter signals
- Trust methodology link now points to the About page
- No new fetches, polling, entitlement, disclosure or calculation changes
Market Landscape Tier Labels Clarified
Family Detail locked rows now communicate Pro as the minimum tier without implying that Pro and Power provide identical signal-count depth. Presentation and documentation only.
Key Highlights
Minimum tier, not equal depth
The Pro+ label names the entry tier while preserving the distinction between Pro disclosure-safe activity and Power exact entitled counts.
Market Landscape
- Locked advanced rows now use "Pro+" to mean access begins at Pro
- The sheet explains that Pro unlocks advanced analysis while Power adds full entitled signal-count depth
- Signal activity clarifies that Pro receives disclosure-safe activity and Power receives exact entitled family-level counts
- Static examples, server payload protection, disclosure rules, calculations and entitlements are unchanged
Market Landscape Locked-Row Wording Corrections
Verification pass follow-up. The locked Kalshi series example can no longer be mistaken for a live identifier, and the row label now names what it actually contains. Presentation and documentation only.
Key Highlights
Examples cannot be read as live data
Locked representative values are now visibly synthetic in format as well as label.
Market Landscape
- The locked Kalshi series example now reads "Example series ID" instead of a value formatted like a real Kalshi series identifier
- The row is labelled "Kalshi series ID", matching the series ticker it renders rather than implying a series title
- Canonical architecture entitlement matrix corrected: observed supply and change vs prior period are gated as heat lenses only, while their per-family values are public detail context for every tier
- Regression test added asserting no locked example is shaped like a Kalshi series identifier
- No entitlement, disclosure threshold, payload shaping, calculation or signal behaviour changed
Market Landscape Family Sheet, Consistent Tier Structure
The family detail sheet now shows the same row structure to every visitor. Rows a plan does not include are shown locked, with a clearly labelled representative example of the format. Protected values remain absent from the response, not hidden in the browser.
Key Highlights
Same structure for every tier
A signed-out visitor now sees which fields exist and which plan unlocks them, instead of simply seeing fewer rows.
Examples are unmistakably examples
Locked values are fixed presentation constants labelled "Example". Real protected values are never sent to an unauthorized browser.
Market Landscape
- Trajectory, Failure state, Edge Spotter signal activity and Kalshi series now always appear as rows, locked and labelled "Pro and Power" when the viewer is not entitled
- Locked rows carry a fixed representative example, marked inline as "Example", so the format and meaning of the field are understandable without disclosing any real value
- Signal supply is deliberately conservative: unentitled viewers see a qualitative example only, never an example count, and never an implication that the selected family has signal activity
- Examples are presentation constants and are never derived from live, hidden or protected data
- No change to Market Landscape calculations, structural-state logic, lens definitions, disclosure thresholds, entitlements or signal behaviour
Market Landscape Glossary & Documentation Corrections
The public glossary now carries the Market Landscape vocabulary, and the Economics module description has been corrected. Documentation only: no engine, classifier, pricing or entitlement behaviour changed.
Key Highlights
One Vocabulary, One Meaning
Glossary wording mirrors the Market Landscape term registry, so the surface and the reference cannot drift apart.
Structure Is Not Opportunity
Every Landscape entry restates that structural activity is market-structure observation, never an edge, probability or recommendation.
Economics Described Accurately
The Economics module is no longer described as a sports module with a 30-factor taxonomy, and Chemical Exposure is no longer listed among sports taxonomies.
No Behaviour Changed
Documentation only. No analytical logic, structural-state logic, thresholds, lenses, entitlements, signal-disclosure rules, QSE behaviour or Edge Spotter behaviour changed.
Glossary
- New Market Landscape category covering family, class, observation, observed supply, marketability, liquidity formation, structural state, evidence maturity, lenses, windows and signal supply
- Structural State entry states plainly that states are computed from observed supply and marketability and how they changed against the previous equal-length window
- Newly Observed and Insufficient History documented separately because both are easily misread as momentum
- Marketability disambiguated: Marketability (signal) for Opportunity Radar wording, Marketability (Market Landscape) for the share of observed books
- Market Formation (72h rank) disambiguated from the window-scoped Liquidity Formation lens
- Documentation search now derives its glossary entries from the same dataset the Glossary renders, so the two cannot drift
- Reciprocal navigation added between the Glossary and About Market Landscape
Documentation Correction
- Economics module was described with sports wording and a 30-factor taxonomy; it uses a locked 25-factor macro taxonomy
- Economics description now notes that certain policy-action claims, such as Fed rate decisions, are deliberately failed closed rather than scored
- Factor Taxonomy entry now distinguishes 30-factor sports taxonomies from the Economics 25-factor taxonomy
Market Landscape State Clarification
A documentation correction. The v1.30.0 notes described what Market Landscape structural states are computed from in a way that understated the role of the prior-window comparison. Released entries are immutable, so the correction is published here rather than by rewriting v1.30.0.
Key Highlights
Correction, Not A Rewrite
The v1.30.0 entry is left intact per version governance. This entry carries the corrected wording.
Change Over Time Is Part Of State
Emerging, Heating Up, Cooling, Fading and Dormant all describe movement against the previous equal-length window, not a single-window reading.
Behaviour Unchanged
This release is wording only. Market Landscape computes exactly what it computed before.
Documentation Correction
- Clarifies the v1.30.0 statement "States are computed from observed supply and marketability only"
- Corrected description: states are computed from observed supply and marketability, and how they changed against the previous equal-length window
- About Market Landscape now describes structural states the same way, including that marketability participates alongside observation counts
- No change to structural-state logic, thresholds, lenses, windows, entitlements or signal-disclosure rules
About Market Landscape documentation
A dedicated public explainer for Market Landscape, so the deeper education lives in documentation rather than inside the working analytical surface.
Key Highlights
Documentation Outside The Surface
The deeper explanation of Market Landscape now lives on its own page, keeping the working analytical surface uncluttered.
Plain-Language Interpretation
Families, evidence, heat, windows, lenses and structural states are each explained in ordinary language, including what they do not mean.
Landscape Versus Edge Spotter
A direct comparison makes clear that structural prominence is not a signal, and that a family can be prominent with zero published signals.
Documentation
- New About Market Landscape page explaining families, evidence, heat, windows, lenses and structural states in plain language
- Explicit treatment of Liquidity Formation, which reads as forming or immature liquidity rather than better liquidity
- A dedicated comparison of Market Landscape against Edge Spotter, including that a family can be prominent with zero published signals
- Product-level explanation of why family-level signal activity is sometimes coarsened or withheld
- Listed in the Edge Spotter documentation group in both desktop and mobile navigation, with a contextual link from the live Market Landscape surface
Market Landscape
A new interactive discovery surface inside Market Liquidity. Market Landscape lets you explore how prediction-market families are developing across the Kalshi order books QSE observes: which families are appearing, thickening, thinning, or going quiet. It describes market structure. It is not a signal, a probability, or a recommendation.
Key Highlights
Discovery, Not Prediction
Market Landscape shows where market structure is forming and fading across the observed corpus. It does not show where QSE sees edge, and it does not preview upcoming signals.
Honest With Sparse Data
Families with limited history are labelled as such instead of being given a confident-looking state. Evidence maturity is shown separately and is never folded into the heat colour.
Free Discovery, Deeper Analysis on Pro
Everyone can explore the landscape and open any family. Pro and Power add the extra time windows and the advanced analytical lenses.
New Surface
- Market Landscape section added to the Market Liquidity page, open to everyone including signed-out visitors
- Family-level heat visualization, where colour carries the selected analytical lens and every family occupies an equally weighted tile
- Organised as Module → Market Class → Family, so you can move from a sport or subject area down to an individual market family
- Family drilldown panel with observed supply, marketability, formation activity, change versus the prior period and structural state, opening instantly with no extra load
- Mobile-first layout with a compact list view, tap-accessible explanations and no horizontal scrolling
Structural States
- Every family is described by an observed structural state: Newly Observed, Emerging, Heating Up, Active, Established, Cooling, Fading or Dormant
- States are computed from observed supply and marketability only. They never describe profit, predicted outcomes, or signal correctness.
- Families without enough history are shown honestly as Insufficient History rather than being given a state they have not earned
- Newly Observed is a statement of presence, not an evidence claim, and is never shaded as if it were dense
- Tap-accessible state and term definitions throughout, including a scrollable state-definitions panel built for small screens
Lenses, Windows and Navigation
- Analytical lenses: Liquidity Formation and Marketability are available to everyone; Observed supply, Change vs prior period, Trajectory, Failure state and Signal supply are available on Pro and Power
- Time windows: a 72-hour view for everyone, with 24-hour, 7-day and 28-day views on Pro and Power
- Search across family names, plus module, market class and structural state filters
- Quick filters for common questions such as families heating up or newly observed
- Change figures are withheld unless both the selected window and the previous equal-length window carry enough observations to be honest
Naming and Permissions
- Family names use Kalshi's own series title where one exists, then a deterministic readable derivation, and never an invented name
- Signal-related information respects your plan permissions and is shaped before it ever leaves the server
Opportunity Radar Drawer Accuracy & Mobile Tooltips
Tightens the Opportunity Radar drawer so Related Opportunities, persistence wording, and Position Review context accurately describe what the system is doing. Adds tap-friendly tooltips on every climate card and drawer panel for iPhone and small-screen use.
Key Highlights
Honest Drawer Copy
Persistence and PEM panels no longer imply per-signal continuous re-evaluation. The drawer now distinguishes publication-gate clearance from auto-trader position review.
Strict Cluster Scoping
Related Opportunities can only ever surface siblings inside the same module and ticker family, eliminating cross-module bleed.
iPhone-Friendly Tooltips
Every Radar climate card and drawer section opens on tap instead of hover, making the entire intelligence layer usable on mobile.
Fixes
- Related Opportunities are now strictly scoped to the same module AND ticker family. A rare cross-routed ticker family could previously surface a sibling from a different module under a General opportunity.
- Cluster counts in the edge function are now keyed on (ticker_prefix, module) so the "N other live signals share this event family" subline matches what the drawer lists.
- Edge Persistence panel wording corrected. "Newly emerged. Will be re-evaluated each pipeline run." conflated publication-gate behavior with Position Exit Manager review and was replaced with: "First time this edge has cleared the publication gates. Future runs may or may not re-publish it."
- Position Review (PEM) panel now explicitly states that PEM only reviews opportunities the auto-trader has taken a position in, and that absence of a review does not imply rejection.
- Subline grammar fix: "1 other live signal share this event family" → "1 other live signal in this module shares this event family."
Mobile UX
- Tap-to-open Popover-based InfoTooltip added to every Opportunity Radar climate metric (Live edges, Median edge, Best edge, Modules active) and every drawer section (Lifecycle, Edge persistence, Liquidity, Module performance, Position review).
- Hover-only Tooltip primitives are no longer used on user-facing Radar surfaces.
Opportunity Radar Intelligence Layer
Power-tier flagship surface that turns every currently-published Edge Spotter signal into a live polar view with edge persistence, lifecycle, marketability, module performance, related-opportunity discovery, and Position Exit Manager context in one drawer. Reframes Power around the decision layer rather than data export.
Key Highlights
One Decision Layer, Live
Every published edge appears on a single polar view with the context needed to act on it — persistence, lifecycle, liquidity, module performance, and related opportunities — without leaving the page.
Persistence You Can See
Edge persistence telemetry surfaces when an edge first cleared the publication gates, how long it has been continuously live, and how many times it has been re-published.
PEM Context Where It Matters
When the auto-trader holds a position in an opportunity, the latest Position Exit Manager review (Hold / Trim / Exit) is shown for transparency. Absence of a review means no position was taken — not a rejection.
Power = Better Decisions
Every tier still sees the same published signals. Power adds the live decision layer on top: Radar, persistence, lifecycle, marketability, module performance, and related-opportunity discovery.
New Surface
- Opportunity Radar — live polar visualization of every published Edge Spotter signal (radius = time-to-close, dot size = edge magnitude, color = YES/NO, spoke = module)
- Proposition-first leaderboard replaces serialized market identifiers across the Radar surface
- Signal drawer consolidates lifecycle, persistence, liquidity, module performance, related opportunities, and PEM context in one place
- Module filtering on the radar with live counts
- Advanced telemetry disclosure: collapsed raw signal_id and market_id panel for power users
- "How to read the radar" expandable explainer with deep links to glossary terms
Intelligence Layers
- Edge persistence — first-seen timestamp, continuous lifetime, and republication count for each published edge
- Lifecycle intelligence — Early / Mid / Late window classification per signal
- Marketability context — human-readable liquidity translation in the drawer
- Module performance context — module hit-rate band shown in Academic Tier framing alongside each signal
- Related-opportunity discovery — cluster siblings (same module + ticker prefix) and module neighbours surfaced in the drawer
- Cluster intelligence — count of live signals sharing the same event family
- PEM decision context — latest Hold / Trim / Exit review surfaced for transparency (not advice)
Navigation & Discoverability
- Opportunity Radar is a first-class entry in desktop and mobile navigation alongside Console, Signals, Track Record, and Liquidity
- Dedicated Opportunity Radar card on the homepage
- Cross-surface CTAs from Signals, Track Record, and the Power card on the Pricing page
- /opportunity-radar added to sitemap.xml
Glossary Expansion
- New entries: Opportunity Radar, Edge, Published Signal, Edge Persistence, First Seen, Continuous Lifetime, Republication Count, Lifecycle, Lifecycle Status, Early/Mid/Late Window, Marketability, Marketability Rate, Liquidity Context, Module, Module Performance Context, Academic Tier, Related Opportunity, Cluster, Position Exit Manager (PEM), Position Review, Opportunity Intelligence Layer
- Each glossary entry now has a stable #slug anchor for deep linking from product surfaces
Power-Tier Reframing
- Pricing, Signals, and Track Record copy reframed around the intelligence layer (decision context) rather than data export
- Power now leads with Opportunity Radar, edge persistence, lifecycle context, marketability, module performance, related-opportunity discovery, and PEM context
- CTA microcopy aligned across surfaces: "Better decisions: Opportunity Radar, edge persistence, lifecycle context, plus market IDs, exports, and RSS."
Public Market Liquidity Page (Historical Reconstruction)
Historical reconstruction. Introduces a public, module-level view of Kalshi market liquidity that Edge Spotter actually sees during scans. Adds a dedicated /liquidity page, a homepage teaser, a 28-day corpus trend, and a methodology accordion. Copy-only and read-only — no changes to publication gates, pipeline math, or signal generation. Original release date was not captured in repository history.
Key Highlights
Market Structure, In Public
For the first time, anyone can see the liquidity Edge Spotter actually observes per module — not a vendor-reported number — using the same data that informs scan eligibility.
Sample-Gated Honesty
Modules that have not accumulated a statistically meaningful number of observations show "Building Sample" instead of a premature grade.
Not A Prediction Metric
Liquidity is a market-structure observation, not a Track Record statistic. The page is explicit about that distinction in its methodology accordion.
New Surface
- Public /liquidity page — module-level liquidity rate and letter grade (A/B/C/D), sample-gated with a "Building Sample" state for modules that have not yet accumulated enough observations
- Homepage liquidity teaser with dynamic wording covering all active modules
- 28-Day Corpus Trend chart showing how marketability has evolved over the most recent observation window
- Methodology accordion explaining what is and is not counted, sample gating, and why liquidity is a market-structure metric rather than a prediction-accuracy metric
Liquidity Intelligence
- Module-level liquidity_rate and liquidity_grade derived from real scan observations
- Per-module count of signals published in the last 28 days surfaced alongside the liquidity grade
- Sample-gated grades — modules below the sample threshold show "Building Sample" instead of a misleading grade
Discoverability
- Market Liquidity added as a first-class entry in desktop and mobile navigation
- /liquidity added to public/sitemap.xml
- Cross-linked from the homepage teaser and the About / Edge Spotter pages
Public-Safe Doctrine
- Module-level only — no prefixes, run IDs, costs, skip counts, boosts, or scan cadence exposed publicly
- Sourced exclusively from edge-spotter-liquidity-public; no admin or internal telemetry surfaces
- Read-only — no changes to liquidity gate math, publication rules, or pipeline behavior
Glossary
- Entries added/clarified for Liquidity Rate, Liquidity Grade, Marketability, and the public Liquidity surface
Chemical Exposure Reliability & Substance Intelligence
Refinements to how Chemical Exposure interprets exposure scenarios, recognizes substances, and evaluates context. Improvements increase consistency for real-world exposure situations while preserving safety-first behavior and strict public response protections.
Key Highlights
Better Substance Recognition
Expanded recognition and interpretation of chemical identities and common naming patterns to improve consistency across real-world exposure scenarios.
Smarter Exposure Interpretation
Improved handling of dose, route, duration, and contextual inputs so structured exposure situations are interpreted more consistently.
Safety-First Preserved
Safety protections remain unchanged. Uncertain, conflicting, or unsupported scenarios still resolve conservatively when appropriate.
More Reliable Real-World Scenarios
Refinements improve handling of practical household, workplace, environmental, and consumer-product exposure situations.
Reliability Improvements
- Improved consistency in how exposure scenarios are interpreted
- Better recognition of chemical identities and naming variations
- More reliable handling of route, duration, and exposure context
- Preserved fail-closed behavior for uncertain or unsupported scenarios
- No changes to public response structure, disclaimer protections, or other modules
Chemical Exposure Refinements
Improvements to how the Chemical Exposure module handles optional context inputs and recognizes common everyday substances. No changes to the public response shape, disclaimer flow, or other modules.
Key Highlights
Context That Counts
Optional scenario and context fields now contribute consistently to the assessment instead of acting purely advisory.
Safety-First Preserved
Context can refine the outcome within bounded limits but cannot bypass the module’s fail-closed behavior on uncertain or sensitive inputs.
Wider Substance Coverage
More common everyday substances are recognized by name, improving identity resolution without changing how results are produced.
Reliability Improvements
- Improved handling of optional context inputs for more consistent assessments
- Optional context can refine the outcome but cannot override safety-first behavior
- Broader recognition of common household, OTC, pesticide, cosmetic, and environmental substances
- Refinements to safety and validation logic; uncertain or sensitive inputs still resolve to sealed Unknown outputs
Chemical Exposure Module Launch
QSE adds Chemical Exposure as a structured safety and exposure information module. Access is gated by an explicit disclaimer acknowledgment, the public response is locked to a strict field allowlist, and uncertain or sensitive inputs return sealed Unknown outputs by design. Chemical Exposure runs a dedicated pipeline distinct from the standard QSE flow — see the Chemical Exposure Pipeline doc at /pipeline/chemical-exposure.
Key Highlights
Structured, Not Conversational
Chemical Exposure asks for substance, dose, route, and duration so QSE can return a calibrated label rather than a free-form opinion.
Disclaimer-Gated by Design
Every response is bound to the disclaimer version the user accepted, and stale acknowledgments are rejected before the model runs.
Sealed Outputs Under Uncertainty
Crisis-style and out-of-scope inputs intentionally resolve to Unknown so the module never improvises in high-stakes situations.
Module Launch
- Chemical Exposure available to authenticated users after accepting the latest disclaimer
- Structured input model: substance identity, dose or concentration, route, and duration or frequency
- Crisis and out-of-scope queries return sealed Unknown outputs rather than guidance
- Coverage banding shapes how confidently the module responds based on input completeness
Disclaimer & Access
- Latest disclaimer version (v2) must be acknowledged before any response is returned
- Stale or missing acknowledgment is rejected with a precondition required response
- Disclaimer text is delivered with every public response so the user always sees current terms
Public Payload Allowlist
- Responses contain only: final_label, template_fragment_id, disclaimer_text, disclaimer_version
- No rationale, factor breakdown, diagnostics, or raw model output is exposed
- Schema is enforced at the response builder so additions cannot leak by accident
Fail-Closed Safeguards
- 100-case shadow validation passed all gates on the live code path before launch
- Unauthenticated requests fail closed
- Continuous safeguard checks run on a daily cadence and on demand
- Any safeguard failure is recorded for review without affecting the public response shape
General Module Reliability Improvements
Improves how the General module handles uncertain or low-information questions. More conservative confidence behavior in ambiguous scenarios, with no changes to sports modules or other system components.
Key Highlights
Calmer Under Uncertainty
When a question lacks strong supporting evidence, the General module now responds with more measured confidence rather than overcommitting.
Strong Signals Preserved
Clear, well-supported propositions continue to receive decisive Yes/No evaluations as before.
Scope Limited to General
Sports modules (NBA, NFL, NCAA MBB/WBB, MLB, Soccer) and Edge Spotter are unaffected by this update.
Reliability Improvements
- Improved handling of uncertain or low-information questions
- Reduced overconfident outputs in ambiguous scenarios
- More conservative and realistic confidence behavior
- No changes to sports modules or other system components
Soccer Module Activation & Draw-Aware Tuning
Fully activates the Soccer module with a locked 30-factor taxonomy, binary match-winner evaluation, tiered draw-aware dampening, and multi-prefix league routing covering ~13 competition prefixes.
Release Gate Status
QA Test Pack: 41/41 passed
Key Highlights
Eighth Active Module
Soccer joins General, NBA, NFL, ECON, NCAA MBB, NCAA WBB, and MLB as a fully active module with its own locked 30-factor taxonomy.
Draw-Aware Intelligence
Phase 2 tuning applies tiered dampening based on draw probability, preventing overconfidence in high-draw leagues.
Global Pick'em Fix
Removed incorrect pick'em phrasing from all sport modules. Spread=0 now outputs a clean win statement across all modules.
Soccer Module Activation
- Soccer added to ACTIVE_MODULES and QSE_MODULE_ALLOWLIST, no longer a placeholder
- Binary evaluation model: "Will Team X win?" — Draw outcome handled implicitly as No
- moduleActivitySnapshot reports soccer=true at metadata top-level (SSOT)
- Gate B suppression active for spread and total bet types (match-winner only)
- ~13 league-specific ticker prefixes routed (e.g. KXEREDIVISIEGAME, KXPREMIERLEAGUEGAME)
Draw-Aware Dampening (Phase 2 Tuning)
- Tiered dampening by draw probability: Low (<22%): ±1 allowed; Moderate (22–28%): ±0.5; High (>30%): aggressive to 0 or 0.5
- Soft Confidence Recovery: up to 3 factors promoted from 0 to ±0.5 if directionally consistent
- System prompt prioritizes xG/xGA, goalkeeper impact, defensive structure, and fixture congestion
- Safety guardrail: auto-disables tuning if signal volume increases >40% and hit rate drops >3%
Factor Taxonomy & Governance
- Locked 30-factor Soccer taxonomy (v1.0) covering team form, league context, and tactical factors
- Strict 12 non-zero factor cap enforced via deterministic pruning
- League-tier context weighting for top-flight vs. lower divisions
- Fixture congestion and rest-day differentials factored into evaluation
Regression Lock
- Soccer activation tests: module registry, console integration, router isolation
- Pick'em phrasing globally removed from all sport modules (spread=0 → simple win statement)
- No runtime output contains "pick'em" in any module or bet type
Bracket Self-Heal & Orchestration Hardening
Resolves stale game state after First Four completion and partial bracket fills. Self-healing persistence ensures Round of 64 and downstream rounds always reflect the current team_slots on load, with corrected nodes piggybacked on the next save.
Key Highlights
No More Stale TBD After Reload
Bracket games that depend on First Four winners or completed upstream rounds now always show correct team names and "Ready" status after page refresh.
Self-Healing Without Extra Writes
Corrected game states piggyback on the next normal save operation, avoiding unnecessary database writes on every load.
9 New Regression Tests
Full chain propagation (FF→R64→R32→S16), purity guarantees, and piggyback persistence verified with deterministic assertions.
Self-Healing Persistence
- Round-ordered multi-pass recompute corrects stale dependency states on every bracket load
- R64 games auto-resolve from team_slots (including First Four winners) — no more "TBD" after reload
- Downstream rounds (R32, S16, E8, F4, Championship) chain-heal from completed feeder games
- _selfHealDirty flag piggybacks corrected game_nodes on next normal save — no extra write on load
Orchestration Integrity
- activeRunRef pattern prevents stale closure overwrites during long-running async fills
- Incremental saves always read from ref — eliminates state drift between batches
- Legacy status normalization: "failed" and "validated" with actionable games → "action_needed"
- Debug telemetry gated behind localStorage flag (bracket_debug=1) — zero noise in production
Testing & Regression Coverage
- 9 new regression tests across 3 test files for self-heal, chain propagation, and piggyback persistence
- E2E chain test: FF→R64→R32→S16 verifies correct round-ordered healing with determinism assertion
- Purity test: recompute does not mutate input, same input → same output guaranteed
- _selfHealDirty piggyback test: verifies corrected nodes persist without explicit game_nodes in update
Console Integration
- NCAA MBB console module now links directly to Bracket Mode via inline CTA
- Admin docs updated with Bracket Mode architecture and self-heal documentation
Official NCAA Auto-Populate Team Import
Power-tier users can now auto-populate March Madness brackets with one click. The system fetches the official 68-team NCAA men's tournament field, validates the data fail-closed, and writes it directly into the bracket SSOT.
Key Highlights
One-Click Bracket Population
Power users can auto-fill the full 68-team March Madness field from the official NCAA source instead of entering teams manually.
Fail-Closed Import Safety
If the NCAA source cannot be parsed safely, the system refuses to import rather than partially populating. No silent data corruption.
43 Total Import Tests
31 unit tests + 12 rendered page tests cover normalization, validation, UX flows, gating, and non-mutation guarantees.
Official NCAA Import
- New "Import Official NCAA Bracket" action in Bracket Mode — one-click auto-populate
- Server-side bracket-import edge function fetches from NCAA Data API (primary) or NCAA Bracket Page (fallback)
- Fail-closed validation: rejects partial, malformed, or ambiguous bracket data
- Strict team-count enforcement: exactly 68 teams (with First Four) or 64 (without)
Normalization & Validation
- normalizeOfficialBracketImport() maps raw NCAA data to deterministic slot assignments
- Duplicate-team detection across all 4 regions and First Four
- Per-region seed completeness checks (seeds 1–16)
- First Four structure validation with region/seed mapping
- Team slug generation for stable team_id references
Bracket Application
- applyOfficialImportToBracket() updates team_slots while preserving game graph structure
- Downstream results reset on import: champion, evaluation refs, and game nodes cleared
- Overwrite confirmation dialog when bracket already has teams or results
- Import provenance panel shows source strategy, timestamp, and season year
Security & Testing
- Power-tier gating enforced at UI button, action handler, edge function, and RLS
- 31 unit tests for normalization, slot mapping, and fail-closed behavior
- 12 rendered RTL tests for import UX: gating, confirmation, success/failure flows
- No partial mutation on import failure — proven via immutability tests
MLB Module Activation & S8 Calibration Hardening
Fully activates the MLB module with a locked 30-factor taxonomy, deploys S8 post-aggregation calibration with admin-only telemetry, fixes the build fingerprint to a deterministic constant, and locks all invariants with regression tests.
Release Gate Status
QA Test Pack: 17/17 passed
Key Highlights
Seventh Active Module
MLB joins General, NBA, NFL, NCAA MBB, NCAA WBB, and ECON as a fully active module with its own locked 30-factor taxonomy.
S8 Calibration Deployed
Post-aggregation shrink mitigates overconfidence for MLB signals, with confidence-tiered k-factors and high-edge suspect flagging.
Invariants Locked
17 regression tests lock MLB activation, S8 telemetry shape, build fingerprint, and public leakage prevention against future drift.
MLB Module Activation
- MLB added to ACTIVE_MODULES and QSE_MODULE_ALLOWLIST, no longer a placeholder
- deriveQseModule("mlb") routes to the full 30-factor MLB taxonomy executor
- moduleActivitySnapshot reports mlb=true at metadata top-level (SSOT)
- Offseason confidence capping (≤0.49) and anchored-only gating active
S8 Calibration Engine
- Post-aggregation shrink: pEff_cal = clamp01((1-k)·pEff_raw + k·impliedPm)
- Confidence-tiered k-factors: k=0.50 (low), k=0.35 (mid), k=0.25 (high)
- MLB signals with |edge| > 20% rejected; 10–20% flagged as high_edge_suspect
- Safe Autotune bandit adjustable for steady volume (≥5 sigs/day)
Telemetry & Build Fingerprint
- S8 MLB telemetry keys persisted with TP↔LRR exact parity (shrink count, k-values, suspect count/samples)
- Admin-only: s8_mlb_* keys never exposed in public signal payloads (schema-level guarantee)
- edge_build_id uses deterministic EDGE_BUILD_ID constant, no "unknown_build" fallback
- Build fingerprint written to both throughput and live_run_report with parity
Regression Lock
- mlb_activation_invariants.test.ts: 10 tests covering module gate, S8 shape, TP↔LRR parity, build fingerprint, public leakage
- mlb_activation_test.ts: 7 tests covering router SSOT, ACTIVE/PLACEHOLDER sets, season-awareness
- moduleActivitySnapshot SSOT path confirmed at metadata top-level (not throughput)
- Zero incorrect query paths remain in codebase (repo-wide search verified)
NCAA MBB & WBB Modules: March Madness Readiness
Activates NCAA Men's Basketball (ncaamb) and NCAA Women's Basketball (ncaawb) modules with a shared 30-factor locked taxonomy, deterministic neutral-site pre-rule, Division I strict guard, and copy compliance enforcement.
Release Gate Status
QA Test Pack: 30/30 passed
Key Highlights
March Madness Ready
NCAA MBB and WBB modules activate just ahead of the 2026 tournament, covering both Men's and Women's Division I basketball.
Shared 30-Factor Taxonomy
Both ncaamb and ncaawb draw from a single locked NCAAB taxonomy with consistent factor structure, deterministic pruning, and shared governance.
Governance Hardened
Neutral-site rule, Division I gate, gender confirmation, copy compliance, and E2 metric fix all ship in this release.
NCAA Basketball Modules
- NCAA MBB (ncaamb) and NCAA WBB (ncaawb) fully active, both use shared 30-factor NCAAB taxonomy (v1.0)
- Deterministic neutral-site pre-rule: Factor 25 forced to 0 for tournament/neutral-site context
- Stable pruning precedence: Market Anchors (max 4 from F1–6) → Availability (F10, F28) → Volatility (F29 > F12 > F30)
- Division I strict guard: LIVE publish requires isDivisionI=true (KXNCAAMB, KXNCAAWB, KXMARMAD tickers)
- Gender confirmation gate: genderConfirmed=true required (explicit ticker/title tokens)
- Copy compliance: "probability" and "predictive" terms blocked from public outputs
Governance & Factor Rules
- Factor 30 (Blowout Risk) replaces Factor 12 only if |F30|=1; moderate blowout (|F30|=0.5) permitted when F29 inactive
- E2 governance metric fix: f30_aggressive_count only flags true redundant overlap (F30 survives at |score|≠1 AND F29 also active)
- Soft calibration intent guard on /ncaab-volatility-calibration endpoint (non-breaking, logging-only)
- NCAAB executor core shared by both men's and women's wrappers, single source of truth
- ≤12 non-zero factors enforced via deterministic pruning; 30-factor taxonomy locked at v1.0
Router & Admin
- Router updated: ncaamb and ncaawb added to ACTIVE_MODULES; PLACEHOLDER_MODULES disjoint invariant maintained
- Admin module panel updated: NCAA MBB and NCAA WBB shown as active (v1.19)
- Admin navigation: NCAA QA test pack available under QA & Testing
- Module selector UI: touch target sizing improved for iOS (min-h-[72px], touch-manipulation)
ECON Module, Ledger Integrity & Version Reconciliation
Enables the Economics (ECON) module with 25-factor locked taxonomy for macro event analysis, normalizes capital_ledger event_type to strictly lowercase values, and reconciles version numbers across the entire site.
Release Gate Status
QA Test Pack: 17/17 passed
Key Highlights
Fourth Active Module
ECON joins General, NBA, and NFL as a fully active module with locked 25-factor taxonomy for macro event markets.
Ledger Constraint Integrity
Capital ledger event_type is now strictly lowercase with defense-in-depth via CHECK constraint + coercion trigger.
17/17 Allocator Tests
Full capital_allocator test suite passes after trigger and constraint changes. Zero invalid ledger rows.
Economics Module
- ECON module fully enabled and routable: covers equity indices, rates, and volatility/macro events
- Locked 25-factor taxonomy (v1.0) for CPI, FOMC, GDP, NFP, PCE, unemployment, and more
- Negative-context guard blocks ECON routing for political keywords (approval, favorability, candidate)
- Substring safety: bare terms like "russell" excluded in favor of specific indices (Russell 2000)
- Admin QA test pack (AdminEconQATestPack) validates routing, blocklist, and output structure
- Episodic supply detection with econ_available_active telemetry flags (admin-only)
Capital Ledger Normalization
- event_type CHECK constraint now strictly allows: fill, settlement, adjustment, initial
- Backfill migration converts all existing uppercase values to lowercase
- coerce_capital_ledger_event_type() trigger auto-lowercases on INSERT/UPDATE
- write_capital_ledger_on_fill() updated to emit lowercase event_type
Settlement Trigger Hardening
- write_capital_ledger_on_settlement() rewritten with correct guard clause
- Now checks settled_win/settled_loss instead of settled/voided
- Lowercase settlement event_type in all INSERT paths
- Idempotent ledger_event_key prevents duplicate entries
Version Reconciliation
- APP_VERSION bumped from v1.2 → v1.18 to match changelog phase numbering
- Edge Spotter version unified to 0.1 across all edge functions and config
- Eliminated version drift between edge-spotter-run (0.1.0) and edge-spotter-qse-eval (2.0.0)
- Version inventory sweep documented across entire codebase
Track Record Integrity & Admin Gating
Introduces Pattern A track record decomposition with server-side integrity auditing, liquidity gate telemetry invariants, and strict admin-only gating for diagnostic data.
Release Gate Status
QA Test Pack: 229/229 passed
Key Highlights
Audit-Grade Integrity
Track record now decomposes into Pattern A categories with server-side proof. Every signal is accounted for with no double-counting.
Zero Leakage
All diagnostic and telemetry fields are strictly admin-gated. Public endpoints pass recursive leakage scans and allowlist tests.
229 Deno Tests
Full edge-spotter-run test suite passes with 229 tests covering golden fixtures, router isolation, and security invariants.
Track Record Pattern A
- Shared computeTrackRecord module extracted to _shared/trackRecord.ts with adminMode toggle
- Pattern A decomposition: total = (correct + incorrect) + (void + cancelled + lookahead) + pending
- Public endpoint hardcodes adminMode=false, no integrity_audit leakage
- Admin get_admin_track_record action with 7-field integrity_audit object
Liquidity Gate Telemetry
- Added liquidity_unmarketable_other_failed_count to pipeline metadata
- Invariant proven: checked = passed + bid_floor_failed + unmarketable_other + activity_failed
- Stale-dropped tracked separately (pre-checked); activity_missing_fields informational only
- All telemetry fields blocked from public payloads via allowlist tests
Admin Security Gating
- verifyAdminCaller() enforces 401/403 for non-admins on all admin actions
- integrity_audit contains: total_count_before_exclusions, included_count, excluded_void/cancelled/lookahead, pending, missing_outcome
- Public spoof attempts (adminMode:true in body) verified to have no effect
- No new public endpoints or response shape changes
Domain Detection
- Golden fixture tests updated: 5 fixtures now expect ECON domain (GF01, GF13, GF15, GF-SUBSTR-01, GF-PREFIX-05)
- Domain detection accuracy improvements for economic/political markets
NFL Module & Dynamic Documentation
Activates the NFL sports module with locked 30-factor taxonomy and introduces registry-driven documentation that automatically updates as modules are added.
Release Gate Status
QA Test Pack: 259/259 passed
Key Highlights
Second Sports Module
NFL joins NBA as a fully active sports module with identical capabilities and a sport-specific 30-factor locked taxonomy.
Future-Proof Documentation
Public-facing docs now update automatically when modules are added or activated, no code changes required.
Phase 16 Complete
NFL Enablement phase closed with all tests passing, establishing the pattern for future sport module activations.
NFL Module
- Locked 30-factor taxonomy covering team performance, market signals, and matchup dynamics
- Full parity with NBA module: game picker, bet type selection, calibration toggle
- Live schedule integration via sports data providers
- Router-aware: Auto Detect correctly routes NFL-related propositions
Dynamic Documentation
- Glossary terms generated from MODULE_REGISTRY, no manual updates needed
- DocSearch indexes all modules dynamically
- Auto Detect definition reflects current active modules (General, NBA, NFL)
- Factor Taxonomy description lists all sports modules automatically
Router Improvements
- NFL added to ACTIVE_MODULES set in router-core.ts
- Placeholder isolation maintained: coming_soon modules fail-closed to General
- Router isolation tests updated and passing (259/259)
Initial Release
The Quantum State Engine v1.0 establishes a rigorous, non-predictive decision framework for structured evidence evaluation.
Release Gate Status
QA Test Pack: 25/25 passed
Key Highlights
Probabilistic Confidence Framework
QSE outputs represent probabilistic confidence allocations across discrete states, with structured uncertainty modeling.
Epistemic Humility by Design
The mathematical ceiling (~53% maximum for any single state) ensures the engine never expresses absolute certainty.
Transparent Reasoning
Top contributing factors are disclosed with qualitative impact indicators, enabling users to understand the basis for each assessment.
Core Framework
- Five-state confidence allocation system: Yes, Likely, Unknown, Not Likely, No
- Deterministic Gaussian kernel for state probability mapping
- Maximum confidence ceiling (~53%) ensuring epistemic humility
- Directional Aggregation interpretive view for quick assessment
General Module
- Proposition-first evaluation framework for binary claims
- Auto-generated factor analysis with 30-factor normalization
- Support semantics with polarity-aware scoring
- Natural language proposition generation and validation
NBA Module
- Locked 30-factor taxonomy covering market, roster, performance, and matchup signals
- Non-zero factor constraint (≤12) for signal clarity
- Optional calibration assist analyzing comparable games
- Integrated game selection from live schedule data
Auto-Routing
- Intelligent module detection based on proposition content
- Manual override invariant: user selections are always preserved
- Public router decision badge with reason disclosure
- Seamless fallback to General module for unrecognized domains
Security & Privacy
- Strict public/admin visibility separation
- Server-side diagnostic gating via role verification
- No exposure of weights, internal scores, or engine math
- RLS-protected data access with fail-closed defaults
Documentation
- Comprehensive methodology documentation in About QSE
- Technical appendices on confidence calculation and ceiling
- Glossary of terms and Pipeline visualization
- Site-wide disclaimers and compliance positioning