← All work
Product Design FC 2.0 · Mobile App FanCode · 2024–2025
FanCode's highest-traffic surface

Match Detail 2.0 — a video-first conversion engine

Rebuilding the page where every FanCode journey ends up — so that AI-led storytelling tells fans why a match matters, distractions disappear before conversion, and the right content surfaces for every entitlement at every match state.

30+
Entitlement × state combinations
60s
AI reason-to-watch polling rate
4
Sports · Cricket, Football, F1, MotoGP
Scroll to explore

Rebuilding the most visited page on FanCode

FanCode 2.0 was a platform-wide commitment to the video-first vision — leveraging the core moat of exclusive live sports rights, cutting operational overhead from secondary initiatives, and creating a consistent, sport-specific discovery experience that uses AI-led thinking and storytelling to drive users toward premium video. The Match Detail Page (MDP) is where that vision had to land hardest: it's the surface where fans watch, check scores, follow squads — and decide whether to pay.

My Role
Lead Product Designer
Scope
UX research → state architecture → visual design → handoff → post-launch iterations
Platform
Android & iOS (Mobile)
Sports
Cricket, Football, Formula 1, MotoGP & other sports
Design System
FanCode FC 2.0 (Dark)
North-star metric
Match detail → payment listing → order success

High-intent fans were consuming everything except video

The old MDP failed to leverage FanCode's video-first positioning. A significant cohort of regular visitors — especially repeat non-transactors — consumed peripheral content like scores and commentary without ever engaging with the premium video offering. The page made them derive match context themselves, never communicated the PPV model, and gave marketing nothing to work with.

📉

Repeat non-transactors

Regular visitors checked scores and commentary on every match day — and never converted. The page served their free habit instead of selling the live experience that sat one tap away.

📖

No story, no urgency

The page lacked compelling match context and urgency mechanisms. Users had to work out why this match matters from a scorecard — the platform never told them.

🎟

PPV model invisible

FanCode's unique pay-per-view passes for individual matches and tours — its key differentiation from subscription-only competitors — were never clearly communicated on the page.

🧩

Fragmentation & rigidity

Inconsistent touchpoints across sports and journeys created maintenance overhead, and the design couldn't support marketing's need for flexible, event-driven promotions aligned with FC 2.0's configurable approach.

The objective

Transform the MDP into a video-first, storytelling-powered conversion engine that immediately communicates match importance and viewing motivation, positions one-time match and tour passes as the primary value proposition, and supports marketing-driven promotion — consistently across sports, match states and user cohorts. Success: a higher match detail → payment listing → order success funnel.

Three rules every unit on the page obeys

Before any screen was drawn, we agreed the principles that would arbitrate every layout debate. Each one is a testable rule, not a poster slogan — any component that violated one was cut or moved.

Principle 01
Conversion first

The MDP is the top of the payment funnel, not a content hub. Every unit must earn its place by moving a non-entitled user toward a pass — the reason-to-watch block, the live score tease and the persistent GET A PASS bar all exist to feed payment listing.

Principle 02
Reduce distractions before conversion

Pre-match and live, a non-entitled user sees no other content discovery — no related videos, no similar tours, no other matches. Nothing on the page competes with the one decision that matters: watch this match.

Principle 03
Surface by entitlement × match state

What the page shows is keyed to who you are and where the match is. Once the match ends, highlights, match moments and discovery open up for everyone — regardless of entitlement — because post-match, discovery is the conversion path to the next match.

Match state Non-entitled user sees Entitled user sees Content discovery
Pre match Start time, AI reason-to-watch, top players, LOGIN / GET A PASS Countdown to stream, AI reason-to-watch, squads & standings sheets ✕ Hidden for non-entitled — nothing competes with the pass decision
Live Free-trial video with countdown, live score, AI storytelling, GET A PASS Full video player, score, match moments and sheets ✕ Hidden pre-conversion — the match is the only story on the page
Post match Highlights · match moments · related videos · similar tours · more live matches ✓ Open for all — discovery becomes the funnel to the next match
Pre-match MDP — focused, no discovery
Pre match · non-entitled — a closed, focused funnel
Post-match MDP — discovery opens up
Post match — highlights & discovery for everyone

