# Three data-acceptance audits, version 2.0

Frozen design: 2026-09-28, before computing the larger cohorts. The three pages
answer different procurement tasks; none estimates trading profitability.

## 1. Funding and open-interest joins

Population: all 24 Binance USD-M contracts with August 2026 funding archive
partitions in the frozen local catalogue. Source-event interval is
2026-08-01T00:00:00Z through 2026-09-01T00:00:00Z, exclusive end. Five-minute OI
includes the preceding UTC day as join warmup, but coverage counts use August only.
This is a current archive cohort, not a survivorship-free exchange-wide universe.

Within each exact contract, deduplicate equal event timestamps keeping the first
observed record. Count OI on the 300-second UTC grid. For each funding settlement
t, select the latest OI event s satisfying s <= t - assumed_delay. Delays are
0, 60 and 300 seconds; positive delays are sensitivity assumptions, not observed
publication latency. Age is t-s. Strict age thresholds are <=300 or <=900 seconds;
retain millisecond offsets, do not round them into equality. Separately require
both recorded observed_at values <=t for the local-availability diagnostic.
There is no assertion that final settled funding is a pre-settlement predictor.

Public diagnostics omit raw rates and OI amounts. They reconstruct join counts,
matched event ages and per-contract summaries. All source ZIP URLs and SHA256 are
in funding.json; checking completeness from raw official files is a separate audit.

## 2. Market Events dataset acceptance

Freeze active immutable daily releases whose day is before 2026-09-28. Release IDs,
generation times and file checksums are in events.json. This is the current frozen
release set, not an as-of reconstruction of every earlier release version.

For each row, strict_local_feature requires feature_status=locally_known,
feature_pit_eligible=true and feature_available_at<=sample_time. valid_active_buy
requires taker_status=usable, quote_volume_5m>0 and a finite nonnegative
taker_buy_quote_5m no larger than quote_volume_5m. A complete horizon requires
status_H=complete and non-null return_pct_H, mfe_pct_H and mae_pct_H.
descriptive_24h tests that outcome alone; strict_active_buy_24h combines all three
conditions. Eligible features still need independent event-publication, universe,
decision-rule and execution validation. Hourly control rows are unmatched.

Public diagnostic_id is SHA256(version + source row_id). The diagnostic CSV keeps
day, symbol, event family and quality/maturity states but omits exact signal time,
price, return amount and user identity. It supports independent eligibility and
matrix aggregation, not independent certification of private raw values. Obtain
the exact entitled source release to audit field truth or estimate actual returns.

## 3. Cross-exchange local snapshot suitability

Population: BTC and ETH spot observations in the local archive for Binance, OKX
and Coinbase; USD and USDT remain separate. Test 288 fixed five-minute UTC grid
points per base over 2026-09-27; load a one-hour preceding buffer to make the first
as-of query possible. For each base/venue/quote/grid, choose the last observed_at
<=grid. local_age=grid-observed_at. Main freshness tolerance is 120 seconds;
sensitivity tolerances are 5, 30 and 300 seconds. All-three comparisons require
the same USDT quote and all three locally fresh rows at that grid point.

Coinbase comes from Advanced Trade public products and normalized updated is a
local collector timestamp. Binance closeTime is a rolling ticker window end; OKX
ts is ticker generation time. Both normalizers can fall back to local time if the
source field is absent and the old archive lacks a fallback flag. Consequently
this study compares local availability, not exchange last-trade synchronization
or network latency. v1's blanket 'source_event' wording is superseded.

No last-price spread, funding return or execution estimate is reported. Local
collector cadence/cache/archive sampling can produce these gaps. BTC and ETH
share the same poll batches, so matching counts are not independent replication.
One day's counts are a bounded audit, not an SLA or future availability forecast.

## Files and verification

funding.json / events.json / cross.json contain all cohort summaries and limits.
*-diagnostics.csv contain every derived diagnostic used in the primary summaries.
funding-contracts.csv, event-matrix.csv and cross-venues.csv are convenience tables.
protocol.json pins the private input manifest hash and archive partition hashes.
manifest.json hashes this fixed public release. Run reproduce.py alongside the
JSON and diagnostic CSV files to independently recompute the published totals.
Source inspection for price/outcome truth is outside the public diagnostic audit.
