Diagnostic Index: Symptom → Cause → Fix

This is the global troubleshooting index for the whole Atlas - the aggregated “clinic” that collects the failure modes spread across every topic’s §5 Failure Modes & Practice page, the pillar hubs’ §4, and the home-page matrix, deduplicated and organised by symptom.

How to use it. Find your observed symptom in the left column (scan the area heading that matches where the problem bites: backtest, execution, risk, portfolio, derivatives, ML, or systems). The root cause names the first-principles violation underneath, the remedy says what to change, and the canonical page takes you to the full treatment - math, code, and the complete failure-mode catalogue.

What this supplements. This index is a pointer, not a replacement. Each canonical page’s §5 Failure Modes & Practice remains the authoritative, full-depth treatment of every failure mode here - with the derivations, runnable code, and numbered checklist. Use this page to route yourself fast; use the §5 to actually fix it.


Research & Backtesting

Observed symptomFirst-principles root causeRemedyCanonical page
Backtest shows 3.5 Sharpe, instantly loses money liveBacktest overfitting & selection bias: the reported Sharpe is a maximum over trials, not a sample statisticReport , , ; gate on DSR ≥ 0.95, PBO ≤ 0.5Backtesting Hygiene
High-turnover strategy’s Sharpe collapses to ~0 liveTransaction-cost amnesia: drag ignored; quadratic impact omittedModel proportional spread + size-dependent (Almgren) impact in the backtestBacktesting Hygiene
Repeatedly “touching” the holdout keeps improving resultsRepeated holdout: the OOS set spent as a selection device converts ~5% false positives into expected onesOne vaulted use of the OOS; any post-hoc change resets itBacktesting Hygiene
Strategy overweights today’s winners/constituentsSurvivorship bias: universe filtered to names that survived, dropping the losersPoint-in-time universe, include delisted names and terminal returnsBacktesting Hygiene
Equity curve unnaturally smooth; alpha too stableLook-ahead via vintages: fundamentals/index membership/vendor prices known only later fed in earlyStrict point-in-time, as-of-known-at-timestamp joinsBacktesting Hygiene
Treated 1,000 correlated variants as 1,000 independent betsEffective- blindness: effective trials far below raw Report , , ; correct the selection thresholdBacktesting Hygiene
Sharpe quoted for a negatively-skewed, fat-tailed stream (carry, short vol)Non-normality ignored: true standard error of a non-normal Sharpe far largerUse DSR’s denominator (skew/kurtosis correction); quote ES not VaRBacktesting Hygiene
Alpha is statistically real but too small to matter, or decayed by deploymentCapacity & alpha-decay blindness: net alpha concave in AUM, premium erodes post-publicationBuild impact into the backtest, cap participation, haircut published alphasFactor Investing & Timing
Sharpe computed on illiquid mark-to-model or smoothed returnsMetric gaming: understated variance inflates the ratioUse audited, mark-to-market returns; reject smoothed seriesBacktesting Hygiene
Pairs spread widens and stops reverting (divergence trap)Cointegration structural break: linear relation broke via merger/index/dividend shiftRolling/recursive cointegration + CUSUM on residual; hard statistical stopStatistical Arbitrage & Pairs
Pairs pair chosen after the fact; great backtest, dead liveData snooping: pair selected ex-post is an extreme order statisticOOS formation/trading split, deflated Sharpe, purged CVStatistical Arbitrage & Pairs
Spread-trading costs eat two legs every rebalanceTransaction costs & turnover: turnover scales with spread re-entry; gross ≠ netCost-aware thresholds, longer half-life screen, portfolio nettingStatistical Arbitrage & Pairs
Short leg unborrowable exactly when divergence largestShort borrow & asymmetric costs: one-sided, hidden riskScreen borrow availability; budget short-side costStatistical Arbitrage & Pairs
Correlated unwinds across same-side books (Aug 2007 quant quake)Crowding: many funds run the same residual-reversion bookMonitor crowding/capacity; de-size correlated sleevesStatistical Arbitrage & Pairs
Stale closes / non-synchronous legs fabricate convergence on paperNon-synchronous pricing: bid-ask bounce invents mean-reversion that cannot be captured liveUse midpoint quotes, synchronous timestamps, lag-adjusted estimatesStatistical Arbitrage & Pairs
Event study attributes a same-window shock wholly to the eventEvent-window contamination: overlapping announcements confound attributionShort event window + screen out firms with other news; no statistical fixEvent Studies
Small, thin-stock event t-stats overstatedNon-synchronous trading biases OLS betaScholes–Williams/Dimson lag-lead corrections, or restrict to liquid firmsEvent Studies
Event t-stat inflated ~1.7× from correlated firmsCross-sectional dependence/clustering ignoredPortfolio-time-series SE (short), calendar-time portfolio alpha (long)Event Studies
Event significance overstated when event-period vol risesEvent-period variance increase not in estimation-window SEEvent/non-event variance ratio; nonparametric rank testsEvent Studies
Long-horizon abnormal returns unreliableLong-horizon joint-test problem & low power: risk-adjustment error compoundsShort horizons; report expected-return-model sensitivityEvent Studies
Momentum portfolio crashes in bear-market reboundsMomentum crashes (negative skew): option-like short-loser leg; clustered, partly forecastableSize/hedge; do not trust variance-swap hedging (Daniel–Moskowitz)Momentum
Momentum bleeds slowly over 12–18 months (whipsaw)Whipsaw in a mean-reverting regime: buys tops, shorts bottomsRegime filter; cost-aware entry; accept lower frequencyMomentum
”Hedged momentum” looks great in backtest onlyHedged-momentum illusion: hedge used ex-post/forward-looking betasUse implementable ex-ante hedge; verify no look-ahead in hedgeMomentum
Momentum short leg expensive/illiquid in a squeezeTransaction costs & short-leg capacityCost-aware shorting, monitor squeeze riskMomentum
Factor’s modeled beta-risk “low” but realized tail hugeCrowding & liquidity black holes: everyone holds the same long-shortTreat crowding as a risk input; de-size before the unwindFactor Investing & Timing
Published factor premium already shrunk by the time you deployPost-publication decay: ~35% haircut, larger for easy-to-arbitrageHaircut backtested alphas; re-estimate on post-publication dataFactor Investing & Timing
In-sample-optimal timing weights collapse out-of-sampleFactor timing high-variance, low-IC bet: timing breadth ≈12Treat timing as a small ±0.25–0.5× tilt; purged CVFactor Investing & Timing
Overlapping style factors make regression slopes uninterpretableMulticollinearity in style factors: nearly singular designOrthogonalize/standardize exposures; ridge/lasso; drop redundant factorsFundamental Multi-Factor Models
”Diversification” across sleeves is illusoryThe diversification illusion: residual correlation bounded by factor structure; few effective eigenvaluesOrthogonalize (Gram–Schmidt/PCA), count eigenvalues not sleevesFundamental Multi-Factor Models
Vol model’s persistence too high; forecasts unresponsiveGARCH persistence overstated by breaks: structural break masquerading as memoryTest for breaks (CUSUM), model the break not the memoryGARCH & Volatility Modeling
Symmetric GARCH wrong on downside movesMissing asymmetry: leverage effect in equity returnsEngle–Ng sign-bias test; add asymmetry/GJR termGARCH & Volatility Modeling
Vol forecast “accurate” but VaR systematically breachedBacktest the quantile, not the variance: wrong tail modelKupiec/Christoffersen tests on the VaR itselfGARCH & Volatility Modeling
Gaussian-shock GARCH understates tailsFat tails in shock distributionUse standardized Student-/GED shocksGARCH & Volatility Modeling
Kalman-filtered beta drifts quietly wrongDivergence = over-confidence, not instability: process noise collapsed to zeroFloor on ; monitor standardized innovation variance ratioSignal Processing & Kalman
Rolling-OLS beta lags the true beta by half a windowFixed windows leak, recursive filters lag by constructionChoose and justify the filter’s lag via ; prefer Kalman with explicit lagSignal Processing & Kalman
Kalman filter numerically blows up / PSD drifts negativeNumerical fragility: ill-conditioned covariance, symmetricity driftJoseph form / square-root filter; solve not invert; keep standardizedSignal Processing & Kalman
Beta jumps at index reconstitution, filter reacts too slowlyRegime breaks are not random walks: jump ≠ continuous driftModel the jump (Markov-switching/jump-diffusion state)Signal Processing & Kalman
Dynamic-beta strategy’s edge eaten by induced turnoverFilter-induced turnover consumes alphaPass filtered-alpha strategy through DSR/purged-CV batterySignal Processing & Kalman

