Methodology & Sources

Independent public-data reconstruction of a "consolidated equity positioning" index in the style of Deutsche Bank Asset Allocation's published framework. ← back to chart

This is not the official Deutsche Bank index. It is an independent approximation using only free, lawfully accessible public data. Not affiliated with or endorsed by Deutsche Bank. Not investment advice.

Exact composite formula

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.

Components (equal weight)

#ComponentConstructionSource (free, public)
1CTA equity weightMulti-horizon trend (sign of 1/3/6/12-month returns) across SPY/QQQ/IWM/EFA/EEM, inverse-volatility scaled, tanh-boundedYahoo Finance daily OHLC
2Vol-control equity allocationBlend of constant-target-vol allocations (8/10/12/15%) using 20/60-day realised vol + VIX-implied vol, capped 150%Yahoo Finance (^VIX, SPY)
3Equity futures positioningCFTC Traders-in-Financial-Futures E-MINI S&P 500 net (asset-manager + leveraged-fund) positions as % of open interestCFTC Commitments of Traders (weekly)
4NAAIM exposureWeekly active-manager equity exposure indexNAAIM (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.

Standardisation

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).

Availability rules (point-in-time, no lookahead)

SourceReferenceAvailableUsed at Friday close
CFTC COT (TFF)TuesdayFollowing Friday ~15:30 ETFriday of the week AFTER the reference Tuesday (≈5-trading-day lag)
NAAIMWeekly surveyMid-week (Wed/Thu)Latest published value at Friday close (≈5-trading-day lag)
Yahoo dailyTrading daySame day after closeThat Friday's close

Fast systematic overlay (orange line)

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:

EpisodeFast overlay troughDB (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

Excluded components (documented, not proxied)

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.

Verified facts vs assumptions

Item
VERIFIEDDB'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".
VERIFIEDAll four component datasets are downloaded from the public sources above and are reproducible (see source manifest with URLs, timestamps, availability and SHA-256).
ASSUMPTIONDB'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.
ASSUMPTIONThe digitised chart used as a fitting target is an approximation of DB's line with quantified uncertainty (see validation).

Reproducibility

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.