Macro cockpit · built for one investor, resident in Thailand, earning and spending baht

FINDASH

The financial world in five layers — what is happening, what it means, and what it does to money you already hold. Every figure carries its source and its observation date.

Rendered 2026-07-27 16:34 UTC Newest observation 2030-12-31 Curated layer re-verified 2026-07-25 Registry 179 series · 20 indicators · 8 gauges · 11 tripwires
LIVE FROM D1 47 of 50 curated figures came out of the database on this render the rest are the hand-verified table, and each one says so where it appears
3
tripwires through their threshold
5
approaching
163
Baht Import Burden (2016 = 100)
-2.64pp
Thai minus US policy rate
$5.92tn
US net dollar liquidity

Read this first How to trust a number on this page

A number without a date and a source is a rumour. Every figure below carries one of four honesty classes, and they are not interchangeable. The fourth one, AWAITING, is deliberately not a value: several composite gauges need a rolling five-year distribution to mean anything, and a single observation cannot produce one. Those tiles say so instead of showing a plausible guess.

Where the number came from

LIVE Pulled from the publisher's own series page and re-checked on 2026-07-25.
STATIC Hand-curated from primary research; carries its own review-by date.
DERIVED Arithmetic on live and static inputs, computed at build time.
AWAITING Needs rolling history that one observation cannot provide.

Who invented the formula

STANDARD Textbook or industry-standard construction, used the way its publisher intends.
ADAPTED A standard idea, modified — different denominator, different window or a Thai-specific reference point.
INVENTED Built for this dashboard. Not found in the literature. The formula is stated in full so it can be argued with.

Live counts across the 20 indicators: 9 standard, 6 adapted, 5 invented.

Level 4 The narrative — what all of it adds up to

In the deployed system this paragraph is written by a language model that is given the computed numbers and nothing else, with an explicit instruction never to invent a figure, never to forecast with confidence, and never to use trading-desk language. What follows is the fallback text, written here under the identical constraints, and it is what renders until that model has run.

Money is expensive, markets are calm, and the baht is quietly making everything imported dearer.

The clearest fact on this page is not about markets at all. A basket of the world's energy and food costs 63% more in baht than it did in 2016 — put the other way round, the same baht now buys 39% less of it. That is not because those things got dramatically more expensive in dollars; it is because the currency you earn in is weaker. The Baht Import Burden Index sits at 163 against a base of 100, which is why household costs feel worse than any dollar commodity chart suggests.

The reason the baht is soft is on the page too. Thai policy pays 1.00% while US overnight money pays 3.64%. Thai rates sit 2.64 points below American ones, which is through the tripwire, and a gap that wide tends to keep pulling money toward dollars for as long as it lasts. The US two-year at 4.37% sits above overnight money, which is the market's way of saying it expects US rates to go up rather than down — so the pressure is more likely to widen than close on its own.

In America, borrowing is genuinely expensive: the ten-year government bond pays 2.43% after inflation. That is close to the level where the safest asset in the world competes on merit with everything riskier. Yet nobody looks frightened — the extra return demanded from weak corporate borrowers is 2.79 points, and the volatility index is 18.6. Calm markets and expensive money is a workable combination; what makes it fragile is that the Federal Reserve's cash cushion, the reverse repo facility, has drained to $0.68bn from more than $2,300bn. There is no buffer left to absorb the next drain.

The physical picture is mixed and mostly reassuring for someone living in Thailand. Oil at $86.99 is well below the $95 level at which it starts doing real damage here. Thailand holds 108 days of oil cover, which is a genuine cushion — India holds 9.5 days, which is none at all, and that is a fact about any India fund rather than about India. The uncomfortable number is refining: China handles 66% of the processing of eight critical minerals on average and 99% of gallium. Nothing prices that daily, which is exactly why it is worth knowing.

What would change this read. Brent holding above $95 for a month, the carry gap closing back inside 150bp, or the US real ten-year yield breaking above 2.5%. The first two matter for the cost of living in Thailand; the third matters for anything you own that is priced on distant future profits.

Level 3 The seven gauges and the regime

Each gauge blends three or four series into one score on a single scale that runs from −100 (restrictive) to +100 (supportive). The blend is a weighted average of five-year z-scores — how unusual each driver is against its own history — which is what makes an interest rate and a volatility index comparable at all. Every composite here reads "awaiting" until the pipeline has accumulated its history, and that is the honest answer: a z-score cannot be computed from one observation. What each tile shows instead is its live drivers and a directional read that can be defended from a single reading.

Liquidity impulse

Money in the system
awaiting
composite z

Is cash flowing into markets or draining out of them?

Net liquidity stands at $5.92tn, but the number that matters for this gauge is its 13-week CHANGE against five years of its own history, and that needs the history. What can be said from one observation: the overnight reverse repo facility — the cash cushion that drained first whenever the Fed tightened — is at $0.675bn against a peak above $2,300bn. The absorber is gone, so from here any further Treasury cash-building comes out of bank reserves directly rather than out of a buffer.
driver wt latest reading
net_usd_liquidity 50% $5.917tn LIVE 2026-07-22
us.stress.sofr_iorb 25% -0.01 pp DERIVED 2026-07-24
us.stress.nfci 25% -0.55 index LIVE 2026-07-17
▲ positive means money is being added faster than usual, which historically lifts most risk assets with a 1–2 month lag
▼ negative means money is draining, which pressures valuations regardless of how good the underlying businesses are
concepts
credit impulse

The change in the flow of new credit, as a share of the economy. It leads actual activity by roughly two to three quarters, which is why it is watched instead of loan totals.

Read more about credit impulse
z-score

How unusual today's reading is compared with its own history, measured in standard deviations. 0 = perfectly normal, ±1 = mildly unusual, ±2 = happens about 5% of the time, ±3 = rare.

z = (today − mean) ÷ standard deviation, both taken over a chosen lookback window. Two things about that make it weaker than it looks. The window is a judgement call, not a fact — this dashboard uses ~1250 observations for dailies (five years) and shortens it where the publisher carries less history, and a different window gives a different answer for the same day. And the ±2 ≈ 5% rule assumes a bell curve, which financial series emphatically do not follow: they have fat tails, so genuinely extreme readings arrive far more often than the normal distribution predicts. Read a z-score as a ranking, not a probability.

Read more about z-score
28% of the regime score

Cost of capital

Cost of money
awaiting
composite z

How expensive is it to borrow, after inflation?

Two of three drivers are live and they disagree. Real ten-year money at 2.43% is expensive — near the level at which safe US government debt out-competes most things on merit alone. Credit is not worried about it: high-yield borrowers pay only 2.79pp over Treasuries, which is a calm market, not a frightened one. The curve is barely positive at +0.34pp. Expensive money, unbothered lenders.
driver wt latest reading
us.rates.10y_real 50% 2.43% LIVE 2026-07-23
us.credit.hy_oas 30% 2.79% LIVE 2026-07-24
us.rates.2s10s 20% +0.34pp DERIVED 2026-07-23
▲ positive means capital is cheap relative to history — long-duration assets (growth equity, property, infrastructure) can breathe
▼ negative means capital is expensive — the discount rate is doing the damage, not earnings
concepts
real yield

An interest rate after subtracting expected inflation — the return that actually buys you more goods.

Read more about real yield
spread

The difference between two interest rates. Widening spreads mean rising perceived risk.

In credit it is the extra yield a borrower pays over a government bond of similar maturity — compensation for default risk and for illiquidity, and those two are not separable from the outside. That matters when reading a widening: it can mean the market thinks default is likelier, or merely that the paper has become harder to sell.

Read more about spread
duration

How sensitive an asset's price is to interest-rate changes. Long-duration assets — 30-year bonds, unprofitable growth stocks, infrastructure — fall hardest when rates rise.

Formally the weighted-average time to receiving an asset's cash flows, which is why it applies to equities at all: a company whose profits arrive in a decade is mathematically a long bond, and is discounted like one. It is also why the AI complex and the bond market are more correlated than they look — both are priced off the same discount rate.

Read more about duration
22% of the regime score

Risk appetite

Appetite for risk
awaiting
composite z

How willing are investors to own risky things right now?

Volatility at 18.6 and a 2.79pp high-yield spread are both consistent with calm. The warning that comes with that pairing is in the liquidity tile: calm on draining liquidity is a different animal from calm on rising liquidity, and it is the credit spread rather than the equity index that usually moves first when it changes.
driver wt latest reading
us.vix 35% 18.58 LIVE 2026-07-24
us.credit.hy_oas 35% 2.79% LIVE 2026-07-24
us.equity.spx 30% 7411.98 index LIVE 2026-07-24
▲ positive means markets are calm and leaning in — but read together with liquidity, since calm on draining liquidity is fragile
▼ negative means investors are demanding compensation for risk, which usually shows up in credit before it shows up in equities
concepts
spread

The difference between two interest rates. Widening spreads mean rising perceived risk.

In credit it is the extra yield a borrower pays over a government bond of similar maturity — compensation for default risk and for illiquidity, and those two are not separable from the outside. That matters when reading a widening: it can mean the market thinks default is likelier, or merely that the paper has become harder to sell.

Read more about spread
option-adjusted spread

A credit spread with the value of the bond's embedded options stripped out, so bonds with different call features can be compared honestly.

Most corporate bonds are callable — the issuer may repay early, which is valuable to the issuer and costly to the holder. A raw spread on a callable bond therefore mixes credit compensation with the price of that option, and two issuers with identical credit quality can show different spreads purely because one has a call and the other does not. OAS values the option with an interest-rate model and removes it, leaving something closer to pure credit. Every ICE BofA series on this dashboard — HY, IG, CCC — is an OAS, which is what makes differencing them defensible.

Read more about option-adjusted spread
drawdown

The fall from a previous peak, expressed as a percentage.

Asymmetric in a way that is easy to underrate: a 50% fall needs a 100% gain to recover, so avoiding large drawdowns matters more to a long-horizon result than capturing the last part of a rally.

Read more about drawdown
14% of the regime score

Dollar pressure (inverted)

Dollar pressure
awaiting
composite z

Is the US dollar squeezing the rest of the world?

The broad dollar index is 120.5, and USD/THB is 33.55. For a baht earner the second number is the one that reaches the wallet: it sets the price of everything Thailand imports and the baht value of everything foreign that is already owned. It is 5% weaker than the 35.3 average of 2016, which sounds like a small move and is not — see the Baht Import Burden Index below.
driver wt latest reading
us.dollar.broad 50% 120.53 LIVE 2026-07-17
id.fx.usdidr 25% 18,052.65 IDR LIVE 2026-07-27
in.fx.usdinr 25% 96.28 INR LIVE 2026-07-17
▲ positive means the dollar is soft, which loosens conditions across Asia and usually pulls foreign money into ASEAN markets
▼ negative means the dollar is strong, which tightens conditions everywhere outside America and drains money out of emerging markets
concepts
carry