Machine Learning & AltData

Observed symptomFirst-principles root causeRemedyCanonical page
ML model 95% in-sample accuracy, ~0% liveLeaky cross-validation: features scaled/screened on full data before splittingPreprocessing and feature selection inside each training fold onlyFinancial ML Pitfalls
Today’s index constituents backtested to 2005Point-in-time (look-ahead) bias: data used before it was availableStrict PIT datasets; knowable-at timestampsAlt-Data Pipelines
Universe filtered to today’s S&P 500 drops the names that prove the model wrongSurvivorship biasBacktest on point-in-time constituent listsFinancial ML Pitfalls
Best config’s in-sample Sharpe inflated by tuningSelection/multiple-testing bias: winner chosen on noiseDeflated Sharpe over the number of trialsFinancial ML Pitfalls
Purged-CV accuracy rises as fold count growsLook-ahead leakage survives in the split (the leak diagnostic)Find and close the leak; rerun the fold-count diagnosticPurged CV & Backtest Hygiene
Single backtest Sharpe quoted as the verdictPath overfitting: a lone Sharpe is the most volatile estimateReport a CPCV Sharpe distribution (mean ± sd), never one numberPurged CV & Backtest Hygiene
Honest split starves the model of training dataSample loss from purging at long horizonsConfirm per-fold training count ≫ parameter budget; gather more dataPurged CV & Backtest Hygiene
Deep net overfits; train error 0, test error highData hunger / overfitting: effective samples finance rarely suppliesWeight decay, dropout, early stopping, smaller models firstDeep Learning for Sequences
LSTM forecast degrades silently over monthsNon-stationarity: model is a snapshot of a moving processWalk-forward/purged validation, rolling refitsDeep Learning for Sequences
Sequence model “peeks” at the futureLook-ahead via missing causal mask / overlapping labelsCausal masking; purge + embargo; audit recurrence/attentionDeep Learning for Sequences
Sequential inference too slow for microsecond decisionsLatency/cost: RNN slow per step, full attention TCN or small model; compute enters alphaDeep Learning for Sequences
Tree model with unbounded depth overfits low-SNR dataToo many boosting rounds: test error has a shallow minimum in low SNREarly stopping; depth 2–4, few hundred trees, chosen OOSTree & Boosting Methods
MDI-based feature selection picks high-cardinality noiseMDI is in-sample and biasedUse MDA/permutation with clustered/orthogonalised featuresTree & Boosting Methods
Correlated factors cancel in permutation importanceSubstitution effects in MDAPermute correlated groups together; orthogonalize firstTree & Boosting Methods
Features screened on all data then CV’dFeature selection before fold split = leakageScreen inside each fold on training data onlyTree & Boosting Methods
Standard K-fold hyperparameter search double-overfits overlapping labelsUnpurged hyperparameter searchPurged/embargoed CV; proper loss (log-loss) not accuracyTree & Boosting Methods
HMM/GMM regime labels swap between runsLabel switching: likelihood invariant to state permutationOrder-constrain states at fit; never hard-code semantics onto unconstrained indicesGMM)
Likelihood keeps climbing as regimes are added; states cloneOverfitting the number of regimesChoose by BIC / out-of-sample likelihood, never max-likelihoodGMM)
Regime labels smooth away the futureLook-ahead from smoothed/Viterbi-decoded labelsLabel online with the filtered posterior; purge/embargo backtestsGMM)
Hard regime switch flips a coefficient on one wrong labelHard switching vs label errorUse the soft posterior (mixture-of-experts weighting)GMM)
Gaussian-emission HMM manufactures a phantom “spike” regimeGaussian-emission misfit on fat tails/jumps-distributed/heavier emissions; stress-check vs no-regime baselineGMM)
RL agent over-trades / exploits gross-P&L or Sharpe rewardReward hacking: gross reward or Sharpe-only reward is gameableReward net-of-cost P&L with explicit risk/turnover penaltyReinforcement Learning for Trading
RL policy exploits instant fills at mid / benign impactSim-to-real gap: agent exploits simulator artifactsConservative impact; validate simulator P&L vs real fillsReinforcement Learning for Trading
RL policy’s guarantees expire as regimes shiftNon-stationarity: learned policy claims a fixed DGPRegime-conditional policies, short replay windows, constant monitoringReinforcement Learning for Trading
RL result flips with the random seedReproducibility/evaluation noise: seed-sensitive deep RLReport distributions over seeds; never one run vs baselineReinforcement Learning for Trading
NLP sentiment feature counts “liability/tax/gross” as negativeDictionary misfit: generic lexicons are finance-blindUse Loughran–McDonald / finance-native listsFinancial NLP & Transcripts
Many-n-gram NLP model collapses out-of-sampleOverfitting with many n-grams on sparse featuresScreen inside folds, regularize, cap n-gram orderFinancial NLP & Transcripts
Sentiment feature built from restated/leaked textLook-ahead via restated/leaked textTimestamp by public release; features only from text knowable at as-ofFinancial NLP & Transcripts
Alt-data vendor rewrites history on re-runBackfill/reinstatement time-travel: storing only latest valueKeep multiple knowledge-dated versions; forbid backwards editsAlt-Data Pipelines
Vendor attrition looks like a demand collapse overnightPanel/coverage drift read as demandModel share or normalize by panel sizeAlt-Data Pipelines
Best dataset’s t-stat inflated by the searchOverfitting the evaluation: winner selected on noiseDeflate for number of datasets tried (deflated Sharpe/PBO)Alt-Data Pipelines
Web-scraped/leaked data exposes fund to MNPI liabilityCompliance/MNPI: non-public information embedded in feedUse public or properly-licensed primary sources onlyAlt-Data Pipelines

Execution & Microstructure

