TVS Motor Company

TVS Motor Mexico  ·  Lead Classification Engine

TVS Motor Mexico  ·  Lead Classification Engine  ·  Jun 2024 – Nov 2025

What makes the
Mexican customer
actually convert?

A full analysis of behavioural, channel, and declared-intent signals predicting motorcycle purchase conversion across 39,215 Mexican leads.

39,215 Leads Analysed
Jun 2024 – Nov 2025
1,796 Confirmed Purchases
4.58% overall rate
26.9% Very Hot Conv. Rate
Top 10% of scored leads
4.2× Model Lift
Top decile vs baseline
0.77 ROC-AUC Holdout
Oct–Nov 2025 OOT test

Part I  ·  Understanding the LCE

What is the Lead Classification Engine?

The LCE is a predictive model that reads how a prospective buyer behaves online and assigns each incoming lead a probability of converting to a motorcycle sale — before any salesperson picks up the phone.

A lead enters HubSpot

When someone clicks a Google Ad and submits an enquiry form, two things happen simultaneously: HubSpot creates a lead record (capturing declared intent — which model, credit or cash, timeline), and Google Analytics records the entire browsing journey that led to that click.

The browsing journey is assembled

Every page viewed, spec compared, CTA clicked, and session conducted before the enquiry is pulled from Google Analytics 4 (GA4) and matched to the lead via a shared client identifier. This gives us a behavioural fingerprint: how many times did this person return? Which models did they compare? How deeply did they read?

A conversion probability is produced

A CatBoost machine learning model processes 343 features from both sources and outputs a single number between 0 and 1: the probability that this lead will become a paying customer. Leads are then bucketed into four temperature bands — Very Hot, Hot, Warm, and Cold — for sales prioritisation.

🌐 Google Analytics 4 — Behavioural Signals

  • Number of website sessions before enquiry
  • Total events (clicks, scrolls, form interactions)
  • Specific model pages viewed (RR310, RTR160, Ronin…)
  • Spec comparison page interactions per session
  • Offer and finance page visit depth
  • Average scroll depth per session
  • Session duration and engagement time
  • Days between first visit and lead submission
  • Acquisition channel (organic, paid, social)
  • Device type, operating system, geography

📋 HubSpot CRM — Declared Intent Signals

  • Lead type (direct vehicle enquiry, offer registration…)
  • Motorcycle model of interest
  • Payment preference (cash vs. credit)
  • Declared purchase timeline (this month, 3 months…)
  • State and city of the lead
  • Enquiry submission date and time
  • Messaging engagement score (see Risk Flags)
  • Salesforce lead ID linkage
  • Current customer flag

How the model was trained

The model was trained on 35,620 Mexico leads from June to September 2025, with every lead labelled as either "converted" (became a HubSpot customer at any point in their history) or "did not convert." It learned which combinations of browsing behaviour and declared intent are most associated with a sale actually closing.

It was then tested on a completely separate set of 3,595 leads from October–November 2025 — a period the model had never seen. This "out-of-time" test is how we know the model is genuinely learning buyer patterns and not simply memorising the training data. The result: a 4.2× lift in the top 10% of scored leads versus picking leads at random.

The algorithm is CatBoost — a gradient-boosted decision tree optimised for mixed categorical and numerical data, which suits the combination of HubSpot field types and GA4 numeric counters. It was calibrated so that a score of 6% genuinely means approximately 6% probability of conversion, matching the observed baseline rate of 4.58%.

CatBoost 1.2.10Algorithm
343Features
35,620Training leads
Jun–Sep 2025Training window
Oct–Nov 2025Holdout test
MLflowExperiment tracking
DatabricksTraining infrastructure
Platt calibrationScore calibration method

Part II  ·  Model Output

The four temperature bands

Every incoming lead is automatically placed into one of four bands. The bands are percentile-based thresholds derived from the training distribution — Very Hot = top 10%, Hot = p70–p90, Warm = p40–p70, Cold = bottom 40%.

