I built a Python engine that parses the weekly grids, reconstructs the full month's schedule, looks up each show in a catalog for format, genre, rating and children's-content flags, and fills the official DPG and MCR Excel templates exactly as the regulator expects.
Operators use an n8n form: pick the month, enter a recipient, and upload the grid workbooks. The engine runs as an internal HTTP service. Gotenberg converts the workbooks to PDF, and n8n emails back the xlsx and PDF files with the compliance percentage per report, every data warning, and any titles missing from the catalog.
The show catalog was seeded from 313 historical report tabs, so the engine starts from the network's real history instead of an empty list.