The income you earn simply for holding a position, before any price movement — for currencies, the interest-rate difference between the two sides.

Carry is compensation for a risk, never free money, and the risk is usually a rare large loss against a steady small gain. That shape is why carry strategies look excellent on average return and poor on worst case, and why the honest test of one is the breakeven move rather than the yield.

Read more about carry
13% of the regime score

Global growth pulse

Growth pulse
awaiting
composite z

Is the real economy speeding up or slowing down?

This gauge is the one most damaged by missing history, and separately by a real-world distortion: copper carries 40% of its weight, and copper's price signal is currently contaminated. COMEX warehouses hold 1.85x what LME warehouses hold, so the Chokepoint-Adjusted Growth Signal keeps only 57% of copper's normal weight. Read this tile as unavailable rather than neutral.
driver wt latest reading
xx.commodity.copper 40% 13,552.04 USD/t LIVE 2026-06-30
us.equity.sox 40% 501.98 index LIVE 2026-07-27
us.rates.2s10s 20% +0.34pp DERIVED 2026-07-23
▲ positive means industrial and technology demand is accelerating — cyclicals and exporters benefit
▼ negative means demand is cooling ahead of the official statistics, which typically confirm it two quarters later
concepts
200-day average

The average price over the last 200 trading days. Prices above it are conventionally read as an uptrend, below as a downtrend.

It is a convention rather than a law, and it is a lagging one by construction — a 200-day mean cannot turn until well after the price has. Its usefulness is as a shared reference point that many participants watch, which makes it partly self-fulfilling.

Read more about 200-day average
z-score

How unusual today's reading is compared with its own history, measured in standard deviations. 0 = perfectly normal, ±1 = mildly unusual, ±2 = happens about 5% of the time, ±3 = rare.

z = (today − mean) ÷ standard deviation, both taken over a chosen lookback window. Two things about that make it weaker than it looks. The window is a judgement call, not a fact — this dashboard uses ~1250 observations for dailies (five years) and shortens it where the publisher carries less history, and a different window gives a different answer for the same day. And the ±2 ≈ 5% rule assumes a bell curve, which financial series emphatically do not follow: they have fat tails, so genuinely extreme readings arrive far more often than the normal distribution predicts. Read a z-score as a ranking, not a probability.

Read more about z-score
13% of the regime score

Resource security

Cost of physical inputs
awaiting
composite z

Are the physical things economies actually run on getting cheaper or dearer?

Three of four drivers are live. World energy costs 198.8 against a 2016 base of 100 and food 131.2; Asian LNG is $17.19/MMBtu. In dollars that is elevated but not extreme. In baht it is worse, and that difference is the whole point of the Baht Import Burden Index at 163.2 — the same physical basket, priced in the currency the bills are actually paid in.
driver wt latest reading
xx.index.energy 35% 198.8 STATIC Jun 2026
xx.index.food 25% 131.2 STATIC Jun 2026
xx.commodity.lng_asia 25% $17.19 STATIC Jul 2026
xx.commodity.coal_au 15% 150.36 USD/t LIVE 2026-06-01
▲ positive means energy, food and industrial inputs are cheap against their own history — a quiet subsidy to every importing economy, Thailand especially, and to corporate margins everywhere
▼ negative means the physical economy is being taxed by its own input costs, which shows up as inflation that interest rates cannot fix, and hits energy-importing Asia before it hits the United States
concepts
z-score

How unusual today's reading is compared with its own history, measured in standard deviations. 0 = perfectly normal, ±1 = mildly unusual, ±2 = happens about 5% of the time, ±3 = rare.

z = (today − mean) ÷ standard deviation, both taken over a chosen lookback window. Two things about that make it weaker than it looks. The window is a judgement call, not a fact — this dashboard uses ~1250 observations for dailies (five years) and shortens it where the publisher carries less history, and a different window gives a different answer for the same day. And the ±2 ≈ 5% rule assumes a bell curve, which financial series emphatically do not follow: they have fat tails, so genuinely extreme readings arrive far more often than the normal distribution predicts. Read a z-score as a ranking, not a probability.

Read more about z-score
10% of the regime score

AI capex cycle

The AI build-out
awaiting
composite z

Is the AI infrastructure boom still being funded, or is it starting to strain?

The credit tail and the equity market are telling different stories, which is the configuration this gauge exists to catch. The high-yield index is calm at 2.79pp and investment grade calmer still at 0.80pp — but CCC-and-lower borrowers pay 9.96pp, a gap of +7.17pp over the index and the widest in the three years these series have existed. Data-centre and neocloud paper sits in that tail, not in the index, so a spread test aimed at the headline would read this as calm. Meanwhile the Nasdaq 100 has outrun the S&P by half again since 2019 (145 on a 2019=100 base), and semiconductor output at 181.9 is a physical check that lags by about seven weeks. Lenders are repricing the weak end while shareholders are not — and lenders see the cash flows first.
driver wt latest reading
us.credit.quality_spread 40% +7.17pp DERIVED 2026-07-24
us.equity.sox 30% 501.98 index LIVE 2026-07-27
us.semi.ip 20% 181.9 LIVE 2026-06-01
us.equity.ndx_spx 10% 145.0 DERIVED 2026-07-24
▲ positive means the build-out is being financed comfortably — lenders are not charging the weak borrowers a penalty, semis are leading, and chip output is keeping pace with the equity story
▼ negative means the financing side is tightening before the equity side admits it, which is the order these things fail in: credit first, guidance second, earnings last
concepts
credit dispersion

How far apart the strong and weak borrowers in a market are priced. It widens before an index-level move, because lenders retreat from the worst names first.

An index spread is a weighted average, and averages hide the thing you want. When lenders start declining marginal deals, the refusal shows up as the bottom rating tier repricing while the index barely moves — so a rule keyed to the index reads calm through the early phase. Measured here as CCC OAS − HY OAS. On 2026-07-23 that gap was 7.14pp, the widest in the three years these series exist, while the HY index sat at a comfortable 2.77%.

Read more about credit dispersion
option-adjusted spread

A credit spread with the value of the bond's embedded options stripped out, so bonds with different call features can be compared honestly.

Most corporate bonds are callable — the issuer may repay early, which is valuable to the issuer and costly to the holder. A raw spread on a callable bond therefore mixes credit compensation with the price of that option, and two issuers with identical credit quality can show different spreads purely because one has a call and the other does not. OAS values the option with an interest-rate model and removes it, leaving something closer to pure credit. Every ICE BofA series on this dashboard — HY, IG, CCC — is an OAS, which is what makes differencing them defensible.

Read more about option-adjusted spread
spread duration

How much a bond's price moves for a given change in its credit spread — the credit analogue of interest-rate duration.

Price change ≈ −(spread duration × change in spread). It gives you the number that actually matters for a carry trade: the breakeven widening, which is roughly spread ÷ spread duration per year. Worked on this dashboard's own data — CCC-and-lower yields 9.91pp over Treasuries at a spread duration of roughly 3 years, so about 330bp of widening in a year wipes out the entire year's extra income. The tail has widened ~82bp in three months. That is the arithmetic behind 'high yield is not high return'.

Read more about spread duration
useful life

The number of years a company assumes an asset lasts, which sets how fast it is depreciated — and therefore how large reported profits are.

Annual depreciation = cost ÷ useful life, so extending assumed life raises reported profit without changing a single dollar of cash. The sensitivity is large at AI-capex scale: on $725bn of spending, moving servers from a 5-year to a 6-year life cuts annual depreciation by 725/5 − 725/6 ≈ $24bn a year. That is why the assumption is worth reading in the notes to the accounts rather than taking earnings at face value, and why cash flow is the harder number to dress up. It cuts both ways — if accelerators genuinely wear out or go obsolete faster than assumed, the correction lands as an impairment.

Read more about useful life
vendor financing

When a supplier funds its own customer's purchases, so money leaves as investment and returns as revenue.

The accounting can be entirely proper while the economics are circular: reported revenue rises without new end demand, and every downstream metric built on revenue — backlog, order growth, capex-versus-revenue — inherits the distortion. It was a documented feature of the late-1990s telecom build-out and is a live question in AI infrastructure. The diagnostic is not the revenue line but whether the customer could have paid from its own cash flows.

Read more about vendor financing
market concentration

How much of an index sits in a handful of names — and therefore how little diversification an index fund is actually providing.

The rigorous measure is the Herfindahl index, the sum of squared weights, whose reciprocal gives the 'effective number' of holdings: an index of 500 names where the top 10 hold 40% behaves like far fewer than 500 independent bets. Concentration is not a separate risk from a sector risk — it is the mechanism that turns one into a portfolio problem for someone who believes they are diversified.

Read more about market concentration
home lens · not in the regime blend

Thailand conditions

Thailand conditions
awaiting
composite z

How friendly is the environment for a baht-based investor?

The carry gap is -2.64pp — Thai policy at 1.00% against US overnight money at 3.64%. That is the single most consequential number on this page for a baht earner, and it is through its tripwire. Brent at $86.99 is below the shock threshold, which helps. The SET at 2,408 needs 200 days of history before its momentum term means anything.
driver wt latest reading
th.carry.vs_fed 30% -2.64pp DERIVED 2026-07-24
th.fx.usdthb 25% 33.55 LIVE 2026-07-27
th.equity.set 25% 2,408 STATIC Jul 2026
xx.commodity.brent 20% $86.99 LIVE 2026-07-20
▲ positive means the baht is stable-to-firm, energy is cheap and the SET has momentum — a good moment to take domestic risk
▼ negative means the baht is under pressure and imported costs are rising — favour foreign-currency assets and unhedged exposure
concepts
carry

The income you earn simply for holding a position, before any price movement — for currencies, the interest-rate difference between the two sides.

Carry is compensation for a risk, never free money, and the risk is usually a rare large loss against a steady small gain. That shape is why carry strategies look excellent on average return and poor on worst case, and why the honest test of one is the breakeven move rather than the yield.

Read more about carry
real yield

An interest rate after subtracting expected inflation — the return that actually buys you more goods.

Read more about real yield
home lens · not in the regime blend

The regime quadrant

The regime score is a weighted blend of six gauges (liquidity 28% · cost_of_money 22% · risk_appetite 14% · dollar_pressure 13% · growth_pulse 13% · resource_security 10%). It is plotted on two axes — how easy money is, and how fast the economy is growing — giving four named weather states. Thailand conditions is deliberately excluded from the blend: it is the home lens, not part of the world picture, and folding it in would double-count the baht.

Reflation
Easy money, growing economy
The most straightforwardly supportive environment: money is cheap and demand is improving. Historically the best backdrop for cyclical and emerging-market equity.
Late cycle
Tight money, growing economy
The economy is still expanding but financing has become expensive. Returns tend to narrow into a few large winners, and the risk is that policy tightens one step too far.
Policy support
Easy money, slowing economy
Central banks are easing into weakness. Bonds usually do well first, equities later and only once earnings stop being revised down.
Stress
Tight money, slowing economy
The dangerous quadrant: expensive money meeting falling demand. Correlations rise, diversification stops working, and cash and duration are the assets that hold up.