Observed symptomFirst-principles root causeRemedyCanonical page
Execution backtest books “trade printed” as “I filled”Optimistic fill accounting: ignores queue position & cumulative outflowModel cumulative outflow (trades + cancels) against queue position; record quantityExecution Backtesting & Simulation
Fill-model loss grows with assumed latencyLatency omission / stale-quote pick-offModel latency explicitly; cancel-ahead logicExecution Backtesting & Simulation
Whole-day flow used for a short-lived quote inflates fill rateLook-ahead in replay: non-causal orderingStrict causal ordering; events affect decisions at/after timestampExecution Backtesting & Simulation
Size-blind backtest omits self-impactIgnored self-impact: large order moves its own priceCalibrate Almgren impact; charge per legExecution Backtesting & Simulation
Correct fill model still overstates edgeIgnored adverse selection on fillsPrice the conditional drift into fill P&LExecution Backtesting & Simulation
Queue ahead vanishes simultaneously when a sweep arrivesPhantom-liquidity cascades: correlated cancellationsState/event-dependent cancel intensityExecution Backtesting & Simulation
Impact/fill params calibrated and evaluated on same dataCalibration/benchmark drift: in-sample optimismOut-of-sample calibration; fixed pre-declared benchmarkExecution Backtesting & Simulation
Almgren–Chriss schedule overpays and mis-times the tradeLinear-impact delusion: impact is concave (square-root law)Power-law impact; size-dependent Optimal Execution & Almgren–Chriss
Execution trajectory wrong because risk aversion guessedRisk-aversion mis-estimation: is a mandate, not a data parameterSet by mandate; oversizing over-tradesOptimal Execution & Almgren–Chriss
Trajectory wrong in the same direction the market is stressedNon-stationarity of impact & vol: both shift on stress daysRe-solve intraday; treat parameters as state variablesOptimal Execution & Almgren–Chriss
Deterministic execution schedule front-run / predatoryAdversarial/predictable execution: open bookRandomize timing, vary venue and participation, hide the shapeOptimal Execution & Almgren–Chriss
Order left unfinished because liquidity under-resourcedIgnored opportunity cost of the unfilled tail (Perold)Price the trades the market will not let you makeOptimal Execution & Almgren–Chriss
Static execution schedule suboptimal in trending namesSerial correlation/drift break time-homogeneityUse the genuinely dynamic optimum; occasionally optimal to not sellOptimal Execution & Almgren–Chriss
VWAP report looks great but is pure selectionVWAP is gameable: low measured cost can be a zero-sum transferRandomize schedules; use real-time volume/POV; adaptive ISPOV)
Large orders auto-flatter VWAP regardless of handlingVWAP order-size dependence: you become the benchmarkRank on ungameable benchmarks (arrival) for large ordersPOV)
Passive participants get picked off by informed flowFast laggard = adverse selection (Glosten–Milgrom)Let algorithm react to price/variance; cut adverse selectionPOV)
Router trades through the protected quoteActing on a snapshot: NBBO is a past observationAtomic re-check; sweep best protected prices in strict orderSmart Order Routing & Fragmentation
Venue cheap on screen, expensive in realityUnderpricing latency: pick-off loss an explicit termPut latency in the effective priceSmart Order Routing & Fragmentation
Fee-blind SOR silently misroutes at scaleOptimizing the displayed price: fee misroute is silent and uniformRank on cum-fee priceSmart Order Routing & Fragmentation
Resting order rarely filled, or filled only when wrongQueue-position risk: expected fill set by size ahead, not priceModel cumulative outflow; account for position resets on repriceQueue Position & Fill Probability
Stale passive quotes filled by faster takers at wrong momentLatency pick-offCancel-ahead / quote-fade logic; genuine latency reductionQueue Position & Fill Probability
Frequent reprice destroys fill qualityRefresh cost: cancel-and-reinsert resets queue positionAccount for expected position resets in reprice decisionQueue Position & Fill Probability
FOK order can’t fill; market order too large for levelOrder-type mismatch is structural, not operationalSize child to visible level; choose type from partial-fill toleranceMarket Microstructure & Order Types
Clock skew ≥ margin ⇒ random order timingClock skew beyond the edge: violates simultaneous clocksPTP grandmaster + GPS discipline <100 ns; holdover auditColocation & Clock Sync
Latency budget sized on mean, fails ~10× too oftenMean-vs-tail budget: p99.9 ≫ meanSize tick-to-trade budgets to p99/p99.9 tailColocation & Clock Sync
One-way latency estimated from RTT/2 badly biasedAsymmetric route biasMeasure one-way with synchronized clocks, never RTT/2Colocation & Clock Sync
FPGA runaway sprays orders at clock rateCatastrophic malfunction: no hot-fix in hardwareOut-of-band kill switches; order-rate interlocks in fabric; heartbeats off-pathHardware Acceleration & FPGA

Market Making & Liquidity

