Independent public-data reconstruction of a "consolidated equity positioning" index in the style of Deutsche Bank Asset Allocation's published framework. ← back to chart
composite = (z_CTA + z_volcontrol + z_CFTC + z_NAAIM) / 4 — the equal-weight
mean of the four component Z-scores, with no intercept or centring offset. A pipeline
assertion verifies the published composite exactly reproduces this formula (max deviation
< 1e-9). Correction: an earlier internal build applied a
full-sample re-centring offset (~−0.10). That was removed because centring on the full
sample uses future data (lookahead bias) and had not been documented.
| # | Component | Construction | Source (free, public) |
|---|---|---|---|
| 1 | CTA equity weight | Multi-horizon trend (sign of 1/3/6/12-month returns) across SPY/QQQ/IWM/EFA/EEM, inverse-volatility scaled, tanh-bounded | Yahoo Finance daily OHLC |
| 2 | Vol-control equity allocation | Blend of constant-target-vol allocations (8/10/12/15%) using 20/60-day realised vol + VIX-implied vol, capped 150% | Yahoo Finance (^VIX, SPY) |
| 3 | Equity futures positioning | CFTC Traders-in-Financial-Futures E-MINI S&P 500 net (asset-manager + leveraged-fund) positions as % of open interest | CFTC Commitments of Traders (weekly) |
| 4 | NAAIM exposure | Weekly active-manager equity exposure index | NAAIM (since-inception Excel) |
Dropped component: a risk-parity equity-weight component (equal-risk- contribution of SPY/TLT/GLD) was removed. Its ERC solver collapsed to degenerate 0.0/1.0 corner solutions in volatile correlation regimes (1682 days at 0.0, 436 at 1.0), and removing it improved train/holdout/full correlation. Diagnostics are in the validation files.
Each component uses an expanding-window Z-score (minimum 156 weekly observations) computed from past data only (mean/std shifted by one period), winsorised at ±3. Weekly frequency (Friday close). Because of the 156-week minimum, the public composite begins June 2012; percentiles are measured since model inception (June 2012).
| Source | Reference | Available | Used at Friday close |
|---|---|---|---|
| CFTC COT (TFF) | Tuesday | Following Friday ~15:30 ET | Friday of the week AFTER the reference Tuesday (≈5-trading-day lag) |
| NAAIM | Weekly survey | Mid-week (Wed/Thu) | Latest published value at Friday close (≈5-trading-day lag) |
| Yahoo daily | Trading day | Same day after close | That Friday's close |
A faster companion series is overlaid in orange. Deutsche Bank's documented systematic basket is model-based — CTA trend, risk-parity and vol-control equity weights plus equity futures (DB "Investor Positioning and Flows", Appendix). We tested that documented recipe but found it is itself a fairly good consolidated proxy and does not capture the speed of a capitulation. So the overlay uses a deliberately faster systematic proxy, built from the same model-based, market-data-only ethos but tuned to react within days: short-horizon momentum (5/21/63-day, inverse-vol), drawdown from the 52-week high, a fast vol-control allocation (target-vol / fast vol estimate), and a realised-vol shock term (5-day vs 60-day vol). Each is z-scored (past-only, expanding) and equal-weighted. It is a companion indicator, not part of the composite, and is NOT DB's systematic index — it is an independent fast systematic proxy.
Because it has no report/survey lag, it leads the consolidated series at major drawdowns — capturing the speed and depth the consolidated deliberately smooths:
| Episode | Fast overlay trough | DB (digitised) trough |
|---|---|---|
| COVID (Mar 2020) | −2.54 on Mar-13 | −1.77 on Mar-23 |
| April 2025 | −2.45 on Apr-04 | −1.04 on Apr-15 |
| Dec 2018 | −2.10 on Dec-28 | −0.70 on Dec-25 |
| 2022 bear | −1.95 on Apr-29 | −1.23 on Jun-21 |
AAII bull–bear sentiment (aaii.com blocks programmatic access), cash/ETF short interest and option-based net-call-volume / SPX skew (no free point-in-time source back to 2010) are excluded entirely rather than replaced with weak proxies.
| Item | |
|---|---|
| VERIFIED | DB's public chart describes the index as a "Wtd average of Z-scores for positioning indicators" with weights "based on explanatory power in regression of equity performance on indicators". |
| VERIFIED | All four component datasets are downloaded from the public sources above and are reproducible (see source manifest with URLs, timestamps, availability and SHA-256). |
| ASSUMPTION | DB's exact component set, Z-lookback, return horizon and weights are proprietary and not recovered; we use the documented philosophy with defensible public proxies and equal weights. |
| ASSUMPTION | The digitised chart used as a fitting target is an approximation of DB's line with quantified uncertainty (see validation). |
Pipeline: pipeline/run_pipeline.py (fetch → availability rules → components →
composite → integrity + formula assertions → manifests + SHA-256 → atomic publish).
Evidence: JSON ·
components ·
target ·
predictions ·
candidates ·
validation ·
sources ·
SHA-256.