🔴 Very Hot
26.9%
conv rate  ·  top 10% of leads
360 leads in holdout captured 97 conversions — 42% of all conversions from just 10% of volume. Sales should reach these leads within hours.
🟡 Hot
7.7%
conv rate  ·  p70–p90
719 leads generated 55 conversions — 24% of all conversions. Together, Very Hot + Hot = 66% of all conversions from just 30% of lead volume.
🟢 Warm
4.6%
conv rate  ·  p40–p70
1,078 leads generated 49 conversions — 21% of all conversions. Worth working but should not displace Very Hot / Hot priorities.
⚪ Cold
1.9%
conv rate  ·  bottom 40%
1,438 leads — the largest group — generated only 28 conversions (12% of all conversions). 14× less efficient than Very Hot per hour of sales effort.

The core value proposition: Prioritising Very Hot + Hot leads (top 30% by score) delivers 66% of all conversions from less than a third of the volume. Every hour spent on Cold leads is 14× less productive than time spent on Very Hot leads. The model does not prevent working cold leads — it tells the team in what order to work them.

Part III  ·  Website Behaviour

How the customer browses before they buy

Website behaviour is the strongest predictive signal in the entire model. How a person browses — how many times they return, how deeply they engage, what they click — is more predictive than channel, geography, or even what they declare about themselves.

Return Sessions Before Enquiry

Conversion rate by max session count (holdout window, baseline 4.58%)

Total Website Events

Conversion rate by total interactions across all sessions
🔁
Repeat visitors are deciding, not browsing 2.78× baseline

Leads who return 9+ times before submitting convert at 17.7% — nearly 4× the 4.58% overall baseline. Single-visit leads convert at only 3.9%, below baseline. Return visits are the clearest single differentiator in the dataset. The buyer who keeps coming back is not browsing; they are deciding.

📜
The Offer Page Paradox Reversed signal

Leads with the fewest offer page views per session convert at 11.8% — the highest of any group. Heavy offer-browsers (top quartile) convert at 4.1% — below baseline. Heavy offer-browsing signals discount-hunting, not genuine purchase intent. The serious buyer focuses on specs, not promotions.

📋
Spec comparison is due diligence Top 5 feature

Spec interaction per session is a top-5 model feature (3.49% validation importance). A lead comparing technical specifications across models is doing the homework a buyer does before committing. This is qualitatively different from offer-browsing: the spec-reader is narrowing a choice, not hunting for a deal.

📖
Scroll depth has a sweet spot at ~46% 1.46× baseline

Mid-range scrollers (~46% average depth) convert at 9.3%. Very low scrollers are passive; very high scrollers (67%+) convert at only 4.6% — likely skimmers or bots, not buyers. The attentive, deliberate reader converts best; the compulsive scroller does not.

⏱️
Long sessions signal a serious buyer 1.72× baseline

Leads with a longest single session over 25 minutes convert at nearly 11%. Very short max sessions (<2 min) convert at 4.7%. The buyer who spends half an hour on the site in a single sitting is reading carefully, not scrolling past.

📅
Multi-day research span predicts conversion 1.64× baseline

Leads who return to the site across multiple days before enquiring convert at 10.4%. Same-day, single-visit leads convert at only 3.9%. The research window is a proxy for decision seriousness — someone who thinks about a purchase over days is more committed than someone acting on impulse.

Average Scroll Depth vs Conversion

Peak at ~46%; very high scrollers underperform

Product Page Visits

Signal is concentrated at the extreme top decile only

Part IV  ·  Motorcycle Model Interest

Volume ≠ intent: the model interest paradox

The RTR 310 and RR 310 together account for 921 leads — 26% of the holdout — but both convert at just 2.0–2.8%. They are aspirational browsers. The real buyers cluster around mid-range models.

ModelLeadsConv %vs BaselineRate
Apache RTR 160 4V275 13.1%+8.5pp
Apache RTR 200 4V483 11.2%+6.6pp
TVS Stryker 3V278 9.7%+5.1pp
TVS Ronin454 7.9%+3.3pp
Apache RTR 310499 2.0%−2.6pp
Apache RR 310422 2.8%−1.8pp
TVS King Deluxe Plus81 0.0%−4.6pp
NEO NX44 0.0%−4.6pp
⚠️
The premium model trap

The RTR 310 and RR 310 are the prestige models with high aspirational appeal — exactly the products that attract people who research extensively but don't buy. High-end model interest does not equal high purchase intent in Mexico. The model has learned to discount these leads accordingly.

