Final Client Package — IBM 6530 — Cal Poly Pomona
2026-04-30
The Problem → What We Found → What To Do
RSMT runs great events. We built the analytics infrastructure from scratch — website, tracking, data pipeline — then analyzed two full event cycles to answer one question: who is our audience, how do we track them, and how do we reach more of them?
RSMT had no way to measure what was working.
0 Dedicated website before this project
0 Analytics tracking or customer data
0 Data-driven campaigns or channel measurement
Four revenue streams operating in the dark:
The analytics pipeline — deployed from scratch:
Instagram / Paid Ads / Organic Search
│
▼
www.risingstarsmuaythai.com
(Google Tag Manager + GA4)
│
▼ BigQuery export — event stream
data/raw/ga4_events.parquet
│
▼ DuckDB SQL · R statistical models
Session models · Funnel analysis · Logistic regression
RSMT 14: Jan 31, 2026 · RSMT 15: Apr 18, 2026 · This analysis: Apr 30, 2026
📊 Live Dashboard: guileless-medovik-60d7d7.netlify.app
What we measured:
3,843 Tracked sessions across two event cycles
6 California venue markets · ACS 2023 drive-time analysis
12 RSMT 15 Instagram posts scored for engagement
AO1 — Website Optimization Bhamini Optimize RSMT’s website to capture user data and increase conversions — addressing the foundational gap of no way to track behavior or guide users toward tickets, PPV, or memberships.
AO2 — Audience Segmentation Lydia Evaluate potential markets to identify where RSMT can scale events most effectively — prioritizing the market with the best audience size, purchasing power, and demographic alignment.
AO3 — Social Media Engagement Christian Examine engagement data across digital platforms to identify which content generates reactions, clicks, and purchase intent — understanding what to post, how often, and which styles perform best.
AO4 — Customer Journey Mapping Jarrod Establish GTM + GA4 tracking to map the customer journey from initial social media touchpoints to ticket or membership purchase — quantifying drop-off at key friction points.
AO5 — Event-to-Membership Metrics Juan Implement web analytics and integrated channel data to map the journey from initial touchpoint through membership purchase — identifying friction points and enabling data-driven interventions.
AO6 — Fighter Engagement Karima Analyze fighter Instagram posts using likes, comments, and an engagement score to evaluate performance across matchups — optimizing promotional strategy based on measurable engagement rather than assumptions.
Paid Social drives the most sessions to the site — but organic visitors engage 8× more and convert at higher rates.
Paid Social = most sessions, lowest engagement (8.5%). Organic Search = fewer sessions, highest engagement (69.7%). Converted users browse 4.5 pages on average vs 1.8 for non-converters — deeper engagement drives purchase, not traffic volume.
Five attribution models agree: Organic Search and Direct punch far above their session-volume weight.
Markov Chain & Removal Effect models credit Organic Search at 2–3× its raw session share — it closes journeys that Paid Social starts. Paid Social’s credit drops in data-driven models: it generates awareness, not conversions. Budget implication: shift marginal spend toward SEO content.
Each additional page viewed multiplies conversion odds by 10.31×. And the homepage loses visitors in 6 seconds.
78.3% Complete the full journey — first visit to buy-link click — within a single session
90.6% Convert on the same calendar day as their very first touchpoint
10.31× Conversion odds per additional page viewed (logistic regression, McFadden R² = 0.274)
The homepage gets 1,212 views but holds attention for just ~6 seconds — only 175 visitors reach the event page, and 123 reach tickets. Yet the homepage drives 83% of all final conversion clicks. Content pages build intent; the homepage must close it. Every friction point in the first visit is a permanently lost sale.
Isochrone analysis across six California markets reveals a location gap.
12.96M Reachable audience within 60 min of Los Angeles
+309% More reachable people than Sacramento’s 3.1M baseline
51.1% Aged 18–54 in the LA catchment — the core ticket-buying demographic
$91,853 Median household income — supports premium pricing and larger venues
Click any bubble to see full market detail. Bubble size = reachable population within 60 minutes. Los Angeles isn’t just larger — income, age demographics, and census-tract coverage align closest to RSMT’s buyer profile. Full comparison in Appendix A.9.
Koby Taylor (686 followers) outscored Vera Sokolova (2,450 followers) on every metric. Matchup excitement drives activation — not follower count.
510 Taylor vs Tiffer — rank #1 · Koby Taylor: 686 followers
502 Houston vs Hall — rank #2 · Darian Houston: 1,559 followers
253 Harris vs Sokolova — rank #8 · Vera Sokolova: 2,450 followers
The fighter with the most followers ranked 8th. The top performer had less than a third as many. Booking decisions based on follower count leave audience activation on the table — engagement score is the reliable signal.
The website must convert the traffic social media sends — and remove every friction point for the single-session buyer.
Organic Search is RSMT’s highest-converting channel. It’s also the one RSMT does nothing to capture.
Los Angeles gives RSMT 4× the audience. Engagement scoring tells RSMT who to put on the card.
Expand to Los Angeles:
Book fighters by data, not assumptions:
1 Your buyers decide in one session. Fix the homepage CTA and mobile experience first — there is almost never a second visit.
2 Social media gets them there. Your website must convert them. Shift investment from volume (Paid Social) to intent (Organic Search and content).
3 Los Angeles is your growth market. Engagement scoring is your booking tool. Both are first-mover opportunities no regional competitor has claimed.
The overarching implication: RSMT has proven it can build an audience with high intent that acts quickly. The only remaining constraint is removing friction between discovery and purchase — and scaling into a market where that audience is four times larger.
Key numbers
Supporting detail — available for Q&A
📊 Dashboard: guileless-medovik-60d7d7.netlify.app
A.1 Data Sources · A.2 Technology Stack · A.3 Conversion Definition
A.4 Regression Full Output · A.5 Channel Performance Table · A.6 Page Funnel
A.7 Last-Touch Before Conversion · A.8 Journey Distribution
A.9 All Six Markets · A.10 All Fighter Rankings · A.11 Traffic Sources · A.12 Limitations
| Source | Dataset | Coverage | Key Variables |
|---|---|---|---|
| GA4 (event stream) | ga4_events.parquet |
RSMT 13 launch → Apr 30, 2026 | event_name · page_location · link_url · user_pseudo_id · ga_session_id · device_category · traffic_medium |
| GA4 Data API | ga4_api_channel_acq.parquet |
All-time channel-level aggregates | sessionDefaultChannelGroup · sessions · engagementRate |
| Google BigQuery | Raw streaming export | Full event stream, lossless | Complete GA4 schema, exported via bigrquery R package |
| ACS 2023 Census | 60-min isochrone (6 venues) | Census tract 5-yr estimates | population · median_income · pct_age_18–34 · pct_age_35–54 · census_tracts |
| Instagram (manual) | RSMT 15 promo posts | 12 matchup posts | likes · comments · engagement_score = likes + 2×comments |
Collection context: Google Tag Manager and GA4 were deployed from scratch in late 2025. RSMT had zero analytics infrastructure before this project. BigQuery streaming export began at site launch and is continuous.
Tracking & Ingestion
| Tool | Purpose |
|---|---|
| Google Tag Manager | Event triggers, custom tag deployment |
| Google Analytics 4 | Behavioral event collection |
| Google BigQuery | Cloud warehouse + raw export |
bigrquery (R) |
BigQuery API auth & pull |
Storage & Query
| Tool | Purpose |
|---|---|
Apache Parquet + arrow |
Columnar in-memory format |
DuckDB + DBI |
SQL over Parquet, no server needed |
Analysis & Modeling
| Package | Use |
|---|---|
dplyr |
Data wrangling (lazy eval over Arrow) |
ggplot2 |
Publication-quality charts |
forcats, scales |
Factor ordering, number formatting |
stats::glm() |
Logistic regression (base R) |
Reporting & Output
| Tool | Purpose |
|---|---|
| Quarto | Reproducible documents & slides |
| RevealJS | HTML presentation engine |
| Posit Connect Cloud | Shiny app (AO2 census map) |
| Excel + Tableau | AO6 Instagram engagement scoring |
A session is counted as a conversion when it contains at least one of:
/go/tickets or /go/ppvRSMT redirect slugs. GA4 fires the page_view event before the external redirect fires, capturing the click-through moment. Both ticket and PPV paths are captured.
eventbrite.comLive ticket purchase platform. Tracked via GA4 outbound link event + GTM click trigger on the purchase button element.
akaizosports.livePay-Per-View streaming platform. Same GTM click-tracking mechanism as Eventbrite.
What this captures:
What this does NOT capture:
Key implication: All conversion rates here are lower bounds. True conversion rate is higher. A post-purchase pixel for RSMT 16 would close this gap and enable confirmed-purchase measurement.
Model: glm(conversion_flag ~ session_event_count + page_view_count + device_category + traffic_medium, family = binomial) · McFadden R²: 0.274 · N: 1,433 sessions
| Predictor | Odds Ratio | 95% CI | p-value | |
|---|---|---|---|---|
| (Intercept) | 0.044 | 0.026 – 0.076 | < 0.001 | *** |
| session_event_count | 0.488 | 0.426 – 0.56 | < 0.001 | *** |
| page_view_count | 10.306 | 7.078 – 15.008 | < 0.001 | *** |
| device_categorymobile | 0.778 | 0.48 – 1.26 | 0.3076 | |
| device_categorytablet | 0.000 | 0 – Inf | 0.977 | |
| traffic_mediumorganic | 1.634 | 1.154 – 2.314 | < 0.01 | ** |
| traffic_mediumpaid | 0.270 | 0.166 – 0.439 | < 0.001 | *** |
| traffic_mediumreferral | 0.365 | 0.116 – 1.144 | 0.0838 | |
| traffic_mediumsocial | 1.199 | 0.326 – 4.406 | 0.7845 |
All acquisition channels — sessions, % of total traffic, and engagement rate
| Channel | Sessions | % of Total | Engagement Rate |
|---|---|---|---|
| Paid Social | 2,006 | 52.2% | 8.5% |
| Direct | 1,027 | 26.7% | 54.3% |
| Organic Search | 585 | 15.2% | 69.7% |
| Organic Social | 208 | 5.4% | 61.5% |
| Referral | 17 | 0.4% | 58.8% |
Homepage → Event Page → Ticket Page — full metrics from GA4 Pages & Screens
| Page | Views | Users | Avg. Engagement | Observation |
|---|---|---|---|---|
| Homepage | 1,212 | 841 | ~6 seconds | Highest traffic; most visitors exit without a clear next action |
| Event Page | 175 | — | ~1 min 03 sec | 63× longer dwell than homepage — users who arrive here read the card |
| Ticket Page | 123 | — | — | Final step before Eventbrite redirect |
| PPV Page | 122 | — | — | Parallel purchase path (Akaizo) |
Homepage first-step navigation (Path Exploration · 1,028 homepage sessions):
| Immediate next page from homepage | Users |
|---|---|
| PPV page | 122 |
| Ticket page | 101 |
| Event page | 78 |
| Exit / bounce | remaining majority |
Page visited immediately before the buy-link click — all categories
| Page Category (last before conversion click) | Conversions | % of Total |
|---|---|---|
| Home Page | 187 | 82.7 |
| Events Page | 20 | 8.8 |
| Dedicated Tickets/PPV Page | 18 | 8.0 |
| Fighter Profile | 1 | 0.4 |
The homepage triggers the most final conversions despite being the page with the shortest dwell time. It functions as a closing page: content pages (fighters, fight card) build intent; the homepage must execute the purchase click. A sticky “Buy Tickets” CTA above the fold converts this already-warm traffic with zero additional friction.
ACS 2023 · 60-minute drive-time isochrone · candidate venue addresses
| Market | Census Tracts | Reachable Pop. | Median HH Income | Age 18–54 | Pop Δ vs Sacramento |
|---|---|---|---|---|---|
| Sacramento (baseline) | 711 | 3,166,025 | $89,844 | 48.3% | — |
| San Jose | 1,124 | 5,014,076 | $147,459 | 50.7% | +58.4% |
| San Francisco | 1,232 | 5,249,936 | $143,095 | 50.1% | +65.8% |
| Riverside | 1,658 | 8,207,709 | $94,760 | 49.5% | +159.2% |
| Los Angeles | 3,085 | 12,960,180 | $91,853 | 51.1% | +309.4% |
| Anaheim | 3,044 | 13,203,228 | $90,893 | 51.3% | +316.9% |
Why Los Angeles over Anaheim (Anaheim is marginally larger by population):
RSMT 15 Instagram promotional posts · Engagement Score = Likes + 2 × Comments
| Rank | Matchup / Post | Likes | Comments | Engagement Score |
|---|---|---|---|---|
| 1 | Taylor vs Tiffer | 428 | 41 | 510 |
| 2 | Houston vs Hall | 420 | 41 | 502 |
| 3 | Phetamphone vs Handy | 288 | 37 | 362 |
| 4 | Sanchez vs Villanueva | 268 | 10 | 288 |
| 5 | Harris vs Sokolova | 246 | 7 | 260 |
| 6 | Jack (solo) | 197 | 30 | 257 |
| 7 | Logan (solo) | 206 | 23 | 252 |
| 8 | Rodriguez vs Sardi | 206 | 14 | 234 |
| 9 | Mayorga vs Licea | 201 | 10 | 221 |
| 10 | Bullie vs Hargrove | 163 | 13 | 189 |
| 11 | Carlos (solo) | 135 | 24 | 183 |
| 12 | Underwood vs Roberts | 113 | 14 | 141 |
Follower context (top 3 by follower count): Carlos — 2,457 followers · Vera Sokolova — 2,450 followers · Darian Houston — 1,559 followers.
Koby Taylor (Taylor vs Tiffer, rank #1, score 510) has significantly fewer followers than Sokolova (rank #8, score 253). Follower count is not a reliable booking predictor — matchup excitement drives engagement.
AO3 — Traffic Source Breakdown (total events)
| Source | Events |
|---|---|
| 1,946 | |
| (direct) | 1,894 |
| ig (Instagram in-app) | 634 |
| bing | 71 |
| yahoo | 40 |
| facebook.com | 30 |
| lm.facebook.com | 30 |
| duckduckgo | 26 |
| l.instagram.com | 19 |
| m.facebook.com | 11 |
| l.facebook.com | 5 |
| ecosia.org | 4 |
| instagram.com | 4 |
| chatgpt.com | 2 |
| linktr.ee | 2 |
Total page views: 2,668 · Unique users: 1,095 · Avg: 2.44 pages/user
AO5 — High-Intent Conversion Timing
85.9% Same-day: reach a high-intent page (/events/) on the same calendar day as first visit
82.4% Single-session: reach a high-intent page within the same browsing session as first touch
AO5 Method: Conversion = first visit to /events/ page. First-touch date vs. conversion date across multiple months of data. Pattern is consistent across all months — not event-specific noise.
Implication: Direct social and email links to /events/ pages (not the homepage) shorten the path to high-intent behavior where purchase intent is already forming.
Known limitations:
What RSMT 16 data adds:
Rising Stars Muay Thai | IBM 6530 | Cal Poly Pomona