B2B2C Hardware SaaSbuild_02

How I designed a telemetry platform for Indian karting tracks.

Yatin Khar
·May 2026·16 min read·Next.js 15 · Recharts · Tailwind
Phase 1 TAM
40
tracks · Delhi NCR, BLR, MUM, PUN
Year 1 MRR target
₹2.5L
28 signed tracks × avg ₹9K/month
Hardware payback
9mo
At 120 sessions/month, Pro tier

Indian go-karting tracks are infrastructure-rich and data-poor. Venues like F9 Go Karting (Gurgaon), Meco Kartopia (Bangalore), and Ajmera IndiKarting (Mumbai) have RFID timing systems installed — but the data those systems generate never leaves the timing box. Track operators manage revenue on gut feel and WhatsApp messages from the cashier. Drivers receive a paper lap slip, glance at it, and forget it.

KartMetrix is the middleware layer between timing hardware and business intelligence — a B2B2C telemetry platform with two customers: the track operator (B2B, paying SaaS) and the driver (B2C, free app), connected by a flywheel where engaged drivers drive repeat sessions which increase operator revenue and willingness to pay.

I designed it end-to-end: stakeholder scoping, hardware architecture, feature prioritisation, unit economics, and a working prototype. This page covers the decisions — what I built, what I cut, why, and what I learned about building for two customers simultaneously.

MVP Scoping

The philosophy: solve the operator's revenue clarity problem first. Driver engagement is the retention flywheel — but it requires operator data to be meaningful. Sequence matters in B2B2C.

✅ In scope — v1

Session analytics dashboard

Core operator value prop — immediate ROI visibility without calling the cashier.

Driver leaderboard (per-track)

Primary driver retention hook. Social competition drives repeat sessions.

Daily / weekly revenue summary

Replaces WhatsApp cashier reports. Builds the daily-check-in habit with operators.

WhatsApp lap-time delivery

Zero-friction driver activation — no app download, no friction. Post-session message with deep link.

Session utilization heatmap

Visual trigger for the pricing conversation. "You run at 28% on Tuesday afternoons."

Basic driver profiles

Foundation for LTV scoring in V2. Needs 90+ days of session history before it's useful.

❌ Explicitly descoped

Multi-track franchise support

Smaaash has 10+ locations but each is operationally independent. Cross-track analytics adds API complexity without V1 value. Revisit when 3+ Enterprise customers exist.

White-label driver apps

N custom apps = N maintenance burdens for a 2-person team. One KartMetrix app builds brand equity and reduces driver CAC through word-of-mouth.

Global cross-track leaderboard

Technically feasible but meaningless without normalisation — Indian tracks don't run identical kart models or track lengths. Needs sector data standards first.

Race replay / video sync

RaceFacer offers this in Europe. Camera hardware + high storage costs. Out of scope until Enterprise tier validates the demand.

The deliberate sequencing trade-off

Shipping the driver app alongside the operator dashboard creates a cold-start problem — the leaderboard is empty at launch. The mitigation: pre-seed driver profiles with historical session data from the existing MyLaps/AMB software on day 0. The bet is that even a partially populated leaderboard is enough social proof to trigger the engagement loop before real-time data accumulates.

Technical Architecture

Data flow — hardware to dashboard

1

Kart crosses RFID loop

Timing unit (AMB or MyLaps) outputs raw crossing event: [kart_id, loop_id, unix_timestamp_ms]. This is the ground truth input.

2

Edge device parses serial port

Raspberry Pi 4B running Go daemon. Normalises events to common schema, buffers to local SQLite during connectivity gaps, forwards via MQTT QoS 2.

3

MQTT broker receives events

AWS IoT Core or self-hosted Mosquitto. Exactly-once delivery guarantee. Fan-out to event processor.

4

Event processor calculates lap times

Consecutive crossings of start/finish loop by same kart ID → lap duration. Sector loops → sector splits. Session = operator-flagged booking window.

5

PostgreSQL stores structured data

Normalised schema: sessions → laps → drivers. Enables all analytics queries: utilisation %, driver LTV, revenue trends, leaderboard.

6

REST + WebSocket serves both clients

Operator dashboard: Next.js API routes + WebSocket for live session feed (2-second intervals). Driver app: REST on-demand; WhatsApp link triggers post-session delivery.

Key constraint — lap time is derived, not measured

Raw event

{ kart_id: "K07", loop_id: "SF", timestamp_ms: 1716547234891 }

Lap calculation

lap_time_ms = crossing[n].timestamp_ms
             - crossing[n-1].timestamp_ms
             // same kart_id, same loop_id (SF = start/finish)

Performance target