💡
The Ronin context effect

Despite a moderate raw conversion rate of 7.9%, the model assigns Ronin leads a strongly positive SHAP score (+0.41). The model has learned that Ronin enquirers tend to cluster with other high-intent behaviours — return visits, spec comparison, Monday submission — that a simple conversion rate understates. Context matters.

📊
Business implication

Marketing investment generates the most RTR/RR310 enquiries but the fewest sales per lead. Apache 160/200 leads are both your most numerous profitable segment and the highest converters. The mid-range is where Mexican motorcycle buyers live.

Part V  ·  Acquisition Channel

Organic search drives quality. Facebook drives volume.

Channel is less predictive than browsing behaviour, but reveals a critical asymmetry: the channel that generates the most leads is also one of the lowest-converting.

Conversion Rate by Acquisition Channel

Baseline: 4.58% full-dataset

Organic Search
7.1%
Direct
5.0%
CPC / Paid Search
3.6%
Paid Social
3.6%
Referral
2.0%
Organic Social
1.5%
📱
Facebook drives volume, not buyers

The three main Facebook entry points account for 314 leads combined — all converting well below baseline. m.facebook.com: 144 leads, 0.7% conversion. l.facebook.com: 120 leads, 2.5%. Facebook leads have likely been served a broad awareness ad rather than searching with intent. They need a fundamentally different nurture approach.

🔍
Google Organic is the crown jewel

82% of all leads arrive via Google organic search (2,935 in the holdout) and they convert at 7.1% — 55% above the full-dataset baseline. Someone who searches for "Apache RTR 200 precio México" and finds the TVS website organically is far more motivated than someone who clicked a Facebook ad while scrolling. This channel is the primary acquisition source to defend and grow.

Part VI  ·  CRM & Declared Intent

What the customer tells you about themselves

HubSpot captures what the lead declares at the moment of enquiry — how they want to pay, what timeframe they have in mind, what kind of enquiry they're making. These declared signals are powerful but must be read carefully.

Payment Preference

Cash vs credit vs not declared

Purchase Timeline

Self-reported buying horizon

Lead Type

What kind of enquiry was submitted
💵
Cash buyers convert at nearly 3× credit buyers

Cash (contado) buyers convert at 12.1% vs 4.3% for credit. This is not because credit buyers are less serious — 60% of leads prefer credit, and they face genuine friction from financing requirements. The credit buyer represents a significant conversion unlock: optimising the credit journey and reducing friction could materially move the overall baseline. Cash buyers, though rarer, are your highest-confidence hot leads.

📝
Offer Registration dominates volume — at below-baseline conversion

Offer Registration accounts for 82% of lead volume but converts at only 5.6% — below the holdout baseline of 6.37%. Customer Enquiry (Vehicle) leads convert at 21.1% and Customer General Enquiry at 29.4% — but together these comprise a small fraction of total volume. These are the diamonds in the rough the model is designed to surface.

📅
Declared timeline tracks reality almost perfectly

"This month" leads convert at 7.9%; "next 6 months" leads at 1.4%. The model's implicit learning of this signal is confirmed: declared intent aligns with actual behaviour. A lead who says they're buying this month is worth 5× the sales effort of a 6-month-horizon lead — and the model already weights this appropriately.

💡
Direct vehicle enquiries are your highest-value leads

"Customer Enquiry Vehicle" leads (21.1% conversion) and "Customer General Enquiry" (29.4%) are rare but extremely high quality. When a lead bypasses offer registration and directly asks about a specific vehicle or the brand generally, they are significantly further along the purchase journey. These leads should always be in the Very Hot bucket regardless of browsing behaviour.

Part VII  ·  Geographic Performance

Where in Mexico do leads convert?

Geography is a feature in the model but not a dominant one — behavioural signals outweigh location. Nevertheless, clear regional patterns exist that have operational implications for dealer strategy.

