Skip to content

Your newest ad leads have had fewer days to sell

Before replacing your agency over a weak month, give the old and new leads the same amount of time to turn into sold work.

TL;DR

  • Lead conversion delay can make a new group of inquiries look worse than an older group. In the invented example below, identical sales timing produces reported sold rates of 60% and 30% on one reporting date.
  • Compare leads received in each period after the same number of days. At seven days, both groups have sold three of ten: 30%, with $400 in media spend per sold lead.
  • Keep an unfinished result marked as unfinished. A seven-day-old lead cannot yet be counted as a failure to sell within 30 days.
  • Check the dates in Google Ads separately. Its standard conversion columns and its conversion-time columns answer different questions; neither is automatically your CRM's count of sold jobs.

Why does this month's report look worse already?

It is the second week of the month. Last month's inquiries have produced six sold jobs. This month's have produced three. The ad spend shown beside each group is the same. A report labels the new group twice as expensive, and you start wondering whether the agency has lost its touch.

Some deterioration could be real. The calls may be going unanswered, the campaign may be buying the wrong trade, or estimates may be sitting without follow-up. But the comparison has another possible explanation: last month's leads have had more days to sell.

A same-day repair and an equipment replacement estimate do not necessarily reach a decision on the same schedule. Your report needs to preserve that time. Otherwise, the owner looking at it has to guess how much of a change comes from the campaign and how much comes from an unfinished sales process.

You can check this with a small export. Start with the date each inquiry arrived and the date it became sold work. The following example shows the calculation before asking you to apply it to your own business.

Twenty invented leads, two different-looking results

There are ten leads dated August 1 and ten dated September 1, 2026. Each group has $1,200 of media spend assigned to it. Those are made-up inputs, not a client result, a forecast, or a suggested advertising budget. Management fees and other costs are excluded, so every cost figure here is explicitly media-only.

In each group, six leads sell after these delays: zero, two, seven, ten, fourteen, and twenty-one days. The remaining four have no recorded sale. A blank sale date means no sale is recorded in this example; it does not tell you whether a real prospect is still considering an estimate, was lost, or never received a follow-up.

On September 8, all six August sales are visible. Only the first three September sales have happened.

Group of leadsResults visible by September 8Sold rateMedia spend per sold lead
August 1: ten leadsSix sales60%$200
September 1: ten leadsThree sales30%$400

On that cutoff, the reported unit cost has doubled. Yet the two groups were deliberately constructed with identical sales timing. The comparison measures different observation time along with any performance difference.

Now stop counting each lead after seven days, even when later sales are already known. Both groups include the sales on days zero, two, and seven. Both exclude sales on days ten, fourteen, and twenty-one from this particular window.

Group of leadsSales within seven days of arrivalSold rate at seven daysMedia spend per sold lead at seven days
August 1: ten leadsThree30%$400
September 1: ten leadsThree30%$400

Equal observation time removes the apparent difference in this constructed example. It does not guarantee that two groups in your company will match. That is exactly what your export should help you discover.

How to compare lead conversion delay at equal ages

A group defined by when its leads arrived is often called a lead cohort. For a monthly report, label the group by the inquiry month, then choose a fixed amount of time for each lead to sell. Seven, fourteen, and thirty days can be useful reporting views; these are example windows, not Google's required settings or an industry benchmark.

Use the same rule for every group. A sale qualifies for the seven-day result if it happened from the lead's arrival date through the date seven days later, inclusive. In this example, September 1 through September 8 is the eligible window. Date-only records measure calendar days; they cannot tell you whether a sale occurred exactly 168 hours after a call.

Every lead in the comparison must be old enough for the selected window. If your report is dated September 8, a September 7 inquiry is too young for the seven-day result. Keep it visible in the intake total, but mark its seven-day outcome as pending. Do not quietly count it as an unsuccessful mature lead.

For a complete monthly comparison, wait until the last included lead has reached the selected age. If you choose to show a partially mature group instead, print the eligible count separately and explain which leads are excluded. Dividing the whole group's media spend by sales from only its oldest leads creates another mismatch. Until every observed lead in the chosen group is old enough, the companion code withholds the rate and unit cost.

An equal-age table should still show the denominator. Three sales from ten inquiries and three from thirty inquiries are different results. It should also say whether the unit is one distinct inquiry, one person, one job, or one invoice. The code here counts at most one sold outcome for each distinct lead ID. It is not a way to total every job sold to a repeat customer.

Keep inquiry month, sale month, and cash month separate

Suppose a homeowner asks for an estimate on August 28 and accepts it on September 10. The inquiry belongs to the August lead group. The sale belongs to September's sales activity. If payment arrives later, the cash belongs to that later period.

