Every screen the product must include, categorised by how often users interact with it. Main Operation screens drive daily work · Setup screens are touched once per event (or per year) · Rare / Modification screens fire on exceptions, audits, and edge cases.
Daily-use screens. Staff, operators, and external clients/suppliers live here.
Role-routed landing. Inventory & Distribution Command Center design: KPIs (Total Sold / Purchased / Allocated / Pending Dispatch), Action Center (urgent items), Match Summary Widgets, Stock Overview, Open Distribution CTA.
Grid/list of all events. Status pills (DRAFT / PLANNING / BUYING / SELLING / ALLOCATING / DISPATCHING / CLOSED / ARCHIVED). Quick filters by type.
Event overview with matches list, per-match inventory dashboard (Category × Purchased / Sold / Remaining / Oversold-alert), status transitions, match result entry for placeholder resolution.
Table of purchases with vendor · match · category · qty · price. Drill-down drawer shows expanded units, per-unit allocation status, seat position.
Manual entry or CSV bulk import tabs. Vendor / match / category / qty / price per line. Auto-expands to N _PURCHASE_UNITS on save. Optional: attach contract doc, deposit, delivery channel.
Table of sales with client · multi-match support · credit status · allocation status · oversell indicators. Drawer with line-item details.
Revised form layout: client typable-autocomplete at top · USD/EUR currency only (no FX) · match field moves to each line item (one client can buy across multiple matches in one sale). Real-time inventory feedback per line (green/amber/red).
The operational center. Table of unallocated + allocated distribution rows. Side drawer opens for allocation. Special Handling panel for unallocate / override / reset. Bulk allocation by SetID.
Shows top-6 candidate plans with scores, chunks, vendor mix, margin delta, policy violations. Operator picks one to commit.
Filtered dispatch queue. Tabs: All / Not Sent / Sent / Issues. "Assigned to me" toggle. Priority + status pills.
Full task: INV_NO · vendor creds (show/hide · PASSWORD_VIEWED audit) · client details · activity log. Mark SENT with proof URL.
Token-gated. Advanced filter bar (match · category · delivery · block/row · ticket holder). Yellow editable block (AB–AF). Copy-down button. Accept / Confirm Receipt (per-ticket, bulk, filtered-bulk). Column P = purchased, Q = allocated.
Token-gated (FEW suppliers only). Company=MIRRA redacted. Pre-generated from Purchases; allocated client detail streams in. Editable Delivery (adds UPLOADED value) + DispatchNotes. Confidentiality banner.
Internal view: all FEW-supplier portals, their token status, last activity, dispatch progress per supplier. Regenerate / refresh links.
Tabbed: Event Summary · Inventory Health · Allocation Progress · Dispatch Status · P&L. Drill-down by match / subgame. Charts (pie · bar · line).
Email + password. Demo-account chips for quick role-switching during development. Redirects by role after login.
Configuration screens — set once per event, per venue, or per calendar year.
Org name · address · timezone · default currency · contact / support emails · fiscal year. One-time on install.
Default thresholds: priceChangeApprovalThreshold · dispatchBuffer · portalTokenExpiry · session timeout · audit retention · default allocation strategy.
Currently restricted to USD + EUR (per new rule). Retained for future expansion; no FX field on the Sale form.
Name · city · country · timezone · capacity · address · map URL. Cross-event.
New requirement. Upload stadium layout (Blocks · Rows · Seats · optional X/Y). Paint category zones. Capacity sanity check. Enables visual allocation.
Company · type (CORPORATE/AGENCY/INDIVIDUAL) · credit limit · payment terms · tax ID · VIP flag. Used by Sale form autocomplete.
Name · type (MARKETPLACE/DIRECT/AGENCY) · country · primary contact · website. Used by Purchase form.
PURCHASE or SALE · party × event · valid dates · maxValue · currency · document attach.
Login ID + email + password per vendor (optionally per event). Event-specific wins over global fallback.
10 seed templates. Code · name · channels (email/WhatsApp/Slack/in_app) · subject · body markdown · variables · active. Triggers linked.
Add / deactivate users. Roles: super_admin · event_admin · ops_manager · sr_operator · operator · staff · client · supplier.
New requirement. Drag-drop / browse .xlsx/.csv. Auto-detects FIFA vs Olympics flat shape. Column mapper UI. Creates Matches/SubGames/Categories/Venues in bulk. Handles placeholder teams.
Name / scope / mode (SUGGEST / SEMI_AUTO / FULLY_AUTO) · vendor whitelist/blocklist · margin floor · split policy · VIP exclusion · rank gaps · auto-commit cap.
Exception-path screens — fired on audit, override, recovery, or post-event. Not part of the daily loop.
Unallocate sale · unallocate by SetID · reset seats · set/clear AllocFromCategory. Requires typing UNDO + reason. Writes to _ALLOC_LOG.
Approve override / reject / upgrade. Manager-only. Triggered when sale line qty > inventory at sale time.
Proposes higher-tier category with recalculated price + margin. Sets AllocFromCategory on acceptance.
New requirement. Enter winner/loser for a knockout match. Triggers placeholder resolution cascade. Notifies affected clients.
Bulk-edit screen for resolving TBD / Qualifier N / Winner-of-X after draws / results.
Void sale post-creation. Auto-unallocates all child DistRows (units → AVAILABLE). Appends CANCEL_SALE to _ALLOC_LOG. Refund flow triggered.
Sales tab vs Distribution row count diff. Actions: KEEP · DELETE_CANDIDATE · MANUAL_REVIEW · PROTECTED_EXCESS · MISSING_IN_DIST. Tick Process_Now to re-sync.
9 integrity checks. Severity: CRITICAL / HIGH / MEDIUM. Summary row shows invariant: unique UnitIDs referenced == allocated units count.
_ALLOC_LOG append-only. Actions: ALLOCATE · UNDO_SALE · UNDO_SET · RESET_SEATS · SET/CLEAR_ALLOC_FROM_CATEGORY · CANCEL_SALE · PASSWORD_VIEWED · credential CRUD · event transitions.
Per-credential timeline: CREATED · UPDATED · DEACTIVATED · PASSWORD_VIEWED. Actor + timestamp + details. Drives compliance.
Show/hide password on vendor creds. Reveal fires PASSWORD_VIEWED audit with actor + timestamp. Auto-hide after 30s.
New requirement. Rubber-band lasso on rendered map. "Consecutive seats" enforcement. Distance-proximity scoring. Writes Block/Row/Seat onto DistRows.
Move event between DRAFT → PLANNING → BUYING → SELLING → ALLOCATING → DISPATCHING → CLOSED → ARCHIVED. Each transition gates which screens are usable.
Change between FIFA scheme (Top Cat 1, Cat 1–4) and Olympics scheme (First, A–E) on an existing event — for data migration / cleanup.
Occasionally organisers publish revised schedules (venue / time changes). Re-import with merge semantics (preserves sales, updates match metadata).
Sent / failed notifications. Payload · recipients · channel · retryCount · error. Resend / debug.
Invalidate a token (security incident / client offboarding). Generate new token. Notify recipient with new URL.
Invoice generation · vendor settlement · refund tracking · margin report. Workflow TBD — open product decision.
Export event as CSV/Excel/PDF. Manual retention policy trigger. GDPR-style client data-subject requests.