Current quadrant: awaiting — it is a function of the gauge scores above, so it inherits their missing history rather than guessing. The tripwires below do not have this problem, because they run off named physical thresholds instead of statistical ones.

Level 2 Tripwires — the 11 things worth being told about

A tripwire is not a forecast. It is a line drawn in advance at a level that has a physical meaning — days of fuel, dollars a barrel, a share of world refining, days until a licence lapses — so that the decision about what matters is made when calm rather than when it fires. Each one below is expanded with the mechanism by which it reaches a household in Thailand. Click any row.

ACTIVE THB carry gap (BOT − Fed) -264bp trigger: below −250bp
DERIVED Thai policy rate 1.00% − SOFR 3.64%

A deeply negative gap means Thai deposits pay far less than dollar deposits, and the baht tends to drift weaker while that lasts. Two consequences for a baht earner: money you will not spend for years earns more in USD than in a Thai savings account, and USD assets you already own need less currency hedging because the currency is working for you rather than against you. The mirror image applies to borrowing — the cheap currency to owe is the one paying the lower rate, which here is baht.

ACTIVE India strategic oil cover < 15 days 9.5 days trigger: below 15 days
STATIC IEA / national stockholding, 2026

India absorbs an oil shock through the rupee and the fuel bill, not through reserves. If you hold an India equity fund, treat a Brent spike as a direct hit to it and size that position knowing there is no buffer behind it.

ACTIVE Thai rice priced > 10% above Vietnamese +12.3% trigger: above +10%
STATIC Thai vs Vietnamese 5% broken FOB quotes, Jul 2026

Thai rice is losing on price, which is a slow drag on the rural economy, the export line of the trade balance and eventually the baht. For you this is a reason not to be overweight Thai domestic-consumption stocks on a rural-recovery story — the story needs this number to fall first.

NEAR US 10-year real yield > 2.5% 2.43% trigger: above 2.50%
LIVE FRED DFII10, 2026-07-23

Above 2.5% the US government pays a real return after inflation — the highest-quality competition anything in your portfolio faces. Two things you likely hold feel it: expensive growth and tech funds, whose value sits mostly in distant future profits, and gold, which pays no interest and therefore looks worse the more safe cash yields. This is the condition under which plain US Treasuries are worth owning on their own merits, and under which adding to gold rewards patience over urgency. Below 2.2% the argument reverses.

NEAR China share of critical-mineral refining > 70% 66.2% avg of 8 trigger: above 70% average
STATIC Gallium 99.0 · rare-earth separation 86.1 · synthetic graphite 85.2 · cobalt 71.4 · lithium 60.9 · aluminium 60.4 · copper 60.0 · nickel 6.2

Reserves are spread around the world; refining is not. This is the single most concentrated risk in the entire dashboard and it is not priced daily, so there is nothing to trade on it — it is a reason to keep some gold and to avoid concentrating your equity in companies whose input list runs through one country.

NEAR Nearest export-control expiry 106 days trigger: within 180 days
STATIC China 9 Oct 2025 rare-earth controls, suspension lapses 10 Nov 2026

China's 9 Oct 2025 controls — five further elements plus a 0.1% extraterritorial rule — are suspended until 10 Nov 2026. This is a diary entry, not a trade. Put the date in your calendar and check the week before: if it lapses, the affected industrials fall first and gold catches a bid — do not act early on it.

NEAR COMEX ÷ LME copper stocks > 2.0x 1.85x trigger: above 2.00x
STATIC COMEX 652,200t ÷ LME 352,100t, w/e 2026-07-17

Copper is the cleanest read on world industrial demand, and this ratio says whether the copper price you see is telling you about demand or about a border. When it is stretched, discount copper as a growth signal — do not read a high price as the world getting stronger.

NEAR Asian LNG > $20/MMBtu sustained $17.19/MMBtu trigger: above $20 for 4 months
STATIC JKM Asia spot, Jul 2026 · 0 of 4 months above trigger

Thailand burns imported gas for its marginal electricity, so this feeds your power bill and the margins of Thai industrials with roughly a one-quarter lag. Sustained above $20, favour energy producers over energy consumers inside your Thai equity sleeve.

dormant US SPR below 300mn bbl (structural buyer) 311447mn bbl · 42864% of peak trigger: below 300mn bbl
STATIC EIA, 2026-07-17; peak fill 726.6mn bbl (2010)

A half-empty US reserve means one large, price-insensitive buyer standing under the oil market. That is mildly bad for a Thai household budget and mildly good for any energy exposure you own. It argues against betting on cheap oil, not for betting on expensive oil.

dormant Brent > $95 sustained 4 weeks $86.99 trigger: above $95 for 4 weeks
LIVE FRED DCOILBRENTEU, 2026-07-20 · week 0 of 4 · 9% below trigger

Thailand imports nearly all its oil, so sustained $95 Brent is a tax on the country you live in: fuel bill up, baht down, SET earnings squeezed — three hits from one event, and your salary is exposed to the same one. That concentration is the risk, not the oil price itself. The standard offsets are assets that gain when this happens: unhedged USD holdings, or energy exposure. Both are far cheaper to own before the trigger than after it.

awaiting Net liquidity 13-week z > +1 awaiting history trigger: z above +1.0
AWAITING level is known ($5.92tn) — the 13-week change against 5 years of its own distribution is not, from one observation

Dollar liquidity is the tide under everything you own, Thai or foreign. Positive means the tide is coming in: a kinder-than-usual window to put idle cash to work in what you already intended to hold. Negative means stop adding and let cash build instead. It says nothing about WHICH asset — only whether now is a forgiving time to be buying at all.

Thresholds and state logic are mirrored from src/ingest/runner.ts. If the page and the deployed system ever disagree, the TypeScript is the source of truth and this is the bug.

Positions What to do about it — 11 stances, 31 named instruments

This is the only section that names things you can actually buy. Each stance is produced by arithmetic on the readings above — never by a language model — and each one shows its score, how much of its evidence exists yet, and the number that would reverse it. Sorted so anything on a published clock comes first, which today means 2 of them. Open the explainer before acting on any of it: the card is a summary of an argument, not the argument.

Accumulate Worth adding to, in regular amounts rather than all at once

Long bonds 35 days left

The government savings bond

Buy the ten-year at 2.80% during the sale window. It pays roughly three times a bank deposit for the same safety, and the window is short.

RBP368ARBP298AABFTH
+100 medium conviction 2/3 readings available
Full explanation →
Own Thailand 157 days left

ThaiESG — the last year of the enhanced deduction

If you pay Thai income tax, buy ThaiESG units before 31 December 2026 — ฿300,000 of deduction on a five-year hold, and it drops to ฿100,000 on eight years in January.

ThaiESGRMF
not scored high conviction 4/4 readings available
Full explanation →
Own the world

Own the world

Keep adding to one broad global fund on a fixed schedule. This is the anchor holding; everything else on this page is a variation around it.

WORLDA01VWRAIWDA
+33 high conviction 3/4 readings available
Full explanation →

Avoid this version There is a better-structured way to own the same thing

Own the world

US-listed funds — use the Irish version instead

Above about US$60,000, hold the Irish-domiciled version of any fund rather than the US-listed one. It owns the same companies and keeps your estate out of the IRS.

VWRACSPXIGLN
not scored high conviction 4/4 readings available
Full explanation →

Hold Keep what you have; nothing here argues for changing it

Insurance

Gold as insurance

Keep a standing allocation and add to it patiently rather than urgently. Gold's job here is insurance against things the rest of the page cannot price.

GLDIGLNThai gold 96.5%GOLDM01
+25 high conviction 4/4 readings available
Full explanation →
Own America

Own America, but no more than the world already gives you

Hold what a global fund already gives you. A separate S&P 500 or Nasdaq holding on top of that is a concentration decision, and the cost of money argues against making it now.

SP50001CSPXNDX01
+25 medium conviction 2/3 readings available
Full explanation →
Dry powder

Where idle cash sits

Split it. Money you will spend in Thailand within about five years stays in baht; genuinely long-horizon idle cash earns materially more in dollars, and you are paid to wait.

USD FCDIB01BONDUS01THB savings
+17 high conviction 3/4 readings available
Full explanation →
Own Asia

Own Asia beyond Thailand

Hold a modest position and add slowly. The currency backdrop helps; the growth signal that would confirm it is not readable at the moment, so this deserves patience rather than conviction.

CN01INDIA01E1VFVN3001CHINA
0 medium conviction 2/4 readings available
Full explanation →

Watch Not yet — the number to wait for is named below

Own Thailand

High-dividend Thai funds

Do not add here; if it has grown into a large position, prefer the plain index fund. The costs are certain and the yield advantage is not.

TDEX
-67 high conviction 3/3 readings available
Full explanation →
Own Thailand

Own Thailand

Hold enough Thai equity to match the baht bills you will actually pay, and no more. The readings do not support adding here right now.

TDEXBSET100ThaiESG
-33 high conviction 3/4 readings available
Full explanation →
Inflation-linked bonds

Inflation protection

Monitor rather than buy. Protection is priced at roughly what history suggests, and the version available to you protects against American inflation, not Thai inflation.

IDTP
0 medium conviction 2/3 readings available
Full explanation →

Stances, thresholds and instrument choices are computed in src/lib/positions/engine.ts from the instrument reference in src/lib/positions/universe.ts, last verified against issuer and exchange pages on 2026-07-25. Nothing on this page knows what you already own. It is decision support with its reasoning printed underneath it, not advice — see the disclaimer at the foot of the page, which means what it says.

Your move What all of this means for one person in Thailand

Everything above is the same for everybody. This part is not. A trading desk reads "Brent above $95" as a relative-value trade between two markets; someone living in Bangkok reads it as a higher fuel bill, a weaker home currency and a hit to the local index all at once — three exposures to one event, which is the part an institutional note never mentions, because a desk does not buy its own petrol. Each item below names the mechanism first, then the consequence for money already held, and only then any option. None of it is a recommendation to buy or sell any specific instrument.

1

The currency is doing more to your wealth than any stock you own

Carry gap -2.64pp · BIBI 163 · USD/THB 33.55

Three separate readings on this page say the same thing from different directions: the baht is structurally soft while Thai rates sit 2.64 points below US rates. For someone who earns, spends and saves in baht, that is not a market opinion — it is the denominator of everything. The practical consequence is unglamorous: money you genuinely will not need for several years currently earns more in dollars than in a Thai savings account, and foreign assets you already hold need less currency hedging than usual, because the currency movement is working with you rather than against you. The mirror image is borrowing — the cheaper currency to owe is the one paying less, which here is baht.

This reverses if the Bank of Thailand raises or the Fed cuts. Watch the gap, not the exchange rate — the rate follows.
2

Your income and your home market are exposed to the same oil price

