English 简体中文 繁體中文 日本語 한국어 العربية Español Português Français Deutsch Italiano Русский
FWorld·Terminal Help Back to terminal
FWorld · Terminal · Documentation

FWorld Terminal — User Manual

Institutional-grade honest market intelligence and self-audit tooling · The complete guide to Web and CLI

Manual v1.0 · covers terminal contract /api/v1 · CLI 1.2.0

1 · Five-minute start

  1. Open fworld.gammalegion.org/terminal.html — no sign-in required to see the Consensus Divergence Radar (RADAR), the Transparency Baseline Wall (BASELINE) and a 12-match free sample grid.
  2. Pick your language, timezone (UTC by default) and base currency in the top bar; your preferences are remembered.
  3. Click any match row — the right-hand drawer gives you Kelly position sizing and the any-line fair-price calculator (PRICER).
  4. Register and open the LEDGER: log your real bets and let three objective yardsticks tell you whether you beat the closing line long-term — this is the heart of the terminal.
  5. Quants: install the CLI with one line — curl -sSL https://fworld.gammalegion.org/cli/install.sh | sh — then run fworld auth login.
$ curl -sSL https://fworld.gammalegion.org/cli/install.sh | sh
$ fworld auth login
$ fworld lang               # en · zh_cn · zh_tw · ja · ko · ar · es · pt · fr · de · it · ru

2 · Product philosophy: what we sell, and what we never will

FWorld Terminal is a searchlight, not an oracle. We provide three things: facts (unretouched market data and baselines), tools (pricer, Kelly, tape replay, alerts) and audit (your own betting record measured against three objective yardsticks).

Our own model does not beat the closing line across the board — that number hangs on the BASELINE page for anyone to see. Any vendor claiming stable positive CLV across mainstream leagues is lying; any vendor unwilling to show you this number deserves the question: why not?

Things we will never do

  • Never sell "sure-win strategies", copy-bet signals, or profit promises of any kind;
  • Never display statistically unreliable results — under-sampled combinations are refused outright and labelled under-powered;
  • Never paper over missing data — markets with no closing line say so ("CLV not applicable"), and stale data hard-blocks the whole page;
  • Never share your betting records with anyone — ledger data never leaves this server.

In July 2026 we withdrew a candidate strategy with a +24.8% backtested ROI because it failed the "oracle-time" look-ahead audit — at bet time it was using information that did not yet exist. We deleted it rather than paint it into a pretty equity curve and sell it to you. The empty sandbox is that principle, made visible.

3 · Core concepts

Master this chapter and every number in the terminal becomes readable.

Model probabilities and distributions

Every match is re-inferred hourly by a Poisson / Dixon-Coles-class model, producing per-side goal rates λ, a 6×6 correct-score probability matrix, a total-goals distribution (PMF) and per-market probabilities. Every "fair price" in the terminal derives from these distributions.

EV (net expected value)

EV = probability × odds − 1. An EV of +5% means that, by model probability, the price returns 0.05 per unit staked in expectation. Caveat: EV is only as trustworthy as the probability behind it — see the honesty statement in the BASELINE chapter.

Fair odds

Fair odds are the price at which EV is exactly zero. The PRICER derives fair prices for any Asian handicap / totals / BTTS line from the score matrix (tail completed via Poisson λ); quarter-lines are split into two adjacent half-lines at half stake each.

CLV (closing line value)

CLV = your traded price ÷ closing price − 1. The closing line is the market's final consensus after absorbing all information; beating it long-term is the professional bettor's gold standard — it separates skill from luck earlier and more reliably than short-term P&L.

The three yardsticks: SP / CNS / PIN

The ledger scores every bet against three complementary rulers: SP = the platform closing price (raw, vig-inclusive); CNS = the 17-book σ-weighted, Shin-devigged fair consensus — the statistical yardstick, answering "did you beat the market's true probability"; PIN = the sharpest single book's raw closing price (vig-inclusive, actually tradeable) — the execution yardstick, answering "did you get a better price than the tradeable close". Only both perspectives together make a complete self-audit.

Devigging and sharpness

Bookmaker quotes embed a margin (the vig); devigging recovers the true implied probabilities. Sharpness = 1 − the tightest book's margin, ranging 0..1 — the higher, the sharper and more informative that match's market pricing.

Steam moves

When one book abruptly moves its price (implied-probability shift ≥ 1.5 percentage points) and other books follow within a 45-minute window, the event is recorded as steam. The TAPE page annotates exactly who moved first, who followed and with what lag — a purely descriptive market fact, not betting advice.

The Kelly criterion

f* = (p×o − 1) ÷ (o − 1) gives the log-growth-optimal fraction of bankroll. The terminal also shows half-Kelly (f*/2) — in practice, because probability estimates carry error, most professionals size at half-Kelly or below. f* ≤ 0 renders as "no edge": the price is not worth taking.

Wilson intervals and under-powered

Every rate-type conclusion (e.g. beat-close rate) ships with a Wilson 95% confidence interval. With insufficient sample (ledger verdicts n<30, sandbox n<50) the system refuses to draw a qualitative conclusion and labels the result under-powered — not a defect, but the line separating this terminal from "90% hit-rate" scam sites.

Absence semantics: a missing key means the ruler does not apply

The terminal enforces strict absence semantics: totals (OU) have no closing line (that market trades at the opening price; a closing trajectory structurally does not exist), so OU CLV appears nowhere — you will see "no comparable close" instead; future matches have no closing line yet, so the grid's CLV column shows "—". Read an empty cell as honesty, not as missing data.

Data freshness and the STALE hard-block

Every page and API response carries the inference timestamp and data age. If data goes more than 6 hours without refresh, the terminal greys out entirely under a red banner — "DATA STALE, do not bet on this data" — and the CLI refuses to emit once --max-age is exceeded (exit code 3). Stale data is never silently presented as fresh.

Guided walkthroughs — the terminal in pictures

Three end-to-end flows cover most of what you will do here. Follow the numbered steps left to right; on a phone they stack top to bottom.

A · Track a pick, then paper-trade it

From spotting a match to reviewing your record by day, month or quarter.

1Star a matchTap ★ on any grid row. Your pick is saved with the model's top call pre-filled — or just watch it.
2See it settleAfter the match, TRACK marks your call ✓ or ✗ and shows whether you were with the market or contrarian.
3Log as paperTap → paper to turn the pick into a paper trade: add odds and stake, keep the match, side and line.
4Read your statsPortfolio stats roll up prediction hit rate and paper ROI by day, month or quarter, with a PnL curve.

B · Read the model against the market

Where the two disagree — and how far you can trust it.

1Open the gridEach cell shows the model's recalibrated hit rate next to the de-vigged market probability.
2▲▼Spot a divergenceA ▲/▼ appears only when the gap clears the calibration gate — a genuine, material disagreement, never advice.
3Scan with RADARRADAR ranks cross-match consensus divergence: PIN against the σ-weighted 17-book CNS — pure market.
4Open the distributionDIST shows the whole probability shape — where the mass sits — flagged as structure, never a prediction.

C · Backtest a rule of your own

Test any idea across 178k settled matches — aggregate-only, honestly floored.

1Set conditionsIn BUILDER, stack filters: model probability, odds band, platform, line, kickoff month.
2Run itOne tap replays the full history. Fewer than the minimum matches and no statistics are released at all.
3Read ROI & drawdownBet count, hit rate with CI, ROI, the cumulative-PnL curve with its drawdown, and Sharpe.
4Beat the floorCompare against SANDBOX's zero-alpha baseline: blind flat-betting returns minus the margin. Did your rule beat it?

Everything you track and trade here is private and never leaves the terminal. Backtests replay the past and promise nothing about the future — every extra combination you try raises overfitting risk.

4 · Web terminal guide

4.1 Top bar

Left to right: brand (returns to the main site) · MODEL LIVE / STALE status lamp · REF PIN (the global reference baseline) · TZ timezone (UTC/local) · CCY currency (a unit label only — no FX conversion) · language · data-age stamp (inference time + model version) · account state · live UTC clock.