< 500ms:  lap time pushed to dashboard
< 2000ms: WebSocket update during live session
< 200ms:  historical query response

Key technical decisions

Edge cases handled

Connectivity dropout at trackSQLite buffer on edge device. MQTT replays on reconnect. Deduplication by event UUID prevents double-counting.
Duplicate crossing eventsTiming units occasionally emit 2 events for the same crossing (mechanical jitter). De-duped by [kart_id, loop_id, timestamp] within a 150ms window.
Session boundary ambiguityOperator explicitly flags session start/end in dashboard. Fallback: auto-close sessions with no crossing events for 20+ minutes.
Driver not in system (new transponder)Kart ID maps to an anonymous "Guest" profile. WhatsApp opt-in flow during checkout creates the driver record retroactively.
AMB vs. MyLaps protocol mismatchGo daemon detects protocol via handshake byte on connection. Loads AMB or MyLaps parser accordingly. No manual configuration at install.

B2B2C Strategy

The architecture of the business is as important as the architecture of the system. KartMetrix has two customers with opposite incentive structures — understanding how they reinforce each other was the central product challenge.

The flywheel

Track operator installs KartMetrix

Paying B2B customer. Wants session analytics and revenue visibility.

Driver receives WhatsApp lap time post-session

Free B2C user. Sees their lap, sees the leaderboard. No app download required.

Driver returns to improve their ranking

Repeat sessions increase operator utilisation %. Dynamic pricing recommendation becomes more accurate.

Operator revenue increases

Higher utilisation + pricing engine → measurable revenue lift. Operator retains the subscription.

KartMetrix MRR grows

High NRR (>90% target) → predictable ARR growth without continuous re-acquisition.

Operator JTBD

“Help me understand which hours are profitable and which drivers are worth investing in so I can run a tighter operation.”

Revenue tracked on gut feel and Excel

Off-peak hours run at 20–30% capacity

No visibility into driver LTV or return frequency

Revenue dashboard = WhatsApp messages from cashier

Driver JTBD

“Show me how I'm improving over time and let me compete with other regulars at my track.”

Lap slip is printed, glanced at, forgotten

No session history — every race starts from zero context

No visibility into track leaderboard between visits

Improvement isn't shareable or competitive

Go-to-market: field sales + anchor track model

Phase 0 · Pilot

Month 1–2

Sign one anchor track per city at 50% discount for a 60-day pilot in exchange for testimonial rights. Target: F9 Gurgaon (Delhi NCR), Meco Kartopia (Bangalore), Ajmera IndiKarting (Mumbai), Pune Kartdrome. These are the most visible, high-volume tracks in each city — their endorsement carries weight with the rest of the market.

Phase 1 · Proof

Month 3–6

Document revenue lift from utilisation improvements and pricing recommendations at pilot tracks. Package results as operator testimonials. Use peer introductions from pilot operators to close the next 5–6 tracks per city. Indian go-karting is a relationship business.

Phase 2 · Scale

Month 7–18

Expand to Chennai, Hyderabad, Ahmedabad. Target multi-location operators (Smaaash, High Octane) for Enterprise contracts. Driver app virality — WhatsApp shares of personal-best lap times — starts generating inbound operator interest.

Metrics & Validation

🎯 North Star

Track Operator MRR Retention Rate

Target: >90% net revenue retention at 12 months. An operator who sees measurable revenue improvement retains. An operator who doesn't churn by month 3. This metric surfaces product truth faster than any leading indicator.

Leading indicators — target Month 6

Session utilisation % changePrimary operator ROI signal. +15% in 90 days of install = product is working+15% in 90d
Driver app DAU/MAUFlywheel health. High engagement → repeat sessions → operator revenue35%
WhatsApp opt-in rateDriver notification reach. Below 75% = onboarding friction at checkout>75%
Driver repeat rate (14-day)The business outcome. Engaged drivers return. Target: 42% return within 14 days>42%
Avg revenue per driverLTV trend. Should increase as dynamic pricing activates and LTV segmentation improves offers+8%/quarter
Time to first insightOperator onboarding quality. Under 2 hours from install to first meaningful dashboard load<2 hours

What I learned

01

B2B2C flywheel mechanics are underappreciated

The driver app isn't a feature — it's the retention mechanism for the operator subscription. Without driver engagement, operators see no value from the platform. This means you can't launch the B2B product and add B2C later. The cold-start problem compounds: empty leaderboard → uninterested drivers → no session uplift → operator churn.

02

Hardware integration makes or breaks unit economics