Brent $86.99 vs $95 trigger · Thailand 108 days cover

A Thai salary, a Thai fuel bill and a Thai equity holding are three separate exposures to one event. An oil shock hits all three at once, which is a concentration most people never notice because the three arrive through different doors. Brent is currently $86.99, comfortably below the $95 level where that starts to bite, and Thailand's 108 days of cover is a real absorber. That combination is what makes now — rather than during a spike — the cheap moment to hold whatever offsets it, whether that is unhedged dollar assets or energy exposure.

Insurance bought after the event is not insurance. The point of a dormant tripwire is that it is still dormant.
3

Safe US government bonds now compete with everything you own

US 10-year real 2.43% vs 2.5% trigger · HY spread 2.79pp

At 2.43% after inflation, US Treasuries pay a real return without taking any business risk. That is the benchmark every other holding has to beat. Two categories feel it most: funds whose value rests on profits far in the future — most technology and growth funds — and gold, which pays no interest at all and therefore looks worse the better safe cash gets. Neither of those is a reason to sell. It is a reason to notice that a dull-looking government bond is currently a real alternative rather than a place to park.

Below 2.2% the argument runs the other way, and gold's disadvantage disappears with it.
4

Hold gold for the thing that is not priced daily

China refines 66% of eight critical minerals · gold ฿142,137/oz

Reserves of critical minerals are spread across many countries; the refining of them is not. Gallium is 99% Chinese, rare-earth separation 86%, and no market quotes that risk from day to day, which means it cannot be traded and can only be prepared for. Gold is the standard preparation, and it has a second job for a Thai holder: priced in baht it is ฿142,137 per ounce, so it hedges the currency and the geopolitics in one position. The counter-argument is directly above — real yields at 2.43% are gold's natural enemy, which argues for patience in adding rather than urgency.

Central banks bought 863 tonnes in 2025, 21% less than 2024. The official bid is still large but no longer growing.
5

Do not read the copper price as a growth signal right now

COMEX ÷ LME 1.85x · signal keeps 57% of normal weight

Copper is usually the most honest indicator of world industrial demand. It is currently not honest, because 1.85 times as much metal sits in American warehouses as in global ones — a tariff-arbitrage position, not a demand signal. Anything you read that infers global strength from the copper price this quarter is reading a border, not an economy. The Chokepoint-Adjusted Growth Signal on this page handles that by shrinking copper's weight to 57%; a headline that does not adjust is simply wrong.

This resolves when the venue ratio normalises toward 1.0. Until then the growth gauge reads unavailable rather than neutral.
6

Size India for the fact that it has no buffer

India 9.5 days cover · Japan 248 · China 124 · Thailand 108

India holds 9.5 days of strategic oil cover against Japan's 248. That is not a view on Indian companies; it is arithmetic about what happens to the rupee and the fuel bill if supply is interrupted, and it means an Indian equity fund carries an oil sensitivity that is invisible in its holdings list. If both an India fund and Thai assets are held, they are not diversified against an oil event — they are the same bet twice, with India on the shorter fuse.

This is a structural fact reviewed annually, not a signal that flips. It changes how a position is sized, not when it is bought.
7

Put one date in the calendar

106 days to 10 Nov 2026

China's October 2025 export controls on five additional elements, including a rule that reaches non-Chinese manufacturers whose products contain as little as 0.1% of the controlled material, are suspended until 10 November 2026. That is 106 days away and it is the only item on this entire dashboard with a known date attached. Everything else here is a level or a trend; this is an event. If the suspension lapses, the first thing to move is industrial companies with Chinese inputs, and gold usually catches a bid.

Acting early on a date that may simply be extended is how people lose money on correct analysis. Check the week before, not now.

Level 1 The indicator register — every formula, and who invented it

20 derived indicators. 9 are standard constructions used the way their publishers intend, 6 are standard ideas adapted (usually by changing the denominator or the reference point to something a Thai household actually faces), and 5 were built here and appear in no literature. The invented ones carry their formula in full precisely because they have no external authority behind them.

Days of import cover

How many days it keeps running
STANDARD L1
formula stock ÷ average daily net imports → days
≤ 15 no buffer ≤ 45 thin ≤ 90 below the IEA line ≤ 180 adequate above deep

What it reads. How long the country runs if imports stopped tomorrow. It makes reserves of wildly different absolute sizes comparable, which raw tonnes never do.

So what, for you. Thailand at 108 days and India at 9.5 are not the same investment. An oil spike passes through India's currency and fuel bill almost immediately; Thailand has three months of absorber. If you hold both, size the India position for the shorter fuse.

Provenance. IEA emergency stockholding obligation — 90 days of NET IMPORTS for member countries. Note the denominator: the IEA uses net imports, while the oil market more often quotes days of forward DEMAND. The two give different answers for the same country and are routinely confused. This register uses net imports and says so on every reading.
th.oil.days_cover · in.oil.days_cover · jp.oil.days_cover · cn.oil.days_cover static inputs

Stocks-to-use ratio

How much grain the world has spare
STANDARD L1
formula ending stocks ÷ total annual use × 100 → %
≤ 20 tight — price spikes likely ≤ 30 snug ≤ 40 comfortable above ample

What it reads. Below roughly 20% grain prices stop responding to demand smoothly and start jumping. World rice is currently comfortable, which is the single best piece of news in the resource picture for a Thai household budget.

So what, for you. Comfortable stocks argue against holding agricultural commodity funds as an inflation hedge right now. The inflation you face is energy and currency, not food.

Provenance. USDA WASDE and FAO AMIS both publish this monthly; it is the grain equivalent of days of cover and one of the oldest agricultural statistics there is.
xx.food.rice_stocks_to_use static inputs

Gold stock-to-flow

Years of gold mining already above ground
STANDARD L1
formula above-ground stock ÷ annual mine production → years
≤ 20 supply can respond ≤ 50 slow to respond above supply is effectively fixed

What it reads. About 67 years. Everything ever mined is still here, and a year of world mining adds roughly 1.5% to it. That one ratio is the entire argument for gold as a monetary asset rather than a commodity: no price rise can conjure meaningful new supply.

So what, for you. This is why a gold allocation is a structural decision, not a trade. It also means the gold price is set by who wants to hold the existing stock, not by mine output news.

Provenance. Popularised by Incrementum AG's In Gold We Trust report. NOT a World Gold Council metric — the WGC publishes the 219,891 t above-ground numerator but does not present the ratio. My first draft credited the WGC and that was wrong.
xx.gold.above_ground · xx.gold.mine_supply static inputs

Refining concentration (HHI)

How few countries do the processing
STANDARD L1
formula Σ (country share)² × 10,000 → index 0–10,000
≤ 1500 competitive ≤ 2500 moderately concentrated ≤ 5000 highly concentrated above single-country control

What it reads. Reserves are spread around the world; the furnaces that turn ore into usable material are not. A country that mines something it cannot process does not control it.

So what, for you. Nothing to trade — this is not priced daily. It is a reason to hold some gold and to check whether your equity funds are concentrated in manufacturers whose input list runs through one country.

Caveat. Computed from China's share alone with the remainder assumed to split evenly, because that is the only share published consistently for all eight minerals. Real residual shares are lumpier, so this understates concentration.
Provenance. USGS (Thomas, Nassar & DeYoung 2022) and the EU Critical Raw Materials methodology. NOT an IEA metric — the IEA publishes a plain top-three share (82% in 2020 rising to 86% in 2024) and uses reverse-HHI only for power-generation fuel mix. I had this attributed to the IEA and it was corrected.
concepts
market concentration

How much of an index sits in a handful of names — and therefore how little diversification an index fund is actually providing.

The rigorous measure is the Herfindahl index, the sum of squared weights, whose reciprocal gives the 'effective number' of holdings: an index of 500 names where the top 10 hold 40% behaves like far fewer than 500 independent bets. Concentration is not a separate risk from a sector risk — it is the mechanism that turns one into a portfolio problem for someone who believes they are diversified.

Read more about market concentration
xx.refine.gallium · xx.refine.rare_earth · xx.refine.graphite · xx.refine.cobalt · xx.refine.lithium · xx.refine.aluminium · xx.refine.copper · xx.refine.nickel static inputs

Gold/oil ratio

Barrels of oil one ounce of gold buys
STANDARD L1
formula gold USD/oz ÷ Brent USD/bbl → barrels per ounce
≤ 15 oil expensive vs gold ≤ 30 historically normal ≤ 50 gold expensive vs oil above extreme — usually a crisis print

What it reads. The cleanest way to separate a monetary story from an energy story. If both gold and oil are rising but the ratio is flat, that is money losing value. If the ratio is falling, it is a genuine energy supply problem.

So what, for you. Directly useful: it tells you whether your gold holding is hedging the thing you actually face. Against a supply-driven oil shock, gold is a poor hedge and energy equity is a better one.

Provenance. A market convention of very long standing with no institutional publisher — no central bank or agency computes it, but every commodity desk watches it.
concepts
percentile

Where today sits in the full range of the past few years. The 90th percentile means only 10% of past readings were higher.

Often the honest alternative to a z-score, because it makes no assumption about the shape of the distribution — it just counts. The cost is that it discards magnitude: the 99th percentile reads the same whether today is a whisker above the old high or double it.

Read more about percentile
xx.commodity.gold · xx.commodity.brent live inputs

US net dollar liquidity

Cash the Fed is leaving in the system
STANDARD L3
formula WALCL − Treasury General Account − overnight reverse repo → USD tn
≤ 0 draining above adding

What it reads. The single best-known proxy for whether money is being added to or drained from markets, read as a 13-week change rather than a level.

So what, for you. Read as a lead, not a signal. When it turns down it has historically pressured emerging market equity — which includes the SET — with a one-to-two month lag. It is a reason to slow down new buying, not to sell.

Caveat. Widely followed enough that its predictive power is partly arbitraged away.
Provenance. A MARKET CONVENTION, not a Fed publication. The Fed publishes WALCL, WTREGEN and RRPONTSYD separately and does not endorse the subtraction. The originator of the construction could not be verified; it is in wide use without a clear first author.
concepts
credit impulse

The change in the flow of new credit, as a share of the economy. It leads actual activity by roughly two to three quarters, which is why it is watched instead of loan totals.

Read more about credit impulse
z-score

How unusual today's reading is compared with its own history, measured in standard deviations. 0 = perfectly normal, ±1 = mildly unusual, ±2 = happens about 5% of the time, ±3 = rare.

z = (today − mean) ÷ standard deviation, both taken over a chosen lookback window. Two things about that make it weaker than it looks. The window is a judgement call, not a fact — this dashboard uses ~1250 observations for dailies (five years) and shortens it where the publisher carries less history, and a different window gives a different answer for the same day. And the ±2 ≈ 5% rule assumes a bell curve, which financial series emphatically do not follow: they have fat tails, so genuinely extreme readings arrive far more often than the normal distribution predicts. Read a z-score as a ranking, not a probability.