Live demo
MATCHAC MILAN · INTER
DISTO2.5 · 1.90
SIMn=42 · 61%
LEDGER→ AC · INT
Select a match once and every view retargets to it in sync — distribution, similar-match, ledger and combo all follow the same fixture, always shown by team name.

4.2 The data grid

Columns follow a fixed information hierarchy: matchup → [1] correct score (CS) → [2] half/full time (HT/FT) → [3] totals (O/U) → [4] 1X2 → [5] Asian handicap (AH) → CLV. Each cell shows the model's top pick with its probability; cells with net EV above +5% are highlighted green.

Data codes: H=home D=draw A=away O=over U=under; scores as 2-1; half/full as HH (home at HT / home at FT). The default view loads page one (100 matches) of a rolling three-day window; LOAD MORE paginates. Limited plans cannot paginate past their sample wall.

Abstention is the norm — read the grid accordingly

The percentage next to each pick is the recalibrated hit rate (p_cal) — the model's honest track record on similar beliefs, not its raw confidence. An honesty gate makes the model abstain on ~99% of selections; the banner above the grid shows today's abstention rate. The rare green-marked BET stances are the exception, highlighted precisely because they are rare — still not betting advice.

Where a BET stance comes from: every market has its own certification channel — a market's certified cells may emit BET only after its historical record passes a meta-gate audit (including a conformal threshold) on a million-row settled panel. Uncertified markets abstain permanently, even when the model privately leans. Certification can be revoked after a data incident and re-examined once fixed — so a market's stances may vanish for a stretch and later return; that is the gate working, not a malfunction. A stance is a paper/display signal, never a live-betting instruction.

Live demo
MATCHMODELMARKETBET
NAP · LAZ
ARS · CHE
PSG · LYOFA · 1X
BAY · DOR
POR · BEN
Most rows resolve to an empty BET column — the model agreeing with the market and abstaining. The rare gold signal is the only row it is asking you to act on.

Keyboard shortcuts

T sort by time · E sort by EV · C sort by CLV · / focus search · ↑↓ select row · Enter open drawer · Esc close drawer.

4.2b RESULT REPLAY — settlement review with hit marks

The toolbar's date navigator (◂ date ▸ · ● LIVE) rewinds the grid to any settled day inside your plan's history window. Every row shows the full-time score, and every displayed top pick is marked ✓ (correct) or ✗ (wrong) — settlement facts from the feed, never recomputed on the edge. Lined markets carry their line right in the cell (H +0.5, O 2.5): the line is part of the contract, and the ✓/✗ judges the pick at that exact line — H +0.5 can win on a draw, and the same pick at a different line is a different bet. Abstained cells keep their marks dimmed: the model showed a pick but explicitly refused to stand behind it.

The observation strip above the grid separates stances (non-abstained picks) from abstained cells: stances get a hit count with a Wilson interval, and below the configured minimum sample it honestly reports under-powered instead of a rate. It counts only the rows currently loaded — a page sample, never a track record. Misses are never filtered out.

Live demo
LIVE
GAE · WIL 2-0 12%H 78%H −0.5 47%
PSV · FOR 3-0 13%H 89%H +0.5 41%
GRO · UTR 1-1 14%A 60%A −0.25 39%
Flip between ● LIVE and a settled day: full-time scores appear and every displayed pick is marked ✓/✗ at its own line — note PSV: the 1X2 pick H loses on the 2-2 draw, yet AH H +0.5 wins the same match. The day replays as it actually settled, misses included.

MODEL × MARKET — the divergence read

When the model's calibrated probability (P_CAL) disagrees with the de-vigged market price on a liquid market, the terminal flags a small neutral divergence mark — but only when the gap survives the model's own calibration band (a Wilson interval around P_CAL). A market price inside that band reads as agreement; only a price outside it is a genuine disagreement. Both sides are de-vigged, so the comparison is apples-to-apples, and the sign only shows direction — never good or bad.

Where a price tape exists (1X2), a second line shows whether the consensus is drifting toward the model (confirmation — the kind of move closing-line value later rewards) or away (a warning that the market is moving against the read). The terminal never ranks these, never greens them and never tells you to bet — it measures the disagreement and its confirmation; the wager stays your call.

Live demo
0%50%100%
MARKET
MODEL
within band
The whole read in one frame: model (cyan) against the de-vigged market (gold), with the model's calibration band as the bracket. A market price inside the bracket is agreement; outside it is material. Then the drift line shows the market confirming (→) or contradicting (←) the model.
CALIBRATION GATE · WILSON SCORE INTERVAL
p~=p^+z2/2n1+z2/n
r=z1+z2/np^(1p^)n+z24n2

The recalibrated hit-rate is only trusted inside its Wilson interval — the center shrinks the estimate toward ½ and the radius widens when the sample n is small. z sets the confidence (z=1.64 ≈ 90%). Only if the interval still clears the market probability does the disagreement survive the gate; otherwise it is noise.

35%45%55%65%75%85%p̂=55%n=12±21n=30±14n=60±10n=120±7n=300±5Wilson 95%-ish CI (z=1.64)
Wilson interval vs sample size n (p̂=55%, z=1.64): the band tightens from ±21pp at n=12 to ±5pp at n=300. Small samples cannot support a verdict.
30%40%50%60%70%empirical hit-rate■ n=30■ n=300true p=50% · 6000 sims
Monte Carlo (6000 simulations, true p=50%): the sampling distribution of the empirical hit-rate is wide at n=30 and narrow at n=300 — this is why the gate marks n<30 under-powered and withholds a verdict.
predicted pobserved freqy=x
Reliability diagram: recalibrated probabilities (P_CAL) plotted against observed frequency. Points on the y=x line are perfectly calibrated; the slight pull toward ½ is the model staying humble. Illustrative shape.
MATERIALITY GATE · MODEL vs MARKET
|pMODELpMKT|δm

Both sides are de-vigged to probabilities, then compared. The gap must clear a per-market threshold δ_m (config-driven, e.g. 10pp on 1X2, 6pp on AH) before the divergence is called material — never a betting signal, only a flag that model and market genuinely disagree.

4.3 Left rail

League tree (sorted by match count, multi-select filter) · signal thresholds (only +EV>5% / only CLV>0) · BELIEF MOVES: significant changes between two model generations — ev_jump = EV jumped ≥3 points, converge = confidence tightened ≥5 points, drift = moved the other way. It answers: "did the model just change its mind?"

Live demo
SPNAP · LAZ
FAPSG · LYO
SPARS · CHE
FAPOR · BEN
SPBAY · DOR
Filter by league and by platform — ALL, SP or FA. Switch the source and the grid retargets to only the fixtures that platform prices.

4.4 RADAR · Consensus Divergence (default view)

Per match, RADAR compares PIN (sharpest book, devigged) against CNS (17-book consensus, devigged) on the same outcome: Δ = CNS ÷ PIN − 1. Positive Δ = PIN rates the outcome higher than the crowd = "smart money first"; negative Δ = reverse divergence. The SHARP column shows market sharpness; the coverage line discloses the full funnel (matches in window / platform-only skipped / no-PIN skipped).

The radar is pure market intelligence: it contains no model prediction and no track-record claim. It shows where the sharpest pricer on earth currently disagrees with the crowd — structurally immune to "prediction blow-ups".

Live demo
CONSENSUS DIVERGENCE · PIN(devig) vs CNS(σ-weighted)
MATCHPINCNSΔTAG
NAP · LAZ2.102.28+8.6%smart money first
PSG · LYO1.721.83+6.4%smart money first
BAY · DOR2.402.29−4.6%reverse
POR · BEN3.103.31+6.8%smart money first
RADAR scans for consensus divergence: where PIN (the sharpest book, de-vigged) prices an outcome differently from the 17-book consensus (CNS). Δ is the gap; a positive Δ means the sharp money moved first. Pure market intelligence — no model, no prediction.
σ-WEIGHTED CONSENSUS · CNS FAIR PRICE
pCNS=kwkpkkwk,wk=1σk2

CNS is the 17-book closing consensus: each book's de-vigged probability p_k is weighted by inverse variance w_k=1/σ_k², so tighter books count more. De-vigging uses Shin's method (which models the insider proportion), not plain normalization. RADAR reads PIN(devig) against CNS — pure market vs market, no model.