↑ Outperforming States (n ≥ 50)
StateLeadsConv %vs Baseline
Morelos8121.0%+16.4pp
Oaxaca14011.4%+6.8pp
Guerrero858.2%+3.6pp
Guanajuato1317.6%+3.0pp
Jalisco2836.4%+1.8pp
Veracruz3306.1%+1.5pp
Ciudad de México4936.1%+1.5pp
Puebla1796.7%+2.1pp
↓ Underperforming States (n ≥ 10)
StateLeadsConv %vs Baseline
Chiapas911.1%−3.5pp
Sinaloa110.0%−4.6pp
Nayarit200.0%−4.6pp
Coahuila462.2%−2.4pp
Nuevo León1253.2%−1.4pp
Hidalgo402.5%−2.1pp
Baja California120.0%−4.6pp
🗺️
The Morelos anomaly

Morelos converts at 21% from 81 leads — over 4× the full-dataset baseline. This is a statistically significant outlier worth investigating: is this driven by a particularly effective dealer, a specific product-market fit, or a demographic concentration? Understanding the Morelos pattern could inform replication strategy in similar markets.

🧭
Northern border states consistently underperform

Coahuila, Nuevo León, and Baja California all convert below baseline. This may reflect a different competitive landscape in the north (proximity to US market, different income demographics) or a preference for alternatives not served by TVS's current portfolio in those markets. These states generate volume but not sales — a pattern worth monitoring as the model matures.

Part VIII  ·  Timing Signals

When the customer is most ready to buy

Lead submission day and hour show consistent patterns. The model captures seasonality as a top-5 training feature — buying cycles are real and the model accounts for them.

Day of Week vs Conversion Rate

Monday–Tuesday leads convert at 1.3× baseline
📅
Weekday decisions: Monday and Tuesday lead

Monday (8.4%) and Tuesday (8.0%) converts significantly better than the weekend (Saturday 4.2%, Sunday 4.4%). This is consistent with the idea that purchase decisions are made or discussed with a partner on weekends, and the lead is submitted at the start of the working week when the intent is fresh and actionable.

🌙
Evening leads score higher by the model

Leads submitted between 4pm and 11pm receive higher model scores (~46% average predicted probability) vs midday (~39%). Evening browsing is deliberate — the person has been thinking about the purchase all day and is researching intentionally, not filling time. This is the internet-era equivalent of visiting a dealership after work.

📆
Seasonality is a top-5 training feature

Lead month ranks in the top 5 features by training importance (3.3%). The model captures Mexico's motorcycle buying seasons. Promotional periods like Buen Fin can shift the baseline conversion rate significantly — threshold recalibration should be considered at the start of major promotional windows.

Part IX  ·  Feature Analysis

What drives conversion — and what doesn't

The model uses SHAP values to attribute its predictions to individual features. Below is a structured view of which signals consistently push a lead towards "will convert" and which consistently push towards "won't convert."

✅ Signals that drive conversion
session_count (9+)
9+ sessions before enquiry — repeat visitors deciding, not browsing
2.78×
lead_type = Customer Enquiry
Direct vehicle or general enquiry — not offer registration
6.4×
credito_o_de_contado = Contado
Cash payment declared — removes financing friction
2.64×
model_name = Apache RTR 160/200
Mid-range Apache interest — highest converting model segment
2.5×
spec_interact_per_session (high)
Technical spec comparisons — due diligence, not casual browsing
Top 5
total_events (150+)
High total engagement — monotonically positive, no ceiling
1.86×
lead_dow = Monday / Tuesday
Early-week submission — post-weekend decision conversion
1.3×
traffic_source = organic
Arrived via Google organic search — intent-driven, not ad-served
1.55×
geo_state = Morelos / Oaxaca
High-converting states — local market or dealer effectiveness
2.5–4.6×
max_sess_duration_sec (>25 min)
Long maximum session — deep single-session engagement
1.72×
❌ Signals that indicate low conversion
model_name = Apache RTR/RR 310
Premium model aspiration — browsing without buying intent
0.44–0.60×
offers_per_session (high Q3–Q4)
Heavy offer/promo browsing — discount-hunting, not buying
0.63×
session_count = 1
Single visit — no research commitment, impulse-driven
0.61×
avg_scroll_pct > 65%
Extreme scrollers — skimming, not reading; possibly bot activity
0.72×
traffic_source = facebook
Facebook entry — ad-served, not intent-driven
0.15–0.55×
purchase_timeline = 6 months
Long declared horizon — intent exists but commitment is absent
0.31×
geo_state = Chiapas / N. border
Northern border states + Chiapas consistently below baseline
0.24×
lead_type = Offer Registration
82% of volume — promotional, not intent-driven
Below base
max_sess_duration_sec < 2 min
Very short sessions — bounced without engaging
0.82×
lead_dow = Saturday / Sunday
Weekend submission — impulse or leisure browsing
0.66–0.69×