Observed symptomFirst-principles root causeRemedyCanonical page
Maker fills 100 consecutive buys right before price crashesToxic/adverse-selection flow: fills are informative, quote is an unpriced optionDetect toxicity (VPIN/PIN), widen/pull quotes; price conditional driftAdverse Selection (Glosten–Milgrom)
Spread too thin; one-sided loss from informed fractionUnderestimated informed fraction: spread below toxicity ceilingRe-estimate (toxicity); widen spreadAdverse Selection (Glosten–Milgrom)
Flat quotes through announcements/reopensSpread not widened for rising uncertaintyWiden/thin in step with belief uncertaintyAdverse Selection (Glosten–Milgrom)
Volatile-but-uninformed stock quoted like informed oneEquating volatility with informationMeasure permanent impact, not bounceAdverse Selection (Glosten–Milgrom)
Maker quotes stale spreads into a changed marketBelief lag: parameters never updatedUpdate toxicity/beliefs with experienceAdverse Selection (Glosten–Milgrom)
Avellaneda–Stoikov quotes get picked off by informed flowAdverse selection invisible to AS: spread covers inventory onlyLayer VPIN/Lee–Ready toxicity detection; widen/pullAvellaneda–Stoikov
Hard-coded quoting params misquote when regime changesParameter fragility: non-stationaryRefit intraday; shrink toward a priorAvellaneda–Stoikov
Dealer lets inventory grow unbounded in a trendNo inventory cap: skew only discourages, not limitsAdd hard inventory limit/penaltyAvellaneda–Stoikov
Skewed quotes cross the mid for large sizeQuote crossing / marketable quotesClamp and cap before publishingAvellaneda–Stoikov
Random-walk inventory breaches in a trend with near-certaintyUncontrolled inventory = guaranteed breachSkew strong enough the cap is rarely bindingInventory Management & Quote Skewing
Forced liquidation realizes paper losses at worst momentBreach under a trend converts MTM into realized lossPre-empt: flatten/hedge before breachInventory Management & Quote Skewing
Overnight gap bypasses intraday quote skewingOvernight/gap risk: market closed, no quoting protectionFlatten/hedge before the closeInventory Management & Quote Skewing
Rebate-masked maker desk was losing all alongRebate masks, does not cure: subsidy moves break-even toxicityRe-measure P&L net of rebate tier; monitor edge erosionMarket Maker Economics & Rebates
Risk system monitors vol but not order-flow imbalanceInventory blowups are flow-composition, not price, eventsMonitor order-flow imbalance (OFI)Market Maker Economics & Rebates
Reserve sized against average adverse selectionAdverse selection clusters: informed flow autocorrelatedSize capital against the burst, not the meanMarket Maker Economics & Rebates
LOB reconstruction state silently wrongFeed desynchronization: dropped/duplicated/out-of-sequence messagesSequence-number gap detection; periodic snapshot resyncLimit Order Book Mechanics
Depth metrics fooled by spoofing/fleeting liquidityManipulative/fleeting liquidity: depth is not beliefUse intent-inference (cancellation patterns), size-weighted signalsLimit Order Book Mechanics
Roll model returns NaN spreadPositive autocovariance: Roll’s sign assumption failsCheck autocovariance sign; use quote-based estimatorsSpread Decomposition & Roll Model
Roll underestimates the spreadSerial-correlated order flow: institutional splitting clusters flowTreat plain Roll as a lower bound; use decomposition with direction dataSpread Decomposition & Roll Model
Impact regression inflates persistent impactBid-ask bounce contaminates impact estimateUse midpoints or generalized-Roll separationMarket Impact & Depth
OLS impact coefficient not causalEndogeneity: prices cause flow as well as flow causes pricesIV or event-based designsMarket Impact & Depth
Linear impact fit to square-root data misprices large ordersFunctional-form misspecificationPower-law/square-root impact; avoid arbitrary kernelsMarket Impact & Depth
Amihud, OFI, metaorder impact conflatedCategory errors across impact families (units mismatch)Carry units; never equate per-dollar with per-shareMarket Impact & Depth
Full-day average misprices trades at open/closeIgnoring intraday seasonality (U-shape depth/spread)Schedule-aware impact/participationMarket Impact & Depth
Calm-regime impact estimate under-charges in stressNon-stationarity of impact with regimeRe-estimate in/for stressed regimesMarket Impact & Depth
Illiquidity treated as diversifiableLiquidity covaries across assets and is a priced factorModel liquidity as a priced factor, not diversifiableLiquidity Risk & Asset Pricing
OTC desk quotes constant liquidity into a fair-weather modelLiquidity is state-dependent, collapses in stressStress the intensities, not just pricesDealer Banks & OTC
Fire-sale spiral worsens every dealer’s lossFire sales feed back: same thin buyers, prices fallClearing/capital buffers; recognize the super-additive spiralDealer Banks & OTC
CCP failure becomes systemicClearing moves risk, does not delete itDiversify CCP exposure; monitor concentrated residual riskDealer Banks & OTC
All makers pull quotes on the same VPIN signalSelf-fulfilling kill-switch: shared alarm evaporates liquidityDecouple thresholds; distributional position not fixed cutoffToxic Order Flow & VPIN
VPIN reads volatility, not informationConflating toxicity with volatilityRead VPIN as a flow-imbalance gauge, not an oracleToxic Order Flow & VPIN

Derivatives & Pricing

Observed symptomFirst-principles root causeRemedyCanonical page
Delta-hedged book bleeds cash in fast volatile marketsDiscrete hedging error & jump risk: continuous rebalancing ; unhedged gamma Hedge trade-off: control gamma vs costs; accept jump risk is unhedgeableBlack–Scholes–Merton
Black–Scholes misprices by strike/maturityConstant-vol delusion: one can’t fit a smileMove to stochastic/local vol (Heston, SABR, Dupire)Black–Scholes–Merton
Hedge cannot protect a discontinuous gapJumps & fat tails: market incomplete, price not uniquePrice under a jump/regime model; size jump limitsBlack–Scholes–Merton
American option priced with European closed formEuropean formula on American put understates early-exercise premiumUse binomial/tree or finite-difference American engineNo-Arbitrage & Binomial
Tree gives meaningless prices (bracket violated)Unguarded bracket in low-vol/long-maturityAssert the bracket; raise on violationNo-Arbitrage & Binomial
Real-measure discounting used in a risk-neutral treeWrong discounting measure: Discount with (risk-neutral) for pricingNo-Arbitrage & Binomial
Single favorite tree price hides oscillation errorSingle- reporting: error oscillationReport an -study or averaged valueNo-Arbitrage & Binomial
Long-dated option priced with BAW approximationBAW error grows with maturityUse BS-2002/tree for long maturities; benchmarkAmerican Options & Optimal Stopping
Bermudan priced as American overstates valueContinuous value overstates by discretization gapUse the discrete exercise schedule for structured notesAmerican Options & Optimal Stopping
”Exercise when deep ITM” heuristic low-biases priceFixed exercise rule is suboptimalUse LSM/tree; exercise decision is a solved optimumAmerican Options & Optimal Stopping
Delta-hedging an American short near the boundary blows upGamma discontinuity at the early-exercise boundaryFiner rebalancing near boundary; proper American deltaAmerican Options & Optimal Stopping
Finite-difference prices oscillate at payoff kinksRinging without instability: CN symbol negative at high frequencyRannacher start-up, Richardson-extrapolated implicit Euler, smooth payoffNumerical Methods (Pricing)
Explicit scheme values meaningless above CFL boundCFL violation: stability is a hard constraintImplicit/CN, or exponential fittingNumerical Methods (Pricing)
MC error stubbornly present at any path countDiscretization bias masquerading as noise (Euler weak order 1)Log transform / weak-order-2 / Richardson; Brownian interpolation for extremaNumerical Methods (Pricing)
Truncation bound too small biases the answer invisiblyTruncation error is a bias, not mesh errorSet bound from payoff support; verify by wideningNumerical Methods (Pricing)
Importance-sampled MC variance worse than plainBadly tilted IS: likelihood-ratio variance inflatesMonitor weight second moment; stratify instead of bigger tiltNumerical Methods (Pricing)
“The model says 10.42” hides all other errorsReporting one number with no error budgetReport price + MC SE + mesh/boundary/scheme termsNumerical Methods (Pricing)
Barrier priced with continuous monitoring closed formContinuous-form assumption: misses discrete-monitoring hitsBGK/adjust for discrete monitoringExotic & Path-Dependent Options
Binary/barrier deltas via pathwise differentiation = 0Pathwise Greeks on step payoffs are invalidLikelihood-ratio or finite differences with CRNExotic & Path-Dependent Options
Quanto/spread price unstable to correlationCorrelation instability: drifts, less observable than volRe-run price across a -band; sensitivity not point estimateExotic & Path-Dependent Options
Converged-looking MC on a coarse grid is confidently wrongMC dimension confusion: path error vs step (monitoring) biasPush grid; confirm answer changesExotic & Path-Dependent Options
LV forward skew flat ⇒ barrier/cliquet/digital mispricedLV’s flat forward skew dynamicsUse SV/SVJ for forward-skew exposureVolatility Surfaces & Smiles
Interpolated smile violates no-arbitrageInterpolation arbitrage in staticsParametrize with arbitrage-aware objects (SVI + calendar constraints)Volatility Surfaces & Smiles
Wrong wing extrapolation reprices the whole bookExtrapolation & wing riskEnforce consistency with liquid VS quotesVolatility Surfaces & Smiles
Hedging with model delta when implied vol moves with spotDelta convention risk: BS delta ≠ minimum-variance deltaUse min-variance delta; state the sticky ruleVolatility Surfaces & Smiles
Recalibrating LV surface is itself unpriced P&LRecalibration risk: LV forward skews/vol-of-vol not lockablePrice the cost of holding model dynamicsCalibration & Market Practice
Local-vol map explodes from raw-quote noiseIll-posed inversion: differentiation amplifies noiseSmooth/parameterize smile first; regularize; clip local varianceCalibration & Market Practice
Identical fits, different hedges (SABR vs Heston)Non-identifiability: smile fixes combinations, not parametersFix a convention; use term structure; ridge toward a priorCalibration & Market Practice
Rich model drives today’s residuals to zero, future to nonsenseOverfitting: rich model, sparse dataCross-validate, penalize, check no-arbitrageCalibration & Market Practice
Same data/model, different desks, different paramsConvention drift: silent reconciliation riskLock conventions; report residualsCalibration & Market Practice
Heston rejected on Feller alone / Euler assumed fineConfusing Feller condition with scheme positivityUse Milstein/QE/exact transition; check Feller correctlySABR)
Full-truncation Euler biases variance downTruncating instead of fixingUse Milstein, QE, or exact transitionSABR)
Calibration weights put all error on the wingsCalibrating without vega/bid-ask weightsWeight so a vol-point error costs the same everywhereSABR)
Two parameter sets, identical RMS, different pricesTrusting the residual: RMS hides parameter stabilityReport and monitor parameters and their stabilitySABR)
Vol-of-vol carry mis-attributed in P&LVol risk premium priced separately, not a forecastAttribute vol-of-vol carry explicitlySABR)
One-factor model misprices steepeners/butterfliesPerfect-correlation trap: one Brownian ⇒ all forwards move togetherTwo-factor or market models with correlation matrixInterest Rate & Term Structure
Lognormal Black-76 undefined near zero/negative ratesNegative rates break lognormal BlackBachelier (normal), shifted lognormal, displaced diffusionInterest Rate & Term Structure
Swaps misvalued post-2008 using one curveMulti-curve/basis risk: OIS discounting vs LIBOR forwards divergedBuild LFM off curves consistent with the discount curveInterest Rate & Term Structure
Cross-hedge leaves large residual basisBasis risk irreducible with cross-hedgeMatch contract to horizon; minimize but accept residualOptions Fundamentals & Markets
Hedge illiquid or margin-unfundedLiquidity & margin constraints ignoredCheck executable capacity; fund margin; respect constraintsOptions Fundamentals & Markets
Contract-spec errors silently change cash flowsContract-specification traps: multiplier, delivery options, day-countAccount for wild-card/CTD options; verify multiplier & basisOptions Fundamentals & Markets
Naked short call blows upLeverage & short-option asymmetry: unbounded loss, margin scalingUnder-margining + leverage is the blow-up mechanism; cap and marginOptions Fundamentals & Markets
Unadjusted splits/dividends wrong by a factorDividend/split adjustment: pure specification errorAdjust payoff and hedge ratio for splits/dividendsOptions Fundamentals & Markets

