Methodology
Predictonomy separates indicator definitions, observations, prediction parameters, model outputs and presentation — so probabilistic forecasts can be inspected, challenged and improved.
Layers
Global indicators (this page), sector composites, and trackers/resolution rules.
Global indicators
Model types, horizons, confidence bands and scenarios for country-level macro forecasts (this page).
Sector composites
How sector-health scores are built — e.g. the UK mortgage-stress composite and its weighted components.
Scoring glossary
Every 0–100 composite, its weights and polarity, plus the shared level (normal→stressed) and trend vocabulary.
Trackers & resolution
Probability-tracker question design, aggregation, scoring and resolution rules (formerly CitySignals methodology).
config/indicators.yaml
config/prediction-parameters.yaml
Linear · smoothing · composite · manual
How it works
Global and country-level indicators across output, population, inflation, labour, debt, trade, confidence, markets and investment. The configurable catalog expands across countries, sectors and macro themes.
Observations are historical data points with a year, value and source label. Estimates flag provisional or model-assisted values. Predictions are forward-looking values from a prediction run, stored separately from history.
Configurable horizons such as 1, 3, 5 and 10 years. Each indicator declares its active horizons, so pages show only intentionally-modelled forecast periods.
Express uncertainty around a baseline. Wider bands reflect volatility, scenario dispersion or weaker data confidence. They are a transparent range for research comparison — not probability guarantees.
Baseline is the central path. Optimistic reflects stronger productivity, demand, investment, policy or confidence. Pessimistic reflects downside from inflation, labour weakness, debt, external demand or financial conditions.
Indicator definitions carry source labels, URLs, units, display scale, precision and cadence. Observation rows can also carry row-level provenance.
Cadence varies by indicator — annual output series, quarterly labour/trade, monthly confidence/policy and daily market inputs. Each observation records source, date, fetch timestamp and revision metadata where available.
Forecasts are probabilistic, uncertain, simplified scenario estimates — not official statistical releases. Public data can be delayed, revised, incomplete or inconsistent. Structural breaks and shocks can materially change outcomes.
Models
Each model type is selected per indicator through configuration and should be read as probabilistic scenario analysis, not certainty.
linear_trend
Projects forward from directional movement over the configured lookback window — useful where gradual change matters more than short-term noise.
exponential_smoothing
Weights recent observations more heavily while retaining older signal — suited to indicators that move cyclically or revert over time.
weighted_composite
Combines the latest observation, recent momentum, scenario weights and volatility adjustments into a transparent baseline path.
scenario_manual
Uses explicit scenario assumptions where pure statistical extrapolation would mislead — e.g. policy or market-rate paths.
Reliability
We never let a model (or an LLM) simply assert a number. Every forward read carries a measured track record; numbers are computed, never invented.
Every model is replayed against each series’ OWN held-out history (out-of-sample, one-step-ahead) and scored against a naive last-value forecast. Skill = 1 − model error / naive error: above 0 beats last-value, 1 is perfect. This turns "here is a number" into "here is a number, and how well that model has actually predicted this series".
The decision-useful blend: each model’s baseline is combined, weighted by its proven backtest skill (equal weights when none beats naive). Empirically steadier than trusting any single model.
Backtesting estimates skill; the ledger records the truth. Once a prediction’s target year is actually observed, its realized error is stored — a LIVE track record from real outcomes, extended nightly and surfaced as "typical miss" across the forecast, brief and indicator pages.
Indicators and countries ranked by their realized error (lower = more reliable), straight from the ledger. A track record, not a guarantee; groups with too few matured predictions are omitted rather than ranked on noise.
Where a series is headed given what we already know: the macro series that best LEADS a target over observed history is fit by ordinary least squares, then the leader’s already-observed recent values project the target a year or two ahead. Correlation, not causation; a nowcast, not a forecast guarantee.
Surfaced on the forecast pages(reliability badge, ensemble, leaderboard), country & brief pages, the public API (?include=skill, /api/v1/forecast/reliability, /api/v1/nowcast/country/{iso3}) and the grounded AI chat. A track record / nowcast, never a guarantee of future accuracy.
Configuration transparency
Indicator definitions live in config/indicators.yaml — names, categories, units, display scale, source labels, cadence, page priority and enabled state. Public pages only surface indicators with active live-source ingestion.
Forecast settings live in config/prediction-parameters.yaml — model type, lookback, horizons, recent-data weight, volatility adjustment, confidence band level, allowed bounds and scenario weights.
Pages read these through validated loaders; the catalog and forecast assumptions are never hard-coded, which supports expansion across countries, sectors and macro themes.
Review indicator catalog