Sales & closing

How to spot missed upsell opportunities in your sales reports

A sales upsell opportunities dashboard shows you which technicians, service types, and call types are leaving add-on revenue on the table, before the month closes. Here is what to track, how to read the signals, and why the standard reports in most field-service CRMs hide the problem.

By Datacube content engineAutogenerated

Most home-service companies track total revenue per technician. Fewer track the gap between what a tech sold and what was available to sell on every job. That gap is where missed upsell revenue lives, and it is invisible inside the standard ticket-value report.

A sales upsell opportunities dashboard makes the gap visible. It answers three questions for every sales rep and every job type: How often was an upsell opportunity present? How often was it offered? How often did it close? Without those three numbers sitting side by side, you are coaching with one hand tied behind your back.

Why standard sales reports hide upsell misses

CRM reports in most field-service platforms are job-and-invoice centric: they show what was billed, not what was eligible to be sold. An HVAC tune-up that closed at 189 dollars looks fine next to an identical tune-up that closed at 650 dollars with a filter upgrade, duct seal, and UV light add-on. The reporting system registers both as successful jobs. It takes a layer of structured upsell tracking, by job type and by rep, to see the second number and understand why the first one never got there.

The same pattern shows up in plumbing maintenance calls. A tech who clears a drain and closes the job at 175 dollars on a call where a water heater flush and expansion tank check were both appropriate has not done anything wrong by the standard job report. Only a dashboard that overlays job type, average ticket by job type, and per-rep add-on rates will surface what was left behind.

What this article covers

  • Why standard CRM reports mask upsell misses even when job volume looks healthy.
  • The three metrics that together reveal missed upsell patterns: attach rate, upsell offer rate, and average ticket by job type.
  • A diagnosis table mapping observable miss signals to the specific report fields that reveal each one.
  • How a sales upsell opportunities dashboard turns the data into a repeatable coaching conversation.
  • The difference between upsell tracking that coaches and upsell tracking that pressures.

Upsell miss signals and the metrics that reveal them

Observable patternWhat it usually looks like in a CRM reportMetric that reveals the missField or data point to check
Tech A's tune-up average ticket is 40% below team medianJob closes fine, revenue shows as normalAverage ticket by job type, by repInvoice total filtered to tune-up or maintenance job type
High job count but flat revenue month over monthRevenue looks stable, volume looks strongRevenue per job (average ticket trend)MTD average ticket vs. prior period average ticket
Add-on products (filters, memberships, UV lights) sold by only 2 of 8 techsTop-line revenue looks fine if those 2 techs carry itAttach rate by rep and product categoryLine-item or product-category breakout per invoice, grouped by tech
Membership conversion is high on some job types, absent on othersTotal memberships sold looks fine if volume is upMembership attach rate by job typeMemberships sold / total eligible jobs, segmented by job category
Tickets spike when one top rep is on shift and drop when they are offRevenue variation blamed on call type or seasonAverage ticket by rep vs. team average, filtered by same job typePer-rep ticket data with job-type filter applied
Diagnostic calls rarely convert to repairs or upgradesDiagnostics show as closed jobs, upsell outcome invisibleDiagnostic-to-repair conversion rate by repFollow-up job created from original diagnostic job, by tech

Info

Coaching moment: the question a manager cannot ask without this data

If your best HVAC tech averages 620 dollars on tune-up calls and your newest tech averages 210 dollars on the same job type, you have a coaching opportunity worth finding. But a general revenue leaderboard that shows the new tech at 18,000 dollars for the month and the veteran at 22,000 dollars does not surface the rate. The veteran ran 35 calls; the new tech ran 86. Without a per-call, per-job-type lens, the manager never knows whether the new tech is under-selling on every job or just running a different mix. The upsell dashboard gives the manager the right question to ask before the month is over.

What healthy upsell tracking looks like by role

These signal ranges vary by trade, season, market, and business model. Use them as a starting point for internal targets, not as universal benchmarks.

  • Average ticket by job type (tech vs. team median)Filter by job type, not all-in ticket
    Good
    Current
    Within 15% of team median
    Target
    Within 10% of team median
  • Membership attach rate on eligible service callsEligible job type definition varies by trade
    Poor
    Current
    Below 20%
    Target
    30%+ on eligible job types
  • Add-on attach rate (filters, accessories, UV lights)Concentration in 1-2 reps signals a process gap, not a talent gap
    Watch
    Current
    Fewer than 3 of 8 reps offering
    Target
    Consistent across full team
  • Diagnostic-to-repair conversion rateLow conversion may indicate pricing friction or incomplete option presentation
    Watch
    Current
    Below 40%
    Target
    50%+ depending on job mix
  • Month-to-date revenue per job vs. prior monthGrowing calls with flat revenue is the clearest upsell-miss signal
    Poor
    Current
    Flat or declining while job count grows
    Target
    Stable or improving alongside volume
  • Top-rep vs. bottom-rep average ticket (same job type)Wide spread points to a training and process problem, not a market problem
    Poor
    Current
    Greater than 2x spread
    Target
    Less than 1.5x spread on identical job types