Read more about z-score
us.fed.walcl · us.fed.tga · us.fed.rrp live inputs

2s10s term spread

Whether the bond market expects trouble
STANDARD L1
formula 10-year Treasury yield − 2-year Treasury yield → pp
≤ 0 inverted ≤ 0.5 flat above positive

What it reads. Inversion has preceded most US recessions, with a long and variable lag.

So what, for you. Too slow to act on alone. Its use here is as one input to the growth axis of the regime map, which is what actually drives the recommendations.

Provenance. Estrella & Mishkin (1996); published continuously by the New York Fed as a recession probability model.
concepts
duration

How sensitive an asset's price is to interest-rate changes. Long-duration assets — 30-year bonds, unprofitable growth stocks, infrastructure — fall hardest when rates rise.

Formally the weighted-average time to receiving an asset's cash flows, which is why it applies to equities at all: a company whose profits arrive in a decade is mathematically a long bond, and is discounted like one. It is also why the AI complex and the bond market are more correlated than they look — both are priced off the same discount rate.

Read more about duration
spread

The difference between two interest rates. Widening spreads mean rising perceived risk.

In credit it is the extra yield a borrower pays over a government bond of similar maturity — compensation for default risk and for illiquidity, and those two are not separable from the outside. That matters when reading a widening: it can mean the market thinks default is likelier, or merely that the paper has become harder to sell.

Read more about spread
z-score

How unusual today's reading is compared with its own history, measured in standard deviations. 0 = perfectly normal, ±1 = mildly unusual, ±2 = happens about 5% of the time, ±3 = rare.

z = (today − mean) ÷ standard deviation, both taken over a chosen lookback window. Two things about that make it weaker than it looks. The window is a judgement call, not a fact — this dashboard uses ~1250 observations for dailies (five years) and shortens it where the publisher carries less history, and a different window gives a different answer for the same day. And the ±2 ≈ 5% rule assumes a bell curve, which financial series emphatically do not follow: they have fat tails, so genuinely extreme readings arrive far more often than the normal distribution predicts. Read a z-score as a ranking, not a probability.

Read more about z-score
us.rates.10y · us.rates.2y live inputs

US 10-year real yield

The return on cash after inflation
STANDARD L1
formula 10-year TIPS yield → %
≤ 0 negative — everything else looks attractive ≤ 1.5 mild ≤ 2.5 restrictive above punishing for long-duration assets

What it reads. The hurdle rate for every other asset on earth, and the single biggest driver of the gold price after the dollar.

So what, for you. Above 2.5% is the level at which holding cash starts genuinely competing with owning growth equities. It is also the standard argument against gold — which is why gold rising through a high real yield, as it has, is worth noticing.

Provenance. US Treasury TIPS constant-maturity series, published daily (FRED DFII10).
concepts
real yield

An interest rate after subtracting expected inflation — the return that actually buys you more goods.

Read more about real yield
duration

How sensitive an asset's price is to interest-rate changes. Long-duration assets — 30-year bonds, unprofitable growth stocks, infrastructure — fall hardest when rates rise.

Formally the weighted-average time to receiving an asset's cash flows, which is why it applies to equities at all: a company whose profits arrive in a decade is mathematically a long bond, and is discounted like one. It is also why the AI complex and the bond market are more correlated than they look — both are priced off the same discount rate.

Read more about duration
us.rates.10y_real live inputs

Cover gap vs the 90-day line

Days above or below the international standard
ADAPTED L1
formula days of cover − 90 → days
≤ -60 critically short ≤ 0 short of the standard ≤ 60 compliant above well provisioned

What it reads. One signed number per country, comparable across countries that report differently.

So what, for you. Thailand is +18 and India is −80.5. That gap is the reason a single oil shock produces two very different equity outcomes across two markets a non-specialist would lump together as 'Asia'.

Provenance. The 90-day obligation is the IEA's. The subtraction is not novel. Renamed from 'Reserve Adequacy Spread' because that collided with the IMF's established Assessing Reserve Adequacy (ARA) metric, which is about FX reserves and is a different thing. Also note ARA and months-of-import-cover are two distinct metrics and must not be conflated — an error I nearly shipped.
th.oil.days_cover · in.oil.days_cover · jp.oil.days_cover · cn.oil.days_cover static inputs

Official absorption of mine supply

Share of new gold that central banks take
ADAPTED L1
formula central-bank net purchases ÷ annual mine supply × 100 → %
≤ 10 central banks are marginal ≤ 20 meaningful official bid above official buying sets the price

What it reads. Above roughly 20%, official institutions rather than jewellers or investors are setting the marginal gold price — and central banks are famously price-insensitive buyers.

So what, for you. The most under-appreciated fact in the resource data: 2025 official buying FELL 21% and gold still made a record. Something other than central banks is bidding, which makes the rally less structurally safe than the 'central banks are buying' story implies.

Provenance. Derived from World Gold Council data, not a WGC-published series. The WGC frames central-bank demand against TOTAL demand; this uses mine supply as the denominator, which is the harder test and the more interesting one.
xx.gold.cb_purchases · xx.gold.mine_supply static inputs

SET–Brent rolling correlation

How much Thai stocks follow the oil price
ADAPTED L1
formula rolling 260-observation Pearson correlation of Δ%SET and Δ%Brent → correlation −1…+1
≤ -0.2 SET is an oil hedge ≤ 0.2 no relationship above SET moves with oil

What it reads. Thailand imports oil, so intuition says the SET should fall when oil rises. In practice the index is heavy in PTT and energy-linked names, so the relationship is often the opposite of the intuition. This measures which one is true right now.

So what, for you. Decides whether your SET holding is already an oil hedge or needs one. If the correlation is positive, buying an energy fund on top of a SET position is doubling a bet you already have.

Provenance. LSEG/FTSE Russell already publishes rolling oil betas for APAC equity markets including Thailand, so the idea is not new — I had this labelled INVENTED and the check overturned it. What is mine is the construction: a 12-month rolling Pearson correlation of daily PERCENTAGE CHANGES (not levels, which would be spurious), computed inside the pipeline so it updates with everything else.
th.equity.set · xx.commodity.brent live inputs

Resource endowment score

How well supplied a country is, 0–100
ADAPTED L1
formula mean of min-max normalised (arable land per person, inverse fuel import share, days of cover) → score 0–100
≤ 30 dependent ≤ 60 mixed above well endowed

What it reads. A slow structural ranking, not a market signal. It moves once a year at most.

So what, for you. Useful for deciding where a decade-long allocation sits, not what to do this quarter. Indonesia and Malaysia score well; Singapore and Japan score badly and compensate with capital and institutions, which this score cannot see.

Caveat. Deliberately crude — three inputs, equal weights. Treat as a ranking, not a measurement.
Provenance. SolAbility's GSCI Natural Capital Index is a published normalised 0–100 resource composite and is the structural precursor; the World Bank's Changing Wealth of Nations is the monetary one. Downgraded from INVENTED after the check found both. Mine is narrower: min-max across the ten mandate countries on inputs already in the registry.
th.land.arable_pc · th.energy.import_share · th.oil.days_cover live inputs

Baht Import Burden Index

What the world costs, in baht
INVENTED L1
formula (0.60 × energy index + 0.40 × food index) × (USDTHB ÷ 35.3), base 2016 = 100 → index 2016 = 100
≤ 90 cheap world ≤ 110 normal ≤ 140 expensive above squeeze

What it reads. Dollar commodity indices understate what a Thai household pays, because the baht usually weakens in the same move that lifts oil. This multiplies the two so the compounding is visible in one line.

So what, for you. When this is rising fast, two things follow for you personally: your cost of living is going up before the CPI print says so, and unhedged foreign-currency assets are quietly protecting you. It is an argument for holding some savings outside the baht, not for trading anything.

Provenance. No published equivalent found. The nearest cousin is the IMF's Commodity Terms of Trade index (PCTOT, IMF WP/19/21), but PCTOT is deflated to real USD and weighted by NET exports; this is import-only and denominated in the local currency, which is what makes it read like a household's experience rather than a country's trade account.
xx.index.energy · xx.index.food · th.fx.usdthb live inputs

Physical Tightness Premium

Is it expensive because it is scarce?
INVENTED L1
formula z(price, 5y) − z(inventory, 5y) → z difference
≤ -1 well supplied ≤ 1 balanced ≤ 2 tight above genuinely scarce

What it reads. High price with full warehouses is a positioning or tariff story and tends to reverse. High price with empty warehouses is real scarcity and tends to persist. The subtraction is what separates them.

So what, for you. Tells you whether an oil spike is likely to fade before it reaches your electricity bill. Only a genuinely scarce spike justifies changing anything in a portfolio.

Caveat. Needs EIA_API_KEY for the weekly inventory series. The annual static inventory figures cannot be z-scored — five observations is not a distribution.
Provenance. No published equivalent as a z-score construction. The canonical precursor is the theory of storage / convenience yield (Kaldor 1939, Working 1949, Brennan 1958), which reaches the same conclusion through the futures curve rather than through inventories directly.
xx.commodity.wti · us.oil.commercial planned inputs

Chokepoint-Adjusted Growth Signal

Copper's growth message, discounted for distortion
INVENTED L1
formula z(copper, 5y) × d, where d = 1 − min(1, |COMEX÷LME − 1| ÷ 2) → adjusted z
≤ -1 demand contracting ≤ -0.25 cooling ≤ 0.25 flat above expanding

What it reads. At the current 1.85x COMEX/LME ratio the discount factor is 0.575 — copper's growth signal is being marked down by 42.5% because a large part of the price is a border, not a factory.

So what, for you. Stops you buying cyclicals and ASEAN exporters on a copper rally that is really a tariff trade. When the raw copper z-score and this number disagree, believe this one.

Provenance. No published equivalent. Copper as a growth proxy is ancient; exchange-inventory divergence as a distortion measure is well known to metals desks; multiplying one by a confidence factor derived from the other is the part I have not seen done.
xx.commodity.copper · xx.metals.comex_lme_copper live inputs

Thai Squeeze Index

Cost-of-living pressure at home
INVENTED L3
formula composite of z-scores, weights food 35 / transport fuel 25 / electricity 25 / borrowing 15, every price converted to THB first, scored −100 (pressure) … +100 (relief) → score −100…+100
≤ -40 heavy pressure ≤ -10 pressure ≤ 10 neutral ≤ 40 relief above strong relief

What it reads. The four things that actually move a Thai household's monthly outgoings, in one number, measured in the currency it is paid in. Negative means pressure.

So what, for you. This is a personal-finance number before it is an investment one. Sustained pressure means your real savings rate is falling even if your salary is not, and that argues for holding more of your emergency cash in a form that keeps up — not for taking more investment risk to compensate.

Provenance. No published equivalent. Central banks compute cost-of-living and financial-conditions indices, but not one that converts world commodity prices into local currency first and weights them by the domestic CPI basket for a single household.
xx.index.food · xx.commodity.brent · xx.commodity.lng_asia · th.policy_rate · th.fx.usdthb live inputs

