Storefront
- All-in price rendered before any other price. FTC 16 CFR 464 compliant by design.
- Event landing with performance dates, tiers, and lowest all-in price.
- Guest checkout. No forced account creation. Account offered post-purchase.
- Multi-night selection, reserved-seat picker, GA quantity stepper.
- Round-up donation with the plain statement that donations are not fee'd.
- Email, SMS, and Apple Wallet delivery for tickets.
Gate scanner
- Installable PWA. Works with the phone offline.
- IndexedDB manifest of tonight's tickets, refreshable when there is signal.
- Camera scan via the Barcode Detection API with a manual entry fallback.
- Verdicts: ok, duplicate, wrong night, wrong event, voided, not yet valid, not found.
- Color, glyph, and one-word headline all carry the same meaning so the screen survives glare and color blindness.
- Sell mode for counter POS. Will-call lookup by name, phone, or order number.
- Shift close-out with cash owed and scan tally.
Committee console
- Dashboard opens with what needs attention: nights nearly sold out, drafts past their on-sale date, held payouts, hold-sweep anomalies.
- Prior-year comparison at the same days-before-rodeo.
- Channel mix: online vs partner vs box office, from real ledger rows.
- Event editor: name, venue, description, performances, tiers, publish and unpublish.
- Live all-in preview next to every face price the treasurer types.
- Draft state via events.published_at. Nothing sells before you publish.
Partner program
- Short link and QR code per partner. Print-ready 11x17 poster and 4x6 counter card generated by the site.
- Counter POS at partner locations. Cash or card. Prints or texts the ticket.
- Cash sales enter a partner ledger. Netted against commission at payout.
- Earnings ledger. Every commission line traceable to the order. Clawbacks shown with reason.
- Stripe Connect payouts. Bill flow when net goes the other way.
Money
- Every fee snapshotted into an append-only ledger at charge time. Historical fees never recomputed from current config.
- Fee math runs through a single engine at charge time. Merch, camping, and add-ons cost 4.9% flat; tickets add $1.25 apiece. Buyers see the all-in total up front.
- Post-event payout with a reserve. Rained-out rodeos do not become platform chargebacks.
- Chargeback and refund handling wired through the ledger.
- Inventory holds enforced by Postgres row locks. Two buyers cannot pay for the same seat.
Platform console
- Cross-tenant GMV and platform margin by revenue stream, from the ledger.
- Tenant list with Stripe Connect state and payout policy.
- Onboarding queue: applicant through KYC through fee agreement to go-live.
- Held payouts, open disputes, negative balances, sweep anomalies on the overview.
- Read-only impersonation enforced by database policy. Read-write impersonation logged and visible to the committee.
What is not on this list
Sponsor delivery reporting, seat-map uploads, and the sponsor creative-serving pipeline. Those exist as UI shells today with honest empty states while the schema lands. If any of those matter to your evaluation, ask; we will name a date.