How this monitor works — and how it can be wrong
Eight indicators in a fixed causal order, thresholds registered in advance, a buffer formula that always returns an interval, and a public log of every change. Nothing here is discretionary at publication time: the rules below were registered before the data came in.
1 · Registered thresholds
Each indicator has one threshold, registered before observation. Crossing it sets the indicator to firing. Thresholds change only by the amendment procedure in §5 — never in response to the current reading.
| # | INDICATOR | THRESHOLD | CLASS | SOURCE |
|---|---|---|---|---|
| 1 | Oil & gas budget revenues — “Oil money coming in” | < -25 % | 2 | minfin.gov.ru |
| 2 | OFZ placed / quarterly plan — “Can they still borrow?” | < 20 % | 2 | minfin.gov.ru |
| 3 | Liquid NWF — “Rainy-day fund left” | < $20 bn | 2 | minfin.gov.ru |
| 4 | Budget deficit, % GDP (annualized) — “How fast they burn cash” | > 10 % | 3 | minfin.gov.ru |
| 5 | Arrears / bankruptcies (transmission to real sector) — “Businesses going under” | > 1.3× | 1 | fedresurs.ru |
| 6a | Annual inflation — “Prices in shops” | > 40 % | 3 | rosstat.gov.ru |
| 6b | M2 money supply growth — “How fast they print money” | > 30 % | 3 | cbr.ru |
| 7a | RZD rail loading — “Stuff moving by rail” | < -8 % | 2 | rollingstockworld.ru |
| 7b | Power generation — “Electricity being used” | < -5 % | 2 | rosstat.gov.ru |
7a and 7b share chain position 7: the confirmation link has two independent physical indicators, and either one can set it firing.
A threshold is a judgment, so each one carries its anchor. Where the anchor is literature or arithmetic, we cite it; where it is a registered judgment, we say so plainly. None of them changes in response to a current reading.
- Oil & gas < −25% y/y — registered judgment sized to slump scale: the 2023 revenue slump (which Russia absorbed without a funding crisis) ran deeper than this line for months, so only slumps of that order fire the link, not routine volatility. The voting rules did the rest in our backtest: it fired alone through 2023 and correctly never triggered.
- OFZ placed < 20% of plan — arithmetic: the quarterly plan is the budget law's financing plan. Covering less than a fifth of it means the missing four-fifths lands on the reserve fund by construction.
- Liquid NWF < $20 bn — arithmetic: at the registered deficit range (₽6.5–7.5 trn/yr), $20 bn ≈ ₽1.6 trn covers roughly 2.5–2.9 months with borrowing dead — the point where the buffer stops being a buffer.
- Deficit > 10% GDP (rolling 12-mo) — set well above the entire realized wartime range on our own series (~2–5%): crossing it means the financing need has left the corridor Russia has managed so far. Class 3 regardless — it can only confirm.
- Bankruptcies > 1.3× the 2021 base — from the same Fedresurs series: 1.3× 2021 lands at the top of the entire 2015–2021 peacetime range. Firing means more corporate deaths than any peacetime year produced.
- Inflation > 40% y/y — the classic inflation-crisis threshold in the growth literature (Bruno–Easterly, 1998).
- M2 money growth > +30% y/y — the printing-press detector: war-years growth ran +17 to +25% on the CBR's own series (peak mid-2023); +30% marks a regime shift toward monetized deficits that healthy-looking bond auctions cannot hide.
- Rail loading < −8% y/y — deeper than any war-year decline on this series so far (2022 ≈ −4%, 2025 −5.6%), roughly halfway to the 2009-crisis collapse (~−15%). The weakest-anchored threshold here — registered judgment, said plainly.
- Power generation < −5% y/y — electricity tracks activity with low elasticity: −5% is worse than the deepest post-Soviet crisis year (2009 ≈ −4.6%). Not temperature-adjusted, which is why this link confirms physically rather than leading.
2 · Indicator classes & voting rights
Series formed outside the government's pen: mirror trade statistics measured by other countries' customs, and bankruptcy filings (Fedresurs) — a Russian registry, but one that aggregates thousands of court decisions driven by self-interested creditors. Suppressing it takes a visible intervention — a filing moratorium (as in 2020 and 2022) or closing publication — and we log those interventions as signals in their own right. One firing class-1 indicator can trigger alone.
Oil & gas revenues, OFZ placement, the reserve fund, rail loading, power generation. Published by a state with an incentive to manage them, but the quantity is physical or the failure is self-evident. Triggers only in a pair — two class-2 links firing simultaneously.
Inflation, deficit-to-GDP, bond indices. They reflect expectations and can be painted — the RGBI bond index rose in July 2026 on the news of failed OFZ placements; the sign inverts exactly under stress. Never trigger.
Sequence rule: the chain is causal, so links should fire in order (1 → 7). A link firing while an earlier link is measurably clean raises a ◆ SEQUENCE VIOLATION flag: either the causal story is wrong, or a data series is being managed. Both possibilities are stated, neither is hidden. An indicator's class never changes without a change of source.
3 · Buffer formula
reserves_₽ = liquid_NWF_$ × fx ÷ 1000
months = reserves_₽ ÷ (annual_deficit_₽ × share ÷ 12)The annual deficit is an interval (low/high analyst estimates), so the output is always an interval of months — never a point and never a calendar date. Three registered scenarios for the share of the deficit the reserve fund must cover:
- Borrowing stays frozen (share 100%): the fund covers the whole deficit — the operative scenario whenever link 2 is firing.
- Borrowing limps along (share 50%).
- Borrowing recovers (share 20%).
The hero number on the home page is the operative scenario chosen by this rule — by the model, never by an editor. Its zero is not "Russia cannot pay" — it is the point where orderly financing ends and the deficit moves to the printing press: a different regime, paid by the population through inflation, not a payment stop.
The runway denominates only the liquid NWF. Russia has other coping resources, and pretending otherwise would be the fastest way to lose your trust. They are excluded deliberately — each is either not a weekly observable buffer, or a regime change rather than a buffer:
- Central-bank gold and yuan — the CBR sold ~44 t of gold in H1 2026 and its yuan composition is classified. These are the central bank's reserves, not the budget's; spending them is itself an escalation we track through the news, not a quiet buffer.
- Coerced bank purchases / CBR repo — makes auctions look healthy while monetizing the deficit (the 2022 scheme). Not a buffer: it is the printing press wearing a market costume — which is exactly what the M2 indicator watches.
- Tax hikes (VAT 22% from 2026, ~₽1.7 trn/yr) and sequestration — they shrink the deficit input of the formula, so the runway absorbs them automatically when they show up in the data.
- Devaluation — mechanically extends the runway (FX is an input), and the model shows that honestly when it happens.
- Treasury balances, delayed payments, asset sales — real but opaque and one-off; weeks-to-low-months of coping, not a published series we could track without guessing.
Full stress-test of the model against the strongest resilience arguments — sources and scenario runs — in the project's model-critique document.
4 · Data rules
- Primary sources only. Every value stores the URL, the verbatim fragment it was parsed from, the date of the data, and the fetch timestamp. The raw page of every fetch is archived.
- A value that can't be parsed is a logged failure, never a silent carry-forward and never an interpolation.
- A source that stops publishing sets its indicator to ○ UNKNOWN with a ◆ DATA DARK flag. Unknown is never treated as zero, and never as fine — 900+ official Russian datasets have been hidden since 2022, and going dark is itself a signal.
- An official announcement that a data-generating activity is suspended (e.g. "auctions will not be held") is recorded as an observation of the suspension itself, and puts the indicator into firing regardless of its last ratio.
- "Auction failed" and "auction not held" are different events and are logged as such.
5 · Threshold changelog
Thresholds may be amended only with a written rationale and a dated entry here — never retroactively, and never to make the current reading look better.
| DATE | INDICATOR | WAS → NOW | RATIONALE |
|---|---|---|---|
| 2026-08-14 | All | — → v0.1.0 | Initial public registration of the current threshold set. No amendments since. |