Lab: Plan and check the go-live week
Module 14 · Lab · About 60 minutes · Needs: lessons 1 and 2 of this module (site checklist, overlap, runbook paths, after-hours agreement, truck factor, load record)
What you are building
Wednesday 27 May 2026, week 11. The last release of the engagement, claims-api 1.0.0 under change CHG-0461 (added in this lab), goes out on Tuesday 2 June at 18:00 UK. The next morning all nine clerks start using the assistant, not just Joan, Dev and Priti. On Friday 5 June you hand over to Mei and Helen and leave.
Helen asks for the week as one plan she can read and rerun. You build it as seven pieces of data, each with a check that returns a list of problems, and then join them into one check. There is no model call: every check is plain Python. Everything at Harbourline and Larkfield is simulated.
The checks need the shared Dates block, unchanged.
from datetime import date, timedelta
COURSE_DATE = date(2026, 10, 9) # facts and model names checked on this day
DATA_AS_OF = date(2026, 3, 16) # the shared data is a snapshot from this morning
# England and Wales bank holidays in 2026, from gov.uk/bank-holidays
BANK_HOLIDAYS_2026 = [date(2026, 1, 1), date(2026, 4, 3), date(2026, 4, 6), date(2026, 5, 4),
date(2026, 5, 25), date(2026, 8, 31), date(2026, 12, 25), date(2026, 12, 28)]
def working_days_between(start, end):
"""Working days after `start`, up to and including `end` (weekends and bank holidays skipped)."""
days, d = 0, start
while d < end:
d += timedelta(days=1)
if d.weekday() < 5 and d not in BANK_HOLIDAYS_2026:
days += 1
return days
print(working_days_between(date(2026, 3, 3), date(2026, 3, 9))) # HF-88102: promised Tue, delivered Mon
print(working_days_between(date(2026, 4, 2), date(2026, 4, 7))) # across the Easter weekendCode walkthrough: copied from the course's shared data. working_days_between counts Monday to Friday, skipping bank holidays; it prints 4 and 1.