# Michigan: the first depth changes match the wallet's executed levels

The first retained changes around both large trades line up with the wallet's individual executed price levels. This is substantially stronger mechanism evidence than a match to a one-second-old book alone. The depth updates do not carry the transaction hash, so the correspondence does not independently prove which order caused the changes or establish manipulation.

At 11:48:31.302 UTC, the reconstructed 81-cent YES ask went from 14,119.39 shares to zero and the 82-cent ask from 151,684.64 to 45,885.22. The wallet's buy executed 14,119.39 at 81 cents and 105,799.419633 at 82 cents. The 82-cent displayed decline is 105,799.42: a difference of 0.000367 share from the execution, consistent with these two displayed level sizes being in hundredths. This is the actual difference, not a general matching tolerance. The changes were received at 11:48:31.314; the identified buy message was venue-timestamped 11:48:31.357 and received at 11:48:31.377.

At 12:27:00.400 UTC, the 80-cent and 79-cent bids fell from 30,455.67 and 36,485.28 to zero, and the 78-cent bid fell from 303,551.75 to 286,809.78. The resulting 16,741.97-share decline exactly matches the third executed leg, while the other two match their respective legs. The changes were received at 12:27:00.414. The joined sale message was venue-timestamped 12:27:01.175 and received at 12:27:01.208. In each case, the focal trade is the only direct YES or NO trade message in the retained market rows within one venue second of its message. This is evidence against an identified competing trade of the same size in that interval, not proof no event was missed or that the changes are cryptographically assigned.

The near-term market moved further than those leg matches alone explain. By buy-message receipt the 82-cent ask was down to 9,056.61; the updates include reductions and additions, and they do not identify cancellations or owners. Around the sale, the 78-cent bid fell from 286,809.78 after the first matched changes to 129,450.83 at 12:27:00.787, and to 103,691.75 before the sale message receipt. No retained direct YES/NO trade message within one venue second identifies a competing trade, but that does not identify the cause of these depth changes. The change from 274,585.30 to 129,450.83 alone is 145,134.47 shares, far larger than the focal sale's entire 83,682.92 shares.

The reconstructed quote at the matched buy-message receipt was 80/82 cents, briefly widened from 80/81 at the one-second-earlier cut; it was 80/81 again at +10 seconds and 81/82 at +60, +120 and +300. Around the sale it was 78/81 at receipt, compared with 80/81 one second earlier, and 79/80 at +10, +60, +120 and +300 seconds. These are sampled states, not continuous persistence. In the fixed ten-second sampling grid over the ten minutes centered on the buy, 31 of 61 samples were 80/81, one 80/82, and 29 81/82. The equivalent sale window had 24 samples at 81/82, two at 80/82, four at 80/81, one at 78/81 and 30 at 79/80. The sampling alone cannot establish how long each quote actually persisted.

Predefined adjacent ten-minute comparison windows without any of the seven identified wallet trades were stable at their ten-second sampled quotes: five available buy controls had 61/61 samples each at 79/80 or 81/82; five sale controls had 61/61 at 81/82 or 79/80. The controls are close in time, overlap between the two focal analyses, differ in market context, and are not a matched causal counterfactual. Other traders and information could drive the changes. For example, a separate 45,000-share YES sale message occurred at 12:25:35.389, about 86 seconds before the focal sale message. The displayed last-trade price is a trade-message field and does not by itself describe its full execution ladder. Other YES trade messages for all windows and exact hashes appear in results.json.

The strongest supported account is that the wallet's large orders swept multiple prices, and the first recorded changes to the relevant levels correspond to their fills. The recorded price quotes then changed, but these data do not isolate how much of the later movement the wallet caused, establish the book as complete, or show motive or artificial odds. A price-taking order can move through available offers or bids without proving manipulation.

## Reproduction and boundaries

PLAN.txt records windows, selection and measurements before event inspection. test.py reads immutable retained target parquet and emits results.json; millisecond_audit.py emits matched_milliseconds.json containing every expanded YES row in the two matched venue milliseconds, source witness, sequence, ordinals, mirror fields, raw snapshots and levels immediately before and after their first/last receipts. It also lists all retained direct YES/NO trade messages in the two ±1 venue-second intervals. The all-event output includes duplicate level-setting messages; do not add duplicate set sizes. Venue and receive ordering are diagnostic conventions, and collector receive times for stored rows are floored to milliseconds. Same-receipt ties use collector sequence and ordinal and cannot prove execution ordering.

The replay now computes derived twin receipt offsets with integer nanoseconds instead of Python datetime microsecond rounding; this does not restore precision the archive floors for stored rows. Fourteen focal cut states from -60 through +60 seconds agree with the prior receipt-order replay for best prices and all five quoted depths. The target twin-check fingerprint file was not retained, so target fingerprints cannot be verified here; no global certification is claimed. Repeat book suppression, missing recorder logs and potential gaps, local rather than exchange sequence, quote and execution clock uncertainty, and unlabeled depth updates remain material. The ±1-second event list in results.json contains target 78–82 level updates plus target trade messages and books; matched_milliseconds.json contains all expanded target YES event types at each matched venue millisecond. Trade-volume counts in the ten-minute windows use direct YES trade messages only and should not be treated as market-wide turnover.

