Skip to main content
Scenario Arena Run

Season Ticket Renewals

68dade2c-db04-494e-98b9-9a26c0b7a125

completed

All runs, fan cohorts, and outcomes shown here are produced by an autonomous synthetic simulation. No real teams, fans, or data are represented. This is a read-only view of persisted simulation output. Nothing on this page can be edited, approved, or promoted.

How to read this simulation

This page is an audit trail for one autonomous synthetic arena run. A strategy bot is stepping through a simulated season-ticket renewal scenario. Each tick is one saved simulation step. On each tick, the bot may take an action, fan cohorts react, KPI snapshots are persisted, and the updated run state is saved for the next cron or manual tick.

What happens on each tick?

  1. The run is claimed.
  2. The strategy bot reads the current scenario state.
  3. The bot applies deterministic strategy rules.
  4. One action is recorded.
  5. Each synthetic persona cohort reacts.
  6. KPI snapshots are saved.
  7. The updated run state is persisted for the next tick.
Glossary
Strategy Bot
The deterministic, rule-based program stepping through this scenario. Its decisions come from fixed configuration, not generated text.
Tick
One persisted simulation step. A 12-tick run is divided into 12 steps, advanced one at a time by a cron job or a manual smoke test.
Action
The single move the strategy bot made on a given tick: for example, sending a renewal offer or staying quiet for a cadence gap.
KPI Snapshot
A measurement (such as renewal rate or revenue attributed) recorded after a tick completes, so the run has a full time series, not just a final score.
Cohort State
The simulated state of one fan persona group after a tick: engagement, churn risk, and renewal likelihood at that point in the run.
Renewal Likelihood
The simulated probability, from 0–100, that a persona renews by the end of the run.
Reaction
A label describing how a cohort simulated responding to the latest action: for example, interested, ignored, or churn_risk_increased.
Synthetic Disclosure
A statement confirming that all personas, reactions, and metrics on this page are generated by simulation, not collected from real fans or real campaigns.

Latest Tick Summary

Latest Tick

12 / 12

Latest Action

Urgency Touch

Season Ticket Renewal Rate

35%

Win-Back Journey Revenue Attributed

$0

Average Days to Renewal (At-Risk Cohort)

No early renewal signal

Renewal Rate - Founding Loyalist Persona

41%

All values above are synthetic simulation outputs, not real fan or revenue data.

Admin Control Panel

The controls below are the Scenario Arena admin surface. Pause / Resume, Advance 1 Tick, and Queue Variable Change are wired to real requests — all three are protected server-side and require an ARENA_ADMIN_SECRET header, which this panel sends only when you submit one of those controls. Queue Variable Change is audit-only — it records an audit event and does not change simulation behavior yet. Every other control below remains a preview or is not yet implemented; wiring them up is deferred to follow-up PRs.

Secret is held only in this browser component state and is not persisted. It is never written to localStorage, sessionStorage, a cookie, or a log. It is sent only as the x-arena-admin-secret header when you click Pause, Resume, or Advance 1 Tick, or submit Queue Variable Change.

○ Locked — enter a secret to unlock Pause/Resume, Advance 1 Tick, and Queue Variable Change

Pause / Resume

Pauses or resumes this run so the tick cron skips or resumes claiming it. Current state: not paused.

POST /api/arena/runs/68dade2c-db04-494e-98b9-9a26c0b7a125/control

Advance 1 Tick

Manually runs one deterministic tick for this run, outside the cron schedule. Current tick: 12 / 12.

POST /api/arena/runs/68dade2c-db04-494e-98b9-9a26c0b7a125/tick

Queue Variable Change

Records an audited request to change scenario variables. Audit event only — this does not change simulation behavior yet.

POST /api/arena/runs/68dade2c-db04-494e-98b9-9a26c0b7a125/variable-events

Advance N Ticks

Advance several ticks in one request. Not yet implemented.

Run to Completion

Advance every remaining tick until the run completes. Not yet implemented.

Operator Event Timeline

These events show admin/operator interventions made during the synthetic run. They do not represent fan behavior. They explain when the simulation was paused, resumed, manually advanced, or when future variable changes were queued.

Control Events (pause / resume / manual tick)