DISPERSION — bookmaker disagreement

σ of de-vigged implied probabilities across ~17 books, per selection. Low σ = the market agrees (consensus stack); high σ = the books disagree — descriptive market intel with a dynamic colour scale, NOT a signal.

Live demo
1X2tight consensus
O/U 2.5wide · unsettled
AHfirm
BTTSsplit
Dispersion measures how far the books disagree on a market. A tight bar is firm consensus; a wide one is an unsettled market — an edge weighs more against the firm one.
CROSS-BOOK DISPERSION · σ
σ=kwk(pkpCNS)2kwk

Dispersion is the weighted standard deviation of the books' de-vigged probabilities around the consensus. Low σ = tight agreement (settled market); high σ = the books disagree and the price is still being discovered.

DIST — Top-N distributions & stacking

Both platforms side by side, every market as a Top-N ladder (CS top-6, HT/FT & TG top-3, others top-2 — depth is server-configured). Gold frames mark the stacking set (where probability mass concentrates); the 6×6 score heatmap shows the hot cluster; real market quotes appear next to model fair odds where available. Model view, ~zero alpha — see the baseline wall.

Live demo
0
1
2
3
4
5
6
7+
The model prices the whole shape of an outcome, not a single line. The gold ticks mark the market's implied level; the edge usually lives where the two disagree.
DE-VIG · MARKET-IMPLIED FAIR PROBABILITY
pi=1/oij1/oj

Raw inverse-odds 1/o_i sum to more than 100% — the excess is the bookmaker's overround (margin). Dividing each by the sum removes it proportionally, giving fair probabilities that add to 100%. This is the grid's per-cell mkt_p; CNS and PIN fair prices use the stronger Shin de-vig.

10%20%30%40%50%47.645.4o=2.10129.428.1o=3.40X27.826.5o=3.602Σ raw = 104.8% (overround +4.8%)raw 1/o
De-vig example (1X2, odds 2.10 / 3.40 / 3.60): raw implied 47.6 / 29.4 / 27.8 sum to 104.8% (overround +4.8%); normalized to fair 45.4 / 28.1 / 26.5.
5%10%15%20%25%70181242223154854627+P(total goals = k)
The model's total-goals distribution (DIST payload tg[8], bins 0–7+). A structural visualization with proven near-zero alpha — it shows where probability mass sits, never a prediction and never a claim that any outcome will occur. Illustrative shape.
CONFORMAL SET · COVERAGE GUARANTEE
Pr(YC^α)1α

The conformal set Ĉ_α (SP only, APS) is the set of outcomes the model dares to include so that the true result Y falls inside it with probability at least 1−α. A larger set means more uncertainty; if it omits the model's own top pick, that is self-doubt worth heeding.

ARB — the arbitrage console (market facts)

Three tabs: cross-book (best prices across ~18 books, same line only), cross-platform (SP vs FA, 1X2 only — different bet types are never force-matched) and cross-market divergence (model vs quote, explicitly NOT locked arb). Each opportunity lists legs, stake split and margin. Locked gaps are market facts, but prices move — re-check before staking; never betting advice.

Live demo
SP2.05O/U 2.5
FA1.98O/U 2.5
NO LOCK
single source · no matched line
A price spread alone is never a lock. The guards demand a matched line and two independent sources; anything short of that is stamped NO LOCK — a data artefact, not free money.

MULTI — exact joint probability

Same-match legs are correlated: MULTI computes the exact joint probability on the score matrix and shows it next to the naive product — revealing how same-match parlays are mispriced. Combined EV is diagnostic only.

Leg coverage now extends to everything the score matrix can express: 1X2, handicap (the official European handicap), over/under, total goals and correct score. Two leg types are honestly excluded: Asian handicap (push and half-win three-state settlement breaks the multiplication semantics of boolean joint probability) and half-time/full-time (the full-time score matrix carries no half-time information) — these are mathematical boundaries, not missing data; forcing support would mean inventing a joint distribution.

Live demo
PSG · LYO — 1X1.55
BAY · DOR — O2.51.80
NAP · LAZ — BTTS1.72
COMBINED ODDS1.55 MODEL JOINT64% LEGS1
Add legs and the combined odds compound — but so does the bookmaker's margin. The model's joint probability shows how fast a plausible-looking parlay decays below its price.

SIM — similar-belief retrace

Select a match and SIM retrieves settled matches in the same league where the model held highly similar beliefs across all markets (Bhattacharyya overlap; line-bearing markets compare only on identical lines), each annotated with what actually settled — score, 1X2, CS, TG, handicap and O/U results.

The stats card compares the actual Top-1 hit rate among similar cases (with a Wilson 95% CI) against the model's own claimed probability — case-based calibration, full history on every plan. Similarity is the distance between model beliefs, not between matches; similar history ≠ same outcome.

Live demo
TARGET · ATL · GET · model fingerprint
2025 · SEV · VAL0.998
2025 · RMA · OSA0.997
2024 · VIL · CEL0.996
2024 · BET · GIR0.995
W 52%D 26%L 22%
The model's fingerprint retrieves historically similar matches at a strict similarity percentile; how they resolved is a base rate for the current fixture, never a prediction.

4.5 BASELINE · The transparency wall

Shows our own model's true CLV mean and beat-close rate across all mainstream markets — measured bet-by-bet, unretouched. The numbers are negative — that is what mature markets look like, and it is exactly why we dare to hang them here. Use them to calibrate your expectations of every "prediction service" you will ever meet.

The baseline wall now includes the over/under market, on the same footing as the others — lined bets against a same-line multi-book proportionally de-vigged close, with bets lacking a same-line close honestly dropped rather than approximated. When the data block is absent, this section automatically falls back to the old "no closing line" note — never fabricated.

Live demo
MARKET EFFICIENCY BASELINE · measured · unvarnished
1X2 · CLV μ
−1.9%
n=1204 · efficiency benchmark
1X2 · beat-close
47.2%
mature-market baseline
AH · CLV μ
−1.2%
n=980 · most liquid
AH · beat-close
48.1%
no free lunch globally
BASELINE hangs our own model's measured CLV mean and beat-close rate, market by market — and the numbers are negative, because mature markets are efficient. A humility wall, not a claim: use it to judge every 'prediction service' you will ever meet.

4.6 SANDBOX · Strategy sandbox

Test factor combinations (consensus direction / odds cap / league / sharpness) against historical backtest records — output: n, beat-close rate, 95% CI and a cumulative CLV curve. The sandbox only accepts backtests that pass the oracle-time look-ahead audit — it is currently empty for the reason given in Chapter 2: we withdrew the candidate that failed, and we would rather show nothing than something fake. Combinations with n<50 are refused outright.

But it is not left blank. Below the withheld-data notice, the sandbox now shows a zero-alpha baseline computed on the same audited corpus the BUILDER uses: our own model, blindly flat-betting its top pick over the full 178k-match history. On 1X2 that returns roughly minus the bookmaker margin — no edge, by construction. This is the honest floor any strategy must beat. AH/OU ROI is deliberately withheld there (a same-line survivorship bias would flatter it); only the hit rate is shown. From here a button hands you straight to the BUILDER to test your own conditions against that same floor.

Live demo
STAKE2.0u MODEL EDGE+4.1% IF CLOSE 1.95+CLV
Test a staking plan without touching your ledger. The model edge is fixed; only your exposure moves — a plan that only looks good on paper reveals itself here first.

4.7 LEDGER · Your personal CLV audit

Logging a bet: pick the match (mk auto-fills), market (1X2 / AH / OU), side, line, traded odds and stake. Line convention: enter the line of the side you took — home −0.5 and away +0.5 are the two sides of the same market.

Scoring: closing-line data syncs every 6 hours and covers settled matches in a rolling 45-day window; bets settle automatically once data lands (Asian handicaps resolved precisely, including half-win / half-loss) and are scored against all three yardsticks. The audit strip reports n, beat rate, mean CLV, 95% CI and a verdict per ruler — with n<30 it will always say "insufficient sample, no verdict".