Part X  ·  The Ideal Lead

What does the Very Hot Mexican buyer look like?

No single lead matches all criteria — the model weighs signals in combination. But the composite profile of a Very Hot lead is unmistakable.

🏍️
Model Interest
Apache RTR 160/200 or Ronin
↑ Up to 1.9× baseline
🔁
Return Visits
9+ sessions before enquiry
↑ 3.9× baseline
📅
Research Span
Multiple days of browsing
↑ 1.4–1.6× baseline
📊
Total Engagement
150+ events on site
↑ 1.86× baseline
💵
Payment Preference
Cash (Contado) declared
↑ ~2.6× baseline
📝
Lead Type
Customer Enquiry Vehicle
↑ 3–6× baseline
🔍
Acquisition Channel
Google Organic Search
↑ ~1.6× baseline
📆
Day & Time
Monday/Tuesday, evening
↑ ~1.8× baseline
📍
Geography
Morelos, Oaxaca, Guerrero, Jalisco
↑ 1.4–4.6× baseline

The three most powerful individual signals are lead type (direct enquiry vs. offer registration), return session count, and payment preference. A lead who exhibits all three could realistically be operating at 6–8× the 4.58% baseline conversion rate. The model finds these combinations automatically — the score is the output of all 343 features working in concert.

Part XI  ·  Model Risk Flags

What must be audited before full production

These flags do not invalidate the model's outputs — the holdout performance (ROC-AUC 0.77, lift 4.2×) is genuine. They represent specific features that require verification before the model is trusted for automated, unsupervised scoring.

🚨
hs_messaging_engagement_score Critical — Audit Required

Ranked #1 by training importance with approximately 48% weight. This HubSpot field aggregates WhatsApp, email, and SMS engagement activity — which typically accumulates after a rep contacts a lead, not at the moment of enquiry. If so, the model is using a field that says "this lead was already contacted and responded" to predict whether the lead will convert — a circular, leaky signal that would be unavailable in real scoring. This must be confirmed as a creation-time field before production use. If leaky: remove, retrain, accept lower ROC-AUC as the real baseline.

🚨
hs_current_customer — Post-Conversion Flag Critical — Audit Required

The field name alone is the red flag. HubSpot typically sets this flag when a lead's lifecycle stage flips to "customer" — i.e., after purchase. If this field is populated post-purchase, the model is using purchase confirmation to predict purchase — a perfect but entirely circular signal. Requires urgent confirmation from the HubSpot data team. Likely needs to be excluded.

⚠️
salesforceleadid — Possible Rep-Assigned Field Medium — Verify Timing

At 7.22% training importance, this field matters to the model. If the Salesforce ID is assigned automatically at lead creation (the integration syncs immediately), it's fine. If a rep manually assigns it after reviewing and deciding to pursue a lead, then its presence reflects the rep's quality judgement — not a feature available at scoring time, and potentially biasing the model toward leads reps already decided to work. Requires verification of when this ID is written.

⚠️
Deduplication Sort Order Bug Low Risk — One-Line Fix

The training notebook deduplicates phone records using ascending date order, retaining the oldest property values instead of the most recent. This means some leads are scored on stale CRM data rather than the latest HubSpot fields. The fix is a single line change (.asc() → .desc()). Low risk to current model performance, but should be corrected before the next training run.

ℹ️
Unbounded Conversion Label Window Backlog — V2 Fix

A lead is currently labelled as a "customer" whenever they converted — even if that was 18 months after the enquiry. This introduces two problems: older leads look artificially better (they had more time to convert), and the model may learn patterns from leads with very different purchase timelines. The recommended fix is to bound conversion labels to a specific window (e.g., 90 days from lead creation) agreed with the commercial team. This is not a production blocker, but is scheduled for V2.