Control event legend: what each label means
Pause (pause)
An operator paused this run, blocking the cron claim pool from advancing it further.
Resume (resume)
An operator resumed a paused run, making it claimable by the cron claim pool again.
Manual Tick (manual_tick)
An operator manually advanced this run by exactly one tick, outside the normal cron schedule.
Manual Tick Batch (manual_tick_batch)
An operator manually advanced this run by more than one tick in a single request.
Run to Completion (run_to_completion)
An operator manually advanced this run to its final tick.
EventOccurredActorDetails
PauseJul 1, 2026, 12:04 AMarena-adminPreviously paused at: not paused.
ResumeJul 1, 2026, 12:04 AMarena-adminPreviously paused at: Jul 1, 2026, 12:04 AM.
Manual TickJul 1, 2026, 12:21 AMarena-adminTick 6 → 7 · completed: no · was paused: no
PauseJul 1, 2026, 12:21 AMarena-adminPreviously paused at: not paused.
Manual TickJul 1, 2026, 12:21 AMarena-adminTick 7 → 8 · completed: no · was paused: yes
ResumeJul 1, 2026, 12:21 AMarena-adminPreviously paused at: Jul 1, 2026, 12:21 AM.

Variable-Change Events (queued, audit-only)

These are audit records of requested variable changes. They record intent only: the current control endpoint does not apply changes to bot behavior, so every row below is an audit event, not a state change.

TickOccurredChanged ByDetailsStatus
9Jul 1, 2026, 12:58 AMarena-admin

Variable set: baseline-30day-generic → recognition-access · Overrides: urgencyLevel: low

Reason: Testing recognition-led renewal behavior

Audit event only

Strategy Bot

Renewal Bot Alpha

Runs the Baseline 30-Day Generic Renewal Campaign variable set: a single price/deadline-led message starting 30 days out, no persona segmentation. Represents the pre-FanSignal status quo.

Tick Progress

12 / 12

A tick is one persisted simulation step, not a real-world day, email, or fan interaction. Vercel Cron advances ticks automatically in production; manual smoke tests can also advance one. The final tick can complete the run and create a draft synthetic case study. Nothing is promoted automatically.

Created

Jun 30, 2026, 8:13 PM

Completed

Jul 1, 2026, 2:30 AM

KPI Snapshot Timeline

How to read this table: each row is one KPI measurement recorded after a tick completed. The same KPI reappears once per tick it was measured, so reading a single KPI top-to-bottom shows how that metric moved over the course of the run.

TickKPIValue
1Average Days to Renewal (At-Risk Cohort)No early renewal signal
1Renewal Rate - Founding Loyalist Persona64%
1Season Ticket Renewal Rate50%
1Win-Back Journey Revenue Attributed$0
2Average Days to Renewal (At-Risk Cohort)No early renewal signal
2Renewal Rate - Founding Loyalist Persona65%
2Season Ticket Renewal Rate50%
2Win-Back Journey Revenue Attributed$0
3Average Days to Renewal (At-Risk Cohort)No early renewal signal
3Renewal Rate - Founding Loyalist Persona54%
3Season Ticket Renewal Rate44%
3Win-Back Journey Revenue Attributed$0
4Average Days to Renewal (At-Risk Cohort)No early renewal signal
4Renewal Rate - Founding Loyalist Persona55%
4Season Ticket Renewal Rate45%
4Win-Back Journey Revenue Attributed$0
5Average Days to Renewal (At-Risk Cohort)No early renewal signal
5Renewal Rate - Founding Loyalist Persona47%
5Season Ticket Renewal Rate40%
5Win-Back Journey Revenue Attributed$0
6Average Days to Renewal (At-Risk Cohort)No early renewal signal
6Renewal Rate - Founding Loyalist Persona48%
6Season Ticket Renewal Rate40%
6Win-Back Journey Revenue Attributed$0
7Average Days to Renewal (At-Risk Cohort)No early renewal signal
7Renewal Rate - Founding Loyalist Persona42%
7Season Ticket Renewal Rate37%
7Win-Back Journey Revenue Attributed$0
8Average Days to Renewal (At-Risk Cohort)No early renewal signal
8Renewal Rate - Founding Loyalist Persona43%
8Season Ticket Renewal Rate37%
8Win-Back Journey Revenue Attributed$0
9Average Days to Renewal (At-Risk Cohort)No early renewal signal
9Renewal Rate - Founding Loyalist Persona36%
9Season Ticket Renewal Rate34%
9Win-Back Journey Revenue Attributed$0
10Average Days to Renewal (At-Risk Cohort)No early renewal signal
10Renewal Rate - Founding Loyalist Persona38%
10Season Ticket Renewal Rate34%
10Win-Back Journey Revenue Attributed$0
11Average Days to Renewal (At-Risk Cohort)No early renewal signal
11Renewal Rate - Founding Loyalist Persona39%
11Season Ticket Renewal Rate35%
11Win-Back Journey Revenue Attributed$0
12Average Days to Renewal (At-Risk Cohort)No early renewal signal
12Renewal Rate - Founding Loyalist Persona41%
12Season Ticket Renewal Rate35%
12Win-Back Journey Revenue Attributed$0

