Assay 001 · Evidence receipt

Assay 001 evidence receipt.

Frozen provenance, results, configuration, conformance and checksums behind the spot-grid finding.

Receipt status

Published with frozen evidence.

The receipt binds the published result to the verified evidence snapshot and keeps its original limitations visible.

Receipt
assay-001-spot-grid-btc-eth-2026h1-v1
Markets
BTC/USD and ETH/USD
Accounts
4
Result
4 negative
Evidence state
Frozen
Publication
3 July 2026
Identity

What the receipt binds.

Evidence root
~/assay-evidence/teardown1/
Evidence engine commit
a88bf0d738f2a1dc037785b5ee1da6410e6a306e
Evaluation window
1 January to 30 June 2026, H1
Markets
BTC/USD and ETH/USD
Original manifest
SHA256SUMS
Manifest SHA-256
ae05eadbbb75f865d9ac7ac2ffa114011c9cdae2ef3abec8b53e4c2418e3ca25
Manifest verification
All 16 listed files passed on 2 July 2026
Engine purpose
Deterministic spot-grid generator and Assay data engine

The original manifest stores absolute Mainframe paths, and keel_commit.txt was not included in that manifest. The receipt records both limitations rather than silently repairing the frozen snapshot.

Result summary

Four accounts. Four negative outcomes.

4frozen configurations
2markets
84 bpsround-trip cost
4negative accounts
ConfigurationCompleted cyclesOpen tranchesFull-account net totalVerdict
BTC 25-grid10724−43,108.5014 bpsnegative_after_costs
BTC 50-grid42349−106,623.6450 bpsnegative_after_costs
ETH 25-grid7424−60,817.9748 bpsnegative_after_costs
ETH 50-grid31948−135,484.1469 bpsnegative_after_costs

Closed cycles often looked profitable. The whole-account result changed once unsold inventory was marked and liquidated at the final close.

Public files

Inspect the sealed record.

Open the article, measured account timeline and public verification records attached to this receipt.

Configuration

The frozen test frame.

Grid spacing
Arithmetic
Grid counts
25 and 50
Entry
One tranche per downward line crossing
Exit
One grid line above entry
Initial inventory
None
Range selection
Realised low and high, selected with hindsight
Cost model
40 bps fee per side, 2 bps spread and 1 bp slippage per side
Final treatment
Open inventory liquidated at the last close

Price paths use public Binance H1 klines while fees use Kraken assumptions. This is a venue-representative path assumption, not a reconstruction of Kraken execution.

Show reproduction commands

These commands reproduce the generator and verdict stages from the retained candles without overwriting the frozen snapshot.

repo="$HOME/keel"
evidence="$HOME/assay-evidence/teardown1"
out="$HOME/tmp/assay-001-reproduction"

rm -rf "$out"
mkdir -p "$out"
cd "$repo"

.venv/bin/python -m app.assay.gridgen run --candles "$evidence/candles_h1.json" --lower 58115.01 --upper 97924.49 --grids 25 --spacing-mode arithmetic > "$out/fills_g25.json"
.venv/bin/python -m app.assay.gridgen run --candles "$evidence/candles_h1.json" --lower 58115.01 --upper 97924.49 --grids 25 --spacing-mode arithmetic --no-liquidate > "$out/fills_g25_cycles.json"
.venv/bin/python -m app.assay.gridgen run --candles "$evidence/candles_h1.json" --lower 58115.01 --upper 97924.49 --grids 50 --spacing-mode arithmetic > "$out/fills_g50.json"
.venv/bin/python -m app.assay.gridgen run --candles "$evidence/candles_h1.json" --lower 58115.01 --upper 97924.49 --grids 50 --spacing-mode arithmetic --no-liquidate > "$out/fills_g50_cycles.json"

.venv/bin/python -m app.assay.gridgen run --candles "$evidence/eth_candles_h1.json" --lower 1505.68 --upper 3402.89 --grids 25 --spacing-mode arithmetic > "$out/eth_fills_g25.json"
.venv/bin/python -m app.assay.gridgen run --candles "$evidence/eth_candles_h1.json" --lower 1505.68 --upper 3402.89 --grids 25 --spacing-mode arithmetic --no-liquidate > "$out/eth_fills_g25_cycles.json"
.venv/bin/python -m app.assay.gridgen run --candles "$evidence/eth_candles_h1.json" --lower 1505.68 --upper 3402.89 --grids 50 --spacing-mode arithmetic > "$out/eth_fills_g50.json"

