The single largest gap between a mock-data tool that passes a code review and one that survives a real backtest is the time dimension. Field-level realism — names, account numbers, balances within a plausible range — is easy. Joint-distribution realism within a single snapshot is harder but tractable. Joint-distribution realism across time — where a stock split has to reconcile cost basis on the very next monthly snapshot, where a 2008-style regime has to actually look like 2008 in equity correlation, where a fund company that went out of business in 2014 has to disappear from your dataset on the right date — is where every generic mock-data tool quietly produces wrong answers.
This theme is the umbrella for our time-series content. Each piece below is a deep dive on one failure mode and the data shape needed to address it.
Why time-series fidelity is the hard problem
The thing that makes the time dimension different is that errors compound. A wrong field on a single record is a wrong field. A wrong rule applied to a 96-month longitudinal causes the value to drift further from reality every month, and by month 36 the position has hallucinated a corporate parent that does not exist, a cost basis that disagrees with itself across two different reporting paths, and a return distribution whose statistical fingerprints (skew, kurtosis, autocorrelation, regime persistence) match nothing your engine was calibrated against.
The four classes of failure show up in every mock-data tool, and they are the four pieces below.
| Failure class | What breaks | Where it matters | |
|---|---|---|---|
| Corporate-action drift | Cost basis fails to reconcile after splits, mergers, spinoffs; orphaned positions accumulate | Tax-aware sell engines, lot-level reporting, performance reporting | |
| Returns-generation flatness | Random-walk normal returns miss volatility clustering, fat tails, regime persistence | Monte Carlo retirement projections, stress tests, backtests | |
| Attribution incompleteness | No factor exposure, no benchmark series, no multi-period linking, no currency layer | Performance reporting platforms, GIPS-compliant systems, factor-based products | |
| Survivorship bias | Delisted issuers, failed funds, bankrupt counterparties silently absent | Backtests, manager-research workflows, credit-event modeling |
The four pieces under this theme
The articles, comparison, and glossary terms below cover one failure each. Read them in order or jump to the one you're debugging.
Modeling Corporate Actions
Modeling corporate actions in synthetic portfolios is the deep dive on splits, cash and stock mergers, spinoffs, return-of-capital distributions, and special dividends. The article shows the schema your engine actually needs (event-sourced corporate-action log + lot-level adjustments) and walks through three reconciliation traps that mock-data tools all share: orphaned positions after a cash merger, cost-basis allocation in spinoffs, and the special-dividend / RoC interaction with REIT holdings.
Generating Historical Returns That Aren't Random Walks
Generating synthetic historical returns: random walk, regime-based, replay is the methods comparison. Random-walk geometric Brownian motion is fast and wrong. Historical replay is right for the past it saw and silent on what it didn't. Regime-based simulation is the production answer — and the article shows how to build the regime transition matrix, calibrate the per-regime return distributions, and avoid the three common calibration mistakes (overfitting on the most recent regime, ignoring cross-asset correlation breakdown in tail regimes, and confusing volatility regimes with return regimes).
Performance Attribution Test Data
Performance attribution test data for reporting platforms is the schema deep dive for reporting platforms. Brinson, factor, and multi-period attribution each need different fields in your synthetic data — and a reporting platform that ships with single-period Brinson is shipping a known correctness gap on any account whose mandate or asset allocation changed during the period. The article shows what each attribution method consumes and how to make sure your test data exercises the linking algorithm.
Detecting Synthetic Data That's Too Clean
Detecting unrealistic patterns in synthetic time-series wealth data is the buyer-side QA piece. Twelve tells that a synthetic dataset is going to silently produce wrong backtest answers — no overdrafts, no failed trades, no regime transitions, suspiciously clean cost-basis distributions, no survivorship attrition, and the rest. Each tell comes with a single-query check you can run against any synthetic corpus to detect it.
Synthetic vs. Historical Replay
Synthetic time series vs. historical replay is the methodology comparison. Replay is what most quant teams reach for first — you have history, the history has the right statistical fingerprints by definition, why not just resample it? The comparison walks through the four cases where replay produces a measurably wrong answer (forward-looking simulation, regime that didn't happen yet, cross-asset combinations that have never coexisted, and bootstrapping over a window that's too short for the statistic you care about) and the cases where it's strictly better than parametric synthesis.
Supporting glossary terms
Each of the metrics and concepts below has its own Glossary+ entry. Anchor them inline in your team's documentation when you discuss synthetic-data fidelity.
- TWR — the GIPS-mandated return measure for performance reporting, and the one that breaks first when your synthetic data has gaps in the cash-flow timestamps.
- MWR / IRR — the return measure your client actually experienced, which differs from TWR exactly when external cash flows happened, and which requires precise timestamp granularity in synthetic data.
- Sharpe ratio — the most common risk-adjusted return measure, and the one that gets the most-inflated values from random-walk synthetic data because random-walk returns understate downside risk.
- Maximum drawdown — the path-dependent risk measure that exposes random-walk synthetic data fastest, because random-walk paths produce drawdown distributions that are systematically too narrow.
- Survivorship bias — the most-cited but still most-common backtest error, and the one that is structural in any synthetic dataset that doesn't model failure events.
- GIPS (Global Investment Performance Standards) — the standards regime that mandates how composites and time-weighted returns are computed, and the standards regime that any institutional reporting platform has to certify against.
Where this connects to the rest of the catalog
Time-series fidelity is the connective tissue between half a dozen other parts of our content:
- Why we generate 96 monthly snapshots, not annual — the foundational decision that makes all of the time-series content possible.
- Monte Carlo for retirement: where standard libraries break — the consumer of regime-based returns.
- Lot-level basis tracking data model — the consumer of corporate-action reconciliation.
- Wash-sale tracking algorithms across accounts — needs same-stock corporate-action mapping.
- Stress-testing a tax-aware portfolio rebalancer — consumer of regime-based returns and corporate actions both.
- Within-year cash-flow seasonality — the cash-flow side of the same time-series problem.