Energy Shock Pass-Through

How much of an oil shock lands here
INVENTED L1
formula (fuel imports as % of merchandise imports ÷ 100) × Δ% energy price index → % of import bill
≤ -1 windfall ≤ 1 immaterial ≤ 3 a real hit above macro-significant

What it reads. A 20% oil move does not mean the same thing in Singapore, Thailand and Malaysia. This scales the world shock by how exposed each country's import bill actually is, which is the number that eventually shows up in the current account and then in the currency.

So what, for you. The bridge from a headline you read to your own currency. A sustained positive reading for Thailand is the earliest warning that the baht has a problem coming — usually one to two quarters before the trade data confirms it.

Provenance. No published equivalent found. The inputs are entirely standard — World Bank TM.VAL.FUEL.ZS.UN and the IMF energy price index — but multiplying a structural import share by a live price change to get a country-specific shock intensity is not a published construction.
th.energy.import_share · xx.index.energy live inputs

Gold in baht

What your gold is actually worth
STANDARD L1
formula gold USD/oz × USDTHB → THB/oz
above level — read the change, not the level

What it reads. Your return on gold is the PRODUCT of the metal and the currency. Gold in baht can rise while gold in dollars falls, and vice versa — and the financial press only ever reports the dollar one.

So what, for you. Judge every gold decision on this line, not the CNBC line. It also explains why gold works as a baht hedge: the same events that weaken the baht usually lift dollar gold, so the two effects compound in your favour.

Provenance. Arithmetic, not an invention — every Thai gold shop quotes it. It is in this register because it is the single most under-appreciated line for a baht-based investor, not because it is clever.
xx.commodity.gold · th.fx.usdthb live inputs

AI credit tail stress (CCC − HY)

What lenders charge the weakest borrowers
ADAPTED L2
formula CCC & lower OAS − HY index OAS, in percentage points → pp
≤ 5 tail is fine ≤ 6.5 normal dispersion ≤ 7.5 lenders backing away from the weak end above tail is shut out

What it reads. Credit usually breaks before equity does, and it breaks at the bottom first. This is the extra yield demanded from the worst-rated borrowers over the high-yield market as a whole. It widens when lenders start declining the weakest deals — which is where the AI build-out's marginal financing actually happens — even while the index looks calm.

So what, for you. You almost certainly do not own CCC paper, so read this as a warning light on everything else rather than a position. When it widens while AI equities hold up, the lenders are disagreeing with the shareholders, and lenders see the cash flows first. Worth doing the breakeven arithmetic before envying the yield: price change on a credit position is roughly −(spread duration × change in spread), so at a spread duration near 3 years the 9.91pp of extra yield is wiped out by about 330bp of widening inside a year. The tail has already moved ~82bp in three months. That is what 'high yield is not high return' means arithmetically. For a Thai investor the transmission is indirect but real: a US AI-credit event tightens global conditions, lifts the dollar and pulls foreign money out of ASEAN — the dollar_pressure gauge is where you would feel it, not this one.

Caveat. Three years of history and no recession in it, so 'a three-year high' is a weaker claimthan it sounds — the series has never been observed through a downturn. The level is less informative than the 3-month change, which is the framework's own guidance. And this is NOT an AI-specific instrument: a widening driven by energy or retail defaults would move it without saying anything about data centres. It is the closest free proxy, not a measurement. Confirm any signal here against issuer-level pricing — Oracle's CDS and neocloud paper — before treating it as an AI-credit event.
Provenance. Adapted from the AI Bubble Early-Warning framework's indicator 8 (AI infrastructure credit stress), which specifies bond/CDS spreads widening 25-50bp as Amber and >100bp as Red. Changed in one decisive way: the framework does not say WHICH spread, and the obvious choice — the high-yield index — is the wrong one. On 2026-07-23 HY OAS was 2.77%, historically tight and unambiguously green on a widening test, while CCC-and-lower was 9.91%. Data-centre SPV and neocloud paper sits in that tail, not in the index. Tracking the GAP catches lenders repricing the weak borrowers while the headline stays calm — the precise failure the framework wants caught, which its own metric would have missed.
concepts
credit dispersion

How far apart the strong and weak borrowers in a market are priced. It widens before an index-level move, because lenders retreat from the worst names first.

An index spread is a weighted average, and averages hide the thing you want. When lenders start declining marginal deals, the refusal shows up as the bottom rating tier repricing while the index barely moves — so a rule keyed to the index reads calm through the early phase. Measured here as CCC OAS − HY OAS. On 2026-07-23 that gap was 7.14pp, the widest in the three years these series exist, while the HY index sat at a comfortable 2.77%.

Read more about credit dispersion
option-adjusted spread

A credit spread with the value of the bond's embedded options stripped out, so bonds with different call features can be compared honestly.

Most corporate bonds are callable — the issuer may repay early, which is valuable to the issuer and costly to the holder. A raw spread on a callable bond therefore mixes credit compensation with the price of that option, and two issuers with identical credit quality can show different spreads purely because one has a call and the other does not. OAS values the option with an interest-rate model and removes it, leaving something closer to pure credit. Every ICE BofA series on this dashboard — HY, IG, CCC — is an OAS, which is what makes differencing them defensible.

Read more about option-adjusted spread
spread duration

How much a bond's price moves for a given change in its credit spread — the credit analogue of interest-rate duration.

Price change ≈ −(spread duration × change in spread). It gives you the number that actually matters for a carry trade: the breakeven widening, which is roughly spread ÷ spread duration per year. Worked on this dashboard's own data — CCC-and-lower yields 9.91pp over Treasuries at a spread duration of roughly 3 years, so about 330bp of widening in a year wipes out the entire year's extra income. The tail has widened ~82bp in three months. That is the arithmetic behind 'high yield is not high return'.

Read more about spread duration
z-score

How unusual today's reading is compared with its own history, measured in standard deviations. 0 = perfectly normal, ±1 = mildly unusual, ±2 = happens about 5% of the time, ±3 = rare.

z = (today − mean) ÷ standard deviation, both taken over a chosen lookback window. Two things about that make it weaker than it looks. The window is a judgement call, not a fact — this dashboard uses ~1250 observations for dailies (five years) and shortens it where the publisher carries less history, and a different window gives a different answer for the same day. And the ±2 ≈ 5% rule assumes a bell curve, which financial series emphatically do not follow: they have fat tails, so genuinely extreme readings arrive far more often than the normal distribution predicts. Read a z-score as a ranking, not a probability.

Read more about z-score
us.credit.ccc_oas · us.credit.hy_oas live inputs

AI bubble composite risk score

How stretched the AI build-out looks
ADAPTED L3
formula Σ(category score × weight) ÷ Σ(weight of SCORED categories only) ÷ 2, as a percentage. Unscorable categories are excluded from both sums rather than counted as Green. → % of maximum risk score
≤ 20 expansion supported ≤ 35 speculative excess building ≤ 50 pre-burst conditions emerging above broad deterioration

What it reads. A deliberately crude tally across independent parts of the system, because the framework's central claim is that no single metric calls this — four unrelated things deteriorating together is the signal. Denominating in percent-of-maximum means a score built from four scorable categories is comparable to one built from ten, instead of silently reading low because six were missing.

So what, for you. Momentum matters more than level: a move from 30% to 55% in two months is a louder signal than a year parked at 50%. The framework's critical overrides bypass the score entirely — a hyperscaler cutting capex for return reasons, a frontier lab taking rescue financing, or a large AI-infrastructure borrower failing to refinance is Red on its own, whatever this reads. For a Thai investor the practical response is not to trade the AI complex but to check how much of your supposedly diversified foreign exposure is the same eight stocks.

Caveat. MOSTLY NOT LIVE, and that is the honest state, not a defect to be papered over. Of the framework's ten categories, one (credit) computes daily from free data, two (semis equity, chip output) are proxies for capacity rather than measurements of it, and one (capex) is hand-entered guidance. The six that carry the most information — capex vs AI revenue, capex ÷ operating cash flow, cloud gross margin, depreciation vs gross profit, enterprise renewals, backlog conversion — all come from quarterly filings and none is wired. Treat this as a scaffold with one working leg. See docs/AI_BUBBLE.md.
Provenance. Implements the composite in section 5 of the AI Bubble Early-Warning framework — ten categories, Green 0 / Amber 1 / Red 2, five weighted ×2 and five ×1. Two corrections were needed before it could be used. FIRST, the bands do not fit the scale: max score is 30 (15 weight × 2), but the document's top band starts at 14, so a portfolio scoring Amber on every single category — a uniform 15 — lands in the highest risk band while no category is Red. That cannot be intended. Bands here are expressed as a PERCENTAGE of the maximum attainable, which also keeps them meaningful when categories are unscorable. SECOND, section 1 lists only three bands (0-5, 6-9, 10-13) and section 5 adds a fourth (14+); the four-band version is used.
concepts
capex absorption

Capital spending divided by operating cash flow — how much of the cash a business generates is being consumed by building.

Below roughly 70% a build-out is self-funded and can be slowed at will. Above 90% the incremental dollar is coming from debt or equity issuance, which hands the pace of the build-out to lenders rather than to management. It is the cleanest single measure of whether a boom is internally or externally financed — and an externally financed one ends when funding conditions change, not when demand does.

Read more about capex absorption
useful life

The number of years a company assumes an asset lasts, which sets how fast it is depreciated — and therefore how large reported profits are.

Annual depreciation = cost ÷ useful life, so extending assumed life raises reported profit without changing a single dollar of cash. The sensitivity is large at AI-capex scale: on $725bn of spending, moving servers from a 5-year to a 6-year life cuts annual depreciation by 725/5 − 725/6 ≈ $24bn a year. That is why the assumption is worth reading in the notes to the accounts rather than taking earnings at face value, and why cash flow is the harder number to dress up. It cuts both ways — if accelerators genuinely wear out or go obsolete faster than assumed, the correction lands as an impairment.

Read more about useful life
free cash flow

Cash from operations minus capital spending — what is actually left over, as opposed to accounting profit.

It matters here because depreciation makes reported earnings and cash diverge sharply during a build-out: cash leaves immediately when equipment is bought, while the expense reaches the income statement over years. A company can therefore show healthy and rising earnings while free cash flow goes negative, which is the pattern to watch in a capex boom rather than a contradiction to explain away.

Read more about free cash flow
vendor financing

When a supplier funds its own customer's purchases, so money leaves as investment and returns as revenue.

The accounting can be entirely proper while the economics are circular: reported revenue rises without new end demand, and every downstream metric built on revenue — backlog, order growth, capex-versus-revenue — inherits the distortion. It was a documented feature of the late-1990s telecom build-out and is a live question in AI infrastructure. The diagnostic is not the revenue line but whether the customer could have paid from its own cash flows.

Read more about vendor financing
market concentration

