Feeds
CSV, warehouse, or append-only events. Closed periods do not mutate.
A feed is how quantity arrives. Scrip does not scrape a product UI.
CSV
Minimum columns: book_id, meter, quantity, occurred_at. Optional: seat_id, job_id.
Warehouse
Point the book at a versioned query. Changing the query is a spec change.
API events
Append-only for an open period. After close, new facts are correction stubs.
book_id,meter,quantity,occurred_at
bk_91,API-INCL,100000,2026-03-31T23:59:59Z
bk_91,API-OVG,2410,2026-03-31T23:59:59Z