Privacy: ledger data lives on this server only — never shared, never repurposed. Deleting an entry deletes it physically.

Trade desk loop. LEDGER is now a full pre-trade → blotter → post-trade loop. Before you log anything, the form shows a live pre-trade check: the model fair price for your exact market/side/line, your entry EV (odds ÷ fair − 1) and, where a same-line quote exists, the devigged market probability. Negative EV is shown in red — honestly — but never blocked: it is your ledger, our job is only to make sure you see the price you are really paying.

Entry snapshots — sealed at the moment you log. When you submit, the server itself computes and freezes three numbers next to your bet: the model fair price at entry, the model win probability, and (same line only) the devigged market probability. They are computed server-side so they cannot be forged, and they are immutable — nothing you or we do later can rewrite what the model said at entry. The blotter shows your entry EV (EV*) per bet, and you can attach strategy tags and a note to any entry (tags and note are the only editable fields; every bet fact is frozen).

The analytics cockpit (Desk tiers). Above the blotter, eight tiles summarise your settled book — net PnL, ROI, mean CLV, beat-the-close rate, max drawdown, per-bet volatility, sample size and Kelly fit — under your chosen yardstick (pin / cns / sp) and window (30d / all). Six charts read your history: equity curve with drawdown shading; CLV distribution; entry-EV → result calibration (did positive-EV entries actually settle better?); segmentation by market, league or tag; 30-day rolling CLV and hit rate; and staking discipline (your stake vs the quarter-Kelly reference). Under-sampled buckets are greyed, never extrapolated. Filter and sort the blotter by market, CLV, PnL or EV*, and export everything as CSV — your data, your file.

Live demo
YOU2.10 CLOSE1.95
+CLV · beat the close
You take 2.10; the market drifts to a 1.95 close. The gap you captured is your closing-line value (CLV) — the honest scoreboard the ledger holds you to, win or lose.
CLOSING LINE VALUE · CLV
CLV=pcloseoentry1

CLV scores your entry against the closing price: your entry odds o_entry evaluated at the closing de-vigged probability p_close. Positive means you beat the close — the single most robust long-run signal of skill. The ledger scores it on three rulers (SP platform close, CNS consensus, strict PIN).

4.8 TAPE · Market tape replay

One match's complete price trajectory across 17 books from open to close (change-points only). The thick gold line is PIN; the other books carry fixed anonymous codes B01..B18 — codes never rotate, so observations like "B04 tends to move first" remain valid across matches and months. Yellow ▲ marks steam events; the table below lists mover, magnitude, followers and lag.

Switch between 1X2 and AH views; the AH view annotates each line change. The tape is a verbatim replay of historical fact: NOT a signal, NOT advice.

The tape gains an over/under mode, isomorphic to the Asian handicap view: per-book series on the mainstream line plus line-change tracks. Series accumulate from fixtures crawled after the source expansion — earlier matches honestly have no such mode. Correct score and half-time/full-time have no crawlable time series, and total goals is not a market — none of the three get a tape view: a data boundary, not a trade-off.

MEM — similar closing-state retrieval

MEM retrieves, per league, the historical closes whose market state most resembles the current match: the state signature is built from multi-book de-vigged probability, open-to-now drift and cross-book dispersion, and the output is empirical frequency only — what happened after states like this — with zero predictive claims. Retrieval now covers three markets: 1X2, Asian handicap and over/under; for AH/OU the signature uses same-line books on the modal closing line, and result frequencies include the cover/push three-state. When the current match has not yet accumulated a multi-book track in that market, no state can be formed — honest abstention; small samples are flagged under-powered with no conclusion offered.

Live demo
PSG · LYO · 1X2▲ steam +3.1%B04 first · +3 foll
INT · JUV · AH▼ −1.8%PIN · +2 foll
RMA · SEV · 1X2▲ steam +2.4%B07 first · +5 foll
BAY · RBL · AH▼ −2.9%B01 first · +1 foll
POR · SPO · 1X2▲ +1.2%PIN · lag 4.1m
PSG · LYO · 1X2▲ steam +3.1%B04 first · +3 foll
INT · JUV · AH▼ −1.8%PIN · +2 foll
RMA · SEV · 1X2▲ steam +2.4%B07 first · +5 foll
BAY · RBL · AH▼ −2.9%B01 first · +1 foll
POR · SPO · 1X2▲ +1.2%PIN · lag 4.1m
One match's price trajectory across 17 books from open to close — the gold line is PIN, the rest fixed codes B01..B18. Yellow ▲ marks steam (a book moving first, with its followers and lag). A verbatim replay of market fact — never the model's opinion, never advice.

4.9 Drawer · Kelly sizing

Enter a bankroll; for every market of the selected match that has both a price and a probability, the terminal computes full-Kelly and half-Kelly stakes plus the total position. Switching currency changes the unit label only.

Live demo
½-Kelly · 1.2% of bankroll
edge 4.1% · odds 2.10 · fractional Kelly caps exposure, never full-Kelly
From edge and odds the terminal sizes a fractional-Kelly position — deliberately conservative. It caps exposure and never recommends full-Kelly.
EDGE & STAKE · EV AND KELLY
EVi=pioi1
fi*=pioi1oi1=EVioi1

EV is the expected value of a unit stake at odds o and probability p — a diagnostic quantity only, with no monotone link to real returns (see the transparency wall). Kelly f* is the growth-optimal fraction of bankroll when an edge truly exists; the terminal shows half-Kelly f*/2 for variance control. Neither is a recommendation to bet.

4.13 STRAT BUILDER — no-code strategy backtest

The builder is a TradingView-style condition screener over the full history corpus (178k+ settled matches). Stack conditions from a standard operator set (>, >=, <, <=, between, in) over pre-match fields only — model top-pick probability, model margin, platform, line, kickoff month — pick a bet market (1X2 / AH / OU), and run: the engine replays history with the model's top pick under your filter and returns aggregates only — bet count, hit rate with a Wilson interval, and per-year breakdown. ROI, max drawdown and Sharpe unlock when the odds corpus lands.

Three disciplines are built in and non-negotiable. Aggregate-only: no per-match detail ever leaves the engine. Under-powered gate: if your filter matches fewer than the configured minimum, no statistics are released at all — a narrow filter that "finds" a great record on 12 matches is noise, and the terminal refuses to print noise. And the banner above every result repeats the only honest reading: backtests replay the past, promise nothing about the future, and every extra combination you try raises overfitting risk.

Live demo
Model P (top pick)>=0.60
PlatforminFA
▶ RUN BACKTEST
BETS HIT RATE ROI SHARPE
A real run from the corpus: 64.2% hit rate, yet ROI −4.86% and Sharpe −2.08, with the cumulative-PnL line sliding under water. High hit rate ≠ profit — odds are the denominator. Misses and losses are shown exactly as history settled them.

With the odds corpus in place, the PnL triple is live for 1X2 and OU: ROI (mean return per flat 1u bet, close settle), the cumulative-PnL curve with its drawdown shown as the red under-water area (MAX DD reported in units, not percent), and a Sharpe ratio annualised from monthly PnL. AH still shows its hit rate but honestly withholds PnL until the home side confirms one remaining data semantic — the terminal never prints a number it cannot stand behind. Watch the demo: a filter can hit 64% and still lose money — the odds are the denominator, and that lesson is the whole point of the builder.

Backtest markets now number six: 1X2, Asian handicap, over/under, handicap, total goals and correct score, side always the model top pick. The hit-rate dimension covers the full history; ROI and CLV dimensions appear only for markets with historical closing prices — handicap and correct-score closes are a single official ruler with a small sample, labeled as such in the UI; total goals has no corresponding market and stays hit-rate-only forever. Under-sampled aggregates are stopped by the min-n gate as always.

4.10 Drawer · PRICER, the any-line fair-price calculator

Choose a market type (AH home/away, totals over/under, BTTS), enter any line and the quote you are being offered — you get the model fair price and your quote's implied EV instantly. The permanent notice applies: a model fair price is not a prediction; this model's global CLV is negative (see BASELINE). The tool exists to show how far your quote sits from fair — the judgement remains yours.

