Equity book · pipeline audit · 23 September 2026

Four Jobs That Ran and Did Nothing

Every one of these was green. A scheduled job that fires, completes and records a success is indistinguishable from a job that works — and four of them were firing into an empty room. None of this showed up as a failure anywhere. The heartbeats were fine, the report rendered, the tests passed.

8 mail arrivals measured5 sessions of empty gap reports 2 scanners never scanned0 orders affected
gap reports that saw their own mail
0
of 5 sessions since it was scheduled
earliest mail arrival
08:39
the job ran 08:35
scanners run nightly
6
was 4; two were hand-run only
pyramid adds ever placed
0
rule shipped 16 Sep, nothing ran it
One

Both pre-market jobs ran before the mail they read

The regime read was scheduled 08:30 and the gap check 08:35, on the assumption that MarketSmith's pre-open note is written "around 08:00–08:15". It is written then. It arrives later. Eight arrivals out of the message store:

regime 08:30gap 08:35regime 09:05gap 09:08bell08:3916 Sep08:4217 Sep08:4518 Sep08:4919 Sep08:5322 Sep08:5522 Sep08:5623 Sep09:0323 Sep
When the pre-open mail actually landed. Median 08:53, and drifting later. The two red lines are where the jobs used to fire; the green lines are where they fire now.

So the 08:30 regime read never once saw the day's own mail — it re-read the previous evening's note, which is the only reason a second regime job exists at all. And the gap check, which correctly refuses a quote that is not today's, reported nothing every single session while its heartbeat stayed green. The job ran. It had nothing to read.

Regime now fires at 09:05, after the latest observed arrival and before the 09:15 jobs that act on the snapshot. The gap check fires at 09:08, three minutes after the job that stores what it parses. Seven minutes before the bell to act by hand is thin. It is what the arrival times allow, and the alternative was the forty minutes the old schedule claimed and a report built on nothing.

Two

Two scanners were never in the nightly scan

STRIKE and REVERSAL were left out of the scheduled scan on the grounds that neither may be placed unattended: STRIKE is the intraday scanner and everything here is CNC, so its stop would be squared off the day it was placed; REVERSAL enters at the market rather than on a resting trigger. That reasoning is correct about placing orders and was applied to scanning.

Leaving them unscheduled stopped nobody taking an intraday product. What it did was leave the morning report's STRIKE and REVERSAL tables built from whatever hand-run happened last: real entries, real stops, arithmetically correct, priced off a close that could be several sessions old — and formatted identically to rows scanned that evening.

listholds what it decides
SCHEDULED_STRATEGIES6what the nightly scan runs
TRADED_STRATEGIES4what may reach the placement path
One list was doing two jobs, which made "we do not place STRIKE" and "we do not scan STRIKE" the same statement. Only the first is a rule. Nothing changed on the wire: the agent is still served the same four names.
Three

The page never said which session it scanned

Stale rows are the failure that does not look like one. The numbers are right; the session is wrong; nothing about the row says so. The run timestamp was on the page, inside a sentence at the top of the section, which is not where anyone looks before reading a stop level.

Each table now carries a chip when its run is behind the newest scan on the page, saying how many days and what to do about it. The yardstick is the page rather than the clock, because the clock is wrong on exactly the mornings that matter: read on a Saturday it would call Friday's scan stale, and generated before an evening scan it would flag every table on the page.

STRIKE rows are 3 days old SWING — scanned this evening
Four

The pyramid rule was live for a week and never ran

Adding to winners was measured, written up and implemented on 16 September: add at +1R once the stop has reached breakeven, same rupee risk as the base, the add carrying its own stop, refused past +2R. It was a management command nobody invoked, so it fired zero times.

It is now scheduled every thirty minutes from 10:00 to 14:30 on weekdays and it is deliberately unarmed — it computes what has earned an add and places nothing. Arming it is a one-line change. The point of scheduling it unarmed first is to see it produce a correct list on live positions before it is allowed to act on one.

What this pattern is

A green heartbeat means dispatched, not "found something"

Three of these four were invisible for the same reason: the monitoring proves a job ran, and every one of them ran. Nothing anywhere asserts that a job that runs every weekday has ever produced a non-empty result. That is the check worth adding, and it is the same shape as the rule that produced zero setups for twenty sessions in September — a mechanism verified, an outcome never measured.

← Trading book · equity-service v157–v160 · 23 September 2026