Risk Management

Observed symptomFirst-principles root causeRemedyCanonical page
VaR breaches cluster and exceed promised rateFat tails underpriced by normality: delta-normal breaches ~1.56% vs promised 1%EVT tails, Cornish–Fisher, or move to ESMC VaR
Historical VaR pinned by a few worst days; jumps when old crash scrolls offGhost/window artifactFiltered historical simulation, volatility weightingMC VaR
Summed desk VaRs understate firm riskVaR not subadditiveMove to coherent ES aggregationMC VaR
VaR never validated against realized breachesNo backtest, no modelKupiec + Christoffersen backtesting batteryMC VaR
Portfolio optimized on VaR loads hidden catastrophic tailsTail blindness: VaR misses what sits past the quantileConstrain ES, not VaRVaR & Expected Shortfall
Calm window assigns zero probability beyond sample maxWindow truncation: calm window is a blindfoldFHS + EVT tail extrapolationVaR & Expected Shortfall
VaR/ES fall in calm markets, allowing more leverage, spiking after lossesProcyclicality feedbackStressed VaR/ES (Basel II.5); FRTB liquidity-horizon scalingVaR & Expected Shortfall
Two desks with identical risk report VaRs a quarter apartEstimation error: VaR carries sampling noiseConfidence bands; average longer/filtered samplesVaR & Expected Shortfall
Extreme quantile (0.9999) estimated from few thousand lossesSmall-sample distant-quantile estimation: extrapolationReport EVT outputs as a range, not a pointExtreme Value Theory & Fat Tails
EVT on i.i.d. assumption fails in volatility clustersDependence/clustering: i.i.d. excesses fail under clusteringGARCH/EWMA filter before EVT; extremal index / point-processExtreme Value Theory & Fat Tails
Tail index fitted once to 20 years mixes regimesRegime dependence of tail indexConditional/rolling EVT; GARCH filteringExtreme Value Theory & Fat Tails
Threshold choice drives the EVT answerThreshold no-free-lunch: optimum depends on unobservable second-order termPick inside the stability plateau; report sensitivityExtreme Value Theory & Fat Tails
Margin haircuts spike, forced sales depress pricesMargin/funding spiral (Brunnermeier–Pedersen)Make haircut a function of volatility & MPOR; stress bothLiquidity Risk & Funding
Catastrophic liquidation during stressFunding-market coupling ignored: constant haircut deletes the spiralStress haircut × MPOR jointlyLiquidity Risk & Funding
On-the-run Treasuries liquid individually, illiquid all togetherLiquidity illusion: aggregate market liquidity is a public goodModel aggregate capacity, not sum of individual estimatesLiquidity Risk & Funding
Impact cost from calm sample understates stress cost ~10×Calm-period calibration: procyclicalUse stressed parameters; re-estimate MPORLiquidity Risk & Funding
Options book loses on a term never on the risk pageCross-greek interaction: vanna/volga invisible to delta-gamma-vega reportReport/hedge vanna & volga; stress spot-down-vol-up jointlyRisk Factor Sensitivities
Gamma blows up at expiry; delta flipsPin risk: gamma → ∞, digital-like at expiryClose/roll before expiry (operational, not mathematical)Risk Factor Sensitivities
Netting gammas across strikes loses real scenario infoAggregation destroys curvature informationNever net a book’s gamma at your peril; keep strike detailRisk Factor Sensitivities
Stress scenarios chosen to look mildScenario selection bias: severe scenarios hardest to sell internallyBuild scenario set before seeing results; include reverse-stressStress Testing & Scenario Analysis
Stress outputs blended into a “total risk” numberScenarios have no probability, not aggregableKeep stress results conditional, separate from VaR/ESStress Testing & Scenario Analysis
Diversification vanishes exactly when neededCorrelation breakdown: the tail killer is correlations, not levelsShock the correlation matrix itself, not just factor levelsStress Testing & Scenario Analysis
Delta-only stress misses convex lossesConvexity neglectFull revaluation on option-heavy booksStress Testing & Scenario Analysis
Merton spread far below market at short maturityCredit-spread puzzle: default forced at maturity onlyBlack–Cox first-passage barriers; jump-diffusionCredit Risk & Merton Model
Merton PD misses sudden defaultNo jump-to-default: diffusion cannot collapseAdd jump channel; markets price with intensitiesCredit Risk & Merton Model
Recovery/LGD treated as constantRecovery is random, correlated with defaultModel stochastic recovery by seniorityCredit Risk & Merton Model
CVA underpriced under correlated defaultIndependence delusion (WWR): exposure, PD, LGD treated independentConditional exposure (Gregory §17.6)Counterparty Risk & XVA
CDS hedge pays when exposure jumps above hedged levelWrong-way risk unhedgeable in the tailAvoid WWR structurally: exclude linked trades from netting; EAD/LGD = 100%Counterparty Risk & XVA
Zero WWR parameter reported as “no WWR”Correlation is not independence: zero correlation ≠ independenceReport dependence honestly; it’s a category errorCounterparty Risk & XVA
Delta/CS01 hedge fails to protect the default eventJump-to-default defeats the GreeksExplicit JTD limits, not deltaCounterparty Risk & XVA
Collateral assumed to eliminate WWRCollateral is a timing hedge, not a default hedgeCollateral protects gradual exposure only; size accordinglyCounterparty Risk & XVA
DVA double-counted with FBADouble-counting DVAUse one consistent package (DVA or FBA), never a mixCounterparty Risk & XVA
Gaussian copula underprices the joint tailStatic copula vs dynamic dependenceRegime-condition the copula; mixture/Markov-switchingCopulas & Dependence
Joint tail error compounds beyond marginal errorsBoth layers estimated: margins + copula, errors compoundFit & validate both; prefer semi-parametric marginsCopulas & Dependence
Copula family choice swings the tail answerFamily uncertainty dominatesReport a set of copulas (dependence uncertainty band)Copulas & Dependence
Tail parameters quoted without an intervalSmall-sample tail estimates: bootstrap SE ≈ the estimateNever quote a tail estimate without an intervalCopulas & Dependence
”Estimated default copula” from discrete dataDiscrete credit data under-identifies the copulaOver-claim; CDO correlation is implied, not observedCopulas & Dependence
Every peek at the validation set improves the numberValidation-set reuse → biased lowNested/purged CV, true holdout, multiple-testing correctionModel Risk & Validation
Benchmark shares structure/data with the modelBenchmark error: cannot challengeBenchmark on different data/model class; measure error correlationModel Risk & Validation
Model silently degrades when regime changesDrift & non-stationarity: coverage decays silentlyOngoing monitoring, rolling recalibration, stress backtestsModel Risk & Validation
Optimizing “for the backtest” passes tests without improving modelGaming the validator (Goodhart)Effective challenge: independent party asks “why did this change?”Model Risk & Validation
LDA capital dominated by its least-estimable parameterData scarcity / tail misestimation (OpRisk)External databases, scenario analysis, Bayesian pooling, buffersOperational Risk
Poisson independence wrong in stressTail dependence of rare events: clustered arrivalsNegative-binomial/contagion frequency; stress overlayOperational Risk
Lognormal-vs-Pareto choice swings 99.9% capital ~5.8×Severity-family selection riskReport capital range over defensible families, never one numberOperational Risk
Capital falls when losses under-reportedIncentive-corrupted dataIndependent, audited loss capture; de-minimis thresholdsOperational Risk
Compliance sells in the worst stateProcyclicality: binding constraint driven by lagging volCountercyclical buffers; through-the-cycle calibrationSystemic Risk & Aggregation
”Sum the ES” overstates / “treat as independent” understatesAggregation fallacy: dependence is unobservableDisclose the dependence assumption; capitalise the worst copulaSystemic Risk & Aggregation
Capital ratio looks fine but the run kills the bankLiquidity not in the capital ratioLCR/NSFR as separate hard constraintsBasel & Regulation
RWA highest exactly when capital can’t be raisedProcyclicality: PDs/vols cycle-dependentCountercyclical buffer; through-the-cycle calibrationBasel & Regulation

