GROWTH

Tracking Leads From Ad Click to Signed Client With a Simple Spreadsheet

The columns, the statuses and the formula to calculate your real cost per signed client, and stop judging your ads on the wrong number.

26 October 2026 8 min read

A business owner looks at their ad account on a Monday morning. Meta reports 43 leads last month, at 18 € each. The number looks fine. But nobody in the company can say how many of those 43 people actually became clients. The salesperson remembers "a few," the front desk lost track of the callbacks, and the spreadsheet that was supposed to centralize everything stopped being updated after the third week because nobody had time for it.

This is the most common situation among companies running online ads for the first time, including in the French market where Solvya operates. The problem is almost never the quality of the leads or the campaign settings. It's the absence of tracking that follows a lead from the click all the way to the signed contract. Without it, you literally cannot know whether a campaign is working, because you're only looking at the one number the ad platform gives you for free: cost per lead. That number says nothing about what actually matters, the money coming in.

The good news is that this tracking doesn't require paid software or technical skills. A spreadsheet, ten columns, and the discipline to keep it updated are enough for most businesses starting out.

Why cost per lead is the wrong number to watch alone

Cost per lead measures one thing only: how much you paid to get a contact. It says nothing about the quality of that contact, or what happens to it afterward. Two campaigns can show the exact same cost per lead and produce opposite results if one brings in curious browsers and the other brings in real projects. For reference points on what a lead costs in different sectors, the 2026 cost per lead benchmarks are a useful baseline.

This is what pushes some owners to cut a profitable campaign because its cost per lead looks high next to another one that barely converts anything. Without tracking all the way to signature, the decision gets made on the only visible data point, which is also the least useful one. The number that should guide a budget decision isn't cost per lead, it's cost per signed client: total ad spend divided by the number of contracts that actually came from it. That's the only figure that compares directly to the value of a client and tells you whether advertising, as a whole, brings back more than it costs. The same logic is worked out in ROAS for a local business, with a realistic target.

The columns a tracking spreadsheet needs

A lead tracking spreadsheet doesn't need to be sophisticated. It needs to be complete and kept current. Whatever tool you use (a plain spreadsheet, Notion, Airtable, or the basic module of a business management tool), the following columns cover the essentials:

  • Date of the request: without it, you can't measure response time or spot seasonality.
  • Name and contact details: the minimum needed to follow up, and to deduplicate if the same person fills out a form twice.
  • Source: which campaign, which ad, or which channel produced this lead. This is the column that later lets you compare campaigns instead of lumping everything together.
  • Status: where this lead stands in the journey (details below). This is the heart of the spreadsheet.
  • Date of first contact: to check that callback time stays short, a factor that directly affects conversion rate.
  • Date of last contact: to spot leads that have gone quiet for too long without being explicitly marked "lost."
  • Quote or proposal amount: useful even as an estimate, to gauge the value of the current pipeline.
  • Signature date: the only date that matters for calculating a real result.
  • Signed amount: the actual revenue generated, distinct from the quoted amount.
  • Short notes: the reason for a rejection, a callback requested on a specific date, a blocking point. Three words are enough, but their absence makes the tracking unreadable six months later.

Ten columns, no more. The classic mistake is adding fields that look useful on paper (a five-criteria qualification score, a detailed log of every exchange) that nobody fills in past week two. A simple spreadsheet kept current is worth far more than a complete one that gets abandoned.

Statuses: the skeleton of the tracking

Status is the column that turns a contact list into a sales pipeline. A set of statuses that works for most service businesses:

  1. New: the lead just came in, nobody has contacted them yet.
  2. Contacted: a first call or message has been sent, no response yet.
  3. Qualified: the person responded, the project is real (budget, timeline, and need confirmed verbally).
  4. Quote sent: a priced proposal has gone out.
  5. In negotiation: the person is comparing options, hesitating, or asking for an adjustment.
  6. Signed: the contract is closed. This is the only status that feeds the cost-per-client calculation.
  7. Lost: the person explicitly declined, or stopped responding after several documented follow-ups.

