MRE composites three named engines into one reversal score. AMS combines eleven breadth and on-chain metrics, MMS spans six timeframes of momentum, GLS tracks eight central bank balance sheets. When the resulting book makes or loses money, somebody will eventually ask which of the three did it, usually in the quarter when the answer has consequences for whether a leg stays in the model.
The question is answerable, but not in the form it is usually asked. Realised P&L is one number produced by an interacting system, and the naive attribution is both intuitive and wrong.
Why the obvious attribution does not add up
Leave-one-out is the standard first attempt. Re-score the archive with each leg removed in turn, re-derive the signal set, and call the drop in performance that leg's contribution. It is easy to explain and easy to implement, which is why it is everywhere.
It has one structural defect: the contributions do not sum to the total whenever the legs interact, and legs in a confluence model interact by construction. Take a worked example, with the numbers below standing in for cost-adjusted basis points per episode on your own archive. Substitute yours.
| Legs active | Value |
|---|---|
| None | 0 |
| AMS only | 12 |
| MMS only | 20 |
| GLS only | 2 |
| AMS and MMS | 29 |
| AMS and GLS | 13 |
| MMS and GLS | 21 |
| All three | 30 |
Leave-one-out gives AMS 30 minus 21, which is 9. MMS gets 30 minus 13, which is 17. GLS gets 30 minus 29, which is 1. They total 27 against a realised 30, so three units of the result are attributed to nobody. Present that table to an investment committee and the first question will be where the missing tenth of the return went, and the honest answer, that it arises from the interaction between legs and leave-one-out cannot place it, is not a satisfying one to give live.

The Shapley version, and what it costs to run
The decomposition that does sum to the total assigns each leg its average marginal contribution across every ordering in which the legs could be added. With three legs there are only eight subsets to evaluate, so the entire exercise is eight re-runs of your backtest. That is a rare case where the theoretically correct method is also the cheap one, and it is worth doing purely so that the numbers add up in the room.
On the table above, the Shapley values are 10.33 for AMS, 18.33 for MMS and 1.33 for GLS, and they total exactly 30. The ordering is the same as leave-one-out gave, which is common, but the magnitudes differ and the residual is gone. Where the two methods disagree in ordering, which happens when interactions are strong, the Shapley ordering is the one to trust and the disagreement is itself a finding worth writing down.
Two implementation warnings. First, the subset evaluations require counterfactual fills, because a configuration with a leg removed generates signals your book never traded. You have to model those fills, and the modelling assumptions will dominate the result if the counterfactual signal set is large. State the fill model explicitly and run the whole thing again under a pessimistic version. Second, keep the episode definition fixed across all eight runs. If removing a leg changes how many raw emissions collapse into an episode, you are comparing different units and the values are not commensurable.
Putting an error bar on a leg's contribution
A point estimate of 1.33 basis points per episode is not a finding. It becomes one only when it sits next to a standard error, and the right standard error here is not the obvious one.
Do not compute it from the standard deviation of outcomes across the whole book. Compute it on the paired per-episode difference between the configuration with the leg and the configuration without it. The two configurations agree on most episodes, so the paired difference series has far less dispersion than either outcome series, and the paired estimate is correspondingly tighter. Using the unpaired standard error throws away most of your power and will tell you nothing is significant.
Carry it through with placeholders. If the paired difference series for GLS has a standard deviation of 25 basis points across 400 independent episodes, the standard error on its mean is 1.25 basis points. A contribution of 1.33 is then roughly one standard error from zero, which is not evidence that the leg contributes and is equally not evidence that it does not. That symmetry is the point. You have measured that the archive cannot resolve this leg's contribution at the size the leg appears to have.
Do the same arithmetic in reverse to get the decision-useful number: with 400 episodes and that dispersion, the smallest contribution you could detect at conventional significance is around 3.5 basis points, which is about 2.8 standard errors. Anything smaller is invisible to this evidence base no matter how many quarters you stare at it.
Why the slow leg is structurally hard to credit
The GLS values in the worked example are small, and if your real numbers look similar there is a mechanical reason worth understanding before anyone acts on it.
GLS tracks eight central bank balance sheets, which publish on a weekly to monthly cadence. Every visible row in the feed at capture was a 15m setup. Over the horizon of a scalp-class trade, the liquidity leg is close to constant, so it cannot separate this hour's signals from each other. A term that is identical across the signals in a period contributes to the level of the score and almost nothing to the ordering, and attribution methods measure the ordering.
That is a statement about horizon mismatch, not about whether liquidity conditions matter. The correct test is to run the same attribution on a signal population whose horizon matches the leg's update frequency, if the engine emits one, and see whether the contribution appears there. Concluding that a monthly-frequency input is worthless from a decomposition run entirely on fifteen minute signals is a category error, and it is the kind that survives a review only until someone reads the methodology section.
Demoting a leg rather than deleting it
The decision this whole exercise exists to support is usually framed as keep or drop. There is a third option that fits the evidence better and it is the one I would push for in most cases where a contribution sits inside its own error bar.
Change the leg's role. An additive leg that cannot be shown to contribute to the ordering may still be doing useful work as a gate: a condition that suppresses signals rather than scoring them. A gate is testable with far less sample than an additive term, because it is evaluated on the subset it excludes rather than on the whole population, and the effect size on that subset is usually much larger. Reframing the question that way often converts an unanswerable attribution into an answerable one.
Whatever you decide, write down three things at the time: the eight subset values with the fill model that produced them, the paired standard errors, and the minimum detectable contribution given your episode count. That last figure is what protects you in a future review, because it is the difference between having found that a leg does not contribute and having found that you could not tell. Those are different results and only one of them justifies changing the model.