Portfolio Construction

Observed symptomFirst-principles root causeRemedyCanonical page
Weights swing violently ( to ) on small updatesInverted covariance noise maximization: , sample amplifies noise eigenvaluesLedoit–Wolf shrinkage / RMT denoisingCovariance Shrinkage & RMT
Sample covariance singular; pinv papers over itThe cliff: sample covariance not invertibleShrinkage/factor estimator to regularize the estimate, not the arithmeticCovariance Shrinkage & RMT
Small-eigenvalue noise dominates weightsAmplification dominates small-sample inferenceAccurate small eigenvalues matter most; shrink the low endCovariance Shrinkage & RMT
Reported risk beats the true optimum in-sampleIn-sample evaluation is not a testWalk-forward/OOS evaluation with trailing-window covarianceCovariance Shrinkage & RMT
MVO bets hardest where evidence is thinnestMean-error amplification: mean is least reliable inputShrink/regularize; Black–Litterman priorMPT & Mean–Variance
Near-duplicate assets produce garbage weightsSmall-eigenvalue explosion from collinearityDrop/merge near-duplicates; shrink covarianceMPT & Mean–Variance
Frontier curve stable but the point on it is a knife-edgePortrait-of-frontier-stable illusion: curve stable, weights notMichaud resamplingMPT & Mean–Variance
Return estimates dominate the answer no matter the covarianceMeans > covariances, always (Chopra–Ziemba ~10×)Fix means (BL/shrinkage) before polishing covarianceMPT & Mean–Variance
Overbetting a strategy ruins growthOverbetting is asymmetric in danger: past the Kelly optimum flips growth signHalf-Kelly operating defaultKelly Criterion & Bet Sizing
Kelly computed on Gaussian variance under jumpsGaussian variance ≠ SD of log growth under fat tailsEstimate exact growth over empirical/heavy-tailed distributionKelly Criterion & Bet Sizing
Overbet near triggers margin calls at the troughLeverage × drawdown × margin: forced de-lever locks in ruinDe-risk pre-drawdown via fractional KellyKelly Criterion & Bet Sizing
Black–Litterman weights near extremesConfidence mistaken for conviction: near-zero drives naive-MVO extremesConfidence = reciprocal of estimate variance, not a fervor dialBlack–Litterman
BL still blows up on near-collinear assetsBL never fixes covariance; hides under itDe-risked covariances belong in the BL stackBlack–Litterman
BL confidently wrong in the market’s direction during bubbles/crashesEquilibrium bias: stability bet that market is mostly rightOverlay factor/tail views; question the priorBlack–Litterman
Backtest trades continuously, alpha only exists without a marketBacktesting at zero cost: removes the no-trade regionAssume cost inside optimizer; apply true cost to realized returnsConstraints & Transaction Costs
Strategy breaks when AUM growsUnderestimating impact for large notional: impact scales with sizeRe-estimate impact as a function of your own AUMConstraints & Transaction Costs
Every fresh alpha estimate looks like a tradeTreating noise in alphas as signalShrink alphas AND price the tradesConstraints & Transaction Costs
Multiple constraints interact; binding one invisibleIgnoring constraint prices when combining constraintsReport active set and multipliers, not just weightsConstraints & Transaction Costs
HRP tree flips and large weight blocks moveClustering instability: tree is estimatedCo-membership/cophenetic diagnostics; average linkage, longer windowHierarchical Risk Parity
HRP weights noisy from single windowWeight volatility ≫ clustering volatilitySmooth weights across windowsHierarchical Risk Parity
HRP tree rebuild churns turnoverTurnover from tree churnConstrain turnover; smooth weightsHierarchical Risk Parity
HRP underperforms when the premium sits elsewhereNo expected returns ⟹ structurally incompleteLayer a return view (BL); HRP is a pure risk allocatorHierarchical Risk Parity
Calm-data covariances understate joint losses in crisisCorrelation crisis (diversification illusion)Stress covariance; regime conditioning; tail-aware allocationMulti-Asset & Factor Allocation
Carry’s steady gains hide a heavy left tailCarry crash: negative skew, mean-variance ignores itTail hedge, leverage caps, defensive overlayMulti-Asset & Factor Allocation
Repeated tactical re-optimisation rewrites strategy with noiseStrategic/tactical confusionTracking-error budget keeps the two separateMulti-Asset & Factor Allocation
Robust optimizer guarantees underperformanceOver-conservatism: oversize uncertainty → shrink to zeroCalibrate uncertainty to a confidence quantileRobust Optimization
Robust box protects against the wrong adversaryUncertainty-set misspecification: wrong shape/widthBuild from the estimator’s confidence region; test sensitivity to shapeRobust Optimization
Optimizer judged by in-sample Sharpe, ranking reverses OOSOptimism gap (overfitting)Report OOS; penalize in-sample-optimal solutionsRobust Optimization
Resampling an overfit center reproduces the overfitResampling false comfortConstrain/shrink before resampling; use to build a distributionRobust Optimization
Shrinking toward the grand mean erases genuine alpha spreadShrinkage-target riskShrink toward an economically motivated prior (CAPM/BL implied)Robust Optimization