Those three views can all be useful. The August cohort tells you what happened to inquiries acquired in August. September sales activity helps describe work sold during September. Cash reporting helps manage what you actually collected. Combining August advertising spend with all September sales, including inquiries from earlier periods, will not produce a reliable August acquisition cost.

Write the date rule beside the number. “August inquiries sold within 30 days, reported through October 1” is much more informative than “August conversion rate.” Keep sold, completed, and paid as separate fields. Acceptance of an estimate does not establish the completed work's margin or prove the bill was collected.

Why the Google Ads numbers may use another date

Google's conversion-data guide distinguishes its usual conversion columns, which report against the time of the ad interaction, from columns labeled by conversion time, which use when the conversion happened. Read the actual column name before comparing a platform report with a CRM export.

A late conversion can therefore change the platform's reported result for an earlier interaction period. Google's conversion-delay guide also warns that recent results can appear weaker because the cost has already been reported while some conversions have not yet occurred. Its historical delay-report instructions use a date range ending at least 30 days ago, or longer for a longer conversion window. The seven-day CRM exercise here is a separate calculation.

Matching dates alone will not make the totals agree. Google may be counting calls or forms, using attribution rules and counting settings that differ from your distinct-inquiry export. Check which action is being measured as well as its date. The agency report definitions guide covers those distinctions, and the Jobber offline-conversion guide explains the separate task of sending CRM outcomes back.

What this doesn't cover

This calculation cannot establish that advertising caused a sale. It assumes the leads and media spend have already been assigned to a group using a consistent rule. It does not correct source tracking, attribution, duplicate people, cancellations, refunds, the mix of repairs and replacements, or changes in capacity and weather. It reports recorded sales, not revenue, profit, or cash.

The example contains only twenty invented records. It demonstrates a reporting error, not a normal contractor conversion rate. Equal observation time can reveal a real decline, and it gives no reason to keep paying for an unanswered phone or an obviously unsuitable campaign. Review intake quality and follow-up now while the longer outcome window is still pending.

Run the check on a small export

  1. Choose the unit you want to count. Start with distinct new inquiries and remove confirmed duplicate lead IDs. Keep repeat customers and different trades visible in separate views where possible.
  2. Export the inquiry date, sold date, source, and job type. Leave genuinely unknown dates blank rather than assigning the report date. Keep the export inside your own business systems.
  3. Choose the reporting cutoff and a sales window. Compare groups only when the included leads have reached that age; show the pending count alongside immature results.
  4. Count sales occurring within each lead's own window and no later than the reporting cutoff. Retain unsold mature leads in the denominator.
  5. Divide the appropriate acquisition cost by sold outcomes only when the cost and lead group match. For an all-in figure, include management, tracking, and other agreed acquisition costs; the $1,200 example includes media alone.
  6. Ask the person preparing your report to show both recent intake and the latest mature outcomes. You need an early operational signal and an outcome that has had time to develop.

The synthetic CSV and Python check contain the twenty example records, an analyzer, nine offline tests, and instructions. No sign-up is required. You can also inspect the CSV alone. Running the code is optional; the two tables above contain the complete example arithmetic.

Dates in the analyzer use YYYY-MM-DD. Duplicate IDs and a sale dated before its lead are rejected. An empty group returns an unknown rate; a mature group with no sales returns a zero sold rate and no calculable cost per sale. Neither produces a made-up $0 acquisition cost. Future-dated example sales stay invisible until the reporting cutoff reaches them.

FAQ

Should I stop a campaign when this week's cost per sale rises?

Check whether the compared groups have had equal time to sell. Then inspect current call handling, lead quality, and spending before deciding. A pending sales window prevents a final comparison, but it does not prevent you from fixing an immediate operational problem.

Is seven days enough for HVAC, plumbing, or electrical leads?

Seven days is an illustration here, not a universal sales window. Choose a window that fits the recorded decision times for your services and keep emergency repairs separate from planned estimates. Retain a longer view so later sold work remains visible.

What if some sales take more than 30 days?

They do not count in a 30-day result, even if they eventually sell. Add a longer window or an eventual-outcome view and label it clearly. Do not alter the window for just the group you want to make look better.

Does an equal-age comparison prove my agency is doing a good job?

No. It removes one source of unfair comparison. You still need suitable inquiries, consistent cost definitions, account access, and recorded business outcomes to assess the work.

Sources

Lonta AI helps home-service owners plan and manage marketing around measurable work. Request a free marketing strategy to agree on the outcome, cost, and reporting windows before starting.

Request your free strategy

One page, five details, no card and no call.

Would rather talk it through? Ask for a callback on the form and pick a window. The person who would run your account calls you, not a salesperson.

This sets the testing pace. There is no minimum.

A good callback window or the first problem you want us to look at

No card and no call. Read-only access only.