The pooled figure is the study’s confirmatory result and it is not the headline sentence, because the distribution of paired gaps has no middle: 68 paths are exact ties where both arms did the same thing, and 121 more differ by less than a keeper fee. The pooled median falls between two populations rather than inside either one, 44.7 bps below the median of the paths where protection bound, and 580 times the largest gap on any path where it did not. Figure 2 is that distribution.
The human arm is a model, not a measurement. Arm H2 is a published parameter set, a real schedule, phone notifications, sequential books, and none of it is fitted to this study’s data. Every human figure on this page carries modelled person for that reason. A reader who declines to accept a modelled baseline should read the agent against passive instead, a book that is never touched: 164.6 bps, agent ahead on 710 paths. Nothing here is a claim about money made or lost on BNB Chain mainnet, and no testnet balance is converted to dollars anywhere on this page.
- What ran
- 16 cells, shock (4) × clock (2) × books (2), fully crossed, at 50 paths each. 800 paths, 4,000 arm-runs, 8,000 book-level ledgers. One price path is replayed across all five arms, which is why the tests are paired.
- Evidence label
- simulation on everything generated here; the human arms are modelled person. The venue is one Aave-V3-shaped rule tuple, not three integrations, and the liquidator is testnet-shaped, mainnet MEV is faster than it, which is a pre-registered way for the agent to lose that this study does not run.
- Corrections
- Five defects were found by four independent passes over this study. 3 of them flattered the agent, one took something back from it, and one moved the result in no direction at all. All five are in §0, with what was published beside what is published now.
- Data
- T1-runs.jsonl (23.8 MB), one JSON record per arm-path, with its full event ledger · not in the repository, see below
- T1-paths.json (29.0 MB), the 800 exogenous price paths, before any arm touched them · not in the repository, see below
- T1-cells.json (59 KB), per-cell summaries, one object per cell
- T1-confirmatory.json (565 KB), every published statistic, machine-readable
- T1-run-manifest.json (37 KB), seeds, frozen constants and the run's own checks
The two large ones are not committed, and saying so is the difference between a link and a data-availability statement: at 23.8 MB and 29.0 MB they are excluded by the repository’s own
.gitignoreand are regenerated rather than stored. What is committed is everything needed to regenerate them byte for byte, the per-cell seeds inT1-cells.jsonand the frozen constants and run checks inT1-run-manifest.json, plus every published statistic inT1-confirmatory.json. The two ledgers are available on request as a release asset.Schema
termix-sim/T1-mvp/v1, generated 2026-09-07T18:12:23.600Z.
Figure 1
Move the shock from working hours to 01:00 and the human on a schedule loses 23.5 of every hundred positions. The two arms that are always on move by less than this study can resolve.
Show the data as a table
| Arm | Shock starts | All four | grind | crash | wick-persist | wick-1block | night − work, pp |
|---|---|---|---|---|---|---|---|
| A · agent, always on | 09:30 | 0.7850.752 – 0.815 | 1.000 | 1.000 | 0.570 | 0.570 | – |
| A · agent, always on | 01:00 | 0.7990.767 – 0.827 | 1.000 | 1.000 | 0.580 | 0.615 | 1.4-3.4 – 6.1 · |
| H1 · human, always on | 09:30 | 0.6760.636 – 0.714 | 1.000 | 1.000 | 0.310 | 0.395 | – |
| H1 · human, always on | 01:00 | 0.6890.649 – 0.726 | 1.000 | 1.000 | 0.320 | 0.435 | 1.2-4.7 – 7.3 · |
| H2 · human, realistic | 09:30 | 0.2750.236 – 0.318 | 0.740 | 0.235 | 0.000 | 0.125 | – |
| H2 · human, realistic | 01:00 | 0.0400.027 – 0.059 | 0.035 | 0.000 | 0.000 | 0.125 | -23.5-28.3 – -18.8 |
| H3 · human, asleep 23–07 | 09:30 | 0.2850.245 – 0.328 | 0.780 | 0.235 | 0.000 | 0.125 | – |
| H3 · human, asleep 23–07 | 01:00 | 0.0560.040 – 0.079 | 0.100 | 0.000 | 0.000 | 0.125 | -22.9-27.9 – -17.9 |
| P · passive, never acts | 09:30 | 0.0310.021 – 0.046 | 0.000 | 0.000 | 0.000 | 0.125 | – |
| P · passive, never acts | 01:00 | 0.0310.021 – 0.047 | 0.000 | 0.000 | 0.000 | 0.125 | 0.0-1.7 – 1.8 · |
Book-level survival as a fraction of positions kept. Each shock column is 200 book ledgers. The dimmer figure under a number is its 95% interval, and a · beside one means it covers zero, the arm moved, but not by more than this sample can resolve. The four shock columns carry no interval because the figure does not draw them and the study does not interval them; publishing a band beside a rate nobody estimated one for would be the same mistake in a table that it would be in a chart.
Start at 09:30 on a weekday. Five policies face the same shocks on the same price paths. The always-on agent keeps 78.5% of positions, the attentive person 67.6%, the person on a realistic schedule 27.5%. Doing nothing keeps 3.1%.
Now start the same shock at 01:00. Same paths, same liquidator draws, same venue rules; only the clock the shock starts on has changed. The second bar in every row is the night.
Only the two scheduled humans move. The realistic person loses 23.5 positions per hundred on an interval of -28.3 to -18.8; the same person with sleep forced loses 22.9. The night takes away the two shocks that had been leaving a person time.
The two always-on arms do not move by anything this study can resolve. The agent shifts 1.4 points on -3.4 to 6.1; the attentive person 1.2 on -4.7 to 7.3. Both cover zero. Neither policy has a clock in it.
Doing nothing is the floor, and survival is a secondary. Passive keeps 3.1% at either clock because every shock here liquidates an untouched book by construction. An arm that closed the whole position would survive everything, which is why the headline is terminal equity and not this axis.
How this figure was drawn, and what its intervals are
Book-level survival, the fraction of positions kept, for each of the five arms at each clock, over 800 book-level ledgers per arm per clock, drawn from 400 price paths. Cells are pooled by book count, because a three-book cell carries three times the books of a one-book one and pooling them any other way is the defect §0 is about. It is book survival and never portfolio survival for the same reason: a portfolio comes through only when every one of its books does, so at three books it is a three-of-three event and at one book a one-of-one, and the agent’s portfolio rate falls from 86.5% to 56.8% across that axis without any arm doing anything differently. Both are in the §3 table, side by side. The clock is the instant the shock starts, weekday 09:30 or 01:00 CST, and not an hour an operator chose.
The bars carry a 95% interval and it is the point of the figure. These are proportions estimated from a finite number of drawn paths, and at these rates the interval reaches ±4.3 points, so without one a reader cannot tell an arm that moved from an arm whose movement its own interval swallows. A, H1, P all move by an amount whose interval covers zero; only H2 and H3 move measurably, and those two, and only those two, carry a dashed rule down from their 09:30 level into their 01:00 row, so the collapse is a distance to look at rather than a subtraction to do. Wilson score rather than the textbook normal interval, because several of these rates sit at or beside 0% and 100% where a normal interval either leaves the unit range or collapses to a point of zero width, and over an effective sample size rather than the raw 800, because three books replayed against one price path are not three independent draws. That correction costs up to a factor of 1.76 of the nominal n and widens every band here. The interval on the change between the two clocks is not these two bands subtracted: it is a bootstrap that resamples whole paths, published beside them. All of it is exploratory and uncorrected, and all of it is computed by the study, exploratory.survivalUncertainty in T1-confirmatory.json, rather than by this page.
Rows are ordered by availability, not by height, and the two humans without a colour are the exploratory arms. Survival is a secondary here and can never be the headline, an arm that closes the whole position survives everything, and the primary barely moves on this axis: the median paired gap against the realistic human is 149.4 bps in working hours against 164.4 bps at night, because by 09:30 most paths are already in the cluster where protection binds. the full study is about that disagreement.
the same book-count weighting re-derives the study’s own per-arm and per-book-level rates exactly before anything is drawn
intervals read from the study, not computed here: Wilson score at 95% over the clustering-adjusted n, with the change between clocks from a 10,000-resample bootstrap over whole paths · exploratory, uncorrected
The night does not make the human worse at the shocks that were always going to beat them. It takes away the two that had been leaving them time. The realistic human keeps 74.0 of every hundred positions on the slow grind at 09:30 and 3.5 at 01:00, and 23.5 against 0.0 on the crash. On the two wicks the number is identical at both clocks, 0.0 either way on wick-persist and 12.5 either way on wick-1block, because three seconds is not enough for a person at any hour. That is also why this is a claim about availability rather than about skill: across the same axis the agent moves by 1.4 positions per hundred and the attentive human by 1.2, both upward, and neither of those two movements is a difference this study can resolve. The agent’s95% interval runs -3.4 to 6.1 points and the attentive human’s -4.7 to 7.3; both cover zero, and passive moves by exactly nothing on an interval of -1.7 to 1.8. Neither of those two policies has a clock in it at all, so what the figure shows there is variation in the exogenous paths and the liquidator draws. The realistic human’s -23.5 points, on an interval of -28.3 to -18.8, is on a different scale entirely, and that separation is the whole finding rather than the ranking of the five bars.
One oddity in the figure is better named than left to be found. H3 is H2 with sleep forced over 23:00–07:00, so it is strictly less available by construction and cannot really be better, and it measures very slightly better at both clocks, 28.5 against 27.5 in working hours and 5.6 against 4.0 at night. The two arms share the market and share the liquidator, but they draw availability from separate streams, keyed by arm name on purpose so that adding or removing an arm cannot perturb another arm’s draw. This one contrast is therefore paired on the exogenous world and unpaired on the very quantity it tests, which is why the study reports it as a null this design cannot resolve rather than as evidence that a sleep schedule does not matter.
0What four passes over this study found wrong with it
An independent replay recomputed every headline in this study from the stored ledgers, in a second language. Every one matched, including the primary. What it found instead were three defects in the analysis layer; a later independent verifier, reading the corrected document, found two more. Four of the five are the same mistake, a statistic computed over a sample that mixes the study’s one-book and three-book portfolios, on a scale the book count itself sets.
This section is at the front because one of the five was a fourfold inflation of a primary, and because three of them moved the published result in the direction the study is selling. An error that flatters the thing being measured is the one a reader is entitled to assume was left in on purpose.
moved toward the agent · the second primary
C1b's tail was selected on terminal equity in absolute numeraire over a sample that mixes one-book and three-book portfolios. The two clusters do not overlap, so no three-book path could enter the tail: what was printed as CVaR(5%) of 800 paths was arithmetically CVaR(10%) of the 400 one-book paths, and the effect was inflated about fourfold.
127.3 bpscorrected to29.9 bps
moved toward the agent · a renderer, and the test that guarded it
The report rendered the engine-gaps table without its direction column, dropping, among others, the statement that one engine choice is worth the whole of a pre-registered loss in the agent's favour. The unit test that claimed to assert the disclosure only checked that the field was non-empty in the data structure.
not printedcorrected toprinted, with a direction column
moved toward the agent · the cost secondaries
The gas table was computed over book records and labelled per arm-path, so the largest transaction count contradicted the mean transaction count printed two rows above it.
max 1 tx per arm-pathcorrected tomax 3 tx per arm-path
moved against the agent · the latency secondaries
The agent's realised delay was pooled over three round-robin book offsets and printed against book 0's model band alone, which read as the agent missing its own latency model by six seconds. It does not: every book index is inside the band that book's own offset gives it.
9.000–20.985 s against one bandcorrected toevery book index inside its own band
moved neither way · the workload secondaries
Protects and transactions per run were averaged over two levels whose support differs, 0 or 1 on a one-book run, 0 to 3 on a three-book one. The pooled mean is set by how many cells hold three books, not by anything an arm did, and it describes neither level.
1.584 protects per run, pooledcorrected to0.865 at 1 book, 2.303 at 3
The primary is unchanged, and that is the check that any of this is trustworthy. C1’s gaps are formed per path and divided by that path’s own opening equity, so a one-book and a three-book pair enter on one scale and none of the five defects can touch it. If it had moved, something else would be broken.
And the correction to the second primary makes this study’s own point harder rather than easier. The tail gap fell from 127.3 bps to 29.9 bps, which puts it much further below the median gap than the superseded figure was, the worst 5% of paths are exactly where the shock outruns the agent and it is liquidated too. The estimand was fixed because it was wrong. Which way it happened to point is not the reason.
Four separate readings each found one more instance of one class and each was patched, so what the study carries now is a mechanism rather than a fifth patch: every summary the report prints is rebuilt three times, pooled, one-book only, three-book only, and every numeric leaf compared. 251 statistics swept, 37 moved by the book-count axis and therefore required to declare themselves, 0 undeclared. An undeclared leaf stops the run before a report is produced.
1How much, and how sure
Two primaries were pre-registered and both were run, Holm-corrected over the family of two that this study actually contains rather than the family of four the plan lists for three tasks. Both tests are two-sided, which is the conservative choice against a pre-registered direction.
| Test | What it measures | Gap | 95% CI | p, two-sided |
|---|---|---|---|---|
| C1 | median paired gap in cost-inclusive terminal equity | 155.4 bps | 145.9 – 167.0 | 3.4 × 10⁻¹¹⁷ |
| C1b | gap in the CVaR(5%) tail of the same return | 29.9 bps | 10.3 – 65.3 | < 10⁻⁴ |
C1b’s p is the bootstrap’s own floor, not a measurement: 10,000 resamples were drawn and none crossed zero, so the honest statement is p < 1/(resamples + 1). Both gaps are in basis points of each path’s own opening equity, the endpoint is scale-free, so a one-book and a three-book portfolio enter on one scale.
The two numbers disagree by a factor of five and the disagreement is the finding. C1 says what protection is worth on a typical path where it binds; C1b says what it is worth in the worst 5% of outcomes, and there it is worth far less, because the paths in that tail are the ones where the shock outran the agent and it was liquidated too. An insurance product that is weakest exactly in the tail is a thing a buyer should be told, and it is why both were pre-registered.
Both are medians, and a median is only a summary of a population that has a middle. This one does not. Laid out path by path, the 800 paired gaps fall into two populations with an empty span between them: on 189 of them the two arms finish within 10 bps of each other, and on the rest the agent reaches the position and the modelled operator does not, or not in time. Nothing in this study lands between 0.3 bps and 32.2 bps, a two-order-of-magnitude hole, which is why the study’s 10 bps threshold does no work: any cut inside that hole gives the same three counts.
Figure 2
The gap has no middle, so the median describes no path: a quarter of the sample sits on zero and the rest is spread over two orders of magnitude above it.
Show the data as a table
| From, bps | To, bps | Cluster | Paths | Share |
|---|---|---|---|---|
| -2.8 | 0.0 | under 10 bps | 22 | 2.8% |
| 0.0 | 2.8 | exact tie | 68 | 8.5% |
| 0.0 | 2.8 | under 10 bps | 99 | 12.4% |
| 24.9 | 34.8 | protection binds | 1 | 0.1% |
| 34.8 | 47.5 | protection binds | 1 | 0.1% |
| 47.5 | 63.9 | protection binds | 20 | 2.5% |
| 63.9 | 84.9 | protection binds | 38 | 4.8% |
| 84.9 | 111.8 | protection binds | 48 | 6.0% |
| 111.8 | 146.4 | protection binds | 76 | 9.5% |
| 146.4 | 190.9 | protection binds | 111 | 13.9% |
| 190.9 | 247.9 | protection binds | 47 | 5.9% |
| 247.9 | 321.2 | protection binds | 33 | 4.1% |
| 321.2 | 415.2 | protection binds | 28 | 3.5% |
| 415.2 | 536.0 | protection binds | 63 | 7.9% |
| 536.0 | 691.1 | protection binds | 1 | 0.1% |
| 1,474.1 | 1,895.7 | protection binds | 46 | 5.8% |
| 3,131.9 | 4,024.3 | protection binds | 33 | 4.1% |
| 5,170.1 | 6,641.4 | protection binds | 65 | 8.1% |
| -2.8 | 6,641.4 | all paired paths | 800 | 100.0% |
Every one of the 800 paired gaps, laid out on one axis. Agent minus modelled person, in basis points of that path’s own opening equity, linear to 10 bps and logarithmic beyond.
68 paths are exact ties. Both arms were liquidated in the same state or both were untouched, and they finish identical to the wei.
121 more differ by less than a keeper fee, and then there is nothing at all between 0.3 and 32.2 bps. The 10 bps threshold does no work: any cut inside that hole gives the same three counts. The 22 paths where the agent finishes behind are the short bar left of zero.
On the remaining 611, protection binds. The agent reaches the position and the modelled operator does not, or not in time, and the median of those paths is 200.1 bps, the number in the hero.
The pooled median falls between the two populations. C1, the confirmatory result, is 155.4 bps: 44.7 bps below the material median and 580 times the largest gap on any path where protection did not bind. It describes no path, which is why both numbers are printed.
How this figure was drawn, and what its intervals are
Every one of the 800 paired gaps in cost-inclusive terminal equity, arm A minus arm H2, in basis points of each path’s own opening equity. Bars are counts of paths, not a density, and are not smoothed, a kernel would invent a shape across the empty span that is the whole finding. Every bar is the same width on the symmetric-log horizontal axis, linear to 10 bps, logarithmic beyond, the same scale as Figure 3, which makes one bar 2.8 bps wide at the left of the axis and 1,471 bps wide at the right. The dashed rule is the confirmatory pooled median, 155.4 bps.
every count tallied from T1-runs.jsonl and checked against the published mixture before drawing; material median off by 2.3 × 10⁻¹³ bps
The 22 paths on which the agent finishes behind the modelled human are in here too, as the short bar left of zero, at most 1.9 bps each. Every one of them comes from wick-1block, the shock that drops and then recovers, which is also the shock behind every gap above 1,000 bps, all 144 of them. The largest wins in this study come from the same shock seen from two sides, and the full study takes that up.
2In which conditions
The pooled effect is an average over sixteen deliberately different worlds, and it hides almost everything. Split by cell, the agent is worth nothing at all on the slow grind during working hours, a 28% drift over eight hours leaves a human three hours of slack between crossing the trigger and health factor 1.0, and three hours is enough for anyone. On a 35% wick that prints for three seconds and stays down, it is worth four hundred basis points. On the wick that recovers, where being liquidated is the most expensive thing that happens anywhere in this study, it is worth fifty times that.
Figure 3
Where the shock leaves a human time, the agent is worth nothing; where it does not, it is worth two orders of magnitude more.
Show the data as a table
| Cell | Books | n | Median gap, bps | 50% interval | 95% interval | A ahead | H2 ahead | Ties |
|---|---|---|---|---|---|---|---|---|
| wick-1block-night-b1 | 1 | 50 | 5,328.5 | 5,303.7 – 5,343.7 | 0.0 – 5,359.4 | 31 | 7 | 12 |
| wick-1block-work-b1 | 1 | 50 | 5,288.9 | 5,272.4 – 5,306.1 | 0.0 – 5,341.8 | 29 | 6 | 15 |
| wick-1block-night-b3 | 3 | 50 | 1,816.7 | 1,808.8 – 1,830.0 | 1,796.9 – 3,547.1 | 44 | 2 | 4 |
| wick-1block-work-b3 | 3 | 50 | 1,795.1 | 1,790.4 – 1,806.1 | 1,783.5 – 1,818.9 | 40 | 7 | 3 |
| wick-persist-night-b1 | 1 | 50 | 425.4 | 421.4 – 436.0 | 400.6 – 446.6 | 40 | 0 | 10 |
| wick-persist-work-b1 | 1 | 50 | 409.5 | 398.0 – 423.7 | 386.4 – 438.2 | 33 | 0 | 17 |
| wick-persist-work-b3 | 3 | 50 | 266.2 | 188.0 – 276.5 | 151.3 – 280.9 | 47 | 0 | 3 |
| crash-work-b3 | 3 | 50 | 169.2 | 163.4 – 173.0 | 155.4 – 180.7 | 50 | 0 | 0 |
| crash-night-b1 | 1 | 50 | 169.1 | 167.7 – 172.1 | 165.6 – 188.5 | 50 | 0 | 0 |
| crash-night-b3 | 3 | 50 | 168.9 | 166.1 – 171.4 | 159.8 – 179.6 | 50 | 0 | 0 |
| wick-persist-night-b3 | 3 | 50 | 162.2 | 152.0 – 200.9 | 145.0 – 260.7 | 46 | 0 | 4 |
| crash-work-b1 | 1 | 50 | 159.1 | 146.4 – 165.5 | 58.3 – 175.7 | 50 | 0 | 0 |
| grind-night-b3 | 3 | 50 | 90.1 | 88.6 – 93.2 | 83.0 – 99.9 | 50 | 0 | 0 |
| grind-night-b1 | 1 | 50 | 88.3 | 84.0 – 93.5 | 78.0 – 103.2 | 50 | 0 | 0 |
| grind-work-b1 | 1 | 50 | 0.1 | 0.0 – 0.1 | 0.0 – 0.1 | 50 | 0 | 0 |
| grind-work-b3 | 3 | 50 | 0.0 | 0.0 – 0.0 | 0.0 – 0.1 | 50 | 0 | 0 |
| C1 pooled · n=800 | – | 800 | 155.4 | – | 145.9 – 167.0 | 710 | 22 | 68 |
Sixteen cells, largest effect first. Shock × clock × books, 50 paired paths each. The thick rule is the 50% interval and the thin one the 95%, both the study’s own bootstrap.
The wick that recovers carries the largest effects and the least certain ones. On both one-book wick-1block cells the 95% interval reaches all the way to zero, because a third of the paths are exact ties: the trough is long enough for the agent to act and long enough for a liquidator to reach the human too.
Where the shock leaves a person time, the agent is worth nothing. On the slow grind and the crash during working hours the median gap is a keeper fee at most; three hours of slack between the trigger and health factor 1.0 is enough for anyone.
Move the same two shocks to 01:00 and the gap opens. The person on a schedule is asleep, the agent is not, and the difference is the cost of a liquidation on that position.
The diamond is C1, pooled over all 800 paths, 155.4 bps with the study’s BCa interval. It is the confirmatory result and the least descriptive number on the figure.
How this figure was drawn, and what its intervals are
Median paired gap in cost-inclusive terminal equity, arm A minus arm H2, in basis points of each path’s own opening equity, one row per cell and n = 50 paired paths each. Thick rule 50%, thin rule 95%. The horizontal scale is symmetric-log, linear to 10 bps, logarithmic beyond, because the sixteen effects span 0.0 to 5,328 bps and a linear axis stacks twelve of them on the null rule. Rows run largest effect first; a dashed rule reaching the null is a cell whose lower bound the bootstrap could not lift off zero, not a very wide interval. The diamond below the separating rule is C1, pooled over all 800 paths, with the study’s own BCa interval.
Where these sixteen intervals come from. They are the study’s, not this page’s: a BCa bootstrap over that cell’s own 50 paired gaps, resampling pairs, so the pairing the design paid for survives, at 10,000 resamples, one seed per cell from the analysis block starting at 91,000, computed by sim/full.ts and published as medianGapAvsH2Ci95 and medianGapAvsH2Ci50 in T1-confirmatory.json. Until recently this page computed them itself, from the run ledger, because the study published seven pooled intervals and this figure needs sixteen per-cell ones; the arithmetic was right and it was still the wrong place, because a figure carrying a statistic the study does not publish is a statistic no reader can check. Exploratory and uncorrected, sixteen intervals, no Holm, no multiplicity adjustment of any kind, so the widest of sixteen is a maximum over sixteen draws rather than a finding. The acceleration is degenerate on all sixteen of them, as it is on C1’s, because the jackknife of a median takes two or three distinct values: each is in practice a bias-corrected percentile interval, and the artefact says so per row rather than letting the letters BCa imply an accuracy it does not have.
intervals read from T1-confirmatory.json, not computed here; every median re-derived from T1-runs.jsonl before drawing, worst disagreement with the published figure 4.2 × 10⁻¹⁷
Read the two widest intervals rather than the two largest dots. On both wick-1block one-book cells the 95% interval reaches all the way down to zero, because a third of the paths in each are exact ties, the trough is long enough for the agent to act, but also long enough for a liquidator to reach the human, and when both are seized in the same state they finish identical. The largest effects in this study are also its least certain, and a forest plot is the form that says so without being asked.
3How it was measured
A simulation, and the label is on every figure. One exogenous price path is generated first, a shock shape plus idiosyncratic volatility of 2.4% a day, measured on BNB Chain mainnet, and then replayed across all five arms. On a three-book cell the three liquidators are replayed too. The market and the searchers are therefore shared, only an arm’s own actions move its own state, and every test on this page is paired for that reason. An unpaired test would throw away the variance reduction the whole design exists to get.
3.1The five arms, and which two the confirmatory test is between
- A · confirmatory
- simulation the keeper. Unattended, evented, one protect per block round-robin across books. Its decision-to-execution latency is a measured input and is never zero.
- H1 · exploratory
- modelled person an attentive operator. Always at the screen, no operational error, threshold rules, and a total event-to-broadcast delay FASTER than the agent's. Sequential across books.
- H2 · confirmatory
- modelled person a realistically available operator. A published availability schedule by hour, phone notification at night, sequential books. This is the arm the confirmatory test compares against.
- H3 · exploratory
- modelled person H2 with sleep forced over 23:00–07:00 CST regardless of the schedule, which separates always on from smart.
- P · exploratory
- simulation never repays, never closes. It measures whether intervening helps at all, and it is the column left to a reader who rejects a modelled human.
Three of the five are models of a person and none of them is a measurement of one. Every parameter of H1, H2 and H3 is published and none is fitted to this study’s data, which is the most that can be said for a modelled comparator. The arm that would have settled it, a runnable rule-based comparator a reviewer could execute themselves, was removed by the operator’s decision and has no substitute here. A reader who declines to accept a modelled baseline is left with the agent against passive, and that column is on this page rather than in a footnote. Each arm below ran all 800 paths.
| Arm | Book survival | Portfolio survival | Median return | Latency, 1 book | Latency, last of 3 | Tx per run, 1 / 3 |
|---|---|---|---|---|---|---|
| A | 0.792 | 0.716 | -47.4% | 12.1 s | 18.0 s | 0.865 / 2.303 |
| H1 | 0.683 | 0.669 | -47.5% | 12.4 s | 103.3 s | 0.835 / 1.830 |
| H2 | 0.158 | 0.140 | -49.3% | 336.4 s | 454.1 s | 0.148 / 0.358 |
| H3 | 0.171 | 0.153 | -49.3% | 241.7 s | 497.5 s | 0.155 / 0.403 |
| P | 0.031 | 0.016 | -49.4% | – | – | 0.000 / 0.000 |
The two survival columns are two different questions and only the first is comparable across this design. Book survival is positions kept over positions held, so the Books axis divides out of it. Portfolio survival is whether every book came through, which is a three-of-three event on half the design and a one-of-one on the other: the agent’s falls from 86.5% at one book to 56.8% at three while its book rate falls only from 86.5% to 76.8%, and the difference between those two falls is the axis rather than the policy. That is why every survival figure on this page is book-level and why the portfolio column appears here, beside its own denominator, and nowhere else. The intervals on all of them, 185 rates and 55 differences, are in exploratory.survivalUncertainty of T1-confirmatory.json.
Every arm finishes down about half. The market itself falls on every path in this study, so the return column is a property of the shocks and not of any policy, the agent ends at -47.4% and passive at -49.4%, and the whole finding lives in the difference between two arms on the same path rather than anywhere in that column. The two latency columns are also two different quantities and are never summed: at one book it is the time to protect the only book, at three the time to protect the last of three under the round-robin. Pooling them was the fifth defect in §0.
3.2The position, and the venue rule tuple that scored it
A venue is a tuple read from published parameters, not a label. Swapping the label without swapping the rule is not a variable, so the tuple is printed rather than named, and two of its rows are marked PROVISIONAL because they are Aave V3’s canonical rule adopted, not a parameter read from a named venue’s published configuration. Every arm starts from the identical position on every path, per book.
| Parameter | Value | Where it comes from |
|---|---|---|
| Opening equity, per book | 1,478.25 N | the denominator every basis point on this page is of |
| Health factor at open / trigger / target | 1.35 / 1.15 / 1.4 | frozen in the plan before the run |
| Liquidation threshold | 7,000 bps | read from the chain-97 deploy script |
| Close factor | 5,000 bps | PROVISIONAL, Aave V3’s canonical rule, adopted because the mock pool has no liquidation entry point to mirror. Rises to the whole debt below health factor 0.95, and is read at the moment of seizure rather than applied as a constant. |
| Liquidation bonus | 500 bps | PROVISIONAL, the low end of the plan’s range, which is the choice that flatters the agent least. the study rescores the other end. |
| Keeper fee | 10 bps | of the amount pulled; measured from the deployed contract’s own source |
| Gas | 0.00751 N | per transaction, reconciled against a real BNB Chain mainnet gas ledger |
| Idiosyncratic volatility | 2.4% | realised daily volatility, measured on BNB Chain mainnet |
At that opening health factor the position crosses the trigger on a 14.8% fall and health factor 1.0 on a 25.9% fall. Every shock in the design is larger than the second of those, which is what makes passive die by construction, otherwise there would be no errand to run and the task would be vacuous. That is a design choice and it is stated as one: this study measures what protection is worth in worlds where the position was going to be liquidated, and it does not sample the world’s own frequency of those.
The venue record, as the study wrote it: LT 7000 bps from DeployTestnetV2.s.sol listReserve(wbnb, 700e8, 7000, 7500). Close factor and bonus PROVISIONAL, see comment; resolve at freeze into outputs/sim/venue-profiles.json.
3.3The race, which is the only mechanism in the study
Everything the agent is worth here comes out of one comparison of delays. The agent observes, decides and gets mined in 9 to 15 seconds, a 6 s floor measured from a real testnet dip-to-repay transaction, up to 6 s of jitter above it, and a 3 s block, and it is charged 3 s for each extra book, one protect per block, round-robin. The human is charged 45 s per extra book, sequential hands, which is the plan’s own figure and not this study’s. Against both of them stands a liquidator drawn LogNormal with a median of 15 s, labelled CALIBRATION-TARGET, because it is a target rather than a measurement, and because mainnet MEV is faster than it.
The agent’s per-book cost is deliberately an upper bound. A keeper batching consecutive nonces lands all three books in one block, which would make the marginal cost zero, and zero would decide the parallelism question by assumption rather than by measurement. So the agent is charged a whole block per book and every figure on this page understates it. The same rule runs the other way on the liquidator: the three books draw three independent searchers, so some of them draw a slow one a slow hand can still beat. Perfectly correlated liquidators would kill every book at once and hand the agent the axis for free.
| Book | Offset | Its own model band | Records | Observed band | Median | Inside its own band |
|---|---|---|---|---|---|---|
| 0 | +0 s | 9–15 s | 693 | 9.000–14.998 s | 12.039 s | yes |
| 1 | +3 s | 12–18 s | 297 | 12.000–17.997 s | 14.866 s | yes |
| 2 | +6 s | 15–21 s | 277 | 15.011–20.985 s | 17.934 s | yes |
All 1,267 uncensored book records the agent produced sit inside the band that book’s own offset gives it, so the latency model is not violated anywhere in the study. Printing this per book rather than pooled is §0’s fourth defect: pooled and set beside book 0’s band alone, the same records read as the agent missing its own model by six seconds, and that was the one correction in this study that took something back from the agent.
3.4What one protect costs, and what one seizure costs
A repayment retires debt rather than destroying it, so a protect costs the keeper fee plus one transaction of gas and nothing else. Almost the entire gap against a human is therefore an avoided seizure, and what a seizure is worth is not the liquidator’s discount as the ledger memos it, which is marked at the seizure price. What it takes out of the primary is marked at the terminal price, and the two coincide only when the price does not move afterwards.
| Quantity | Value |
|---|---|
| Book pairs where the human was seized and the agent was not | 1,015 of 1,600 |
| Median seizure, as the ledger memos it | 32.34 N = 218.8 bps |
| Median cost of that seizure to terminal equity | 29.10 N = 196.9 bps |
| Ratio of the true cost to the memo, min, median, max | 0.155, 0.877, 12.656 |
| Largest transaction count on any single arm-path | 3 |
| Largest whole gas line on any arm-path | 0.02253 N = 0.051 bps |
| Accounting identity residual over every pair | 5.7 × 10⁻¹³ N |
That ratio crosses one, and the direction it crosses in is the reason the study quotes the harder number. On paths where the price ticks up after a seizure the memo understates what was lost, by as much as ×12.7; on paths where it keeps falling the memo overstates it. Quoting the memo would have been the flattering choice on most paths and the wrong one on all of them, so this study prints the terminal-equity cost and puts the memo beside it. Gas is charged in numeraire rather than in the chain’s own token, a disclosed compromise, and the bound on the error it introduces is computed from the run rather than assumed: 0.028 bps at worst, against effects measured in hundreds.
3.5The tests, and the correction applied over them
Wilcoxon signed-rank on the paired endpoint for C1; a paths-resampled bootstrap for C1b, with the pairing preserved inside every replicate, both arms are recomputed on the same resampled set, because resampling the arms independently would destroy the correlation the design exists to exploit. Both are two-sided against a pre-registered direction, which is the conservative choice and roughly doubles each p.
| Test | Comparison | p, raw | p, Holm over 2 | Rejected at α = 0.05 |
|---|---|---|---|---|
| C1 | A-vs-H2 · median paired terminal equity | < 1.0 × 10⁻⁴ | < 1.0 × 10⁻⁴ | yes |
| C1b | A-vs-H2 · gap in CVaR(5%) of E(T)/E(0) − 1 | < 1.0 × 10⁻⁴ | < 1.0 × 10⁻⁴ | yes |
The family is two, and the plan pre-registered four. A p corrected over two is not comparable with a p corrected over four, so the page says which was applied rather than leaving a reader to assume: the other two tests belong to tasks that are not in this study, and correcting over tests that were never run would be a courtesy to nobody.
Separately from the two tests, the plan wrote 80 survival predictions before any path existed, and 14 of them are falsified at α = 0.05. Which ones is the finding.
| Kind of target | Written | Falsified at α = 0.05 |
|---|---|---|
| asserted in the plan, with no derivation printed | 50 | 14 |
| re-derived from the model’s own frozen constants | 30 | 0 |
Every falsification lands on a number the plan asserted without printing its arithmetic, and not one lands on a number re-derived from the model’s own frozen constants. That is the strongest internal-consistency evidence in the study, the simulator does what its published inputs say it should, and where it disagrees with the pre-registration it is the pre-registration’s prose that was wrong. The two kinds are separate columns in the artefact so the claim can be checked rather than taken, and where a target was re-derived the planned figure it replaced is printed beside it. Re-deriving a prediction from published inputs is not the same act as tuning an input until a prediction comes true.
3.6Seeds, and how to run it yourself
Seed block {1000…1799}, fifty contiguous seeds per cell, bootstrap seed 90,000 at 10,000 resamples. The exogenous streams, the price path and each book’s liquidator, exclude the arm from their key, which is what makes every arm face the same market and the same searchers; the arm-internal streams include the arm name, so adding or removing an arm perturbs no other arm’s draw. Determinism is proved by regenerating the whole population from the same seeds and comparing digests, and again by re-running the engine on a sample of paths and comparing serialised results byte for byte, which covers the arm-internal streams a path digest cannot see.
The corrections in §0 were applied with the study’s --rescore step, which recomputes the manifest’s own digests over the files as they sit on disk and refuses to proceed if either has moved. A defect in an estimator, a renderer or a label is not a defect in the runs, and re-running the runs to fix one would have discarded the byte-identical reproduction an independent replay had already established over them.
Show the seed block for all 16 cells
| Cell | Books | Paths | Seeds |
|---|---|---|---|
| grind-work-b1 | 1 | 50 | 1,000…1,049 |
| grind-work-b3 | 3 | 50 | 1,050…1,099 |
| grind-night-b1 | 1 | 50 | 1,100…1,149 |
| grind-night-b3 | 3 | 50 | 1,150…1,199 |
| crash-work-b1 | 1 | 50 | 1,200…1,249 |
| crash-work-b3 | 3 | 50 | 1,250…1,299 |
| crash-night-b1 | 1 | 50 | 1,300…1,349 |
| crash-night-b3 | 3 | 50 | 1,350…1,399 |
| wick-persist-work-b1 | 1 | 50 | 1,400…1,449 |
| wick-persist-work-b3 | 3 | 50 | 1,450…1,499 |
| wick-persist-night-b1 | 1 | 50 | 1,500…1,549 |
| wick-persist-night-b3 | 3 | 50 | 1,550…1,599 |
| wick-1block-work-b1 | 1 | 50 | 1,600…1,649 |
| wick-1block-work-b3 | 3 | 50 | 1,650…1,699 |
| wick-1block-night-b1 | 1 | 50 | 1,700…1,749 |
| wick-1block-night-b3 | 3 | 50 | 1,750…1,799 |
REPORT-PLAN §5 reserved {1000…1599} for a 12-cell design. The shock axis is four levels wide since wick-1block was added, so the crossed design is 16 cells and the block is {1000…1799}. Still strictly below T2's reserved {2000…2719}, and disjoint from the MVP's 90000 block.
4What this does not show
None of the following is a hedge added at the end. Each one is a decision that was taken before the run and is on the page because a reader is entitled to attack it.
- The human is a model, not a person. Every parameter of the three human arms is published and none is fitted, but a reader who declines a modelled baseline should reject those three columns and read the agent against passive, 164.6 bps. The runnable non-agent comparator that would have settled it was removed and has no substitute.
- One venue rule tuple, Aave-V3-shaped, and its close factor is that rule’s canonical form adopted rather than read from a named venue’s published configuration. Not Venus, not Lista, not three integrations.
- The liquidator is testnet-shaped at a median of 15 s. Mainnet MEV is faster, and a faster liquidator is a pre-registered way for the agent to lose that this study does not run.
- The books axis has two levels, one and three. The interpolation check at two books was not run and nothing here supports an extrapolation to a large book count. What is established is the sign and the mechanism at three.
- Only one of the four shocks rewards holding. The mixture Figure 2 shows is one the design chose, not one the world produced. Converting these basis points into an expectation needs the real-world weight between the fall persists and the market repairs itself, and this study does not estimate it.
- The pre-registration was not hashed. What survives of it is the discipline: predictions written into the code before the run, printed beside what was observed, and reported as failed when they fail. A reader who wants the stronger guarantee should note that this is not it.
- Interest is off, because the mock pool accrues none. Any venue where it is not zero moves every arm here, since all of them carry debt for the whole path.
- One contrast is unpaired on the thing it tests. The two realistic humans draw independent availability schedules, so the comparison that isolates a sleep window has far less power than its sample size suggests. It is reported as a null this design cannot resolve rather than as evidence that sleep does not matter.
- Testnet units are not dollars and are never converted to any. Nothing on this page is a claim about money made or lost on BNB Chain mainnet. Only chains 56 and 97 appear as sources anywhere in the study.
The sentence this study supports
On a simulated Aave-V3-shaped liquidation drill, an always-on keeper finishes ahead of a published model of a realistically-available human by a median of 155.4 bps of opening equity across 16 crossed cells, 800 paired paths, p = 3.4 × 10⁻¹¹⁷ two-sided, Holm-corrected over the two tests that were run, and on the 76.4% of paths where protection actually binds that median is 200.1 bps. The advantage over an attentive human comes almost entirely from working more than one position at once.
And the one it does not
Any claim about dollars, about mainnet, about a venue other than the single rule tuple modelled here, about a liquidator faster than 15 s, or about a book count larger than three.
Every figure on this page is drawn from a module compiled at build time out of T1-confirmatory.json and the run ledgers, and rendered on the server; scrolling changes which marks are lit and never what they say, and the numbers in the markup are the numbers in the artefact.