Action Timeline

Action legend: what each label means
Intervention Start (intervention_start)
The first outreach of the run, introducing the renewal offer to every fan cohort.
Cadence Touch (cadence_touch)
A regularly scheduled touch sent between the intervention start and the deadline.
Quiet Tick (quiet_tick)
No outreach this tick — the campaign's cadence intentionally skipped this step.
Service Recovery (service_recovery)
A mid-run touch aimed at repairing trust with fans flagged for service recovery.
Urgency Touch (urgency_touch)
A final, deadline-driven touch sent near the end of the run.
Build Behavioral ROI Report (build_behavioral_roi_report)
Builds the partner ROI case around fan behavior — activation-to-purchase, app engagement lift, loyalty redemption — instead of media impressions. Also surfaces the sponsor health score.
Map Persona–Partner Affinity (map_persona_partner_affinity)
Maps which fan archetypes engage with which partner categories, to target activations at the cohorts that convert.
Flag Partner Renewal Risk (flag_partner_renewal_risk)
A mid-run touch that proactively flags a partner whose activation rate is declining, before the renewal conversation.
Create Mid-Season Activation Report (create_midseason_activation_report)
Produces a partner-facing mid-season activation report so the sponsor sees behavioral lift ahead of renewal.
Reframe Renewal Proposal (reframe_renewal_proposal)
A final-tick touch that reframes the renewal proposal around behavioral proof rather than reach.
Present Media Metrics (present_media_metrics)
The old-model touch: a reach-only media deck (impressions, signage, broadcast mentions) with no behavioral proof.
Score Churn Risk (score_churn_risk)
Scores early churn risk from behavioral signals such as attendance velocity, engagement decay, service sentiment, or purchase recency.
Segment Win-Back Journey (segment_winback_journey)
Routes at-risk fans into persona-specific retention journeys instead of one generic lapsed-fan campaign.
Resolve Visit Friction (resolve_visit_friction)
Targets practical friction, such as parking, family logistics, or venue uncertainty, before it turns into churn.
Route Service Recovery (route_service_recovery)
Sends service-issue cohorts into a recovery touch before dissatisfaction becomes a lapsed-fan outcome.
Escalate High-LTV Outreach (escalate_high_ltv_outreach)
Escalates valuable or relationship-managed fans to human outreach while the save window is still open.
Send Venue Bridge Offer (send_venue_bridge_offer)
Uses arena-event affinity to bridge a fan back into a low-friction sports attendance path.
Launch Win-Back Offer (launch_winback_offer)
Sends the late-stage reactivation offer for fans still at risk near the modeled lapse point.
Send Generic Win-Back Blast (send_generic_winback_blast)
The old-model retention touch: a generic discount blast sent after annual lapsed-fan classification.
Flag Fan Churn Risk (flag_fan_churn_risk)
A proactive mid-run flag that surfaces cohorts whose retention propensity needs intervention before lapse.
Score Readiness to Convert (score_readiness_to_convert)
Scores digital fans on readiness-to-convert from engagement recency, depth, intent, and crossover signals — a fan who watched multiple full-game streams is not the same as a fan who opened one welcome email.
Send Game Day Education (send_game_day_education)
Sends the education-before-offer sequence that removes first-visit anxiety: parking, seating, food, and schedule logistics.
Capture Fan Bot Intent (capture_fanbot_intent)
Captures first-time buyer intent signals from Fan Bot conversations — game day questions, family logistics, seating options — and routes them into the first-timer journey.
Recommend First Game (recommend_first_game)
Recommends the right first game for the cohort — family day, themed night, lower-stakes inventory, or an arena-event bridge match — instead of pushing playoff-priced tickets.
Send First-Timer Offer (send_first_timer_offer)
Sends the first-game ticket offer once the education and recommendation steps have run.
Route High NPS to Second Purchase (route_high_nps_to_second_purchase)
Routes high-satisfaction first-time attendees toward a second purchase and the season-ticket pipeline.
Send Mass Acquisition Blast (send_mass_acquisition_blast)
The old-model touch: the same untargeted first-game ticket offer emailed to the entire digital-fan database, with no education or segmentation.
Flag High-Intent Prospects (flag_high_intent_prospects)
A proactive mid-run flag that surfaces digital-fan cohorts whose intent signals indicate they are ready for a first-game offer.
Score Per-Cap Potential (score_per_cap_potential)
Scores each fan cohort's per-cap concessions upside from ordering behavior — adoption gaps, section spend patterns, and premium potential — instead of treating concessions as a pure operations problem.
Send Pre-Game Ordering Education (send_pregame_ordering_education)
Sends the pre-arrival mobile ordering education sequence that removes first-order friction: how to order, where to pick up, and when lines peak.
Send First-Order Incentive (send_first_order_incentive)
Delivers a first-order incentive to mobile-ordering non-adopters before arrival — a pre-game offer outperforms an in-venue prompt.
Recommend Section Ordering (recommend_section_ordering)
Recommends the right ordering path for the cohort's section — express pickup points and low-wait windows for the sections with the least queue tolerance.
Send Persona Menu Bundle (send_persona_menu_bundle)
Sends a persona-matched menu bundle — family value combos for family cohorts, premium items for club sections — instead of one menu for everyone.
Run Service Speed Recovery (run_service_speed_recovery)
A touch aimed at repairing in-venue service-speed frustration — queue relief and express-lane routing for cohorts whose satisfaction is line-limited.
Route High Spend to Premium (route_high_spend_to_premium)
Routes the highest per-cap cohorts toward premium inventory and club offerings at the marquee event.
Send Static Menu Promo (send_static_menu_promo)
The old-model touch: the same untargeted in-venue promo blast for every fan, with no connection between ordering behavior and fan identity.
Flag Per-Cap Opportunity (flag_per_cap_opportunity)
A proactive mid-run flag that surfaces cohorts with untapped per-cap concessions upside — high-LTV segments that never adopted mobile ordering.
Score Cross-Sell Affinity (score_crosssell_affinity)
Scores each sports-fan cohort's concert cross-sell affinity from in-venue behavior, event crossover attendance, and content engagement — a fan's relationship is with the venue, not the tour.
Send Venue Content Bridge (send_venue_content_bridge)
Sends arena programming content that builds familiarity with the venue as an entertainment destination before any ticket ask.
Send Matched Show Announcement (send_matched_show_announcement)
Announces the show matched to the cohort's affinity — artist, genre, family show, or comedy night — instead of blasting every show to everyone.
Offer Cross-Sell Presale (offer_crosssell_presale)
Offers presale access to sports cohorts as a venue-relationship benefit — early access converts fans who have already crossed the familiarity threshold.
Send Game-Day Concert Bundle (send_gameday_concert_bundle)
Sends a game+concert bundle offer that uses the sports habit as the on-ramp to a first concert purchase.
Offer VIP Concert Upgrade (offer_vip_concert_upgrade)
Offers premium and corporate cohorts a VIP concert experience — suites, club access, hospitality — matched to their spend profile.
Route Dual-Buyers to Next Show (route_dual_buyers_to_next_show)
Routes converted dual-buyers toward the next show on the calendar, turning a first crossover into a repeat events habit.
Send Mass Concert Blast (send_mass_concert_blast)
The old-model touch: the same untargeted concert announcement to the whole database, with no bridge from sports-fan identity to concert intent.
Flag Concert-Affinity Prospects (flag_concert_affinity_prospects)
A proactive mid-run flag that surfaces sports-fan cohorts whose affinity signals indicate they are ready for a concert cross-sell offer.
Score Satisfaction Risk (score_satisfaction_risk)
Scores each fan cohort's satisfaction risk from in-moment signals — low NPS flags, Fan Bot escalations, section hotspots — instead of waiting for the annual survey.
Route Service Recovery Journey (route_service_recovery_journey)
Routes cohorts with detected service issues into the recovery journey: acknowledgment and resolution before any commercial message.
Send Resolution Acknowledgment (send_resolution_acknowledgment)
Confirms to the affected cohort that its issue was heard and resolved — closing the loop before the fan is asked for anything.
Suppress Commercial Pressure (suppress_commercial_pressure)
Holds renewal and offer messaging for cohorts with an open service issue — a renewal ask on top of an unresolved complaint accelerates churn.
Empower Frontline Resolution (empower_frontline_resolution)
Resolves section-level service issues on the spot through empowered frontline staff, before the fan leaves the venue.
Send Goodwill Gesture (send_goodwill_gesture)
Follows a resolved issue with a goodwill gesture matched to the cohort — repairing the relationship, not just the transaction.
Route Post-Game Survey (route_postgame_survey)
Collects post-game micro-survey responses and routes low scores straight into the recovery journey while the experience is fresh.
Route Recovered to Renewal (route_recovered_to_renewal)
Routes cohorts whose satisfaction recovered back onto the renewal path once resolution is confirmed.
Send Annual Survey Blast (send_annual_survey_blast)
The old-model touch: the annual post-season survey plus a generic apology blast, sent while renewal offers keep flowing to dissatisfied fans.
Flag Dissatisfaction Risk (flag_dissatisfaction_risk)
A proactive mid-run flag that surfaces cohorts whose satisfaction propensity is deteriorating before dissatisfaction compounds into churn.
TickActionOccurred
1intervention_startJun 30, 2026, 8:16 PM
2cadence_touchJun 30, 2026, 8:16 PM
3cadence_touchJun 30, 2026, 10:30 PM
4cadence_touchJun 30, 2026, 11:00 PM
5cadence_touchJun 30, 2026, 11:30 PM
6cadence_touchJul 1, 2026, 12:00 AM
7cadence_touchJul 1, 2026, 12:21 AM
8cadence_touchJul 1, 2026, 12:21 AM
9cadence_touchJul 1, 2026, 1:00 AM
10cadence_touchJul 1, 2026, 1:30 AM
11urgency_touchJul 1, 2026, 2:00 AM
12urgency_touchJul 1, 2026, 2:30 AM

