Rules-Based System

Methodology & Data Sources

Transparent documentation of every calculation, data source, and index construction used in this platform. All metrics derive from deterministic formulas applied to publicly available data.

Methodology Versionv1.0
Last UpdatedMarch 2026
FRED Series Cache24 h
Market Price Cache6 h
ReproducibilityDeterministic

FRED — Federal Reserve Economic Data

PRIMARY
CPIAUCSLCPI All Urban Consumers (seasonally adjusted)
CPILFESLCore CPI (ex-food & energy)
PCEPIPersonal Consumption Expenditures
CUSR0000SEHARent of primary residence
CUSR0000SAH2Owners' equivalent rent
CPIUFDSLFood (CPI for All Urban Consumers)
CPIENGSLEnergy CPI
M2SLM2 Money Stock
DFII1010-Year TIPS real yield
Source: fred.stlouisfed.orgFrequency: Monthly

Asset Prices — Yahoo Finance

SECONDARY
  • Provider: Yahoo Finance query2 API
  • Frequency: Daily and monthly
  • Method: Adjusted closing prices where available
  • Monthly values use end-of-month closes (not averages)
  • Price data cached for 6 hours
Supplemental historical data: Stooq.com

Year-over-Year (YoY)

FORMULA
yoy[t] = (I[t] / I[t-12]) − 1

Measures the 12-month change in price levels. I[t] is the index level at month t.

3-Month Annualized

FORMULA
ann3[t] = (I[t] / I[t-3])^4 − 1

Short-term inflation momentum annualized from a 3-month change. More sensitive to recent shifts than YoY.

6-Month Annualized

FORMULA
ann6[t] = (I[t] / I[t-6])^2 − 1

Intermediate-term momentum annualized from a 6-month change. Middle ground between short-term noise and full-year smoothing.

Trend Classification

RULE
Acceleratingchange > +0.3 pp
Deceleratingchange < −0.3 pp
Flatotherwise

Compared against the same metric three months prior.

Note: Rule-based heuristic designed to highlight directional changes, not statistical inference.

Fixed Basket Index

CUSTOM INDEX

Constructed using user-defined weights applied to selected CPI components. Weights remain fixed through time — no substitution effects.

Default Weights

  • Shelter (rent): 20%
  • Core CPI proxy (healthcare / transport): 23%
  • Food: 15%
  • Energy: 8%
  • Broad CPI (residual services): 34%
CompositeIndex[t] = Σ (w_i × ComponentIndex_i[t])

Cash-Outflow Index

CUSTOM INDEX

Designed to measure what a typical household with mortgage, rent, and recurring bills actually spends. Heavier weights on shelter, food, and energy than official CPI.

Default Weights

  • Rent of primary residence: 25%
  • Owners' equivalent rent (OER): 10%
  • Food: 15%
  • Energy: 10%
  • Core CPI (healthcare proxy): 20%
  • Broad CPI (insurance / services): 20%

When OER is unavailable, a data health warning is shown and the weight is redistributed to the rent series.

Both custom indices are transparent proxies for specific analytical questions. They are not alternatives to official statistics and are labeled as "custom" throughout the UI.

Regime Thresholds

RULE
Disinflation< 2.5% and falling
Stable2.5%–4%, not significantly accelerating
Inflationary> 4%, or accelerating when above 3%
Monetary Stress> 7%, or alt-CPI spread > +2pp for 3+ months

Thresholds are defined in lib/inflation/calc.ts. These are simple heuristic rules intended as a starting-point interpretation, not a formal economic model.

Alignment

POLICY

Asset prices use monthly end-of-month closes. Inflation indices are monthly (FRED convention: first-of-month label). Both series are aligned by YYYY-MM. Daily prices are never interpolated — only months with both a price and an inflation reading are included.

Real Price Series

FORMULA
realP[t] = nominalP[t] / (D[t] / D[base])

D[t] is the deflator index level; D[base] is the deflator at the first common date. Expresses the asset price in purchasing-power units relative to the base period.

Period Returns — Fisher Equation

FORMULA
nomRet  = P[t2] / P[t1] − 1
realRet = (1 + nomRet) / (1 + infl) − 1