.venv/bin/python -m app.assay --fills "$out/fills_g25.json" --venue kraken --market XBTUSD --spread-bps 2 --slippage-bps 1 --floor-bps 5 --min-sample 20 > "$out/verdict_g25.json"
.venv/bin/python -m app.assay --fills "$out/fills_g25_cycles.json" --venue kraken --market XBTUSD --spread-bps 2 --slippage-bps 1 --floor-bps 5 --min-sample 20 > "$out/verdict_g25_cycles.json"
.venv/bin/python -m app.assay --fills "$out/fills_g50.json" --venue kraken --market XBTUSD --spread-bps 2 --slippage-bps 1 --floor-bps 5 --min-sample 20 > "$out/verdict_g50.json"
.venv/bin/python -m app.assay --fills "$out/fills_g50_cycles.json" --venue kraken --market XBTUSD --spread-bps 2 --slippage-bps 1 --floor-bps 5 --min-sample 20 > "$out/verdict_g50_cycles.json"

.venv/bin/python -m app.assay --fills "$out/eth_fills_g25.json" --venue kraken --market ETHUSD --spread-bps 2 --slippage-bps 1 --floor-bps 5 --min-sample 20 > "$out/eth_verdict_g25.json"
.venv/bin/python -m app.assay --fills "$out/eth_fills_g25_cycles.json" --venue kraken --market ETHUSD --spread-bps 2 --slippage-bps 1 --floor-bps 5 --min-sample 20 > "$out/eth_verdict_g25_cycles.json"
.venv/bin/python -m app.assay --fills "$out/eth_fills_g50.json" --venue kraken --market ETHUSD --spread-bps 2 --slippage-bps 1 --floor-bps 5 --min-sample 20 > "$out/eth_verdict_g50.json"

The original evidence was produced at the recorded engine commit. Reproduction from a later commit must first establish that the relevant generator, fee and Assay code is unchanged, or use a clean checkout of the evidence commit.

Conformance

What this receipt supports.

It supports

A paper-only finding about four frozen BTC and ETH spot-grid accounts over the recorded H1 window after the stated cost model.

It does not support

A claim that every grid strategy fails, a live-money result, or a recommendation to buy, sell or use a trading system.

The frozen snapshot retains its original path and manifest limitations. No missing file or host-specific path is silently repaired inside the evidence.

Checksums

The frozen record remains independently verifiable.

FileSHA-256
candles_h1.jsonf9f2de3d1e80d932c67dde010f4336d3eee0d071122b803faa362650d334a0e6
eth_candles_h1.json1661c12557c937e22d248e72a00aa647671265478e0fac8979c3de35642db8df
fills_g25_cycles.json4af4c8da77855d4fba55da6817da7427b9a39bb2ab5262be896ae1563c30038d
fills_g25.jsonc041abd051cae880a43bb672340311c95bd0616e202bbf9dc13746d9bc4c2afa
fills_g50_cycles.json53fcd3457c5f9e3c7cbe37b29590e9cc8ee0d1b37dd7c44af439f6fa8cda3e33
fills_g50.json40fd7fad845c444bb9bf6ceb807c60c20dc048399b0ebb39cdd548bf46996196
verdict_g25_cycles.json691713503caaa77c48b97d3508b4123fe9513e8ded926f8b0df906f7d993c8c0
verdict_g25.json063f0c46c274e6eaef5e84ffcce8183108eacb86254ad69f35684d03bd95d8b4
verdict_g50_cycles.jsonbcdacd8b352e7e4a1f041528cb5e0e4340491beb103450304a1dee886a2bc37
verdict_g50.jsonaa66a41eec3ae3413488f73af6a60e83fa3fd3d978f67c8b34cff52790318b45
eth_fills_g25_cycles.json34e6688269dbe7e1293514efbd46b8a99df77bdb65e3a4bcf9dbbc5f5bf43621
eth_fills_g25.jsonb69a30a951bd17e6b66a1bdfb5e48f9074bab2bd7981b1159d7b6429ccea80e4
eth_fills_g50.json3cdc52e92a0f173b23699e531b40fed9be19505d97901b6c6031295ba5738383
eth_verdict_g25_cycles.json225f522563a487d05af540f346ec01253858ee40fae417e1b40a33e09eec34dc
eth_verdict_g25.json30ab068bdf3f6151810b3aabb3f776f2c237b6cacff2b13bc2400afad4fe28b1
eth_verdict_g50.jsond9aed272d6a3fb487d58c533a4a27ef3bf222e6027e1f714c88a339370f5a581

No standalone eth_verdict_g50_cycles.json was frozen. The ETH 50-grid completed-cycle figures are taken from the grid_cycle rows inside eth_verdict_g50.json.

Review log

Publication record.

DateReviewResult
2026-07-02Mainframe manifest verificationAll 16 manifest entries passed sha256sum -c
2026-07-02Candle and verdict reconciliationETH marker closed; ETH 50-grid cycle rows recovered from the frozen full-account verdict
2026-07-03Owner publication gatePublished with the frozen limitations retained
Published evidenceAsk Coach Steve