RIPPLE REFERENCE
touch of grey
Scorecard · Category 5 of 5

Everything You Need to Know About Attendance

Rung 3 of ten. The simplest rule on the ladder — an occurrence on that week's list means no bonus that week — and the one with the most human judgement sitting behind it, because somebody decides what counts as an occurrence before the rule ever sees it.

1 Damage 2 Terminated 3 Attendance 4 Safety 5 FICO 6 POD 7 CED 8 DC DPMO 9 CDF 10 DSB

The rule

On the week's attendance-occurrence list → Ineligible for that week. Not on it → the rung passes and the ladder moves on. Unlike Damage there is no multi-week window: an occurrence costs the week it happened in and nothing after it.

There is no threshold constant for this one, because there is no number — membership of a list is the whole test.

Where the list comes from

Jake Hallien's FICO tracker, read automatically by fico_tracker.py, the same source as Damage and Terminated. The same findings also arrive as Jake's weekly WK <N> ATTENDANCE CANCEL: messages in his Slack DM with Dan, posted after Jaimee has approved them.

That approval step matters for reading the list correctly. What arrives is not a raw log of who was late — it is the set of occurrences that survived review. Excusals have already been applied before the rule ever runs.

The list is not final when it first appears A week's attendance is settled only once Jake has confirmed it with Jaimee, updated the FICO workbook, and sent the screenshots — in practice around week 2 of the cycle, and not reliably on schedule. Right now the W37/W38 build is blocked on exactly this: the tracker has no daily columns past W36, so W37's attendance does not exist yet. recompute.py --check-tracker says so in one line.

The reason strings

Observed across roughly 15 real correction emails — the vocabulary people actually use, not a designed set, and explicitly not exhaustive. Anything unrecognised is flagged for Dan rather than bucketed on a guess.

On the sheet before anyone touches it

StringMeans
LateLate for the shift
Call Out - Same DayCalled out on the day
No Call / No ShowNeither

Corrections

StringMeansDirection
No NoticeAn occurrence with no notice given→ Ineligible
ExcusedAn override, not a data-driven correction→ Eligible
CCMeaning unclear. Possibly "Call/Callout", possibly "Contact Compliant". Seen a few timesFlagged for Dan — never guessed
Attendance and damage defectsBoth categories at once (seen once)→ Ineligible
A lead, not a confirmed equivalence Excused, No Notice and CC looked like pure discretion calls. Jake's Jaimee-approved WK <N> ATTENDANCE CANCEL: messages may in fact be the real data behind Excused and No Notice specifically — which would make them auto-checkable rather than judgement calls. That has not been validated against a real cycle yet, so all three still pass through to Dan.

Why this rung has its own cautionary tale

Attendance was promoted from a display note to a real exclusion on 2026-09-13. DIN6 gained the rung. DII5 did not — its copy of the ladder had been written earlier and nobody went back to it. For a week, a DII5 driver with a real attendance occurrence was paid a bonus that a DIN6 driver with the identical occurrence lost.

That is the concrete reason both stations now run one shared rules file. Dan, 2026-09-20: "both stations need to have the same exact rules." They do now — 3000, 98.0, 0.4 and 1822 had each been written down twice and the copies had already drifted. Unifying them was proven behaviour-neutral across 447 driver-weeks with 0 verdict changes, and a test now feeds an identical driver through both stations on every rung and fails if any verdict differs.

Why the fix changed nothing retroactively DII5's only built week, W36, has an empty attendance list — Jake posted DII5 WK 36 ATTENDANCE CANCEL: N/A. The rung will start firing there the first time he logs one.

Rung 2: Terminated

Its immediate neighbour, from the same tracker and the same Slack thread (WK <N> Terminations: <names>). Marked Term. that week means Ineligible; the correction string is simply TERM.

Not tracked on this site yet

Attendance data is not uploaded to the dashboards, so a DA's attendance reads "no events on file" here regardless of what the tracker says. The exclusion runs correctly in the payroll build — it is the display that has no source, not the rule.

The other four categories

Source of truth Rung order and behaviour from rules.py. Occurrence list from Jake Hallien's FICO tracker via fico_tracker.py. Reason strings from references/ripple-bonus-correction-vocabulary.md. Drift history from references/ripple-bonus-rules-at-a-glance.md. Last checked 2026-09-20.
Powered by dkdcreations