How to build a useful upsell tracking view in your reports

A useful sales upsell opportunities dashboard is not a new report you pull at month-end. It is a live view your sales manager opens every morning to run the day. Here is what it needs to show, and why each field earns its place.

1. Average ticket by job type, filtered to each rep

Comparing all-in average ticket across a team is misleading if different techs run different job mixes. A plumbing tech running mostly water heater replacements will always outsell one running drain clears, regardless of upsell skill. The fix is to filter the average-ticket metric by job type and show where each rep lands relative to teammates running the same type. That makes the comparison fair and the coaching specific.

2. Attach rate by product category and rep

Attach rate measures how often a rep adds at least one qualifying product or service category to a job where it was relevant. For an HVAC company the categories might be: filters, UV lights, duct sealing, service agreements, and surge protection. Tracking attach rate by category and by rep makes it easy to see that a tech is strong on service agreements but never mentions surge protection. That is a one-topic coaching conversation, not a general performance review.

3. Month-to-date upsell revenue vs. goal

Setting a monthly add-on revenue goal per rep or per team and tracking it in real time gives a manager the ability to redirect mid-month. If the HVAC team is 35 percent of the way through their membership goal by day 15, they need to double pace in the second half. Seeing that on day 15 is a very different situation from seeing it in a month-end report on day 32.

Connecting upsell data to your CRM

Most of the data for upsell tracking already exists inside your CRM. For teams using ServiceTitan, job type, invoice line items, and product/service categories are recorded at the job level. The problem is not that the data is missing, it is that the standard reporting view does not surface it in the per-rep, per-job-type format that makes coaching decisions fast. ServiceTitan dashboard examples can give you a sense of how that data can be restructured into a live coaching view.

For teams on Housecall Pro or Workiz, invoice-level data is similarly available but typically requires a reporting layer to reorganize by rep and job type. A custom analytics build, rather than native CRM exports, is usually what gets the data into a shape your manager can actually act on daily. The related guide on average ticket by sales rep goes deeper on pulling that metric into a coachable view.

Info

Quick example: what the upsell gap looks like in a real HVAC season

Consider an HVAC company running 200 tune-up calls in October. The average ticket on those jobs is 195 dollars. Two technicians on the team average 420 dollars on the same job type because they are presenting filter upgrades, UV light add-ons, and service agreement offers on every eligible visit. If the remaining six techs moved from 195 to 280 dollars per tune-up call, the revenue difference across those 160 jobs would be roughly 13,600 dollars for the month. The math is illustrative and varies by market and pricing, but the pattern is consistent: a small per-job lift across high-volume job types compounds quickly, and it is invisible without per-rep, per-job-type tracking.

Turning upsell data into a repeatable coaching conversation

Upsell tracking only creates accountability when the data feeds a consistent coaching cadence. The most common mistake is pulling the data at month-end and delivering feedback when nothing can be changed. The second most common mistake is sharing leaderboard rankings without giving reps the specific job-type or product category where they can improve.

A weekly rhythm works better: review attach rate and average ticket by job type on Monday, identify the one or two reps furthest from team median on a specific job type, and have a targeted conversation before the next batch of those jobs. Pair this with discount tracking by sales rep to understand whether low tickets reflect discounting decisions rather than upsell misses. They often overlap.

The distinction between upsell tracking that coaches and upsell tracking that pressures comes down to specificity. A manager who says "your average ticket is low" puts a rep on the defensive. A manager who says "on your last 12 drain-clear calls you did not present a membership once, and the team average on those calls is 2 out of 3" is giving a rep something they can change tomorrow.

What to look for in a datacube upsell dashboard

When configured to pull from your CRM and invoice data, a datacube Sales board can show per-rep average ticket by job type, attach rate by product category, month-to-date upsell revenue vs. goal, and a leaderboard for add-on performance alongside total revenue. Leaderboards for sales teams work best when they display the right mix of metrics, not just the one number that already favors the top earner.

The Sales board can also surface missed membership opportunities by flagging jobs in eligible categories where no membership was offered or sold. That flag is not possible from a standard CRM report because the CRM only records what happened, not what was eligible to happen. A dashboard layer built on top of job-type, product, and invoice data can make that inference and surface it in a live view your manager checks each morning.

Upsell opportunities dashboard FAQs

See what missed upsell revenue looks like in a live dashboard

Datacube builds custom sales dashboards that surface per-rep attach rate, average ticket by job type, and add-on revenue vs. goal in one real-time view. Book a demo and we will show you what the upsell gap looks like in data pulled from your own CRM.