SYNTHETIC AUDIT LAB / RESEARCH ONLY

Find the mistake
before trusting the backtest.

Three failures you can reproduce without market data, credentials or an account. The 45-second guide highlights recorded outputs of the example below; it is not live inference or a computation-speed benchmark. All cases remain readable without JavaScript.

Ready. Three cases, 15 seconds each.

01 / SELECTION

A Sharpe of 1.24. From noise.

Best full-sample Sharpe: 1.24

DSR statistic: 0.532 | PBO: 0.586

Audit the search, not just its winner.

64 zero-mean random variants. DSR and CSCV use the existing library. A single positive realization does not change the zero-mean process.

Read the reproducible case →

02 / AVAILABILITY

The report existed. The information did not.

Wrong-date rows: 26 / 50

First available: 2020-02-17

Publication time, not period end.

The PIT aligner waits until after disclosure. The March restatement must not rewrite January features. This case tests timing, not trading returns.

Read the reproducible case →

03 / PRICE BASIS

One numerator. Four different ranks.

Proxy / cash price: up to 5.02x

Changed ranks: 4 / 4 | identical names

A coherent proxy is still a proxy.

Raw cash turnover divided by raw volume is not an adjusted price. Preserve the declared OHLC4 proxy; never relabel it as true transaction VWAP.

Read the reproducible case →

What the result means: these checks expose specific research mistakes. They do not identify a profitable strategy, certify a vendor, or predict a security's return. DSR is not the probability that a strategy will make money. No orders are generated.

Reproduce every displayed number

Run from a checkout. The example writes synthetic inputs, comparisons, a report and SHA-256 manifest locally.

git clone https://github.com/xuxingjiankr-cpu/perception-xalpha-lite.git
cd perception-xalpha-lite
python -m pip install -e .
python examples/run_audit_cases.py --output-dir outputs/audit-cases

Run in Colab

Download the synthetic JSON · Read the sample report · Paper-to-code map

Inspect the full recorded report
# Three synthetic audit cases

Generated by `python examples/run_audit_cases.py`. Synthetic demonstration only.
All data are generated locally. No market forecasts, private results or orders.

| Noise selection | Value |
|---|---:|
| Variants / declared trials | 64 / 64 |
| Best full-sample annualized Sharpe | 1.2402 |
| Expected maximum Sharpe under the approximation | 1.1944 |
| DSR statistic (not probability of profitability) | 0.531984 |
| CSCV/PBO | 0.5857 |
| Hindsight selection on final 252 rows, bps/day | 14.381803 |
| Train-only selection on the SAME 252 rows, bps/day | 6.892377 |

## Disclosure timing

Incorrect alignment changes **26** of 50 rows.
The new value first appears on **2020-02-17**;
its restatement first appears on **2020-03-04**.
These are synthetic weekdays, not exchange-calendar claims.

## Price basis

Maximum archive-proxy / raw-cash-price ratio: **5.022545x**.
Changed ranks: **4 / 4**, on identical symbols.
Wrong order: TOY_B, TOY_A, TOY_D, TOY_C.
Consistent-basis order: TOY_A, TOY_B, TOY_C, TOY_D.
The preserved field is an **OHLC4 proxy, not transaction VWAP**.

## What these checks do not establish

- **A high Sharpe can come from selecting noise**: DSR is an approximate evidence statistic, not a posterior probability of profitability. CSCV is not chronological forward validation. No costs, execution or real-market structure are modeled in this IID teaching fixture.

- **A reporting period is not an availability date**: The example audits availability, not return prediction. Real studies also need exchange calendars, timestamps and historical vendor vintages; an aligner cannot reconstruct revisions that a vendor discarded.

- **Mixing price bases can change a cross-sectional rank**: OHLC4 is not transaction VWAP, and basis consistency is not predictive power. This explicit-metadata fixture cannot certify arbitrary vendor data. The adapter is demonstration-only and does not change the discovery input loader.

Report SHA-256: d1ebc9eb4f329b08a4b03fe5acd829102db248de02a199035d688115dbc5d9f3