I initially underestimated the proprietary protocol problem. AMB and MyLaps don't want third parties reading their data — they want you to pay for their software. The serial bypass is the right call, but it adds a physical support burden that pure SaaS companies don't have. Every track install is essentially bespoke. This is the primary growth bottleneck.

03

TAM constraints are worth respecting early

India has ~120 commercial karting tracks. 50% market share at Pro tier = ₹60L ARR. This is not a venture-scale business — it's a bootstrapped micro-SaaS with a ceiling. The right conclusion isn't "don't build it" but "build it to be profitable from day one, not venture-scale." The portfolio value is in the reasoning, not the pitch.

04

Dynamic pricing is the real operator unlock

Off-peak utilisation is the biggest revenue opportunity. A track at 30% capacity from 2–4 PM that improves to 50% through a 15% price reduction adds ~₹4,800/month of incremental revenue — more than half the platform fee. This makes the pricing engine the most important V2 feature, but it requires V1 utilisation data to calibrate.

05

WhatsApp is the distribution channel in India

Building a native app first would have been wrong. The post-session activation window is 5 minutes. App Store download friction closes that window. Indian consumers have frictionless WhatsApp habits — a message with a deep link to the leaderboard converts at 3–5× the rate of any app store funnel. The PWA approach meets users where they already are.

Roadmap & Strategy

Portfolio self-assessment

Why this works as portfolio

Shows product thinking for a hardware-constrained, dual-stakeholder problem. Demonstrates unit economics reasoning, scoping discipline, and distribution strategy — all grounded in a real market with real TAM constraints.

Why this won't scale as a business

TAM ceiling at ₹60L ARR. Every install is bespoke (hardware complexity caps velocity). Field sales model requires headcount to scale. No network effects — each track is independent.

What I'd do differently

Talk to 10 track operators before writing a line of code. Validate that the "WhatsApp reports from cashier" problem is the real pain — not just an assumed one. The product reasoning is sound, but customer discovery should precede architecture.

A/B experiments to run

V2 priorities

1

Dynamic pricing engine

Revenue

The biggest operator unlock. Needs V1 utilization data baseline. An off-peak slot at 28% capacity with a 15% price reduction → +₹4,800/month incremental revenue for a 120-session track. More than half the platform fee.

2

Driver LTV segmentation

Retention

Separates high-value regulars (>8 sessions/quarter) from one-timers. Enables win-back campaigns ("Rahul hasn't returned in 30 days — send a ₹50 voucher"). Requires 90+ days of driver history before the model is meaningful.

3

Sector time analysis

Differentiation

RaceFacer parity for enthusiast drivers. Shows where a driver is losing time — corner 3 vs. straight speed. Requires sector loop infrastructure at the track, which isn't universal. Sequenced after V1 validates basic driver engagement.

4

Championship mode

Session density

Operators can run structured multi-week competitions with points, brackets, and a live championship leaderboard. Adds session density — participants book dedicated practice slots. Needs operator engagement to configure and run.

5

Kart health dashboard

Operations

Anomalous lap time variance per kart → maintenance alert ("Kart 7 is consistently 2 seconds slower than the fleet — check the engine"). Requires V1 lap data baseline per kart ID before anomaly detection is meaningful.

Monetisation tiers

Starter · ₹4,999/month·40–80 sessions/month

Target: family-run indoor tracks and smaller outdoor circuits. Platform fee is 7–15% of gross revenue. Setup fee ₹80K (hardware + install). Hardware payback: ~18 months. Designed to get smaller tracks onto the platform and establish session data. Low CAC due to lower sales effort.

Pro · ₹9,999/month·80–150 sessions/month · Most common

The bread-and-butter tier. At 120 sessions × ₹800 = ₹96K gross/month, the platform fee is ~10.4% of gross — justifiable if the dashboard improves utilisation by even 5%. CAC ~₹40K, recovered in 4 months. Expected to be 50% of Phase 1 installs.

Enterprise · ₹19,999/month·150+ sessions/month

Targets Meco Kartopia, Ajmera IndiKarting, Pune Kartdrome. Includes sector analysis, multi-staff accounts, custom reporting, priority support, and a dedicated account manager. Hardware payback: ~5 months. The anchor tier that funds the pilot program.

Platforms referenced

RaceFacerEuropean karting telemetry — the closest global analogue. Lap times, sector analysis, driver profiles. No Indian presence.
MyLaps / AMBIncumbent timing hardware providers. Strong at timing, not at analytics or driver engagement. Integration target, not competitor.
PostHogDashboard UX reference — data-dense but scannable, with clear action recommendations adjacent to data.
WhatsApp Business APIPrimary driver distribution channel. 84% opt-in rate in Indian consumer market. Lowest-friction post-session activation.