On Desk tiers the calculator covers all nine families — 1X2, AH, O/U, European handicap, total-goals buckets, correct score, DNB, double chance and BTTS — with an FA/SP source toggle where both distributions exist, a clickable line ladder around your line, and a quarter-Kelly stake reference. One tap on «log at this price» carries the market, side, line, odds and suggested stake straight into the LEDGER form — nothing to retype, nothing to misremember. Price-only families (DNB, double chance, BTTS) stay calculator-side, honestly labelled.

Live demo
ANY LINEAH −0.75
MODEL FAIR PRICE1.92re-priced from the distribution
Give it any line and it re-prices a fair value from the same distribution, so you can compare the model to a price the market is actually offering.

4.14 TRACK — watchlist, predictions & paper-trade analytics

Tap ★ on any grid row to add a match to your private watchlist. You may attach a prediction (the row's model top pick is pre-filled, or set your own direction), or just watch it. After the match settles, TRACK marks each prediction ✓ or ✗ from the closing-line data, and rolls your record up by day, month or quarter — prediction hit rate, and separately your paper-trade PnL / ROI / closing-line value. Everything is private and never leaves the terminal.

Two guardrails keep it honest. You can only track matches currently in the feed — the watchlist is a forward-looking tool, not a way to query historical results after the fact. And paper trading is labelled exactly as that: no slippage, no execution, not real returns. TRACK is where you keep yourself accountable; the BUILDER is where you test a rule across the whole history.

Live demo
NAP · LAZ1X2 H
PSG · LYOO/U 2.5 O
BAY · DORwatch only
Watchlist with predictions settles after the match: each call is marked ✓/✗ from the close, the last row is watch-only (no call, no hit), and the period rollup appears below — hit rate and paper PnL tracked separately, all private.

Two extras make a prediction worth more than a checkmark. First, once a match settles TRACK shows the closing market probability of the exact side you called — de-vigged from the strict pin ruler — and flags whether you were with the market or ↯ contrarian. A hit on a side the market priced below 50% is worth far more than agreeing with the favourite; this is where you see if you actually saw something the market missed. Second, any open prediction carries a → paper button: one tap turns it into a paper trade in your ledger, inheriting the match, market, side and line — you only add the odds and stake you would have taken. WATCH is the low-friction way to keep score; the paper ledger is where the same pick graduates into a CLV-audited trade.

Predictions and paper trades cover all seven markets from both sources: 1X2, handicap (the official European handicap), Asian handicap, over/under, total goals, correct score and half-time/full-time. The handicap line is locked from the feed at the moment you add the pick (locked-before-kickoff principle — you cannot choose your own line); half-time/full-time needs the half-time score to settle, and matches missing it are honestly marked unscorable. The with-market/contrarian read appears only for markets that have a closing price (1X2, Asian handicap, over/under, handicap) — total goals and correct score have no de-viggable closing market, so that comparison is honestly left empty, never invented.

Besides the one-tap ★ on any grid row (carrying that row's 1X2 top pick), the watchlist card has a manual add form: pick a match from the current grid, choose market and side (type the score directly for correct score, e.g. 2:1), fill the line for Asian handicap / over-under, and add. One match can hold predictions on several markets at once; re-adding the same side never duplicates an entry.

4.15 PARLAY — paper accumulators

Inside TRACK, the PARLAY builder lets you chain 2–13 legs from different matches on a single platform (SP or FA) into one paper accumulator — one market per match, any of the seven market types, and the combined odds are simply the product of every leg's odds. Pick a match from the pre-match window, choose market, side and line, type the odds you see, and add the leg; the slip shows the live combined price and potential payout before you commit a stake.

Settlement follows industry parlay rules, leg by leg, from the same closing data that scores the ledger: a won leg multiplies by its odds, a push or void leg drops out of the chain (multiplier 1), quarter-line legs contribute (1+odds)/2 on a half-win or 0.5 on a half-loss, and a single lost leg zeroes the whole ticket — the card settles the moment any leg loses, without waiting for the rest. Payout = stake × the product of all leg multipliers, computed in exact decimal arithmetic and rounded only once.

A parlay multiplies the bookmaker's margin of every leg. Two legs at ~5% vig each already give the house roughly double the edge of a single; thirteen legs compound it beyond repair. That is exactly why bookmakers love accumulators — and why this instrument exists on paper: to let you measure the erosion instead of funding it.

Each settled ticket also shows a parlay-level CLV: your entry combined odds against the closing combined odds of the same platform. It only appears when every leg has a matching closing price — if any leg lacks one, the field honestly shows a dash rather than a half-real number. Legs whose matches slide out of the 45-day settlement window before scoring mark the whole ticket 'unscorable'; it is never silently faked as void. Your parlay record aggregates by leg count, so you can see for yourself how hit rate and PnL decay as chains grow longer.

4.16 EDGE — the evidence board

EDGE is the terminal's landing tab and its single answer to "where do I start?". It scans every pre-match cell in the window and ranks them by the strength of evidence the system has already published elsewhere: the model's rare public stances (it abstains on ~99% of selections), how many of the three divergence gates the cell clears — a material gap in probability space, a market price outside the calibration band built on tens of thousands of settled observations, a gap larger than the bookmakers' own dispersion — plus a positive calibrated EV and the depth of settled evidence behind the number. Every weight and threshold is configuration, and the whole board is one server-built snapshot per data generation: everyone sees the same list.

Each entry shows a five-dot strength gauge, a plain-language explanation assembled from the evidence pieces, and — on Edge tier and above — the full technical stack and a sizing line: a fractional Kelly (quarter-Kelly, hard-capped per entry) computed from the calibrated probability and the listed price, with your bankroll stored only in your browser. Free accounts see the top entries of the previous data generation; Pro sees the live board; the technical stack and Kelly panel unlock on Edge. An empty board is not a malfunction: on most days the evidence simply is not there, and the board says so.

The Δ reading is an absolute difference, not a relative gain: Δ = calibrated model probability − de-vigged market probability, in percentage points (pp). "Model belief 61% ⇄ market consensus 28%" gives Δ+33pp — the model prices this outcome 33 percentage points above the market, not "33% higher" in ratio terms (that would be +118%, which we never show: relative figures inflate on small bases, pp cannot be gamed by the base). Model belief is calibrated on the full settled history (the n in each entry); market consensus strips the bookmaker margin via the Shin method. Remember: a bigger Δ does not mean a likelier win — it only measures the size of the disagreement; its credibility is vetted by the three evidence gates and n, and the EV shown is additionally shrunk for historical overconfidence, so it is always more conservative than a naive conversion from Δ.

The board is a ranking of our own published signals, not a new prediction and not a tipsheet. Evidence strength is not a profit promise — our own early-price CLV audit is negative and published in full. The Kelly line is a ceiling from risk mathematics, never a recommendation. The decision, and the risk, are yours.

Every list is archived the moment it is built. The REPLAY link at the top of the board settles past entries against closing data and shows the record — hit rate with a minimum-sample gate (under-powered samples are shown for transparency and explicitly marked as no conclusion), wins and losses alike. A pointer you cannot audit is a tip; a pointer with its failures on public display is an instrument. Desk seats can additionally enable a browser notification when a new generation lists strong evidence.

4.17 Multi-rank picks (TopK · hedge view)

Predictions go beyond Top1: correct score shows Top1–6, total goals and HT/FT Top1–3, 1X2 Top1–2 (handicap and over/under are two-sided, Top1 only). Every rank shares Top1's readout — calibrated probability, live price, EV — and carries a per-rank all-history record: across 180,000+ settled matches, each rank shows its realized hit rate with a confidence interval (e.g. 1X2 rank T2: predicted mean 26.4%, realized 27.8%). Rows marked ° are derived (calibrated distribution × quotes); HT/FT per-rank records come from genuine model-head samples (smaller n, wider confidence intervals) and are shown honestly.

How to read it: one row per rank — T badge (T1 on gold) · selection name · calibrated-probability bar (width relative to T1) · @live price · EV (green ≥1 / red <1) · trailing per-rank all-history hit rate (hover for n and the confidence interval) or a ° derived mark. The grid list only carries a +N counter chip hinting at depth; click a row to open the drawer for the full ladder, and the drawer's "view full distribution" button jumps into the DIST instrument for the whole probability curve. Visible ranks follow your plan: Free sees Top1, Pro adds 1X2 Top2, Edge and above get the full ladder plus the equal-profit split line.

How per-rank records are computed: for 180,000+ settled matches, each match's calibrated belief vector is ranked, then every rank is scored against the real settlement outcome. Outcome determination uses three redundant sources in priority order — ① the settlement block carried by the belief entry itself; ② a daily-updated historical settlement index; ③ the settled archive as the final fallback. The layers are cross-validated against each other (any disagreement triggers an audit), everything runs server-side, and a missing layer falls through to the next honestly — never guessed. HT/FT currently rests on genuine model-head samples (smaller n); the same three-layer determination applies.

The equal-profit split line below the ladder is pure arithmetic at listed prices (stake ∝ 1/odds): coverage probability, combined odds and combined EV. Combined EV is usually negative — bookmaker margin stacks with every leg — so the line is both a hedging tool and an honest warning: covering many ranks is not a free lunch, and none of this is betting advice.

Share cards — read-only audit snapshots

From LEDGER, SIM or ARB you can generate a read-only share link (/card/…). The snapshot is built server-side from your real data — it cannot be forged — and carries the honesty footnotes. You can revoke your own cards at any time; daily creation is capped.

Live demo
FWORLD · LEDGER+2.3% CLV · 30d42 bets · beat the close 61%model · Origins 1.0
shareable snapshot
your numbers — never betting advice
Turn a ledger, a similar-match read or an arb into a shareable card — your own numbers, watermarked, and never framed as betting advice.

5 · CLI guide

5.1 Install and verify

Single file, zero third-party dependencies, Python ≥3.9. The install script performs SHA-256 integrity verification automatically and deletes the file on mismatch. You may also download /cli/fworld and /cli/SHA256SUMS manually, verify, and place the binary on your PATH.

$ curl -sSL https://fworld.gammalegion.org/cli/install.sh | sh
$ sha256sum ~/.local/bin/fworld          # ⇔ https://fworld.gammalegion.org/cli/SHA256SUMS

5.2 Authentication and key hygiene

Create an API key under Account → API keys on the website (plan-gated). fworld auth login prompts interactively and stores the key at ~/.config/fworld/config.toml (mode 0600); the FWORLD_API_KEY environment variable also works. By design the key is never accepted as a command-line argument (process-list leakage), and can be revoked on the website at any time.

5.3 Language

Human-readable output ships in 12 languages: fworld lang shows the current language and how it was resolved; fworld lang ja switches persistently. Precedence: --lang flag → FWORLD_LANG → config file → system locale → English. --help and --json remain English/pure data.

5.4 Command reference

fworld auth login|status|logoutlog in / show plan, quota, data age and model version / log out
fworld gridthe data grid: --league --from/--to --sort ev|clv|time --tz --csv
fworld baselinethe transparency wall (global CLV baseline)
fworld radarconsensus divergence: --min-delta threshold (percentage points)
fworld movesbelief moves (significant changes between model generations)
fworld sandboxstrategy sandbox: --where "consensus=same,cap<3.5" --domain
fworld kellyKelly sizing (purely local): --bankroll --odds --p [--half]
fworld alert add|ls|rmserver-side alert rules: add --where … --push tg / ls / rm
fworld ledger add|ls|audit|rmthe audit ledger: add / ls / audit / rm (same ledger as the Web)
fworld grid --topkgrid with --topk: prints the multi-rank ladder under each row (selection/probability/price/per-rank history)
fworld dist <mk>Top-N distributions, both platforms (values only, no heatmap)
fworld arb [<mk>|--board]arbitrage: single match or whole-window board (--kind book,platform,market)
fworld trend <mk>per-book price drift + lead book (1X2; numbers, no chart)
fworld multi --leg …exact joint probability vs naive product (--leg mk:market:sel[:line])
fworld similar <mk>similar-belief history with full settlement (table, no badges)
fworld card ledger|sim|arbcreate a read-only share card (server-side snapshot)
fworld tape [ls|<mk>]the tape: ls lists the window; tape <mk> renders trajectories and steam events
fworld exportmachine export (full pagination): --json/--csv, --max-age staleness hard-block
fworld watchfull-screen TUI: 60-second ETag polling, no redraw on 304
fworld lang [code]show / switch the 12-language human output
$ fworld grid --sort ev --tz local
$ fworld ledger add --mk fa_2962528 --market ah --sel H --line -0.5 --odds 1.95 --stake 200
$ fworld ledger audit
$ fworld tape fa_2962528 --market ah
$ fworld similar cid_2999996 --limit 10
$ fworld arb --board --kind book
$ fworld export --json --max-age 2h | jq '.rows[] | select(.ev_top > 0.05)'
# crontab:
17 * * * *  fworld export --json --max-age 2h > /data/feed/latest.json

5.5 Interactive terminal (REPL) and the TK shortcut

Run bare fworld (no sub-command) to enter the interactive terminal: a status line shows your plan, quota and data age, and single-key shortcuts jump straight to each instrument — G grid, T tape, D distributions, A arb, W live screen and more; press ? for the full shortcut table. v1.11 adds TK (or TOPK): one keystroke prints the grid with multi-rank ladders — under each row, T1…TK list the selection, calibrated probability, live price and per-rank all-history hit rate (° = derived rank). It is equivalent to grid --topk, and trailing arguments pass through as usual (e.g. TK --league EPL). Any full sub-command also works inside the REPL.

$ fworld                       # bare call → REPL
fworld> TK --league EPL        # = grid --topk
fworld> ?                      # full shortcut table

5.6 Exit codes and automation

0 success · 2 no data / awaiting data · 3 stale (--max-age exceeded, output refused) · 4 auth / feature locked · 5 network or server error. Every command supports --json (pure data, language-independent); GET results are ETag-cached locally, and unchanged data returns 304 without touching your quota — an hourly cron poll costs almost nothing.

Staleness hard-block in practice: fworld export --json --max-age 2h exits with code 3 and refuses to emit once data age exceeds two hours — stale data never flows into your downstream pipeline.

Glossary — every abbreviation on the terminal

The terminal is dense with market shorthand. Here is every abbreviation you will meet, what it means, and how to read it correctly. Bet-type codes are industry-standard and kept in their conventional form.

Workspace tabs · localized name ↔ code ↔ function

CODENAMEFUNCTION
◎ RADARRADARConsensus-divergence radar: PIN vs the σ-weighted 17-book CNS (pure market).
▦ DISPERSIONDISPERSIONCross-book dispersion (σ) of the de-vigged probabilities — how much the books disagree.
◫ DISTDISTThe model's full probability distribution (near-zero alpha; structure, not a prediction).
◆ ARBARBArbitrage board: locked-profit opportunities across books and platforms.
⋈ MULTIMULTIMulti-leg / accumulator builder — combined odds compound, joint probability decays.
≈ SIMSIMSimilar-match retrace: historical matches where the model believed the same thing.
◍ EFFEFFMarket-efficiency map across leagues and markets.
⇉ LEADLEADLead-lag: which book moves the price first, who follows, how fast.
◉ MEMMEMMarket memory: what happened after similar closing states in this league.
BASELINEBASELINEMarket-efficiency baseline wall — our own model's CLV, published unvarnished.
SANDBOXSANDBOXStrategy sandbox + the zero-alpha baseline (blind flat-betting returns ≈ minus the margin).
▤ LEDGERLEDGERPersonal CLV audit ledger, scored on three rulers (SP / CNS / PIN).
≋ TAPETAPEMarket odds tape — every book's price, change-points only.
⚙ BUILDERBUILDERNo-code strategy backtest over 178k settled matches (aggregate-only).
▣ TRACKTRACKWatchlist + predictions + paper trades, private, with day/month/quarter stats.

Sources & yardsticks

SP / FAThe two market sources the terminal reads, shown only under these neutral labels. Compare a price across both to see where the sources themselves disagree.
PINThe sharp reference price the terminal benchmarks against. Treat it as the closest thing to a true market price; distance from PIN is a first read on value.
REFThe active reference yardstick — REF PIN means the sharp reference is in use. It is the price your model number is being measured against.
CONSThe aggregate price across books at a moment. The live yardstick: a model edge is only meaningful relative to it.
OPEN / CLOSEThe opening and closing line. The close is the market's final, sharpest word; beating it (CLV) is the honest measure of an edge.
BOOK / BOOKSAn individual bookmaker's price, or the full set of books. Dispersion across books tells you how firm the consensus is.
YARDSTICKThe three references a model number is shown against — open, consensus and close. Read all three to see not just what the market thinks but how it moved.
ALLThe platform filter showing every source at once; switch to SP or FA to narrow the grid to one source.

Bet-type codes

1X2 / WDLThe match result: home win (1), draw (X), away win (2). The core three-way market.
O/UOver/under a goal line such as 2.5 — whether total goals finish above or below it.
AHAsian handicap: a handicap line with no draw and stakes refunded on an exact push. Splits the result into two priced sides.
HCPA whole or European handicap applied to the result before it settles as 1X2.
BTTSBoth teams to score — a yes/no on whether each side scores at least once.
CSCorrect score: the exact final scoreline. The highest-granularity market; its probability lives in the distribution tails.
TGBucketed total goals (0–7+, exactly N goals), an SP-specific market; the international book ecosystem only prices O/U lines, so FA has no such market — FA fixtures get a distribution-only observation ladder.
HT/FTHalf-time / full-time: the result at the break paired with the result at the end.
OVR%The model's implied probability that a total finishes over the line.

Model & price columns

MKThe internal match key, a raw id. The terminal always resolves it to team names; if you ever see a code, that fixture is not yet fully named upstream.
MODELThe model's own probability or fair price for a market. Always read it beside MARKET, never alone.
MARKETThe market-implied price, de-vigged where shown. The reference the model is arguing with.
EVExpected value, shown for measurement only. The terminal never sorts by it, never greens it and never ranks bets — a positive EV is an observation, not a recommendation.
CLVClosing-line value: the gap between the price you took and the close. The single honest long-run scoreboard for whether an edge is real.
EDGEThe model's disagreement with the market on a selection — the raw size of the claim, before you judge whether to act.
TOPKThe 1st…Kth candidates of one market ranked by calibrated probability. Every rank shares Top1's readout; per-rank hit rates come from 180,000+ settled matches.
TGBucketed total goals (0–7+, exactly N goals), an SP-specific market; the international book ecosystem only prices O/U lines, so FA has no such market — FA fixtures get a distribution-only observation ladder.
FAIRThe model's fair price for any line, re-priced from its distribution. Compare it to the price actually on offer.
P_CALThe calibrated probability — the model's confidence after calibration to historical hit rates. The number to trust over raw confidence.
conf_rawThe model's raw, pre-calibration confidence. Use P_CAL for decisions; conf_raw is the unadjusted input.
STANCEThe model's posted position on a match: a BET stance or, far more often, abstention.
BETThe bet column. Empty on roughly 99% of fixtures by design; a filled cell is a rare flagged edge, not advice to stake.
SIGNALA fixture the model has flagged as a genuine edge. Rare, and valuable precisely because it is rare.
DRIFTHow a line has moved between references. A close drifting toward the model confirms an edge; drifting away is a warning.
divergenceThe gated gap between the model's calibrated probability and the de-vigged market price — flagged only when it survives the model's calibration band, on liquid markets. A measurement of disagreement, never a recommendation.

Stats & settlement

σThe dispersion of de-vigged implied probabilities across books. Low sigma is firm consensus; high sigma means the books disagree.
calibration bandA Wilson confidence interval around the model's probability at its effective sample size. A market price inside the band is within the model's calibration noise; outside it is a genuine disagreement.
drift confirmWhether the consensus is drifting toward the model (confirmation — the leading edge of closing-line value) or away (a warning). Shown where a price tape exists (1X2).
nSample size — how many historical analogues or bets a statistic is built on. A small n means read the number with caution.
BCBhattacharyya coefficient: the overlap between two probability distributions, used to score how similar a historical match is.
WilsonA Wilson 95% confidence interval on a hit rate. It gives the range the true rate plausibly sits in, not just the point estimate.
percentileThe strict similarity cut-off SIM uses to admit a historical match as a genuine analogue.
de-vig / overroundThe bookmaker's margin (overround) and its removal (de-vig), to recover a fair implied probability from a price.
KellyFractional-Kelly position sizing from edge and odds. Deliberately conservative; the terminal never sizes at full Kelly.
ROIReturn on investment, overall and per day. A settlement-based scoreboard — slower and noisier than CLV.
PnL ΣCumulative profit and loss across your ledger.
Hit / MissWhether a settled selection came in (Hit) or not (Miss).
MatchedA line that matches across two sources — a precondition for any genuine arbitrage.
LOCK / NO LOCKThe arb verdict after the guards. Only a matched line from two independent sources locks; everything else is NO LOCK.
LegsThe individual selections in a combo. Combined odds and the model's joint probability both compound with each leg.

Microstructure

EFFMAPThe efficiency map: where the market prices tightly versus where exploitable structure remains.
LEADLAGWhich source discovers price first (lead) and which follows (lag). The timing gap between them is where the best price lives.
MEMORYPer-league market memory: recurring structure the market has shown before. Context, not a signal.
DISPERSIONHow widely the books disagree on a market — a read on how much conviction the consensus carries.
half-lifeHow fast a memory or signal decays; a shorter half-life means older observations count for less.

Interface & state

LIVEThe data is current and the model is live. The normal operating state.
RESULT REPLAYSettlement replay mode: the grid rewound to a past day with every displayed pick marked ✓/✗ against the final score. Facts of record on a loaded sample — not a track record, not advice.
MAX DDMaximum drawdown: the deepest peak-to-trough fall of the cumulative PnL curve over the backtest — the worst losing stretch your strategy would have lived through. A risk measure, not a prediction.
SHARPESharpe ratio: mean return divided by return volatility (annualised). Rewards steadiness, punishes swings; comparable across strategies. Backtest Sharpe is descriptive of the past only.
STALEThe data is too old to act on. The terminal blocks betting reads and warns you outright — do not bet on stale data.
agestampThe age of the data you are looking at. Always check it before reading any price.
TZThe timezone for kickoff times: UTC by default, or Local to your device.
CCYThe display currency for stakes and returns (USD, EUR, GBP, USDT). Display only — it does not convert your ledger.
SORTThe grid ordering control. Note there is no sort-by-EV: the terminal will not rank bets for you.
FREE / PRO / EDGE / DESKThe access tiers. They govern depth and microstructure access, never a different set of answers — the honest engine is the same on all.

6 · Playbooks — market-structure methodology

These are methodology guides, not winning systems. FWorld refuses to predict and promises no profit; each playbook teaches you to observe a market phenomenon with the terminal's tools, and — just as importantly — why it is very hard to profit from over the long run. Read them as instrument manuals, not tip sheets.

8.1 · SP/FA scissor spread — the truth about locked arbitrage

SP and FA are two independent line sources. For the same match and outcome, their de-vigged implied probabilities often differ — that difference is the “scissor spread.” DISPERSION measures its distribution; ARB judges whether the rare few constitute genuine risk-free lock-arb. Most scissor spreads are NOT arbitrage: a true lock requires the same market, the same line, and two-sided prices such that 1/o₁ + 1/o₂ < 1.

The terminal's fake-arb guard already filters three false signals for you: it will not call a lock without a line (different handicap/total lines are a quoting-basis difference, not arbitrage), will not call one from a single source (no cross-platform lock is possible), and only judges cross-platform on cid (SP∩FA aligned) matches. Operating flow: sort the ARB console by lock rate, look only at rows tagged locked_arb, re-confirm both platforms are on the same line before betting, cross-check with DISPERSION, then log both legs in the LEDGER and let the three rulers show whether you actually locked the spread.

Honest warning: real lock windows are extremely short (minutes), stake-limited, and require accounts and float on both platforms. The terminal can FIND a lock; finding it ≠ you can EXECUTE it — by the time you place the second leg the spread has usually vanished. Treat it as a reading of “how much the market disagrees right now,” not a cash machine.
Why this is not a “guaranteed-win” guide: if cross-platform risk-free locks were durably available, the two platforms would already be arbitraged to death — they are not. What you see in ARB is a snapshot of momentary market inefficiency, not a repeatable income stream. The system gives you an instrument to see market structure clearly, not a printing press.

8.2 · Early-line EV methodology — and its anticlimax

Early markets are less efficient than closing markets: liquidity is thin and the line has not matured, so paper EV appears larger. Use PRICER to compute the EV of an early price against the model's fair price (EV = p × odds − 1). This is real, and it is tempting.

Here is the anticlimax that makes this an honest methodology rather than a sniping strategy: the BASELINE wall shows that our own model's global CLV is negative — including at the early stage. Paper EV is a temptation; the closing line is the judge. The correct workflow is not “fire on high early EV,” it is: record your early pick in the LEDGER, then let the three rulers tell you, after settlement, whether that paper EV was actually redeemed by the closing line, or eaten by it.

Honest warning: a positive early EV number is not money. Between your bet and kickoff the line moves, limits tighten, and the vig is already inside the price. Most “value” you spot early is competed away by close. The only proof it was real is a sustained positive CLV in your own LEDGER — and even our model does not have that globally.
Why this is not a “sniper” strategy: a sniper implies a repeatable kill. There is no repeatable kill here — there is a disciplined way to test whether your early reads beat the close. If they do, over a large sample, you have found something. If they do not, the honest answer is that you were paying the vig for the privilege of guessing early.

8.3 · Hedging & loss-reduction math (with an honest data boundary)

Hedging is arithmetic, not magic. If you hold a stake on outcome A at odds o_A and want to lock or reduce risk with the opposite side at odds o_B, the hedge stake that equalizes the two outcomes is s_B = s_A × o_A / o_B; the locked return is s_A × o_A − (s_A + s_B). Whether that locked number is positive (a true lock) or negative (a loss-reduction) depends entirely on how the two prices moved apart.

What the terminal can support today is pre-match cross-platform hedging: taking opposite sides on SP and FA before kickoff, which its odds data covers. Use ARB and DISPERSION to see whether the two platforms have diverged enough for a favorable pre-match hedge, and the LEDGER to record both legs.

Data boundary — read this: FWorld is a pre-match, 6-hour-batch terminal. It does NOT provide in-play (live) odds. True in-play hedging — betting the opposite side after the match has started, as the score changes the price — requires a real-time odds feed that this system does not offer. This chapter teaches the hedging mathematics; live execution needs your own real-time data source. We will not pretend to data we do not have.
Why this is honest: the math of hedging is certain, but the edge is not. A hedge locks a number that the market already priced against you (both sides carry vig). Hedging is a risk-management tool, not an alpha source — it changes the shape of your outcome, it does not manufacture expected value.

8.4 · Model card — FWorld Origins

Architecture (only what is verifiable is asserted): a Poisson-family bivariate score model — the per-match goal-rate parameters λ(home)/λ(away) are published on every match page — producing a full 6×6 score matrix from which all markets (1X2, handicap, Asian handicap, over/under, total goals, correct score, half-time/full-time) are derived. Consensus is built from 17 books, de-vigged proportionally (Shin for the sharp ruler). Finer internal architecture is home-side proprietary and is deliberately not asserted here.

Known limitations (published in the spirit of the BASELINE wall): cup and friendly coverage is thinner than league play; calibration drifts in the first rounds after a transfer window; real-time red-card and injury information is not in the model inputs; and — most importantly — the model's global CLV is negative. It is a lens, not an oracle.

Auditability: the BASELINE wall hangs the model's measured CLV and beat-close rate per market, in full and unvarnished. Any claim of a stable, globally positive CLV is a lie; we publish ours here so you can hold us to the same standard we hold everyone else.

8.5 · Methodological references

The statistical methods behind the terminal are standard, peer-reviewed techniques, not proprietary magic. The core references:

  • Dixon & Coles (1997) — Modelling Association Football Scores and Inefficiencies in the Football Betting Market, J. Royal Statistical Society C
  • Shin (1993) — Measuring the Incidence of Insider Trading in a Market for State-Contingent Claims, Economic Journal
  • Wilson (1927) — Probable Inference, the Law of Succession, and Statistical Inference, JASA
  • Vovk, Gammerman & Shafer (2005) — Algorithmic Learning in a Random World (conformal prediction), Springer
  • Kelly (1956) — A New Interpretation of Information Rate, Bell System Technical Journal

7 · Plans and feature matrix

A free account already sees the radar, the baseline wall and a 12-match sample — we believe transparency is the best salesperson. Prices and checkout live on the main site under Pricing; 6-month terms are 20% off, 12-month terms 40% off.

Feature
Data grid sample wallFree 12 → Pro 100 → Edge/Desk unlimited
Consensus divergence radar + belief movesEdge and above
Strategy sandbox + Alpha alerts (TG)Desk
Market tape replayDesk
Audit ledgerFree 20 bets · Insight 200 · Edge and above unlimited + long-run verdicts
CLI login keysDesk
CLI / full-screen TUI · team seats · frozen-contract guarantee · quarterly bespoke backtestDesk
Similar-belief retrace (SIM)All plans · always full history
Read-only share cardsAll plans (signed in) · arb card needs Edge

8 · FAQ

Why is the CLV column so often "—"?

Future matches have no closing line yet; OU structurally has none at all. The absence is the answer (see 3.10, absence semantics).

Why is the sandbox empty?

Because the only candidate strategy failed the look-ahead audit and we withdrew it (see Chapter 2). An empty sandbox is proof we don't sell fake curves. It lights up when an audited strategy exists.

I logged a bet — why isn't it scored yet?

Scoring waits for two things: the match to settle, and the closing-line batch to arrive (every 6 hours). Matches older than the 45-day window can no longer be scored and are marked unscorable.

Why does one yardstick show no CLV for my handicap bet?

If your line differs from that ruler's closing main line, the system refuses cross-line comparison (line mismatch = no score) rather than interpolate a fake ruler. The SP ruler carries no AH/OU closes at all.

My audit says not_beating — am I bad?

Its precise meaning is: "at the current sample size there is no statistical evidence that you beat the close". Accumulate sample (n≥30), then watch whether the CI lower bound clears 50%.

Does "smart money first" mean I should bet that side?

No. It is a market fact: the sharpest pricer disagrees with the crowd. What you do with that fact is your judgement and your responsibility.

How fresh is the data? Is it real-time?

The model re-infers hourly; consensus/closes/tape sync in 6-hour batches. This is not a tick feed — the product is pre-match intelligence and audit, not in-play scalping.

The STALE banner appeared — what now?

Wait for the pipeline to recover (typically within hours; administrators are alerted automatically). Nothing displayed under the banner should inform a decision.

I got a 429 — what happened?

Daily quota exhausted (plan-based). CLI users: make sure you benefit from ETag caching (304s are free); if that isn't enough, upgrade.

Which bookmakers are B01..B18?

We don't disclose (source protection). Codes are globally fixed and never rotate, so behavioural observations remain valid across matches and months — a deliberate design balance: researchable, not reverse-mappable.

CLI installed, but fworld grid says no key?

Run fworld auth login first (requires a CLI key created on the website, Desk plan). For a free look, use the Web terminal.

The manual disagrees with actual terminal behaviour — which wins?

Actual terminal and CLI behaviour wins. Please tell us via Support on the website — we treat documentation defects as bugs.

9 · Disclaimer

Everything in this terminal is information and analytical tooling — not betting advice, not financial advice, not a promise of profit. Sports betting carries risk; confirm legality in your jurisdiction and stake only what you can afford to lose. Model probabilities carry error; past performance does not indicate future results.

By using this terminal you acknowledge: our model does not beat the closing line globally (see BASELINE); the product's value lies in honest market intelligence, pricing tools, and the audit of your own record.