Dev / Systems

Observed symptomFirst-principles root causeRemedyCanonical page
Trading engine latency spikes from 1 s to 2 ms intermittentlyOS syscall / dynamic memory heap lock on hot pathPre-allocated arenas; no exceptions/allocations/logging in the loopHigh-Performance C++
p99.9 destroyed while median unchangedHidden allocation → tail explosion (amortised but unbounded)reserve, pools, value typesHigh-Performance C++
Latency-bound loop from cache missesCache misses from locality-blind layoutSoA/flat containers, sequential accessHigh-Performance C++
Benchmark lies; optimizer deleted/reordered codeUndefined behavior in C++ (signed overflow, strict aliasing, races)Sanitizers, std::atomic, strict-aliasing-safe accessHigh-Performance C++
Branch misprediction flushes the pipelineUnpredictable control flowBranchless/cmov; sort/bucket inputsHigh-Performance C++
Independent counters slow down ~18× across coresFalse sharing: cache coherence line-granularalignas(64) padding of per-thread stateConcurrency & Lockless
Data race silently corrupts shared stateLost update: no happens-before edgeThreadSanitizer; treat the GIL as an accidentConcurrency & Lockless
Correct on x86, corrupt on ARM/PowerPCMemory-ordering bug: missing/relaxed handshakeReview store/load ordering; explicit synchronizes-with chainConcurrency & Lockless
Kill switch stalls behind an unrelated taskPriority inversion: low-priority holder starves high-priorityPriority inheritanceConcurrency & Lockless
CAS succeeds against reused memoryABA problem: CAS detects same address, not same objectTagged/DCAS pointers or generation countersConcurrency & Lockless
Order transmission delayed by tens–hundreds of msTCP Nagle buffering: TCP_NODELAY unsetSet TCP_NODELAY; tuned low-latency socket stackFIX Protocol & Connectivity
Venue rejects with SequenceNumberTooLow; trading freezesSequence-number desynchronization across crashJournal every message to durable storage before actingFIX Protocol & Connectivity
Phantom position / double-counted quantity on replayDuplicate execution on replay: resent ExecutionReport processed as newDedup on ExecID(17); treat PossDupFlag as a warning to checkFIX Protocol & Connectivity
LeavesQty diverges from venue; hedge against ghost positionOrder-state desync from a dropped reportAssert 151 == 38 − 14; reconcile on mismatchFIX Protocol & Connectivity
Quoting into a dead link while OS buffersSilent session death: no heartbeat enforcementEnforce HeartBtInt, TestRequest, auto-disconnectFIX Protocol & Connectivity
Backtest fills on the generating eventEvent-driven look-ahead: fill on the generating eventAssert causal ordering at runtimeEvent-Driven Backtesting Engines
Centred rolling window leaks the futureCentred rolling windows: sees both sides of Audit every data derivation; forbid centred statsEvent-Driven Backtesting Engines
Backtest fills at mid as “conservative”Mid-price fills: assumes a free optionFill against the side you would actually crossEvent-Driven Backtesting Engines
Engine fills unlimited sizeInfinite capacity: no volume capCap fills by bar volume; state the capEvent-Driven Backtesting Engines
Backtest can’t be re-run bit-for-bitNon-reproducible runs: seed/tie-break/data not frozenFix seed, tie-break rule, data snapshotEvent-Driven Backtesting Engines
Single flipped bit rides into the modelSilent byte corruption: checksum fails but means/sds intactHash at ingest; reject on mismatchData Infrastructure & Reproducibility
A 999.99 row survives because the mean looks fineMean-mask trap: aggregates average away outliersDistributional stats (z-scores) and per-cell integrityData Infrastructure & Reproducibility
Rerun silently diverges after a dependency/seed changeConfig drift / irreproducible rerunsLockfile; pin deps and seedData Infrastructure & Reproducibility
Restated data served to a backtest looks “valid”Point-in-time leakage: semantic corruption checksums can’t seeEnforce PIT at the store/query layerData Infrastructure & Reproducibility
Store can’t represent what was knowable at Look-ahead in storage: no vintagesAppend-only, bitemporal rowsTick-Level Databases & kdb+
As-of join takes seconds to hoursUnsorted index in the storeSort by time on ingestTick-Level Databases & kdb+
Vendor renames a field and history is reinterpretedSchema drift: feed spec is a contract that changesSelf-describing formats; schema registry; decode-time validationTick-Level Databases & kdb+
Store built from today’s symbols drops the delisted losersSurvivorship in the symbol universePoint-in-time universe membershipTick-Level Databases & kdb+
Kernel tuning reverts after a reboot/package updateSilent config drift: tuning not versionedLock tuning into boot-time config; diff every deploy; alarm on tailLow-Latency Linux & Networking
Interrupt storm re-injects varianceJitter re-injectionMonitor p99/p99.9 continuously; EWMA drift alertLow-Latency Linux & Networking
Reconciliation “stopped” but nobody alertsSilent failure: alert on the absence of a clean runAlert on age-since-last-clean-reconciliationProduction Risk Guards & Kill Switches
Per-name tolerance hides aggregate breakoutOffsetting breaks inside toleranceAdd aggregate exposure check and break-count limitProduction Risk Guards & Kill Switches
Guard enforces a limit against a wrong internal bookGuards vs reconciliation disagreementReconcile guards to the external record, not trust internalProduction Risk Guards & Kill Switches
Runbook unreachable in a live incidentNo written runbookRunbook reachable from alert; name first action + authorizerProduction Risk Guards & Kill Switches
Pandas write “didn’t stick”Hidden copies: fancy/boolean indexing returns a copyCheck np.shares_memory; never chain indexing + assignmentPython Quant Stack
int32 overflow silently; money inexactdtype trapsAssert dtypes at pipeline entry; upcast accumulators; integer centsPython Quant Stack
Python threads give ~1× speedup on CPU-bound workThe GILProcesses for interpreted CPU work; @njit(nogil=True)Python Quant Stack
apply/loops reintroduce per-element dispatch overheadInterpreted dispatch per elementNative reducers, NumPy/numbaPython Quant Stack
Vectorization exhausts RAM on big gridsProduction limits: full-array materializationStream/polars/Arrow bridges; chunkPython Quant Stack

