Sleeve admission contract / Contract
Sleeve admission contract / Contract is one of 21 measurements this engine publishes in full. It is regenerated from a real run rather than transcribed, and it is shown here with its own claim boundary so the number and its limits arrive together.
The measurement
- Schema
- canli.alphac-sleeve-admission-contract.v6
- Evidence checks per candidate
- 85
- Status
- IN_FORCE
- Derived from
- canli.alphac-sleeve-admission-contract.v5-proposed
- Rationale
- docs/design/ADMISSION_V6.md
- Evidence
- artifacts/analysis/frontier_14/result.json
Objective
- Target total sleeves
- 14
- Minimum new sleeves
- 10
- Portfolio max drawdown target
- 0.110000
- Targets are admission evidence
- no
- Portfolio max drawdown statistic
- expected_maximum_drawdown
- Portfolio p95 max drawdown is gated
- no
- Portfolio p95 max drawdown must be published
- yes
- Average pairwise correlation objective
- -0.030000
- Honest forward sharpe target
- 1.500000
Portfolio sharpe target
- 2.250000
- 3
Average pairwise correlation objective note. An objective, not a gate. -0.03 is the average pairwise correlation at which fourteen sleeves of measured quality reach 2.5. Thresholds are gates and live in 'thresholds'; anything that is not enforced must not sit there wearing a gate's costume.
Superseded in sample sharpe target
- 2
- 2.500000
Superseded reason. Stated in-sample with no haircut named, and unreachable as a forward result: a verified forward 2.0 at measured per-sleeve quality needs an average pairwise correlation of -0.062 against a PSD floor of -0.077. Withdrawn 2026-08-21 and replaced with an honest FORWARD target of 1.5, which is inside the floor at every plausible quality.
Backtest to forward haircut
- Measured on this book
- in-sample equal-risk ~1.04 against an honest forward of 0.3-0.9
Range
- 1.500000
- 3
Note. The haircut IS the uncertainty. Until the forward record is long enough to speak, every in-sample figure should be read through it, and the range is this book's own published pair rather than a convention borrowed from elsewhere.
Implied in sample target
- At 1 5x haircut
- 2.250000
- At 2 0x haircut
- 3
- At 3 0x haircut
- 4.500000
What reaching it requires. Both halves, not either: an average pairwise correlation meaningfully BELOW zero, and per-sleeve quality above roughly 0.60. At today's measured 0.469 the forward target is reachable only at a correlation near -0.030 and only on the optimistic haircut.
Why this is not a retreat. The rarer thing was never the number. A forward Sharpe near 1.5 that is genuinely verifiable -- signed forward record, every killed candidate published in full, gates that provably bite, and the arithmetic showing where the gate falls short of the target printed on the same page as the target -- is harder to find than a 2.5 nobody can check.
Portfolio sharpe target unit. IN-SAMPLE, being the band that an honest forward 1.5 implies at the 1.5x and 2.0x ends of this book's own measured haircut. The headline target is honest_forward_sharpe_target.
Thresholds
- Minimum oos observations
- 756
- Minimum stressed oos observations
- 63
- Net sharpe min
- 0.150000
- Stressed sharpe min
- 0.150000
- Newey west t min
- 0.250000
- Pbo max
- 0.200000
- Absolute beta max
- 0.100000
- Average pairwise correlation max
- 0
- Ordinary pairwise correlation max
- 0.350000
- Stressed pairwise correlation max
- 0.500000
- Pairwise correlation upper 95 max
- 0.350000
- Stressed pairwise correlation upper 95 max
- 0.500000
- Book sharpe delta min exclusive
- 0
- Minimum leave one period out book sharpe delta exclusive
- 0
- Book max drawdown delta max
- 0.010000
- Book expected shortfall delta max
- 0
- Capacity usd min
- 500000
- Capacity curve min points
- 3
- Capacity minimum stressed fill ratio
- 0.950000
- Minimum execution scenarios per dimension
- 3
- Book sharpe delta lower 95 min exclusive
- 0
- Book deflated sharpe min
- 0.950000
- Covariance halflife days max
- 21
- Realized vol halflife days max
- 240
- Book expected max drawdown max
- 0.110000
- Realized vol leg must be unlevered
- yes
- Newey west t ratio min
- 0.600000
- Average pairwise correlation upper 95 max
- 0.100000
- Minimum correlation observations
- 504
- Deflated sharpe must be measured
- yes
Required lineage
- preregistration_sha256
- data_manifest_sha256
- diversification_report_sha256
- code_commit
- family_trial_account
- return_identity_id
- point_in_time_data
- survivorship_control
- corporate_action_control
- direction_locked
- parameters_locked
Required robustness
- walk_forward
- purged
- embargoed
- untouched_holdout
- parameter_perturbation
- regime_stress
- correlation_instability
- leave_one_period_out
- mean_zero_candidate_control
- family_wise_trial_accounting
- deterministic_rerun
- correlation_confidence_intervals
- crisis_conditional_dependence
- tail_co_loss
- execution_replay
- capacity_stress
- canonical_diversification_report
- book_level_deflation
- overlay_replay
Execution dimensions
- commissions
- bid_ask_spread
- slippage
- nonlinear_market_impact
- latency
- queue_position
- partial_fills
- rejected_orders
- cancelled_orders
- missing_opens
- stale_quotes
- holidays
- corporate_actions
- delistings
- borrow_availability
- borrow_fees
- borrow_recalls
- financing
- futures_rolls_and_limits
- option_surfaces_assignment_and_gaps
- exchange_outages
- venue_and_counterparty_risk
- turnover
- liquidity
- crowding
- operational_kill_switches
Execution statuses
- TESTED_PASS
- TESTED_FAIL
- NOT_APPLICABLE
Capacity curve required fields
- capital_usd
- net_sharpe
- fill_ratio
- stressed_cost_bps
Lineage types
- Code commit field
- code_commit
Sha256 fields
- preregistration_sha256
- data_manifest_sha256
- diversification_report_sha256
Identifier fields
- family_trial_account
- return_identity_id
Boolean fields
- point_in_time_data
- survivorship_control
- corporate_action_control
- direction_locked
- parameters_locked
Execution evidence policy
- Tested statuses require sha256
- yes
- Tested statuses require scenarios
- yes
- Tested statuses require scenario manifest
- yes
- Scenario hashes are canonical payload hashes
- yes
- Dimension hash is canonical manifest hash
- yes
- Not applicable requires sha256
- yes
Scenario manifest required fields
- scenario_id
- status
- assumptions
- assumptions_sha256
- result
- result_sha256
Scenario statuses
- PASS
- FAIL
Diversification evidence policy
- Implementation
- alphaforge.validation.diversification.diversification_report
- Return type
- aligned OOS simple returns with no dropped rows
- Stress mask
- predeclared upstream and supplied explicitly
- Candidate weight
- predeclared upstream and supplied explicitly
- Confidence method
- deterministic circular moving-block bootstrap
- Confidence level one sided
- 0.950000
- Default bootstrap samples
- 2000
- Default block size
- 21
- Default seed
- 20260816
Pbo policy
- Measured status
- MEASURED
- Single identity status
- NOT_DEFINED_SINGLE_IDENTITY
- Single identity value must be null
- yes
- Never report not defined as zero
- yes
Deflation policy
- Per sleeve selection unit
- family_trial_account
- Per sleeve threshold key
- deflated_sharpe_min
- Book selection unit
- complete_union_hypothesis_identities
- Book threshold key
- book_deflated_sharpe_min
- Book deflation is strictly additional
- yes
- Per sleeve is measured not gated
- yes
- Per sleeve measurement key
- deflated_sharpe_must_be_measured
Reason. DSR deflates for the trials the selection was drawn from. A pre-registered, direction-locked candidate in a new family was not selected from other families' trials. The published claim is the book's, so the book carries the full union.
Per sleeve gate removed reason. deflated_sharpe_min of 0.95 over this contract's 756-observation minimum requires an annualized Sharpe of 1.184 even at n_trials=2, the least deflation the formula permits: about eight times the declared net_sharpe_min of 0.15, which made the Sharpe floor decoration exactly as the Newey-West t floor did. It is also a bar this book cannot clear -- 0 of 33 restated variants reach it, including the live sleeves' own configurations, so the gate demanded of new candidates something no existing sleeve achieves. Re-scoped rather than lowered: a sleeve admitted for its correlation contribution is not claiming standalone edge, so deflating its standalone Sharpe measures the wrong object. The object actually published is the book's, and it is gated harder -- book_deflated_sharpe_min 0.95 against the COMPLETE union of hypothesis identities, plus a bootstrap lower bound on the book-Sharpe improvement. The per-sleeve deflated Sharpe remains mandatory to measure and publish; evidence that omits it fails closed.
Overlay policy
- Mandatory vol target overlay
- yes
- Implementation
- alphaforge.portfolio.overlay.vol_target
- Sigma hat rule
- max(ex_ante, realized)
- Annualized vol target
- 0.100000
- Covariance halflife days max
- 21
- Realized vol halflife days max
- 240
- Halflife pending execution costing
- yes
- Realized vol leg must be unlevered
- yes
- Production cov halflife today
- 720
- Production realized vol halflife today
- 240
- Both halves shipped
- no
Reason. Permitted stressed pairwise correlation of 0.50 implies an expected maximum drawdown near 20% with no overlay and 16.4% with the overlay as shipped today. Correcting the realized-leg scale and shortening the covariance halflife to 21 holds it at 10.2%. The overlay, not a tighter correlation ceiling, is what holds the drawdown objective.
Known defect
- Site
- src/alphaforge/portfolio/strategy.py (_realized_vol_ann)
- Measured bind fraction as shipped
- 1.930e-4
- Measured bind fraction if fixed
- 0.817626
- Expected max drawdown cost at permitted stressed rho
- 0.021700
Description. The realized leg was measured on the post-overlay account equity curve while the ex-ante leg used pre-overlay optimizer weights. The book runs de-levered, so the realized leg lost max() essentially always and the fast regime detector never fired.
Status. RESOLVED in production. The realized leg is now de-levered per bar before comparison, and tests/unit/test_overlay_realized_leg_scale.py pins the caller's value rather than the function's intention.
Realized vol halflife note. 240 is production's value and the value every sweep cell used. No shorter realized-leg halflife was tested, so none is required; this threshold bounds regression, not design.
Covariance halflife note. 21 is the only tested covariance halflife that holds expected max drawdown at or under the objective at the permitted stressed correlation. Provisional pending execution costing.
Production cov halflife unit. BARS, and therefore a different duration per sleeve: 720 bars is 30 days on the crypto H1 sleeve and 720 sessions, about 2.86 years, on equity D1. Incoherent by construction and unchanged, because changing it changes the live book.
Production realized vol halflife unit. BARS, not days, and NOT converted per calendar. On the crypto H1 sleeve 240 bars is 10 days, not the 240 days the realized_vol_halflife_days_max threshold names. Only the covariance leg gained a calendar conversion; the realized leg still has none. Stated here rather than left implied, because the earlier wording of this block asserted a per-calendar conversion for both legs and that was false for this one.
Remaining gap to the drawdown objective. OPEN, and wider than a previous revision of this contract claimed. The measured study holds expected maximum drawdown at 10.2% only with BOTH the realized-leg scale correction (shipped) and the covariance halflife at 21 days (NOT shipped). The halflife change was briefly made the default and has been reverted, for three reasons recorded in full below: it silently re-sizes every live sleeve on the next daily tick; the sweep cell used to price it does not correspond to what the crypto sleeve actually ran; and the live estimator is windowed and seeded, so it does not reproduce the untruncated recursion the sweep simulated. The objective is also an EXPECTED maximum drawdown -- no tested configuration held the 95th percentile at or under 11%, the best being 13.8%.
Why the halflife change was reverted
- Found by
- adversarial audit, 2026-08-21, after the change had been deployed
Live blast radius. No call site passes cov_halflife_days: the crypto loop (cli/paper_cmds.py), the AlphaTrend gauntlet and the AlphaMax walk-forward all take the default. The walk-forwards are regenerated by the daily ticks and live_cycle.py submits the last leg's weights straight to the broker, so a default change is a trade on every sleeve at once, not a configuration edit. The commit that made it claimed 'nothing was re-run', which was wrong in the direction that mattered.
Cost basis did not correspond. The sweep is a DAILY simulation, so its cov=720 cell is a 720-DAY halflife. The live crypto sleeve ran 720 BARS on H1, which is 30 days. Pricing the change against the 720 cell therefore measured a 2.86-year to 21-day move and published it as the cost of a 30-day to 21-day one. Interpolating the artifact's own cells at rho_stress 0.50 puts the crypto sleeve's real improvement near 0.5pp, not 3.98pp.
Estimator does not match the simulation. ewma_cov is windowed at cov_window_bars=720 and seeds S_0 with an equally weighted sample covariance over the oldest min_periods=240 rows, so a large share of the estimate is a flat block the recursion cannot forget inside the window. The sweep simulated an untruncated recursion. The mapping from a swept halflife to the live estimator's effective memory is therefore not one-to-one and was never measured.
Also unresolved. ledoit_wolf_cc is passed the full unweighted 720-row window to compute its shrinkage intensity. That was conservative while the EWMA's effective sample exceeded 720; at a short halflife it is not, and the shrinkage would be materially too weak.
The mapping is now measured
4 further fields. Read them in the artifact.
What would make it shippable. Measure the halflife on the LIVE estimator per sleeve, on each sleeve's own calendar, with the window, the seed and the shrinkage in the loop, and pass the value explicitly at the profile that measured it rather than as a global default.
Halflife unit defect
- Found
- 2026-08-21
Description. The halflife was a BAR count while the objective and this contract are stated in DAYS, and a bar is one hour on the crypto H1 sleeve against one session on equity D1. The old 720-bar default therefore meant 30 days to crypto and about 2.9 years to equities. Writing the study's 21 into the bar parameter would have given the crypto sleeve a 21-HOUR covariance halflife.
Resolution. The parameter is cov_halflife_days, converted at the point of use via periods_per_year(tf) / periods_per_year(D1). Pinned by tests/unit/test_cov_halflife_units.py, which fails if the conversion is removed.
Still ambiguous and not changed. cov_window_bars (720), cov_min_periods (240) and realized_vol_halflife_bars (240) all carry the same ambiguity, and the realized-leg one is named by a threshold in this contract that says DAYS. No study measured them, so changing them would be an unmeasured change; naming them is the honest alternative to fixing them quietly.
Cost of the halflife change
- Evidence
- artifacts/analysis/overlay_halflife_decision/result.json
- Status
- SUPERSEDED — the baseline it prices is not what the crypto sleeve ran
- Evaluated at stressed correlation
- 0.500000
- Simulated expected max drawdown before
- 0.142130
- Simulated expected max drawdown after
- 0.102250
Why this is not the live cost. The 'before' cell is a 720-DAY halflife in a daily simulation. The crypto sleeve ran 720 BARS on H1, which is 30 days, and the live estimator is windowed and seeded rather than an untruncated recursion. Both figures are kept because they were published; neither is a measurement of the live book.
Additional required portfolio evidence
- book_sharpe_delta_lower_95
- book_expected_max_drawdown
Frontier arithmetic
- Identity
- S_book = s_bar * sqrt(N / (1 + (N - 1) * rho_bar))
- Target sleeve count
- 14
- Psd floor at target n
- -0.076923
- Correlation gate in force
- 0
- Gate permits objective floor
- no
- Gate permits objective ceiling
- no
Psd floor note. Average pairwise correlation cannot fall below -1/(N-1) for any real correlation matrix. At fourteen sleeves that floor is far from binding, which is why a negative average is arithmetically available here and is not at 250 sleeves.
Book sharpe ceiling at the gate
- S bar traded basis
- 1.979337
- S bar four curve basis
- 1.736129
Quality precondition at the gate
- S bar required for 2 / 25
- 0.601338
- S bar required for 3 / 0
- 0.801784
- S bar measured traded basis
- 0.529000
- S bar measured four curve basis
- 0.464000
Note. What the tightened correlation gate alone does NOT buy. At the gate exactly, reaching each end of the objective band requires at least this average standalone Sharpe across fourteen sleeves.
Correlation required at measured quality
Note. The other route to the same place: hold quality where it is measured today and read off the average pairwise correlation each end of the band demands.
Traded basis
2 further fields. Read them in the artifact.
Four curve basis
2 further fields. Read them in the artifact.
Honest reading. Tightening the correlation ceiling from 0.15 to 0.00 removes a ceiling that sat BELOW the objective at every plausible quality, which is why the v4 gate could not have produced the objective at any sleeve count. It does not on its own deliver the objective. At the gate exactly, fourteen sleeves of today's measured quality reach the figure recorded above, and the remaining distance has to be bought with per-sleeve quality, genuinely negative correlation, or both. Publishing this is the point: a target sitting beside a gate that forbids it is not a stretch goal.
Capacity policy
- Capacity usd min previous
- 5000000
- Capacity usd min
- 500000
Reason. A 5,000,000 USD floor per sleeve implies a 70,000,000 USD book at fourteen sleeves. It was written for a fund that does not exist yet, and it did not reject candidates uniformly: the return sources most likely to be genuinely anti-correlated with a momentum-and-carry book -- catastrophe bonds, municipal basis, freight, power, sovereign dislocation -- are structurally thin. The floor therefore selected AGAINST the diversification the objective depends on, which is the opposite of what a capacity gate is for.
What this does not relax. The capacity CURVE, its monotonicity reconciliation, and the stressed fill-ratio floor are unchanged. A candidate must still show Sharpe decaying and cost rising with capital, and must still reconcile its reported capacity to that curve.
Review trigger. Re-raise per sleeve when deployed capital per sleeve exceeds one fifth of this floor. Capacity is a property of the strategy, but the FLOOR is a property of the book, and a floor that outruns the book is a constraint that costs edge for nothing.
Significance policy
- Newey west t min
- 0.250000
- Newey west t min role
- sign gate
- Newey west t ratio min
- 0.600000
- Newey west t ratio role
- autocorrelation-inflation gate
- Primary significance gate
- book_sharpe_delta_lower_95_min_exclusive
- Minimum oos observations raised from
- 252
Reason. v4 declared net_sharpe_min 0.40, newey_west_t_min 2.0 and minimum_oos_observations 252 together. Because t is approximately Sharpe * sqrt(years), a candidate at the declared Sharpe floor needed 25 years of out-of-sample data to clear the t floor, and at the declared 252-observation minimum the pair demanded a standalone Sharpe of 2.0 -- five times the floor a reader of the config would see. v5 lowered the Sharpe floor to 0.15 and left the t floor at 2.0, raising the hidden requirement to 178 years. The t floor, not the Sharpe floor, had been doing the rejecting all along. It is now set where it does what it is for -- excluding wrong-signed and indistinguishable-from-zero results -- and load_admission_contract refuses any contract whose three significance floors cannot all be met at once, so this class of error cannot recur.
Why a standalone bar is the wrong instrument. When correlation binds, standalone Sharpe does not rank a candidate's portfolio value: a Sharpe 0.25 sleeve at correlation -0.05 beats a Sharpe 0.60 sleeve at +0.30. The gate that decides admission is therefore the bootstrap LOWER bound on the book-Sharpe improvement, which prices edge and correlation together, and it is strictly harder to game than either input alone.
Self consistency is enforced at load. load_admission_contract refuses any contract whose significance floors cannot all be satisfied at once. It checks two pairs: net_sharpe_min against newey_west_t_min at minimum_oos_observations, and net_sharpe_min against deflated_sharpe_min solved at n_trials=2. Both pairs were violated before v6, in the same way and undetected, which is why the check is structural rather than a corrected number.
Correlation observations decoupled. minimum_correlation_observations is separate from minimum_oos_observations because they measure different things: a candidate's own sample is the candidate's to supply, while the correlation window is its intersection with the BOOK. Tying them together made admission impossible for a reason that had nothing to do with any candidate -- v6 briefly required 756 correlation observations against a book that can supply 728 on its blessed basis and 177 on its live-forward one.
Minimum oos observations reason. Raised to three years because the binding constraint of this whole programme is an average pairwise correlation, and a correlation measured over 252 observations carries a sampling error near 0.063 -- twice the size of the -0.03 effect the objective turns on. Gating a number the sample cannot resolve is not a strict gate. Paired with average_pairwise_correlation_upper_95_max, which gates the bound rather than the point estimate.
Check it yourself
Every figure above is read from /glassbox/sleeve_admission_contract.json, the
artifact the engine wrote. Nothing on this page is typed by hand: the page is generated from that
file, so a figure that moves in the artifact moves here and a figure that is not in the artifact
cannot appear here at all.