A booked entry price that never happened

Found 2026-09-03, on the first real run of the scorer Status gate shipped (ENTRY_TOLERANCE_PCT in src/score.ts); the ledger-side cause is open

What we saw

Ride 127, LHAI, 2026-09-02. The ledger books the entry as:

entry_price  $1.02
entered_at   2026-09-02T13:30:11.813Z     ← 09:30:11 ET, eleven seconds after the open

The tape for that morning says something else entirely:

first print of the day     2026-09-02T12:00:00.080Z   $0.8300     (08:00 ET, pre-market)
pre-market range           $0.83 – $1.30              6,846 prints
first regular-session print 2026-09-02T13:30:00.010Z  $1.2200
prints near $1.02          468, ALL of them pre-market (12:00–12:02Z)

So $1.02 is a real price LHAI traded at — around 08:00 ET, ninety minutes before the timestamp attached to it. By 09:30 the stock had run to $1.22.

Scored naively, that produced:

issued   entry $1.02  stop $0.91  target $1.16   (target = +1.27R)
MECHANICAL   first door = TARGET @ 13:30:13.049Z   +1.27 R

The plan "reached its target two seconds after entry". It did not. The target was already behind the market before the position existed.

Why it matters

That single row would have produced a confident, specific, entirely fictional delta. And it is not a rounding problem — a 16.7% error in the entry price propagates into risk-per-share, into R, into MFE, MAE, capture and run-on, and finally into a number attached to a person's name in a coaching report.

The failure mode is the dangerous kind: it does not look like a bug. It looks like a trade that worked instantly.

What we did

Added the entry gate in src/score.ts. Before any delta is computed, the booked fill is compared to the book standing at the booked instant; more than ENTRY_TOLERANCE_PCT (2%) away and the ride is marked entry_unverified and scored no further.

NOT SCORED: entry_unverified
  booked fill $1.02 is 16.7% from the tape ($1.2250) at 2026-09-02T13:30:11.813Z

The principle it encodes: a delta computed from a fill that never happened is worse than no delta at all. No number is a gap; a wrong number is an accusation.

Verified against three rides with real mid-session fills — DAKT 0.20%, GPRO 0.31%, FRVO 0.00% — so the gate is not simply rejecting everything.

Still open