Home Methodology

Methodology

How we collect, process, and analyze 674,836 data points across 216 economies
674,836
Data Points
216
Countries
100
Indicators
25
Assets
1960–2026
Year Coverage
47,778
IMF Projections
Data Pipeline
1
Ingestion

Raw data pulled from 6 institutional sources via bulk download APIs. Each source has a dedicated ETL adapter that handles schema differences, missing values, and encoding.

2
Normalization

All values standardized to common units. Currency values converted to current USD. Population-dependent metrics normalized per capita. Temporal alignment to calendar year.

3
Computation

Year-over-year changes (absolute & percentage), global rankings per indicator per year, moving averages, and volatility indices computed for every country-indicator pair.

4
Pattern Detection

5 pattern templates scanned across all country-year observations. 1,597 historical matches identified with outcome tracking at 12–24 month horizons.

5
Delivery

Processed data stored in SQLite for sub-millisecond reads. No external database dependency. Full dataset ships with the application — zero API latency for end users.

Data Sources
SourceTypeCoverageSeries
World Bank WDIMacro indicators1960–2026100+
IMF WEOProjections2025–203047,778
World Bank CMOCommodity prices1960–present71
FREDIndices, FX, CryptoVaries15+
ECBExchange rates1999–present22
BISREER indices1964–present60+
Calculations
Year-over-Year Change
YoY% = ((Vt − Vt−1) / |Vt−1|) × 100
Applied to every country-indicator pair. Absolute change also computed.
Global Ranking
RANK = DENSE_RANK() OVER (PARTITION BY indicator, year ORDER BY value DESC)
All 216 countries ranked per indicator per year. Rank 1 = highest value.
Currency Conversion
Vcurrency = VUSD × AVG_RATEyear
20 display currencies via ECB yearly averages. SAR uses fixed peg (1 USD = 3.75 SAR).
PPP Adjustment
VPPP = VUSD / PPP_FACTOR
World Bank indicator PA.NUS.PPP conversion factors.
Pattern Detection Engine

Patterns are multi-condition templates applied across all country-year observations. Each pattern defines threshold conditions on 3–6 indicators simultaneously. When all conditions are met, a match is recorded and the outcome is tracked over a 12–24 month horizon.

Pattern templates 5
Historical matches detected 1,597
Country-year observations scanned 674,836

Pattern-based projections are descriptive extrapolations from historical precedent. They are not econometric forecasts. Confidence intervals are derived from the variance of historical outcomes. Past outcomes do not guarantee future results.

Projections

HistorySaid displays two types of projections, clearly labelled in data tables:

  • IMF — Official forecasts from the IMF World Economic Outlook. Covers GDP growth, inflation, unemployment, current account, gross savings, government debt, budget deficit, and government revenue.
  • Trend — Linear extrapolations computed from the last 5 available data points. These are simple directional estimates, not econometric forecasts. Confidence intervals represent ±1 standard deviation of the regression residuals. Trend projections should not be interpreted as forecasts.
Limitations & Disclaimers
  • Coverage spans 216 economies. Some indicators have sparse data for earlier decades.
  • All data is subject to revisions by the original institutional sources.
  • Projection accuracy depends on the stability of historical patterns, which may not hold under novel conditions.
  • Rankings are computed across all available countries, not just G20.
  • HistorySaid does not produce original data. We organize, contextualize, and detect patterns in publicly available datasets.
API Access

Programmatic access to HistorySaid data is available for research and commercial use. The API provides JSON endpoints for all indicators, rankings, projections, and pattern data.

GET /api/v1/{country}/{indicator}?year=2024

To request API access, email hello@kavela.pro with your use case.

Stay Updated

Get notified when we add new indicators, patterns, or projection models.

Follow
Last updated: March 2026 · Operated by Kavela Ltd.