Two rules keep this system useful over time. First, a lead never sits indefinitely in an intermediate status: past a delay you set (two to four weeks depending on your sales cycle), an unanswered lead moves to "lost," even if it can be reactivated later if the person comes back. Without this rule, the pipeline fills up with ghosts that artificially inflate the number of "active" projects. Second, every status change comes with a date. That's what lets you later measure where leads actually drop off: do they never respond after the first contact, or do they disappear after receiving a quote?

Calculating cost per signed client

The calculation itself is simple, as long as the spreadsheet is reliable:

Cost per signed client = Total ad spend over the period ÷ Number of leads that reached "Signed" status over the same period

An example to set the order of magnitude, with numbers chosen for illustration rather than drawn from a real case. A company spends 1,500 € on ads in a month and gets 60 leads, or 25 € per lead. Of those 60 leads, 6 end up signing in the following weeks. Cost per signed client is then 1,500 € ÷ 6, or 250 €. If this company's average contract value is well above that figure, the campaign is profitable, even though a 25 € cost per lead had looked high at first glance.

One technical point matters here: the decision cycle for a high-ticket service often runs longer than a calendar month. A lead generated in January can sign in March. To stay accurate, the calculation should match spend over a period to the signatures that actually resulted from it, not just the ones that happened to fall in the same calendar month. Many businesses simplify this by calculating the ratio quarterly instead of monthly, which smooths out the lag without complicating the spreadsheet.

What this number changes in practice

Once cost per signed client is available, three decisions become possible that weren't before:

Comparing several channels or campaigns on the same basis. The "source" column lets you calculate this same ratio separately for each campaign. One campaign can have a cost per lead twice as high as another and still produce a cost per signed client twice as low, simply because it attracts a more qualified audience.

Making budget decisions with an actual criterion. Increasing or cutting an ad budget based on cost per lead alone amounts to deciding blind. Cost per signed client, compared to your average contract value, gives a concrete answer to the question that matters: is this money coming back, and with what margin.

Identifying where the pipeline leaks. If the move from "new" to "contacted" is weak, the problem is callback speed. If it breaks down between "quote sent" and "signed," the problem lies elsewhere, in the offer, the price, or the sales follow-up. Without dated statuses, this diagnosis is impossible and every decision stays a guess. A slow move from new to contacted is often a callback problem, as calling back a Facebook lead fast explains.

The mistakes that make a spreadsheet useless

Three pitfalls show up most often. The first is updating the spreadsheet in batches, usually once a week at the end of the day, which guarantees missed entries and approximate dates. The second is counting a lead as "signed" as soon as the quote goes out, before the actual signature, which artificially inflates the conversion rate and skews every calculation that follows. The third is never cleaning up leads stuck in an intermediate status for months, which makes the pipeline unreadable and hides the real picture of current activity.

None of these pitfalls depend on the tool you choose. A spreadsheet kept current in a basic file beats a sophisticated CRM that nobody feeds. The question to ask before investing in a more complex tool isn't "which software should I choose," it's "does someone in the company have the time and discipline to maintain this tracking every week." If the answer is no, it's better to fix that first with a simple spreadsheet before adding complexity.

Some trades have qualification requirements that go beyond this common baseline, for instance filtering requests by site feasibility before the first call even happens. The spreadsheet and status principle stays the same, only the intermediate steps adapt, as detailed in our article on lead qualification and CRM pipelines for pool builders.

Once the tracking is in place

Clean tracking changes the nature of conversations about advertising. You stop discussing impressions ("leads have been bad lately") and start discussing verifiable numbers ("the conversion rate from quote to signature dropped by half over three weeks"). It's also the only serious basis for evaluating a campaign, an agency, or a strategy change: without it, every judgment about advertising rests on a feeling.

At Solvya, this tracking spreadsheet is one of the first things put in place with a client, before a campaign even launches, precisely because it shapes how everything that follows gets read.