The same page, two opposite postures

Side by side, the philosophy is visible. Pre-match, the non-entitled MDP is deliberately sparse: match identity, an AI-written reason to watch, the marquee players — then LOGIN and GET A PASS. There is nowhere else to go.

The moment the match completes, the page inverts: highlights up top, match moments, a contextual tour upsell, related videos, similar tours and more live matches. Discovery isn't a distraction any more — it is the next conversion.

  • Pre & live: zero discovery units for non-entitled users
  • Post match: highlights surface regardless of entitlement
  • Upsells appear in context, never as interstitials

One page. Every user. Every moment.

The MDP had to serve a casual fan three minutes into a free trial and a subscriber catching up post-race — without becoming two different products. Every combination of user entitlement (non-logged-in, logged-in non-entitled, match pass, tour pass, subscription, free match, expired) and match phase (pre, live, stumps, delayed, post) was mapped before visual design began.

MDP pre match
Pre match
MDP during free trial
Live · free trial running
MDP free trial ended
Live · free trial ended
MDP full scroll
Full MDP scroll — moments & discovery unlocked as the match closes

The free trial is the sharpest conversion mechanic on the page: the video starts playing immediately with a visible countdown ("Free Trial 02:59"), so the user experiences the product before being asked to pay. When the trial ends, the message is match-aware — "BR needs 40 runs to win — Get a Pass to continue watching" — urgency drawn from the live game itself, not a generic paywall.

Cricket states matrix — every entitlement by every match phase
The cricket state matrix — final UI for every entitlement (non-logged-in · logged-in non-entitled · entitled · free match · renewals/expired) across every phase (pre stream · during match · stumps · match delayed/abandoned · after match). This grid was the engineering spec.

Storytelling, generated — "Death Overs Incoming!"

The centrepiece of the conversion-first MDP is the AI summary unit — a glowing block that tells a fan, in one persuasive line, why this match is worth their money right now. It replaces the old expectation that users would derive context from scorecards and commentary on their own.

01 · Ingest
Feeds in
Ball-by-ball commentary & scorecard data from the sports feed, plus broader tour and event context pulled from RSS feeds.
02 · Detect
60s polling
Highlight and surprise detection runs pre-match and during the match at a one-minute polling rate — collapses, chases, milestones, momentum shifts.
03 · Generate
Gemini
Detected moments become persuasive copy via Gemini, driven by a proprietary instruction set tuned for urgency without hyperbole.
04 · Review & serve
Pipeline-gated
A review pipeline gates every generated line before it ships to the unit. Marquee "top players" come from a curated config — they don't update with the polling cycle.
live · 4 overs remaining · chase alive
"Death Overs Incoming! With 4 overs to go, big hits are incoming — don't blink now!"
free trial expired · target within reach
"BR needs 40 runs to win — Get a Pass to continue watching"
pre-match · no live signal yet
Marquee players carry the block: "Top players — S Hope, S Hetmyer and more"

Designed to degrade gracefully

An AI unit that sometimes has nothing to say can't just vanish — that trains users to ignore it. Every combination of AI text and squad availability was designed as an explicit case, so the block always feels intentional.

  • Text + squads — full glowing unit with top players strip
  • Text only — copy carries the unit, players row hidden
  • Squads only — "Top Players" empty state with headshots
  • Neither — the unit yields its slot, no skeleton left behind

The first-time appearance animates in with a glowing border and typewriter text; refreshes are deliberately quieter so live updates inform rather than interrupt.

AI summary block cases — availability matrix
AI block case matrix — four availability cases (AI text × squad data) and the design each resolves to.

Making PPV the headline, not the footnote

FanCode's differentiation is that you don't need a subscription — you can buy just this match. The payment listing leads with that: a ₹25 match pass at the top of the ladder, the tour pass next, and unlimited passes presented as the value upgrade, never the default. The free-trial countdown follows the user into the listing so the urgency carries through checkout.