Cohort State by Persona

Engagement and churn risk are synthetic 0–100 scores, not measurements of real fans. Renewal likelihood is the simulated probability that a persona renews at that tick. Reaction labels describe how the cohort simulated responding to the latest action. These are synthetic cohort records, not real fan records or real customer predictions.

concert-first-arena-visitor
TickStageEngagementChurn RiskRenewal LikelihoodReaction
1first-touch356235%churn_risk_increased
2first-touch356230%churn_risk_increased
3first-touch356227%churn_risk_increased
4first-touch356224%churn_risk_increased
5first-touch356221%churn_risk_increased
6first-touch356219%churn_risk_increased
7first-touch356217%churn_risk_increased
8first-touch356216%churn_risk_increased
9first-touch356215%churn_risk_increased
10first-touch356214%churn_risk_increased
11first-touch356215%ignored
12first-touch356216%ignored
corporate-buyer
TickStageEngagementChurn RiskRenewal LikelihoodReaction
1engaged743157%negative_response
2engaged743158%ignored
3engaged743149%negative_response
4engaged743150%ignored
5engaged743144%negative_response
6engaged743145%ignored
7engaged743140%churn_risk_increased
8engaged743141%ignored
9engaged743136%churn_risk_increased
10engaged743137%ignored
11engaged743138%ignored
12engaged743140%ignored
first-time-family-attendee
TickStageEngagementChurn RiskRenewal LikelihoodReaction
1first-purchase625842%delayed
2first-purchase625842%delayed
3first-purchase625842%delayed
4first-purchase625842%delayed
5first-purchase625842%delayed
6first-purchase625842%delayed
7first-purchase625842%delayed
8first-purchase625842%delayed
9first-purchase625842%delayed
10first-purchase625842%delayed
11first-purchase625842%delayed
12first-purchase625842%delayed
lapsed-playoff-fan
TickStageEngagementChurn RiskRenewal LikelihoodReaction
1lapsed187819%churn_risk_increased
2lapsed187819%ignored
3lapsed187818%churn_risk_increased
4lapsed187818%ignored
5lapsed187817%churn_risk_increased
6lapsed187817%ignored
7lapsed187816%churn_risk_increased
8lapsed187816%ignored
9lapsed187815%churn_risk_increased
10lapsed187816%ignored
11lapsed187816%ignored
12lapsed187816%ignored
season-ticket-holder
TickStageEngagementChurn RiskRenewal LikelihoodReaction
1loyal912264%negative_response
2loyal912265%ignored
3loyal912254%negative_response
4loyal912255%ignored
5loyal912247%negative_response
6loyal912248%ignored
7loyal912242%negative_response
8loyal912243%ignored
9loyal912236%churn_risk_increased
10loyal912238%ignored
11loyal912239%ignored
12loyal912241%ignored
womens-team-growth-fan
TickStageEngagementChurn RiskRenewal LikelihoodReaction
1awareness444852%delayed
2awareness444852%delayed
3awareness444852%delayed
4awareness444852%delayed
5awareness444852%delayed
6awareness444852%delayed
7awareness444852%delayed
8awareness444852%delayed
9awareness444852%delayed
10awareness444852%delayed
11awareness444845%negative_response
12awareness444841%negative_response
← Case Studies