How much of an index sits in a handful of names — and therefore how little diversification an index fund is actually providing.

The rigorous measure is the Herfindahl index, the sum of squared weights, whose reciprocal gives the 'effective number' of holdings: an index of 500 names where the top 10 hold 40% behaves like far fewer than 500 independent bets. Concentration is not a separate risk from a sector risk — it is the mechanism that turns one into a portfolio problem for someone who believes they are diversified.

Read more about market concentration
backlog conversion

How much of the contracted-but-not-yet-delivered order book actually turns into revenue, and how quickly.

Backlog (often reported as RPO) is the most flattering number a company can disclose, because it is a promise rather than a result. The tell is duration: a backlog growing faster than revenue while its average length stretches means deals are being signed further out, which is a weaker claim on the future than the headline implies.

Read more about backlog conversion
net revenue retention

What last year's customers spend this year, after upgrades, downgrades and cancellations. Above 100% means the existing base is growing on its own.

The reason it leads is that it strips out new-customer acquisition, which can mask deterioration for several quarters. First-renewal cohorts are the sharpest read: enthusiasm gets a product bought once, and only usage gets it renewed.

Read more about net revenue retention
us.credit.quality_spread · us.equity.sox · us.semi.ip · ai.capex.hyperscaler planned inputs

Level 1 · physical Stocks, flows, and the ratios between them

This is the layer that answers "how much is there, and how fast is it moving". It is slow data — annual for most of it — which is exactly why it belongs on a dashboard rather than in someone's memory: nobody re-checks India's oil cover in the middle of an oil spike. A stock is how much exists; a flow is how much moves per period; stock divided by flow gives days of cover, which is the only way to compare reserves of wildly different absolute size.

Oil — strategic cover, in days

The 90-day line is the IEA's emergency stockholding obligation for member countries, measured against NET IMPORTS. The oil market more often quotes days of forward DEMAND, which gives a different answer for the same country. This register uses net imports throughout.

country days vs 90-day line source note
Thailand 108 +18 IEA / national, 2026 Legal floor raised 25 → 27 → 32 days during 2026; 108 is total stocks held, not the minimum.
Japan 248 +158 IEA / METI, Mar 2026 The deepest buffer of any large importer, public and private combined.
China 124 +34 estimate from stocks ÷ imports, Dec 2025 China does not publish this. It is computed from reported stocks and import volumes, so treat it as an order of magnitude.
India 9.5 -80.5 IEA / national, 2026 The thinnest cover of any major importer. There is no buffer between a supply shock and the pump.
US Strategic Petroleum Reserve: 311447.0mn bbl — 42863.6% of its 726.6mn peak fill. Commercial crude stocks add 411675.0mn bbl. Below 300mn the US becomes a structural, price-insensitive buyer of crude, which puts a soft floor under the oil price. That is mildly bad for a Thai household budget and mildly good for any energy exposure held.

Gold — the stock that dwarfs its own flow

measure value as of source note
Above-ground stock, all forms 219,891 t 2025 World Gold Council Every ounce ever mined that still exists. The denominator of everything below.
Mine production 3,300 t 2025 World Gold Council Adds 1.50% to the stock in a year. Gold's scarcity is a flow fact, not a stock fact.
Stock-to-flow 67 yr 2025 derived Years of current production already sitting above ground. No other commodity is close.
Central-bank net purchases 863.3 t 2025 World Gold Council 26.2% of all mine supply, bought by buyers who do not sell on price.
Central-bank purchases, prior year 1,092.4 t 2024 World Gold Council 2025 was 21% lower. The official bid is still large but no longer growing.
ETF holdings 4,047 t 30 Jun 2026 World Gold Council Investor gold, which unlike central-bank gold does sell on price.
ETF net flow, latest month -74 t Jun 2026 World Gold Council Outflow. Investors selling while central banks buy is the shape of the last three years.
Thailand official holdings 235 t Jun 2026 WGC / IMF IFS Worth about ฿1,074bn at today's price and exchange rate.
For a baht holder the dollar price is only half the story. Gold is $4,237/oz, which at USD/THB 33.55 is ฿142,137 per ounce. It also buys 48.7 barrels of Brent — the gold/oil ratio, a two-hundred-year-old way of asking whether the monetary metal or the industrial input is the one that has moved.

Refining concentration — the risk that is not priced daily

Reserves are spread around the world. Refining is not. China's share of the processing step, which is where the actual chokepoint sits, averages 66.2% across these eight.

mineral China share basis note
Gallium 99.0% USGS / IEA 2025 Effectively a monopoly. Gallium is a by-product of aluminium and zinc, so production is processing.
Rare-earth separation 86.1% Industry projection to 2030 The IEA puts it near 80% by 2035. Both point the same way.
Synthetic graphite 85.2% Industry projection to 2030 Natural graphite is 70.5% on the same basis.
Cobalt 71.4% Industry projection to 2030 The DR Congo mines it; China refines it. Reserves and control are different maps.
Lithium 60.9% IEA / industry projection The battery input everyone watches, and not the most concentrated one.
Aluminium 60.4% 44,000kt of 72,800kt world smelter output, 2024 The cleanest actual measurement in this group.
Copper 60.0% 2025 estimate Falls to 44.6% on the 2030 projection as capacity is built elsewhere.
Nickel 6.2% Projection to 2030 The exception that proves the rule: Indonesia takes 71.2%, because it banned raw ore exports and forced smelting onshore.

The export-control calendar — the only dated events on this dashboard

measure effective status expiry effect
China 9 Oct 2025 controls — five further elements plus a 0.1% extraterritorial rule 2025-10-09 suspended expires 2026-11-10 The single hardest date in the resource calendar. If the suspension lapses, the 0.1% de-minimis rule reaches non-Chinese manufacturers directly — a supply-chain problem, not a price problem.
China MOFCOM Announcement No. 18 — seven heavy rare earths 2025-04-04 in force no expiry Export flows running roughly 50% below the pre-restriction rate.
China ban on gallium, germanium and antimony exports to the US 2024-12-01 eased expires 2026-11-30 The November 2025 easing was explicitly time-limited.
Indonesia raw nickel ore export ban 2020-01-01 in force no expiry Forced smelting onshore. Indonesia is now about 62% of world mine output and takes 71% of refining — the clearest case of a country converting a reserve into control.
Myanmar / Wa State tin mining suspension 2023-08-01 restarting no expiry Permits secured; shipment resumption not independently confirmed as of July 2026.
China fertilizer export bans and quotas 2026-03-01 in force expires 2026-08-31 Affects up to ~40 Mt. Urea is about 40% above pre-war levels. Fertilizer restrictions reach food prices with a two-season lag, not immediately.
India non-basmati white rice export ban 2023-07-20 lifted no expiry Lifted 28 Sep 2024; minimum export price removed 23 Oct 2024. No reimposition found.
Indonesia CPO export levy raised 10% → 12.5% 2026-03-01 in force no expiry B50 biodiesel delayed and B40 held through 2026 — the two levers pull opposite ways on exportable supply.

Base metals — where the inventory sits

COMEX warehouses hold 652,200t of copper against the LME's 352,100t — a ratio of 1.85x. Metal piling into American warehouses rather than global ones is a tariff-arbitrage position, not a demand signal, which is why the Chokepoint-Adjusted Growth Signal shrinks copper's weight to 57% of normal. LME tin is at 7,595t, the thinnest inventory in the base-metal complex.

Food

World rice stocks-to-use is 36.4% — comfortable by historical standards, and the reason a rice price spike is not currently a live risk. The Thai-specific number is the other one: Thai 5% broken rice is quoted +12.3% above the Vietnamese equivalent, which is a competitiveness problem rather than a scarcity one, and it drags on the rural economy, the trade balance and eventually the baht.

Level 0 The raw observations, every one of them

This is the audit floor. Nothing appears anywhere above that is not derived from a row on this page. If a figure here is wrong, everything built on it is wrong, which is why each carries its publisher, its series identifier and the date the observation was actually made — not the date it was looked at.

Live · 19 series, re-verified against the publisher's own page on 2026-07-25

series value unit observed source class
Brent crude 86.99 USD/bbl 2026-07-20 fred DCOILBRENTEU LIVE from D1
WTI crude 84.38 USD/bbl 2026-07-20 fred DCOILWTICO LIVE from D1
Henry Hub natural gas 2.80 USD/MMBtu 2026-07-20 fred DHHNGSP LIVE from D1
USD/THB 33.55 THB per USD 2026-07-27 bot DEXTHUS LIVE from D1
US 10-year Treasury 4.71 % 2026-07-23 fred DGS10 LIVE from D1
US 2-year Treasury 4.37 % 2026-07-23 fred DGS2 LIVE from D1
US 10-year real (TIPS) 2.43 % 2026-07-23 fred DFII10 LIVE from D1
SOFR (US overnight) 3.64 % 2026-07-24 fred SOFR LIVE from D1
VIX 18.58 index 2026-07-24 fred VIXCLS LIVE from D1
US high-yield spread 2.79 % 2026-07-24 fred BAMLH0A0HYM2 LIVE from D1
Broad dollar index 120.5 index 2006=100 2026-07-17 fred DTWEXBGS LIVE from D1
Fed total assets 6,747,378 USD mn 2026-07-22 fred WALCL LIVE from D1
Treasury General Account 829,623 USD mn 2026-07-22 fred WTREGEN LIVE from D1
Overnight reverse repo 0.675 USD bn 2026-07-24 fred RRPONTSYD LIVE from D1
US CCC & lower spread 9.96 % 2026-07-24 fred BAMLH0A3HYC LIVE from D1
US investment-grade spread 0.800 % 2026-07-24 fred BAMLC0A0CM LIVE from D1
Nasdaq 100 28,128 index 2026-07-24 fred NASDAQ100 LIVE from D1
S&P 500 7,412 index 2026-07-24 fred SP500 LIVE from D1
US semiconductor output 181.9 index 2017=100 2026-06-01 fred IPG3344S LIVE from D1

Static · 31 hand-curated values, each with a review-by date

These are things no free API publishes: strategic reserve levels, refining shares, warehouse inventories, central-bank gold buying. They are researched once and reviewed on a schedule rather than polled. VERIFIED means two independent sources agreed; SINGLE means one source; COMPUTED means it was calculated from other published figures. A static value past its review date raises a staleness banner in the running system rather than silently ageing.