Payment listing — non-logged-in
Payment listing · trial countdown carried over
Payment listing — logged-in full view
Logged-in · full listing with offers & price breakup

A pass ladder built for quick decisions

The listing stacks options by commitment: Match Pass (₹25) → Tour Pass (₹79) → Monthly (₹199) → Yearly (₹999, "Save 50%"). The selected pass and price stay pinned in the CONTINUE bar, so the user always knows exactly what they're buying.

  • Match name in the header — context never lost
  • DreamCoins balance and coupons surfaced inline
  • Price breakup visible before checkout, no surprises
  • "Know more" accordions for each pass — transparency over fine print
  • Promo trays (event banners, tour rails) are CMS-driven for marketing's event-led campaigns

Landscape, sheets and four sports

The same principles had to survive fullscreen playback and radically different sports data. In landscape, the free-trial countdown and GET A PASS stay pinned — conversion never leaves the screen. Sport-specific detail lives in bottom sheets (scorecard, squads, standings, race results) so the video-first surface stays identical across sports.

Fullscreen player with controls and free trial CTA
Fullscreen · free trial — the trial countdown and "Get a Pass" persist in the top-left, even with controls dismissed.
Fullscreen player with other live matches rail
Fullscreen · other live matches — an in-player rail lets entitled fans hop between live games without leaving the video.
Football standings sheet
Football · standings sheet
Formula 1 post-race results sheet
Formula 1 · post-race results sheet
4

Sports, one chassis. Cricket scorecards, football standings, F1 and MotoGP results all mount into the same sheet architecture — the MDP itself never changes shape.

0

Scrolls to critical data. Scores, squads and standings are one tap away in sheets — the video stays dominant above, never pushed off-screen by data.

1

Persistent conversion surface. Portrait, landscape, sheet-open or fullscreen — a non-entitled user is never more than one tap from GET A PASS.

Three entitled states, one coherent design

Entitled users arrive via three paths — Match Pass, Tour Pass or Subscription — and each unlocks slightly different affordances handled by one flexible component system. A match-pass holder watching a great game is also the best prospect for a tour pass, so the upgrade unit ("Watch Full Tour at just ₹99") sits in the post-match flow, where the value has just been felt.

Entitled MDP — match pass states across the match lifecycle
Entitled · Match Pass — pre match, live, match completed and moments states. The contextual "Watch Full Tour" upgrade appears only after the user has consumed value, never as a blocker.

Design principle: earn the upsell

Even for paying users, upgrade prompts appear only in context — a Match Pass holder sees the tour upsell inline after match moments, a Tour Pass holder sees the subscription value prop in the feed. No interstitials, no entitlement-blind banners. The AI summary block runs for entitled users too: storytelling keeps them watching, which is its own retention loop.

A sharper funnel, a configurable surface

MDP 2.0 shipped as part of the FC 2.0 platform transformation, with the funnel — match detail → payment listing → order success — as its north-star metric. Beyond conversion, it consolidated fragmented sport-specific layouts into one maintained system and handed marketing a CMS-configurable promotional surface.

30+
Entitlement × match-state combinations specced & shipped
60s
Live AI storytelling refresh — match context always current
₹25
PPV entry point made the headline of the conversion flow
1
Component chassis across Cricket, Football, F1 & MotoGP

What this project taught me

🎯

Subtraction converts. The boldest call wasn't what we added — it was removing all discovery before conversion. A focused page asks one question; a busy page asks none.

🤖

AI needs a content design system. Generated copy is only as good as its instruction set, its review gates and its empty states. The case matrix mattered as much as the model.

🗺

State mapping before pixels. The entitlement × match-state matrix built in the UX phase saved weeks in the UI phase — every design debate already had an answer in the spec.

Conversion Design State Architecture AI-Generated Content Paywall UX Cricket Football Formula 1 FC Design System 2.0 PPV Monetisation