Quantamental Investing: Blending Discretion and Models
Quantamental investing blends quantitative signals with fundamental or discretionary judgment — neither pure systematic nor pure stock-picking. Done well, it uses models for breadth and humans for sparse, high-value information. Done poorly, it is discretionary trading with a quant marketing label, plus override bias that destroys the backtest. This article defines workable quantamental processes and the governance that keeps them honest.
The spectrum
| Style | Signal source | Portfolio construction |
|---|---|---|
| Pure quant | Models only | Rules / optimizer |
| Quantamental | Models + human views | Rules with veto / tilt |
| Fundamental + tools | Human first | Screens and risk models assist |
| Pure discretionary | Human only | Ad hoc |
Quantamental sits in the middle: the default book is systematic; humans adjust a controlled subset.
Where humans can add value
Discretion helps when information is:
- Sparse — one merger document, one plant visit, one regulatory filing nuance
- Non-numeric — governance quality, fraud risk, management credibility
- Regime-defining — "this accounting change breaks the historical SUE signal"
- Operational — halt trading ahead of a known impossible borrow
Discretion hurts when it:
- Overrides the model every time a position hurts (stop-loss theater)
- Concentrates the book into a few "stories" (crowding)
- Uses information already in price and factors
- Cannot be timestamped for research
Process architecture
systematic alpha → risk model → optimizer → proposed book
↓
discretionary tilts (bounded)
↓
compliance / risk veto
↓
execution
Hard rules that preserve scientific control:
- Max % of risk from discretionary tilts (e.g. 10–20%)
- Written thesis + exit criteria for every override
- Timestamped catalog of overrides for later analysis
- No increase in gross leverage via "conviction" without risk approval
def apply_tilts(w_model: dict, tilts: dict, max_tilt_l1: float) -> dict:
"""Apply bounded discretionary tilts to model weights."""
w = dict(w_model)
budget = 0.0
for sym, dw in tilts.items():
if budget + abs(dw) > max_tilt_l1:
continue
w[sym] = w.get(sym, 0.0) + dw
budget += abs(dw)
return w
Research on overrides
Treat overrides like a strategy sleeve:
override_alpha = performance of tilted book − performance of pure model book
If override alpha is negative over 50+ decisions, remove discretion — regardless of anecdotes. This is the same discipline as strategy significance testing.
Track:
- Hit rate of vetoes (avoided disasters vs missed recoveries)
- Factor exposure drift after tilts
- Turnover added by human changes (cost-aware)
Quantamental data
Fundamental quants industrialize discretionary inputs:
- Structured filings NLP (sentiment)
- Expert surveys / alternative data
- Earnings quality scores next to PEAD
The point is to encode judgment into features over time, shrinking the need for live overrides.
Failure modes
- Marketing quantamental — model exists, PMs ignore it
- Committee risk — slow overrides that miss the edge horizon
- Responsibility diffusion — nobody owns drawdowns
- Backtest theater — research shows model-only results; live is tilted
Governance fix: report model-only and live books side by side, like shadow trading.
When to stay pure quant
Stay systematic if:
- Universe is large and edge is statistical
- Override latency is slower than signal half-life
- Team cannot maintain override logging discipline
- Clients expect a rules-based product
Quantamental is a organization design choice, not a magic alpha source.
Key takeaways
- Quantamental = systematic default + bounded discretionary tilts
- Humans help on sparse, non-numeric, regime-break information
- Cap tilt budget; log every override with thesis and exit
- Measure override alpha vs the pure model — cut if negative
- Encode repeated judgments into features; shrink live discretion over time
