The quarterly view lists two supports for the risk position: the policy path has turned accommodative, and global liquidity is expanding. Written that way it reads as two independent legs. It is usually one leg described twice, and the practical consequence is that the position gets sized as though two things had to go wrong before the thesis breaks when in fact only one does. Double-counting a macro force is not a modelling error, it is a sizing error, and it shows up in the drawdown rather than in the model diagnostics.
The house view that counts one force twice
The mechanism is easy to see once you look for it. A central bank easing is, in most transmission stories, the thing that expands the aggregate that a liquidity composite measures. Policy rate down, balance sheet up, monetary aggregates up, funding spreads compress. The composite rises. If you then list "easing policy" and "expanding liquidity" as separate supports, you have listed a cause and its effect and called them two reasons.
The right question is not which of the two is real. Both are real. The question is how much of the variation in the composite is not already explained by the rate path, because that residual is the only part that constitutes independent information. If it is small, your two-legged thesis has one leg. If it is large, you genuinely do have two, and it is worth knowing which parts of the book each one supports.
This matters most in the review after a position goes wrong, because the version of the story you told beforehand determines whether the post-mortem is about a thesis that failed on its own terms or about a risk framework that never distinguished its inputs. The first is a bad quarter. The second is a process finding.
The composite already contains a rate, which complicates the split
Before you regress anything, look at what is inside the variable you are trying to isolate. On the Regime tab the strip reads COMPOSITE 85 on a 0 to 100 scale, REGIME RISK-ON, then three component reads: LIQUIDITY NEUTRAL on net flows, FUNDING NEUTRAL, and MARKETS NEUTRAL on asset momentum. The sub-label under FUNDING is the important one. It reads SOFR and IORB, which is to say the funding component is built on the relationship between a market repo rate and the rate paid on reserve balances.
That is a rate object sitting inside the liquidity composite. The module also lists credit spreads among its inputs, alongside aggregate central bank balance sheets across eight institutions, global M2 and USD liquidity indicators. Credit spreads are likewise a price of money rather than a quantity of it.

So the honest framing is not liquidity against rates. It is quantity-of-money against price-of-money, with the acknowledgement that the composite bundles both and that the module does not publish the weights it uses to combine them. You are orthogonalising an index against one of its own ingredients, and the write-up has to say so.
Specifying the residualisation and reporting its order dependence
The mechanics are standard. Take first differences of both series, because the composite is bounded on a 0 to 100 scale and a levels regression against a trending rate series will manufacture a relationship out of shared drift. Pick a rate variable that is a policy object rather than a funding object, so that you are not regressing the composite on something it contains. A policy rate path or a short-dated forward rate is a defensible choice. Regress the change in the composite on the change in the rate variable, and keep the residual.
That residual is your liquidity factor purged of the rate path. Then run the return model on both the rate change and the residual, and the coefficients are interpretable: one is the rate effect, the other is the part of liquidity that the rate path does not account for.
Four things belong in the output or the exercise is decorative.
- The R-squared of the first-stage regression. This is the headline number, because it directly answers how much of the liquidity variable is just the rate path. Report it before you report anything downstream.
- The pairwise correlation of the raw regressors. If it is high, the split between the two coefficients in an unorthogonalised specification is unstable, and that instability is itself the finding.
- The reversed order. Residualise the rate variable on the composite instead and rerun. Orthogonalisation is not symmetric: whichever variable you residualise second gets charged with all the shared variance. If the conclusion flips when you reverse the order, you do not have a decomposition, you have an assumption, and the memo has to say that.
- Newey-West standard errors with a lag matched to any overlap in your sampling. Monthly macro series on overlapping windows produce t-statistics that are inflated by construction.
One more specification note that gets skipped. Vintage matters. Central bank balance sheet data, monetary aggregates and credit series are revised, so a residualisation run on today's restated inputs describes a history nobody traded. If the purpose is attribution of a past position, use the values that were on the screen at the time, which means you need an archive of the state rather than a chart.
What the residual is allowed to be used for
A purged liquidity factor is a useful object with a narrow licence.
It is legitimate for attribution. Decomposing a period's return into a rate component and a residual liquidity component gives a committee something more honest than a narrative, and it survives being carried from one quarter to the next because the construction does not change with the outcome.
It is legitimate for sizing discipline. If the first-stage R-squared is high, the correct response is to size the position as a single macro bet rather than two, and to write that in the risk note. That is the whole practical payoff of the exercise and it is worth the afternoon on its own.
It is not licensed as a forecast. The regime classification and the component reads describe present conditions and carry no published lead time, so a contemporaneous decomposition tells you what was associated with returns, not what will be. If you want a predictive claim, you have to lag the regressor deliberately, label that specification separately, and accept that a significant lagged coefficient on a short macro sample is a much weaker result than it looks.
And it is not a licence to name a mechanism. A residual is defined by what you removed, not by what it is. Calling it "pure liquidity" invites the reader to attribute a transmission story to it that the arithmetic never established.
When the two are genuinely inseparable and you should say so
Sometimes the correct output of this exercise is that it cannot be done on your sample, and there is real value in being the desk that says that out loud.
The clearest case is a sample dominated by a single policy cycle. If the entire window contains one easing episode, then the rate path and the liquidity aggregate moved together throughout it, the first-stage R-squared will be high, and the residual will be small and mostly noise. No amount of specification care extracts two factors from one episode. The honest statement is that the sample cannot separate them and the position should be sized as one bet.
The second case is a fiscal-driven move. The Daily Summary on this tab names its drivers with directions attached, and at capture those included Treasury building marked bearish alongside two bullish drivers. A liquidity aggregate moved by Treasury cash management is responding to something that is neither monetary policy nor private credit conditions, and a two-variable decomposition will misassign it to whichever regressor happens to be correlated in your window. Where fiscal flows are the dominant driver, the model needs a third term or the write-up needs a caveat, and a caveat is cheaper.
The last case is regime dependence. The relationship between the rate path and the liquidity aggregate is not stable across environments, which means a coefficient estimated across a full sample is an average of relationships that differ. Split the sample by the published regime state, rerun, and if the two subsamples disagree materially, report the pair rather than the pooled figure. A committee can act on a conditional answer. It cannot act on an average that describes no period the book actually lived through.