Accounting & Finance

Observed symptomFirst-principles root causeRemedyCanonical page
High earnings, low cash: value screen says cheap but it isn’tAccrual-gamed earnings: ROE/margins/P/E inflate with accrualsSloan accrual ratio; Beneish M-scoreAccounting Quality & Red Flags
Single-year accrual ratio flags a firm as manipulatorTiming luck mistaken for quality: accruals reverseUse trend and cumulative measures, not one yearAccounting Quality & Red Flags
Cash-side fabrication invisible to accrual ratiosStructural blindness: fabricated cash revenue leaves accruals untouchedExternal evidence: channel checks, customer filings, receivables agingAccounting Quality & Red Flags
Quality screen ranks firms opposite ways across proxiesThe proxy determines the answer: “quality” is not one constructName the construct before screening; never mix proxies blindlyAccounting Quality & Red Flags
Discretionary-accrual model over-rejects poor performersExtreme-performance contaminationAdd a performance control or restrict the sampleAccounting Quality & Red Flags
Time-series ratios break across an acquisition/standard changeComparability breaks: ratios assume a stable entityMark the break year; rebuild on constant-perimeter basisAccounting Quality & Red Flags
”Improving” from a catastrophic base scores as excellentDirectional composites reward non-deathPair every binary signal with a level conditionAccounting Quality & Red Flags
Negative P/E quoted as “cheap”Negative/tiny denominators: ratio singular pointSkip the broken ratio; switch to EV/Sales, book anchors, Altman ZCore Financial Ratios
P/E inflates exactly when a cyclical is cheapestFinancials/cyclicals distort the standard setMid-cycle normalized earnings; regulatory ratios for banksCore Financial Ratios
”Current ratio > 2” applied universallyAbsolute-threshold reading: ratios are comparativeCompare to sector medians and firm’s own historyCore Financial Ratios
Ratios not comparable across firmsConvention mismatch: averages vs ending, pre/post-taxFix one convention and keep it constantCore Financial Ratios
Leverage death spiral: distress → fire-sale → capital destroyedLeverage magnifies (MM + distress externality)Covenant headroom, longer maturities, conservative leverageCapital Structure & Corporate Finance
Overlevered firm takes excessive riskAsset substitution: equity captures upside, creditors bear downsideDebt covenants, collateral, short maturitiesCapital Structure & Corporate Finance
Deeply levered firm refuses positive-NPV projectsDebt-overhang underinvestment: gains accrue to creditorsRestructure/de-lever before good projects arriveCapital Structure & Corporate Finance
Distressed equity issuance wipes out existing commonForced dilution: issue below intrinsic transfers wealthRaise equity before distress (pecking order)Capital Structure & Corporate Finance
DCF value dominated by the terminal valueTerminal-value dominance: 70–90% of value is the perpetuityTest/specific; cap growth; never let perpetuity run awayEquity Valuation
WACC used for equity flows (or mismatched beta/ERP)Wrong cost of capital: discount rate not matched to cash flowMatch cash flow to discount rate mechanicallyEquity Valuation
DCF reverse-engineered to “confirm” the market priceAnchoring to price: psychological confirmationEstimate intrinsic value independently of priceEquity Valuation
Single-point DCF reported to the centPrecision illusion: implies accuracy inputs don’t supportReport a range; margin of safetyEquity Valuation
Value trap: cheap because deterioratingPrice reflects expected fundamentalsRequire fundamental momentum (F-score, ΔROA, CFO/NI) with cheapnessFundamental Analysis & Screening
Genuine bargain halves againFalling knife: prices overshootMomentum veto, position sizing, staged entryFundamental Analysis & Screening
Screen on a single multiple misses debt/quality/cashAny one ratio is gameable and incompletePair value with quality and solvency metricsFundamental Analysis & Screening
Screen thresholds tuned until the backtest looks beautifulOverfitting the screenKeep screens simple, test across decades/regimes, prefer economic signalsFundamental Analysis & Screening
Averaging down into a trap destroys capitalConcentration and behavioral failureWritten thesis, pre-committed sell rules, diversificationFundamental Analysis & Screening
Restated fundamentals leak the future into a factor backtestLook-ahead bias at the sort datePoint-in-time, as-reported data onlyQuantitative Fundamental Investing
Value screen’s losers vanish from today’s universeSurvivorship bias: the losers delistInclude delisted firms and terminal returnsQuantitative Fundamental Investing
Many “distinct” factors are the same risk in different clothesRedundancy across factorsCheck correlation; prefer the parsimonious setQuantitative Fundamental Investing
Value screen looks extraordinary but holds no firm that ever failedSurvivorship bias in screensHistorical universe construction incl. delistings and terminal returnsData Sources & Corporate Data
Line-item history silently changes when vendor refreshesRestatement gaps: revisions downside-clusteredVersion rows by filing date; flag moved periodsData Sources & Corporate Data
13-F ownership treated as known todayLook-ahead via 13-F/ownership: legal lag bounds knowledgeLag by filing dateData Sources & Corporate Data
Free tier silently samples the universeAPI/coverage limitsBulk endpoints, caching, exponential backoff, identifying UAData Sources & Corporate Data
June-FYE firm’s “Q4” read as DecemberTime-zone and fiscal-calendar ambiguityStore fiscal period explicitly; stamp next-tradable knowable-at timeData Sources & Corporate Data
Earnings boosted by accruals without cashThe accruals trap (Sloan): high-accrual firms underperformNever accept earnings without its cash counterpartFinancial Statements & Accounting
Revenue recognized before the customer can payRecognition timing games: channel stuffing, bill-and-holdRead receivables vs revenue growth; expect later write-offsFinancial Statements & Accounting
Earnings shifted between periods with zero cash effectEstimate games: bad-debt/depreciation/pension assumptionsWatch for accounting-policy changesFinancial Statements & Accounting
Economic claims never appear as liabilitiesOff-balance-sheet operations: leases, guarantees, commitmentsRead footnotes and capitalizeFinancial Statements & Accounting
Same facts produce different reported earnings across bordersGAAP vs IFRS as a quality variableCompare on a common basis onlyFinancial Statements & Accounting

Last note: this index is generated from, and points back to, the canonical §5 Failure Modes & Practice page of each folder - go there for the derivation, the code, and the complete numbered checklist.