where  infl = D[t2] / D[t1] − 1

Correctly accounts for compounding. The simpler nomRet − infl is an approximation valid only for small values.

CAGR

FORMULA
CAGR = (endPrice / startPrice)^(12 / N) − 1

N is the number of months. Applied independently to both nominal and real price series.

Volatility

FORMULA
σ = std(ln(P[t] / P[t-1])) × √12

Annualized standard deviation of monthly log returns. Applied independently to nominal and real price series.

Max Drawdown

FORMULA
peak[t] = max(P[0..t])
MaxDD   = max_t((peak[t] − P[t]) / peak[t])

Applied independently to nominal and real series. A real max drawdown can exceed the nominal max drawdown if inflation compounds losses.

Series Used

SOURCE
M2SLM2 Money Stock (monthly, seasonally adjusted)
DFII1010-Year TIPS real yield (daily → monthly avg)
CPIAUCSLCPI-U for official inflation YoY
Cash-OutflowAlternative inflation composite (custom)

All FRED series cached 24 h.

M2 Growth Methods

FORMULA
YoY:    m2_yoy[t] = M2[t] / M2[t-12] − 1
6M Ann: m2_6m[t]  = (M2[t] / M2[t-6])² − 1

YoY is more stable. 6M annualized is more responsive to recent accelerations. Default: YoY.

Inflation Spread

FORMULA
cpi_yoy[t] = CPI[t] / CPI[t-12] − 1
alt_yoy[t] = CashOutflow[t] / CashOutflow[t-12] − 1
spread[t]  = alt_yoy[t] − cpi_yoy[t]

A positive spread signals purchasing-power erosion not fully captured by headline CPI.

Rolling Z-Score Standardization

FORMULA
z(x)[t] = (x[t] − mean(x[t−W+1..t])) / std(x[t−W+1..t])

W = z-score window (default 120 months = 10 years). Options: 60M, 120M, 180M. Population std dev. Minimum 4 observations required.

RLI Composite

FORMULA
RLI_z[t] =  wm · z(m2_growth)[t]
          − wr · z(real_rate)[t]
          + ws · z(spread)[t]

Default weights emphasize money supply and real rates,
with smaller influence from inflation spread.

Higher RLI = easier conditions (more money, lower real rates). Lower RLI = tighter conditions. Interpreted in z-score units, not percentage terms.

Percentile Rank

RULE
pct[t] = count(RLI_z[s] ≤ RLI_z[t], s∈[t−119..t]) / 120 × 100

≥75 = high liquidity · 40–75 = moderate · <40 = tight. Minimum 12 valid months required before display.

Data Freshness

POLICY
  • FRED macroeconomic series update according to their official release schedules.
  • Data is cached server-side for 24 hours to ensure consistent calculations across sessions.
  • Market price data from Yahoo Finance updates intraday but is normalized to end-of-month closes for monthly calculations.

Historical Revisions

POLICY
  • Some public datasets (especially CPI and PCE components) may be revised by their issuing agencies.
  • When revisions occur, Convexly automatically reflects updated historical values once the upstream dataset updates.

Reproducibility

POLICY
  • All metrics on the platform are derived from raw index levels and deterministic formulas.
  • Given identical input data, calculations will always reproduce the same results.

Time Alignment

POLICY
  • Inflation series use FRED's monthly convention (first-of-month label for prior month).
  • Asset prices use end-of-month closing values.
  • Calculations only include periods where both series exist to avoid interpolation.
  • Official inflation measures aggregate differently: CPI uses a Laspeyres-type index with periodic re-weighting; PCE uses a Fisher chain-weight approach. They answer different questions and will diverge.
  • Custom indices are built from available FRED proxies. Category proxies may not perfectly match your personal spending basket.
  • Monthly alignment means short-term real-return estimates (1M) are inherently noisy.
  • Stooq.com is used for deep historical data on gold and Nasdaq ratios; methodology differences may exist at the margin.
  • No series on this platform has been manipulated or adjusted for political interpretation. All 'official' labels refer to government statistical agency publications.

Convexly calculations are based on publicly available data sources and deterministic formulas applied consistently across all users. The platform provides analytical tools for educational purposes only — nothing here constitutes investment advice.