RHYTHM (Studio Cycle) Missing Bookings — Findings

Follow-up on the popit3/todo High Value item about two RHYTHM/Studio Cycle bookings (Sat 18 Jul 09:20 and Sun 19 Jul 11:35, Bristol Emersons Green) missing from the schedule while BODYPUMP for the same weekend synced fine.

Root cause: not a parser bug

The leading theory in the TODO — an unrecognised HTML template, by analogy with the PT session gap — is ruled out. Ran dl_email.parse_david_lloyd_email_part() directly against the 6 most recent David Lloyd booking emails in ~/.email3.mail.gdbm (UIDLs 183118–183921, spanning 16–17 Jul), including a RHYTHM one (UIDL 183118, ref DL-E8BE3D1-C5F4, Fri 17 Jul 07:15). All parsed correctly — activity, venue ('Studio Cycle'), coach, start/end all extracted as expected.

Root cause: no confirmation email was ever received

Scanned the full raw mail store (8157 messages, up to date through Sat 18 Jul 05:07 UTC — matches out.log's last cron run at 05:50). There is no booking confirmation email at all for the Sat 18 Jul 09:20 or Sun 19 Jul 11:35 sessions. The most recent RHYTHM confirmation in the mailbox is for Fri 17 Jul 07:15 (ref DL-E8BE3D1-C5F4). Nothing arrived after that for RHYTHM/Studio Cycle before the Sat 18 Jul snapshot cutoff.

Since popit3 only acts on mail it receives via POP3, and the parser demonstrably handles this exact email type correctly, there is nothing to fix in the pipeline itself for this case. The gap is upstream of popit3 — either David Lloyd never sent a confirmation for these two bookings, or it hasn't arrived by the snapshot time this was checked.

Alternative explanations ruled out

Documentation bug found along the way

popit3/ops documented the booking databases as living directly under ~/ (e.g. ~/.booksings_db2.gdbm). This is wrong — MyDavidLloydSchedule.py actually sets home=os.environ['HOME'], loc='.mail', so the real, live paths are ~/.mail/.booksings_db2.gdbm etc. (confirmed by mtime: Jul 17, vs. the ~/ copies which are untouched stale leftovers from Sep 16 2025). Fixed in the ops note. Anyone investigating booking data in future should use the ~/.mail/ paths — the root-level ~/.booksings_db2.gdbm/~/.booking_map2.gdbm files are dead and should be ignored (not deleted without checking further, in case they're a deliberate backup).

Not done / next steps

Status

created 2026-07-18