Batch 27 — clearing the runway
To answer the subject line of your email: by our count this is Batch 27, and it reads like a team clearing a runway. Items one through eight of the doc were the July batch — all verified still in place, every sub-item, before we touched anything new. What follows is nine through fifteen.
The biggest structural change: past events now put themselves away. You named the real cost — deleting old events one at a time is ongoing labor at volume, and deletion always felt risky. So nothing gets deleted anymore. Once an event’s final date passes — and for a series that means its last date, not its first — it archives itself: off the homepage map, out of the finder, out of your Approved list, into a new Archived Events section on the admin page where a Restore button brings any of it back. First: your architecture question has a clean answer — every event carries its own copy of the venue name and address, a snapshot of the venue as it was that night, so archiving an old event loses nothing about the venue. That’s also why archiving is safe where deleting felt scary. Second, a call made on your behalf: those wrong-year events from the bulk tool that used to glow with a warning badge now auto-archive like anything else past-dated — which means they hide themselves. They land in Archived rather than vanishing, so a quick skim of that section after a big bulk import is the new habit to keep.
The series generator got the investigation it deserved, and here is the honest verdict: the date math was never wrong. We pinned it down with tests across month boundaries, the daylight-saving switch, and off-day anchors — every generated date lands on the asked-for weekday. What was wrong was the trap you walked into: the “continuous run — end date” box means every single day from the event date through the end date. Type a Monday and an end-of-July date into it hoping for “Mondays through July” and you legitimately get thirty-one daily events — and the old preview only showed the first six dates, so the wrong list hid behind a “+25 more.” Now the preview shows every date with its weekday — “Mon Jul 6, Mon Jul 13” — the continuous-run box announces exactly what it will do before you save, and the one-per-line dates field (whose return key we fixed as item 10 — it was eating the newline the moment you typed it) lets you hand-patch any list. A silently wrong list with no way to inspect it, as you said, is how this went unnoticed. It can’t hide anymore.
And payment processing joined the negotiation table, exactly on the alcohol-coverage pattern you liked. A venue says whether it provides POS or the concept must bring its own; a concept says whether it brings its own or needs the venue’s. When the answers agree on who carries it, the line settles itself. When both offer, it asks whose system runs the night. When each side expects the other — the quiet assumption that torpedoes an event at the door — it surfaces as a value conflict right on the payment line, negotiable, never hidden. Your reminder sentence sits under the concept’s field word-for-word, nudging everyone toward bringing their own Square. Profiles that haven’t answered generate no line at all, so nobody wakes up to a new red mark they never asked about.