The first version of my liquidity scorecard was embarrassingly simple. I pulled the balance sheets of the Fed, the ECB, the PBoC, the BOJ, and a few others, added them up, and drew a line. When the line went up, the thesis was that risk assets should follow. And for a while it looked like it worked, mostly because everything went up together during the periods I first tested it on.
Then I watched the composite rip higher on the back of one balance sheet while the assets I cared about did nothing, and I realized the sum was lying to me. A dollar of new base money in Tokyo is not a dollar of new base money in Washington, at least not as far as crypto is concerned. If your dashboard treats them as interchangeable, you are averaging things that transmit at completely different strengths and calling the average a signal.
Why an equal-weight sum misleads you
Two problems stack on top of each other. The first is the unit problem. Foreign balance sheets are denominated in yen, euros, and yuan, so a big number in local currency can shrink or grow just from the exchange rate moving, not from any actual liquidity being created. If you add local-currency figures directly, you are adding apples to a currency you never converted. The fix is boring but non-negotiable. Convert every foreign balance sheet to USD using the spot rate for each period before you do anything else. This alone will change the shape of your composite more than any clever weighting scheme, because a weakening yen can make BOJ expansion look like contraction once you view it in dollars.
The second problem is the transmission problem, and it is the interesting one. Even after you convert everything to dollars, the marginal dollar from each central bank does not reach crypto with equal force. Dollar liquidity is the reserve asset and the funding currency for most of the leverage in the system, so Fed policy tends to move risk with the most directness. PBoC liquidity is enormous but sits behind a relatively closed capital account, so a lot of it never leaves the domestic system. BOJ liquidity historically leaks out through carry trades, which matters, but the path is indirect and can reverse fast. Summing them as equals pretends these channels are identical. They are not.
Two ways to set the weights
There are two honest approaches, and I use a blend of both. The first is a top-down prior based on economic size. GDP-weighting is the obvious starting point. You take each economy's share of global GDP, in USD, and use that as the weight on its balance sheet contribution. This encodes a defensible assumption, which is that a larger economy transmits more into global asset prices, and it gives you weights you can explain to someone without hand-waving. It also updates naturally as economies grow or shrink relative to each other, so you are not hard-coding a view from one particular period.
GDP-weighting is a prior, though, not an answer. It systematically under-weights the Fed relative to what crypto actually responds to, because the dollar's role in the system is larger than the US share of world output. So the second approach is to let the data set the weights empirically. You regress your target, whatever you are trying to explain, on the USD-converted change in each balance sheet, and you read the coefficients as the weights. Do this over a long enough window and you will usually find the Fed coefficient sits well above its GDP share and the PBoC coefficient sits below.
The trap with the empirical route is overfitting. If you optimize weights to maximize fit on one stretch of history, you will fit the noise of that stretch and get weights that look precise and travel badly. A few guardrails I stick to:
- Fit the weights on one window and test them on a completely separate, later window you never touched during fitting. If they fall apart out of sample, they were never real.
- Constrain the weights to be non-negative and to sum to one. A liquidity input should not get a negative weight just because that improved the fit on a noisy patch.
- Prefer a smooth blend of the GDP prior and the empirical estimate over the raw empirical estimate. Something like leaning most of the way toward the data but keeping a meaningful anchor on the size-based prior keeps you from chasing a single regime.
- Re-estimate on a rolling basis rather than fitting once and freezing. Transmission strength drifts as capital controls, carry conditions, and the dollar's plumbing change.
A workflow you can actually run
Here is the sequence I follow when I rebuild the scorecard, stripped to the parts that matter.
- Collect each balance sheet at a consistent frequency. Weekly is usually the finest you can get clean across banks, so resample everything to the slowest common cadence rather than forward-filling a fast series into a fake weekly one.
- Convert every foreign series to USD using the period-matched spot rate. Do this before differencing, not after.
- Work in changes, not levels, at least for the transmission fit. The level of global liquidity trends for structural reasons, and a regression on levels will hand you a spurious relationship. Changes are what the market is actually reacting to.
- Build two weight vectors. One from GDP shares, one from the out-of-sample regression, then blend them.
- Back-test the composite against your target the same way you would back-test any signal. Split the history, fit on the early part, evaluate on the held-out part, and compare the weighted composite against the naive equal-weight sum. If the weighting does not beat the naive sum out of sample, keep the naive sum and stop pretending.
That last point is the one I have to remind myself of most. It is easy to fall in love with a weighting scheme because the in-sample chart looks gorgeous. The whole reason to weight the inputs is to track real transmission, and the only proof that you have done that is a held-out window you did not get to tune against. When I wire a composite like this into the market scorecards on Blockcircle, the version that ships is the one that survived the split, not the one that looked best on the data I fit it on.
None of this makes the scorecard predictive on its own. Liquidity is a slow, structural input, and it will happily diverge from price for long stretches while positioning and flow drive the tape. What the weighting buys you is a composite that moves for the right reasons, so when it does line up with a move you are not fooling yourself about which central bank actually did the work. A signal that is honest about its own inputs is worth more than one that is confidently wrong, even if the confident one has a prettier line.