Toolkit · Visitor planning
Ticketing Widgets
Live availability, sell-out warnings and better-day suggestions.
The problem
A visitor who drives four hours and can't get in is a worse outcome than one who books next month — but most ticketing systems give you no way to say “this day is nearly gone, try Tuesday” on your own website.
How it works
Six embeddable widgets refresh every fifteen minutes from your ticketing system's reporting API via a scheduled job. Your website reads a static file; no key ever reaches a browser.
Worth knowing
The modelling is smarter than a percentage. Percent-sold alone is misleading — a day can sit at 60% sold the night before and still sell out mid-morning from walk-up demand. Risk is therefore modelled as supply against expected demand for that weekday.
And it fails loudly by design: if the report structure ever changes, the job errors rather than quietly publishing wrong availability to visitors.
Using it at your organization
- Requires ACME Ticketing — the API client is the coupling.
- Thresholds and messaging live in a config file.
- The scheduled-job-writes-static-file pattern transfers to any ticketing platform.
Stack: Python (stdlib only) · GitHub Actions (15 min) · vanilla JS widgets
Licence: MIT — use, modify and redistribute freely, commercially or not.
Hosting: static files; no server required.
Related tools
Built for the Theodore Roosevelt Presidential Library and released for anyone to use. See all 19 tools, or read how the whole system is built.