series value unit observed source confidence
Gold 4,237 USD/oz 2026-06-30 imf LIVE from D1 — no longer the curated figure
Energy price index 198.8 2016=100 2026-06-01 fred LIVE from D1 — no longer the curated figure
Food price index 131.2 2016=100 2026-06-01 fred LIVE from D1 — no longer the curated figure
JKM LNG (Asia spot) 17.19 USD/MMBtu 2026-06-01 fred LIVE from D1 — no longer the curated figure
Thailand policy rate 1.00 % 2026-07-16 bis LIVE from D1 — no longer the curated figure
SET Index 2,408 index 2026-07-27 derived DERIVED from D1 — no longer the curated figure
US Strategic Petroleum Reserve 311,447 mn bbl 2026-07-17 eia LIVE from D1 — no longer the curated figure
SPR all-time fill 726.6 mn bbl 2010-01-01 static STATIC from D1 — no longer the curated figure
US commercial crude stocks 411,675 mn bbl 2026-07-17 eia LIVE from D1 — no longer the curated figure
Thailand oil cover 108.0 days 2026-01-01 static STATIC from D1 — no longer the curated figure
India oil cover 9.50 days 2026-01-01 static STATIC from D1 — no longer the curated figure
Japan oil cover 248.0 days 2026-03-01 static STATIC from D1 — no longer the curated figure
China oil cover 124.0 days 2025-12-01 static STATIC from D1 — no longer the curated figure
Gold above ground, all forms 219,891 tonnes 2025-12-31 static STATIC from D1 — no longer the curated figure
Gold mine production 3,300 tonnes 2025-12-31 static STATIC from D1 — no longer the curated figure
Central-bank net purchases 863.3 tonnes 2025-12-31 static STATIC from D1 — no longer the curated figure
Central-bank net purchases 1,092 tonnes 2024 World Gold Council VERIFIED review 2027-02
Gold ETF holdings 4,047 tonnes 2026-06-30 World Gold Council VERIFIED review 2026-09
Gold ETF net flow -74.00 tonnes Jun 2026 World Gold Council VERIFIED review 2026-09
Thailand official gold 235.0 tonnes 2026-06-01 static STATIC from D1 — no longer the curated figure
COMEX copper stocks 652,200 tonnes 2026-07-01 static STATIC from D1 — no longer the curated figure
LME copper stocks 352,100 tonnes 2026-07-01 static STATIC from D1 — no longer the curated figure
LME tin stocks 7,595 tonnes 2026-07-01 static STATIC from D1 — no longer the curated figure
China share, gallium refining 99.00 % 2025-12-31 static STATIC from D1 — no longer the curated figure
China share, rare-earth separation 86.10 % 2030-12-31 static STATIC from D1 — no longer the curated figure
China share, synthetic graphite 85.20 % 2030-12-31 static STATIC from D1 — no longer the curated figure
China share, cobalt refining 71.40 % 2030-12-31 static STATIC from D1 — no longer the curated figure
China share, lithium refining 60.90 % 2030-12-31 static STATIC from D1 — no longer the curated figure
China share, copper refining 60.00 % 2025-12-31 static STATIC from D1 — no longer the curated figure
World rice stocks-to-use 36.40 % 2026-06-01 static STATIC from D1 — no longer the curated figure
Thai rice premium vs Vietnam 12.30 % 2026-07-01 static STATIC from D1 — no longer the curated figure

Derived · 15 figures computed on this request, never stored

These are recomputed from whichever observations the model is holding, which is why no value is stored alongside the formula: a stored copy could only ever end up disagreeing with the arithmetic beside it. The "as of" column names the observation date of the curated inputs; when the database supplies a fresher reading the figure recomputes immediately, and the input's own row above shows the newer date.

figure value unit as of formula class
US net dollar liquidity 5.92 USD tn 2026-07-22 WALCL − TGA − RRP, all converted to trillions DERIVED
2s10s term spread 0.340 pp 2026-07-23 10-year yield − 2-year yield DERIVED
10-year inflation breakeven 2.28 % 2026-07-23 10-year nominal − 10-year TIPS DERIVED
Real overnight rate 1.36 % 2026-07-23 SOFR − 10-year breakeven DERIVED
THB carry gap (BOT − Fed) -2.64 pp 2026-07-23 Thai policy rate − SOFR DERIVED
Brent−WTI spread 2.61 USD/bbl 2026-07-20 Brent − WTI DERIVED
Gold in baht 142,137 THB/oz 2026-07-17 gold USD/oz × USD/THB DERIVED
Gold/oil ratio 48.71 bbl per oz 2026-07-20 gold USD/oz ÷ Brent USD/bbl DERIVED
Baht Import Burden Index 163.2 2016=100 2026-07-17 (0.60 × energy + 0.40 × food) × (USDTHB ÷ 35.3) DERIVED
SPR as % of peak fill 42,864 % 2026-07-17 SPR level ÷ 726.6 all-time fill DERIVED
Gold new supply 1.50 % of stock 2025 mine production ÷ above-ground stock DERIVED
Gold stock-to-flow 66.63 years 2025 above-ground stock ÷ mine production DERIVED
Official absorption 26.16 % 2025 central-bank purchases ÷ mine supply DERIVED
COMEX ÷ LME copper 1.85 x w/e 2026-07-17 COMEX stocks ÷ LME stocks DERIVED
Chokepoint discount on copper 0.574 weight w/e 2026-07-17 1 − min(1, |ratio − 1| ÷ 2) DERIVED

Plumbing How this stays current

The instruction was that the reserves and flows data be wired in the same way as everything else, not bolted on. That is what this section demonstrates. All 179 series — market prices, policy rates, World Bank macro and the 30 hand-curated physical statics — live in one registry, are fetched by one runner, are written to one table, and are refreshed on the schedule below. The static resource layer is not a special case: it is a source: "static" adapter that costs zero network calls and rides the ordinary weekday close job. Adding a reserve series is a one-line registry entry, exactly like adding an interest rate.

schedule job sources subrequests note
0 * * * * Hourly · fast tier FRED, Stooq — daily-frequency market series only ~20 calls Skips anything refreshed in the last 50 minutes, so it rewrites nothing.
30 21 * * 1-5 US close, weekdays FRED, Stooq, EIA weeklies, and the whole static resource layer ~29 calls This is the run that carries reserves and flows. The 29 static series cost zero calls — they are read out of the code, not off the internet.
30 10 * * 1-5 Asia close, weekdays Bank of Thailand, BIS policy rates ~9 calls Runs after Asian markets close so the Thai numbers are the day's, not yesterday's.
0 2 3 * * Monthly, 3rd of month IMF SDMX, World Bank, monthly FRED commodities ~22 calls World Bank batches ten countries per call, which is why 70 series cost 7 requests.
manual:fast Refresh button — fast FRED, Stooq daily ~20 calls The dashboard's on-demand button. 5-minute minimum age.
manual:full Refresh button — everything All eight adapters ~60 calls One click covers the whole registry. Each source group runs as its own step of a durable Workflow with its own outbound-call budget, against a ceiling of 1,000 per invocation, so there is no longer anything to ration — the cap that remains is a runaway guard, not a platform limit.

Registry by source

worldbank 70
fred 33
static 30
derived 23
bis 8
eia 6
imf 5
twelvedata 2
bot 1
ecb 1

Registry by pillar

resource 86
macro 34
commodity 19
rates 15
sector 9
liquidity 6
fx 5
credit 4
risk 1

86 of 179 series are the resource pillar — the reserves and flows layer is the largest single part of the registry, not an appendix to it.

Why the subrequest column exists. On the Workers Paid plan the platform ceiling is 1,000 outbound calls per invocation, and a sweep of every adapter in the registry is about sixty. So the number in that column is not a ration — it is a runaway guard. Each job declares the most calls it is ever allowed to make, and if the runner reaches that number it stops cleanly, saves what it already has and reports stoppedForBudget rather than continuing. That matters for exactly one failure mode: an adapter that has started looping. You want to learn about it from a saved partial run, not from a bill. The free-tier arrangement this replaced budgeted 45 calls against a ceiling of 50 and needed two presses twenty minutes apart to cover the whole registry; none of that applies now, and the code that did it is gone.

Run it now

Fast sweeps the daily market series — prices, yields, FX, the liquidity components. Full adds the slow layer: World Bank macro, the static resource table and anything monthly. Both write to the same table the cron jobs write to, so a manual run is not a separate path through the code. The admin token is whatever was set with wrangler secret put ADMIN_TOKEN; on a local wrangler dev with no token configured the route accepts localhost without one. It is held in this tab only — nothing here writes it to storage.

idle

Provenance What this dashboard cannot currently tell you

A dashboard that only reports what it knows is a dashboard you cannot calibrate. These are the live limitations, stated plainly, because each one changes how much weight a reading deserves.

Two unit bugs found and fixed while building this

The Treasury General Account trap. The registry declared FRED's WTREGEN in billions. The series page says millions. The July 2026 print is 829,623 — obviously $829.6bn once you look, and silently catastrophic if you do not, because net liquidity then computes as roughly minus eight hundred trillion dollars. Fixed in both the registry and the runner. The reason it matters beyond the fix: WALCL and WTREGEN are millions while RRPONTSYD is billions, and nothing in any API response says so. Dividing all three the same way fails loudly; dividing two right and one wrong produces a plausible-looking series that is quietly meaningless.

The Physical Tightness Premium sign error. The formula is z(price) − z(inventory). It had been written the other way round, which inverts the entire meaning of the indicator.

Both are recorded here rather than quietly patched because the whole claim of this page is that its numbers are checkable. A page that never admits a correction is not a page that has never had one.

What is genuinely missing

Every composite gauge score. Each needs a rolling five-year z-score, which needs five years of history in the database. The pipeline stores every observation it fetches, so the history accumulates on its own, but until there is enough of it all seven gauges and the regime quadrant read awaiting. They fill themselves in when the depth is there — nothing needs to be rewritten for that to happen.

The Physical Tightness Premium is defined and labelled INVENTED but marked planned rather than live: it needs an inventory time series that the static layer holds only as single points.

Two data gaps need a browser session rather than an API: Stooq's query-parameter name, and China total social financing from the PBOC. Both are wired to Cloudflare's Browser Rendering binding rather than to fetch.

47 of 50 curated figures came out of the database on this render and the rest fell back to the hand-verified table. Each figure carries its own badge, so the split is visible per row at Level 0 rather than only in aggregate here.

3 figures no pipeline can ever refresh

These have no counterpart in the registry, which means no adapter fetches them and no schedule touches them. They move only when a human re-reads the source and edits the curated table. That is not a gap waiting to be closed — nobody publishes them as a machine-readable series — but it does mean their review-by dates at Level 0 are the only thing standing between them and silent decay.

Central-bank net purchases · Gold ETF holdings · Gold ETF net flow

Things that are true of the data itself, not of the build

Days of cover has two definitions and they are routinely confused. The IEA measures against net imports; the oil market usually quotes forward demand. Same country, different number. This register uses net imports everywhere and says so on every reading.

China's oil cover is an estimate, computed from reported stocks and import volumes, because China does not publish it. Treat it as an order of magnitude, not a measurement.

Several refining shares are 2030 projections, not observations — rare-earth separation, synthetic graphite, cobalt, lithium and nickel. They are labelled as such in the table. Gallium, aluminium and copper are current measurements.

Correlations here are computed on changes, not levels. Two series that both drift upward for unrelated reasons will show a correlation near 1.0 on levels and nothing on changes. The second answer is the true one.