Event Operations Center
| Event | Brand | Date | Target | Booked | Revenue Pacing | Sponsors | Anchor | Churn% | ML Renewal | Health |
|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
⚠ -- | -- | -- | ||||||
| Opportunity | Account | Event | Stage | Amount | Close Date | Age | Last Activity |
|---|---|---|---|---|---|---|---|
|
|
STALE |
| Event | Brand | Target | Booked | PY Booked | YoY | Verdict | Sponsors | Retained | Churned | Net New | Exports |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
-- |
|
|||||||||
|
Exports unlock after Submit
Ops report
Newsletter
Loading form…
Submitted
· Newsletter
Last saved
·
This form does not auto-fill your name or email. Optional contact details can be added in the fields above if you choose. |
|||||||||||
YoY event-sponsor count is not the right number. It conflates "did this event keep its sponsors" with "did the underlying account stay engaged with us" — and our portfolio shifts. An account drops Event A and picks up Event B, and the per-event metric flags churn even though the relationship is intact.
The defensible number is account-level retention. Take every account that bought a sponsorship in ; ask whether they bought again in — any event, any tier, any brand. That's . Layer dollars on top: Gross Revenue Retention caps each retained account at no-expansion-credit so it isolates "did we keep last year's money"; Net Revenue Retention rolls in expansion. The cohorts then localize the leak.
First-year sponsors renew at — not the multi-year cohort's . Once an account makes it past their second sponsorship, they tend to stay. The renewal motion is failing in year two, not year five.
came back in but spent at least 25% less than the prior year. They're still customers — but the relationship is visibly cooling. These are the ones whose disinterest you can intervene on before it becomes churn.
An account that paid us $30K for Event A in PY and now pays us $30K for Event B in CY is retained, even though Event A's sponsor count went down. Per-event YoY metrics will under-count this account's loyalty. The Logo Retention Rate above — portfolio-agnostic — is the only metric that gets it right.
that bought from us in have zero won revenue in so far. Some have an open opp; many do not. Either way, the absence of a CY conversation is the signal — the Action Queue → Relationship Risk feed surfaces the silent ones with prior-year value behind them.
Download every value behind these KPIs as an Excel workbook: one sheet per intermediate computation (PY & CY universes, won line items, secondary-line exclusions, bucket assignments, cohort lists, account × year revenue pivot) with raw + 18-char Salesforce IDs and friendly names. Hand to your SF administrators to reproduce the headline numbers from raw CRM data. Honors the toggle above.
Methodology — how each number is built
White glove lists Closed Won first-time buyers only. Closed-lost attempts and open opps without a win do not appear here — those stories live under Retention → Action Queue → Year-2 Watch. Next calendar year, today’s white-glove accounts either show a CY win or they stay on that rescue queue.
Operational framing — not automated sends. Rep-owned cadence tied to event timing.
| Urgency | Account | Owner | CY $ | Open opp $ | CY event | Phase | Opp | Signal | |
|---|---|---|---|---|---|---|---|---|---|
|
|
Open Closed No opp | ||||||||
| No rows match your search (or the cohort is empty). | |||||||||
Methodology — cohort definition
LastYearsEventId or matching EventSeriesName at year − 1). Each line counts a prior-year won sponsor on the paired instance who does not have Closed Won on the current instance (event-slot basis; matches Command Center).
· paired,
skipped (no prior-year baseline — inaugural or unlinked series)
| Series | Brand | Churned | Lost Revenue | Prior | Retained | Net New | Churn % | Level Movement | Movement | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
▲
▼
=
?
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
No retained accounts on completed events.
No churned accounts.
No net-new accounts on this series.
|
||||||||||||||||||||||||||||||||||||||||||||||||
| Account | Owner | Prior Revenue | Level | Series Lost | ML Risk | Tenure | Status | Lost Reasons |
|---|---|---|---|---|---|---|---|---|
|
|
In Pipeline Gone |
|
| Owner | Churned | Lost Revenue | Retained | Churn Rate | Severity |
|---|---|---|---|---|---|
| Sales Team | Churned | Lost Revenue |
|---|---|---|
| Brand | Churned | Lost Revenue | Prior | Churn Rate | Severity |
|---|---|---|---|---|---|
| State | Churned | Lost Revenue | Prior | Churn Rate |
|---|---|---|---|---|
| Close-Lost Reason | Accounts | Revenue Impact | Share |
|---|---|---|---|
| Transition | PY accts | CY accts | Retained | Churned | Truly new | Returned | Churn % | Replacement % |
|---|---|---|---|---|---|---|---|---|
| YTD |
| Transition | Series-pair churn | Account active in CY (different series) | % rotated |
|---|---|---|---|
| YTD |
items.parquet joined to events.parquet, filtered to stage_class == "won", non-webinar event types, valid year/account/series.AccountId. No de-duplication of related-org records.| Transition | PY accts | CY accts | Retained | Churned | Truly new | Returned | Churn % | Replacement % |
|---|---|---|---|---|---|---|---|---|
| YTD |
| Transition | Series-pair churn | Account active in CY (different series) | % rotated |
|---|---|---|---|
| YTD |
items.parquet joined to events.parquet, filtered to stage_class == "won", non-webinar event types, valid year/account/series.AccountId. No de-duplication of related-org records.| Urgency | Account | Owner | Last series | First-yr $ | First yr | Days since | CY event | Opp | Signal | |
|---|---|---|---|---|---|---|---|---|---|---|
|
Got away
—
|
Open Closed No opp | |||||||||
| No rows match your filters. | ||||||||||
| Urgency | Account | Owner | Last series | Prior $ | Open opp $ | Days silent | CY event | Opp | Signal | |
|---|---|---|---|---|---|---|---|---|---|---|
|
|
Open Closed No opp | |||||||||
| No rows match your filters. | ||||||||||
| Urgency | Account | Owner | PY $ | CY $ | Δ YoY | Series PY→CY | Open opp $ | CY event | Opp | Signal | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| → |
|
Open Closed No opp | |||||||||
| No rows match your filters. | |||||||||||
invalidate_cache()).
| Account | Owner | Event | Brand | Year | Date | Revenue | Level | Status |
|---|---|---|---|---|---|---|---|---|
| No sponsors match the current filters | ||||||||
| Event | Notes | Open Opps | Open Sess | Date | Ad Bd | ||
|---|---|---|---|---|---|---|---|
|
|
— | Sold N/A |
Major Sponsors (Underwriter, Anchor, Diamond, Platinum — eligible for per-sponsor one-pager)
Who's in the Room
| Name & Title | Jurisdiction | Pop. | IT Budget | Function · Level |
|---|---|---|---|---|
| Name & Title | Account · Tier | Vs your DNA | Shared / Distinct vertical tags |
|---|---|---|---|
|
Shared:
Distinct:
No DNA on file
|
Last Year at This Event
Procurement Landscape
in
Talking Points for the Planning Meeting
Public Sector (government leaders attending)
attendeesdata/indexes/speakers.parquet — every Event_Session2__c
speaker across the full Salesforce backlog, enriched with planning-doc title/agency/jurisdiction
where uploaded.
Government uses keyword hints on planning org/jurisdiction and on session + event titles
(rerun Speakers ETL after changing hints).
indexes/speakers.parquet.
| Sector / Account / Contact | Title | Organization | Jurisdiction | Sessions | Events | Last seen | Topics | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SF ↗ | ||||||||||||||||||||||||
Event__c link on the Contract record may be blank.
| Sponsor | Tier | Roles |
|---|---|---|
| Contact | Role | Bucket | |
|---|---|---|---|
| primary |
| Name | Organization | State | Title | Upcoming event | Prior lead? | |
|---|---|---|---|---|---|---|
| New | ||||||
|
Prior captures
|
||||||
Show events beyond 15 days
Enter the unlock password to include upcoming events starting more than 15 days from today.
Placeholders:
{{first_name}},
{{event_name}},
{{inquiry_phrase}},
{{signature}}.
Set bake tone to Custom, then generate for the visible set or per owner below.
| Stage | Account / Opp | Amount | Close | Next event | Stage age | Idle | Recipient | Subject | Status | Actions | |
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|||||||||||
|
Account Map
|
|||||||||||
|
How this works:
Click a numbered step (or any contact below) — that contact's opps light up.
Compose one email per contact. Repeat until covered.
No actionable contacts found — every contact on these opps lacks an email address.
Selection
Products
Contacts (click one to start)
No actionable contacts (no email on file for any contact in scope).
Opportunities in this send
contact reaches
contact does NOT reach (greyed)
↑ Pick a contact above — opp cards will light up to show what they reach
Sending to
Pick a contact above to enable Compose
✓ this send covers every opp
Combined draft
To:
Cc:
×
Bcc:
×
Subject:
Test Mode — recipient overridden, SF logging skipped
|
|||||||||||
|
(real: )
×
×
Version:
Switching…
Generating…
Signature
From Outflow Personalization for this row’s Send-as choice. Edits apply to this email only.
unsaved changes
✓ Sent
View in Engagements →
Recipient signals
⚠ Thread-active contact differs from OCR primary
No automatic recipient — type one in the To field above.
Events on this opp
SHARED
Datasheet
Datasheet (no price)
Agenda
Website
Anchor Overview
Exhibitor Overview
Patron Overview
Other Overview
Anchor UW
Collateral
Keynote
Sessions
Recharge
Inventory
Coaching
|
|||||||||||
Body
Event Operations Suite
The Event Operations Suite is a unified operational intelligence layer for managing eRepublic's events business. It connects revenue targets, CRM pipeline, sponsor behavior, ML predictions, and AI-powered sales tooling into a single surface — replacing the fragmented spreadsheet and Salesforce report workflow that preceded it.
Why This Exists
The events business generates ~$46M in annual revenue across 284 events spanning 5 brands. Before this suite, answering basic questions required cross-referencing 4+ Salesforce reports, a master spreadsheet, and tribal knowledge:
- Is the California Government Technology Summit on track? — unknown without manual aggregation
- Which events are behind target with no pipeline? — discoverable only at monthly reviews
- Which sponsors churned and why? — buried in close-lost opportunity records
- What should I pitch Zones LLC for the NH Digital Government Summit? — hours of manual research
The suite makes all of this queryable in real time, and layers ML predictions and AI-generated sales intelligence on top.
Command Center (default tab)
The matrix view shows every event with real-time operational health:
- Revenue pacing — target vs. booked vs. pipeline, with a visual progress bar
- Health classification — Exceeded / On Track / At Risk / Behind / Critical / No Target
- Probability-weighted toggle — switches between gross pipeline and expected value (stage probability × amount)
- Alert banner — auto-surfaces events that are Behind or Critical, ranked by gap severity
- Filters — brand, state, health status, has-target toggle, has-date toggle, webinar toggle
- Drill-down — click any event for sponsor detail, pipeline breakdown, close-lost analysis, audience demographics
Pipeline Tab
All open event-related opportunities grouped by event series:
- Event summaries — date, target, opp count, pipeline value, ML renewal probability
- Opportunity records — stage, amount, close date, age, last activity with stale detection
- Account intelligence (per opp) — behavioral segment, churn risk level, total account revenue
- Sales coaching signals — contextual one-liners from ML data: "High churn risk — prioritize retention," "Stuck in Assess Interest for 47d — advance or disqualify," "Single-category, 65% cross-sell propensity — expand"
- Opportunity drill-down (click any row) — full account intelligence (segment, churn risk/probability, revenue LTM, predicted revenue, years active, product categories, cross-sell propensity, subscription propensity), ML renewal detail, coaching signals, and quick-action links
- Stage funnel — visual breakdown by pipeline stage
- Aging buckets — 0-30d, 31-60d, 61-90d, 90+d distribution
Post-Event Performance Review Tab
Completed events for the selected fiscal year: KPI strip, searchable grid, and row expansion that mirrors the
Command Center drill-down (tier pacing, inventory snapshot, audience composition, current sponsors by level, churned sponsors with ML renewal). Each event carries a persistent
ROI questionnaire (saved in ops_state) with Word and PDF export plus Send to Teams (Adaptive Card with deep link).
Retention Tab (Overview · White Glove · Action Queue · Churn Analysis)
The unified retention workspace. Anchors on account-level retention math (not per-event YoY sponsor count) so portfolio composition shifts don't pollute the headline number. Subtabs:
- Overview — the defensible KPI block: Logo Retention Rate, Gross Revenue Retention, Net Revenue Retention, first-year vs multi-year cohort retention, and a four-bucket waterfall (expanding / flat / declining / silent) that splits the prior-year sponsor universe by current-year behavior. Methodology footnote explains every definition.
- White Glove — first-time sponsor welcome cohort and touchpoint playbook.
- Action Queue — three rep-actionable feeds (Year-2 Watch, Relationship Risk, Early Warning) with named accounts, urgency tiers, opp context, and recommended actions.
- Churn Analysis — multi-lens diagnosis: composition, by series, by series×level, by account, by owner, by team, by level, by brand, by state, by close-lost reason, plus multi-year trends.
The Exclude BTB / IICA / IITX toggle (Overview + Action Queue
only) drops Beyond the Beltway, Industry Insider California, and Industry
Insider Texas line items so the headline retention number reflects flagship
sponsorship behavior rather than briefing/insider-series volume. Default ON
for the leadership-defensible posture; flip OFF to compare. Full methodology
and rationale: docs-current/features/RETENTION.md.
Trends Tab
Multi-year trajectory analysis:
- Revenue trend by year with YoY delta
- Sponsor trend with retention rates
- Brand mix evolution
- Event count and average yield
Event Tearsheet Builder
Per-event deep intelligence for sales preparation. Given an event series, the engine:
- Identifies the target event and extracts metadata (date, location, topics, target)
- Scores all accounts using a composite model: topic fit, portfolio fit, award match, spend signal, brand affinity
- Classifies accounts into tiers: Retain (current sponsors), Expand (adjacent accounts), New Logo (prospects from procurement data)
- Generates session/speaker analysis from the event program
- Produces an executive summary, market intelligence, and sales talking points
Sales Kit
Click "Draft Email" on any account or "Generic Email" to open the Sales Kit modal:
- Sizzle quotes — 4 attention-grabbing one-liners for the pitch
- Drafted email — personalized outreach with subject line, body referencing the account's government activity, and a specific CTA
- Pre-call intelligence — bullet points about the account's procurement footprint, contract wins, and market alignment
- Talking points — conversation starters backed by data
Sponsor Status Tab
Flat list of every sponsor × event with movement classification and export:
- Recurring — sponsored both the prior and current edition of the event (continuous renewal)
- Returning — skipped the last edition but appeared in an earlier year of the series (win-back)
- New to Series — first time sponsoring this event series, but has sponsored other e.Republic events before
- New to e.Republic — first time sponsoring ANY e.Republic event ever (true new logo)
- Filters — year, brand, status, event series, and free-text search
- Export — client-side CSV (filtered view) or server-side full export
ML Models Powering the Suite
| Model | Name | What It Does | Where It Surfaces |
|---|---|---|---|
| M1 | Whale Revenue Forecast | Predicts next-year revenue per account | Pipeline intelligence badges |
| M2 | Account Retention Risk | Churn probability per account | Pipeline coaching signals, retention page |
| M3 | Account Segmentation | Behavioral segment classification | Pipeline account tags |
| M4 | Category Expansion | Propensity to buy a new product category | Intelligence badges |
| M6 | Event Market Intelligence | State × category procurement momentum | Tearsheet scoring, activation targeting |
| M8 | Cross-Sell Graduation | Single→multi-product graduation probability | Pipeline coaching signals |
| M10 | Event Series Renewal | Per-sponsor renewal probability for event series | Pipeline ML Renewal column, event matrix |
| M11 | Subscription Renewal | Renewal probability for Navigator/Insider | Retention intelligence |
Per-User AI Budget
Every user gets a $5.00/day AI budget. Each AI call (tearsheet synthesis, email generation, chat) is tracked to the authenticated user. The budget resets at midnight. Per-conversation caps ($0.50 default) prevent runaway single sessions.
Data Flow
ETL Pipeline
├── events.parquet ──────────────────────┐
├── products.parquet ────────────────────┤
├── opportunities.parquet ───────────────┤── services/event_operations.py
├── account.parquet ─────────────────────┤ │
└── ml/ml_inference.parquet ─────────────┘ │
├── Command Center
ML Pipeline ├── Pipeline (+ coaching)
├── M10 (event_series_renewal) ──────────────────├── Post-Event Performance Review
└── M2 (churn_prediction) ───────────────────────├── Trends
└── Detail Drilldowns
events.parquet ──────────────────────────┐
products.parquet ────────────────────────┤── services/event_intelligence.py
account_intelligence.parquet ────────────┤ │
jurisdiction research ───────────────────┘ ├── Tearsheet Report
awards/bids data ────────────────────────────────├── AI Synthesis (LLM)
├── Sales Kit (LLM)
├── Library Publish
└── HTML/PDF/CSV Export
API Reference
Event Operations /api/event-operations
| Endpoint | Method | Description |
|---|---|---|
/summary | GET | Portfolio KPIs for current fiscal year |
/matrix | GET | All events with health, pacing, sponsor movement |
/detail/<event_id> | GET | Deep dive: sponsors, pipeline, close-lost, audience |
/pipeline | GET | All open opportunities with ML enrichment |
/postmortem?year= | GET | Completed events analysis by fiscal year (powers Post-Event Performance Review tab) |
/post-event-review/<event_id>/form | GET, PUT | Persistent ROI questionnaire (Firestore/PG ops_state) |
/post-event-review/<event_id>/export-docx | GET | Word download (questionnaire + Command Center metrics) |
/post-event-review/<event_id>/export-pdf | GET | PDF download (Playwright on host) |
/post-event-review/<event_id>/push-teams | POST | Adaptive Card summary to a configured Teams destination |
/trends | GET | Multi-year revenue, sponsor, retention trends |
/retention-overview?exclude_secondary= | GET | Account-level retention KPIs (LRR, GRR, NRR, cohorts, buckets) |
/retention-overview/export?exclude_secondary= | GET | "Show your work" .xlsx (separate eo_export_api blueprint, same URL prefix) |
/action-queue?exclude_secondary= | GET | Year-2 Watch / Relationship Risk / Early Warning feeds |
/churn-analysis?year= | GET | Multi-lens churn diagnosis (composition, series, level, owner…) |
/sessions/upload | POST | Upload & parse session planning .docx |
/sessions | GET | List events with session data |
/sessions/<series> | GET | Full session detail for an event |
/sessions/<series>/prospects | GET | Match open sessions to sponsor prospects |
/sponsor-status?year= | GET | Flat sponsor×event list with movement status |
/sponsor-status/export?year= | GET | CSV download of sponsor status report |
Event Intelligence /api/event-intelligence
| Endpoint | Method | Description |
|---|---|---|
/series | GET | List available event series |
/tearsheet | POST | Generate tearsheet report for an event |
/synthesize | POST | LLM refinement of tearsheet sections |
/generate-email | POST | AI-drafted sales kit (targeted or generic) |
/export-html | POST | Self-contained HTML tearsheet |
/recommend-events | POST | Match an account to upcoming events |
/similar-accounts | POST | Find lookalike accounts for an event |