Quick answer

A practical KPI dictionary for general contractors: follow one acquisition record through intake, estimating, signed contract, and booked backlog without collapsing the handoffs.

A general contractor cannot manage marketing from a pile of platform screenshots and a monthly revenue total. A homeowner asking about a kitchen remodel, a property manager requesting a roof repair, and a developer inviting bids take different paths through intake and estimating. The useful measurement system preserves those handoffs instead of calling every inquiry a lead.

This article is a measurement design, not a set of targets. It gives a GC owner, marketing lead, intake team, estimator, operations lead, and finance reviewer a shared dictionary from exposure to booked backlog. The outcome is a record each function can audit: what entered, what changed, who changed it, and which system holds the evidence.

Define a KPI as a decision contract, not a dashboard tile

A contractor marketing KPI is a written decision contract: it names the question, calculation, evidence window, source, owner, exclusions, and response when the first-party baseline changes. A dashboard tile without those fields can describe activity, but it cannot tell a GC whether intake, estimating, capacity, or channel quality needs attention.

Start with the decision, not a familiar label. “Should we keep sending renovation inquiries to the north-region intake queue?” is a decision. “Leads” is not. The specification below forces the ambiguity out before a number reaches the owner meeting. It also stops one department from silently changing a definition to make a report look cleaner.

KPI specification fieldWhat the contractor writes down
DecisionThe keep, change, or stop decision the measure informs.
FormulaThe named stage relationship, never a vague “conversion” label.
NumeratorThe exact unique records counted above the line.
DenominatorThe exact eligible unique records counted below the line.
Evidence windowThe cohort start and the allowed time for a later event to occur.
Data sourceThe named system of record and any governed join used in the calculation.
OwnerThe person accountable for the metric's condition and review.
ExclusionsThe exact records omitted from the numerator or denominator and the approved reason.
CadenceHow often data quality is checked and how often the owner makes the decision.
Known blind spotWhat the named sources cannot establish or may leave unknown.
Action thresholdThe named change from a stable first-party baseline that triggers a keep, change, or stop review; never an imported benchmark.

Example contact-to-reached rate for July 1–31, 2026: numerator = unique eligible contacts created in the cohort with a documented human reach attempt within seven calendar days; denominator = all eligible unique contacts created in the cohort. Evidence window: creation through day seven. Source: CRM contact record and timestamped reach-attempt log. Owner: intake lead. Exclusions: spam, clear misdials, and duplicate records merged into the surviving contact. Seven days is an example window, not a benchmark or response target.

Use the company’s own completed periods to establish a baseline after the dictionary is stable. A baseline is not a promise or a benchmark. It is a reference point for asking why a source, geography, project type, or intake handoff changed. The SBA separates marketing and sales from finance, employees, tax, and compliance; that separation is useful here because ownership should remain explicit.

Why “a lead” is the wrong unit for a general contractor

“Lead” collapses exposure, click, call click, form submission, qualified enquiry, booked job, and completed job into one label. That hides the handoffs a GC must manage. Only booked and completed jobs pay bills, and urgent repair work and planned, high-ticket work move from enquiry to booking on different clocks.

Keep the evidence separate. An impression shows delivery; a click shows an interaction; a call click and form submission show attempted contact. Neither proves that the enquiry fits the contractor’s written area, scope, or capacity rule. Nor does an estimate or site visit prove a confirmed booking or completed work.

The GC marketing-funnel dictionary

A GC funnel dictionary gives every marketing transition one business rule, system of record, accountable owner, timestamp, and exclusion. Use it before calculating a rate, so an attributable enquiry cannot become a booked job by label alone and a completed job can only come from the governed job record.

StageExact business ruleSource systemOwnerTimestamp eventExclusion
ImpressionChannel reports an eligible delivery.Channel reportMarketing ownerReported delivery timeInvalid traffic where identified
ClickChannel records an interaction with the ad or listing.Channel reportMarketing ownerRecorded click timeDuplicate or invalid click where identified
Call clickA tracked click initiates a call attempt; it is not a booking.Call trackingIntake ownerClick or call-start timeMisdial, duplicate, no intake record
FormA submitted form creates or matches one enquiry; a view does not.Form/CRMIntake ownerSubmission timeSpam, duplicate, incomplete test
Qualified enquiryOne unique enquiry meets the written service, area, and scope rule.Call tracking + form/CRMIntake ownerQualification timeOut-of-area, unsupported scope, solicitor
Booked jobA qualified enquiry has a confirmed scheduled job under the business rule.Scheduling/CRMScheduling ownerBooking-confirmed timeReschedules count once; cancellation remains booked, not completed
Completed jobThe booked job is marked completed in the governed job record.Job-management recordOperations ownerCompletion timeCancelled, no-show, refunded, scope-changed-out job

Need a clearer acquisition plan for your contracting business?

Sign up for free →

The small KPI set that maps to GC job economics

Use a small KPI set to inspect four controlled transitions: qualified enquiry, booked job, direct spend per booked job, and completed job. These are measurement definitions, not targets. Read each one with the season, work type, urgency profile, and ticket-size context that shaped the cohort rather than importing a portable benchmark.

Qualified-enquiry rate

Meaning: the share of attributable enquiries that pass the written service, area, and scope rule. Numerator: unique qualified enquiries. Denominator: all unique attributable enquiries. Evidence window: one declared 28-day window, read against the same prior-year window. Source system: call tracking plus form/CRM with channel source. Owner: intake owner. Exclusions: duplicates, misdials, solicitors, job seekers, subcontractors/vendors, out-of-area, and unsupported scope. GC caveat: compare pre-season and peak demand only within the same emergency, repair, planned, renovation, or new-build mix and ticket profile.

Booked-job rate

Meaning: the share of qualified enquiries that become confirmed booked jobs. Numerator: unique qualified enquiries that become a confirmed booked job. Denominator: unique qualified enquiries created in the same cohort. Evidence window: a 28-day enquiry cohort plus enough lag for the stated booking cycle. Source system: scheduling/CRM. Owner: scheduling owner. Exclusions: reschedules count once; cancelled-before-service remains booked, not completed. GC caveat: urgent repair work can book sooner than planned renovation or new-build work, and ticket size can change that timing.

Cost per booked job

Meaning: direct attributable channel spend for each booked job in a stated cohort. Numerator: direct channel spend attributable to the cohort. Denominator: unique booked jobs from that cohort. Evidence window: one declared 28-day acquisition cohort plus booking lag. Source system: ad/vendor invoice plus job-management records. Owner: marketing owner with operations sign-off. Exclusions: owner labor unless explicitly costed, cancelled, no-show, uncompleted, and unattributable jobs. GC caveat: read season, emergency-versus-planned mix, urgency, and ticket size before comparing periods.

Completed-job rate

Meaning: the share of booked jobs in a cohort that reach the governed completed status. Numerator: booked jobs from the cohort marked completed. Denominator: booked jobs created in the same cohort. Evidence window: the stated booking cohort plus completion lag. Source system: job-management records. Owner: operations owner. Exclusions: cancelled, no-show, refunded, scope-changed-out jobs, and duplicates. GC caveat: seasonal capacity, job mix, urgency, and ticket size affect completion timing and do not establish marketing quality on their own.

Seasonality and mix adjustment

Every GC marketing KPI needs the same prior-year window and a job-mix tag before it supports a decision. A peak-season enquiry spike is not proof of better marketing, and a shift toward low-urgency planned work can lengthen booked-job timing even when intake quality and channel activity have not changed.

Tag each cohort as emergency or repair, planned or renovation, or new-build, then preserve the service area and ticket-size context. Do not compare unlike periods: compare pre-season with the same pre-season period last year, and compare a planned-work cohort with a planned-work cohort. For local acquisition context, see SEO for general contractors; for paid-channel setup, see Google Ads for contractors and Google Ads vs. SEO.

Want a measurement plan that separates channel activity from booked work?

Sign up for free →

Source-of-truth and ownership

The system that creates a transition should be the source of truth for it: call tracking for call attempts, form/CRM for enquiries and qualification, scheduling for bookings, and job management for completion. Assign one accountable role to a weekly review; a dashboard screenshot cannot resolve a missing timestamp or disputed status.

Marketing owns attributable channel evidence and the join to intake. The intake owner owns qualification, the scheduling owner owns confirmation, and operations owns completion. Keep a weekly exception review for unlinked calls, forms, bookings, and job records, with a named correction owner. For the qualification workflow, use the separate general contractor lead-generation guide; for local-search work, use the general contractor local SEO guide.

Failure states to exclude from every KPI

Exclude failure states using written reason codes rather than silently changing a funnel label. Out-of-area and unsupported-scope enquiries do not test the same service rule as eligible work; duplicates and misdials do not create additional demand; and cancelled or uncompleted jobs must never be reported as completed jobs.

  • Out-of-area, unsupported scope, job seeker, subcontractor or vendor, and solicitor.
  • Duplicate record, wrong-number or misdial, test, spam, and no-show.
  • Cancelled-before-service, refunded, scope-changed-out, and uncompleted job.

Measure demand and traffic without treating them as projects

Demand and traffic measures show whether a contractor was seen or visited, not whether a viable construction project exists. Track impressions, visibility, sessions, landing engagement, call interactions, form interactions, and source tags as separate records, then pass only a documented contact into intake. This distinction protects sales and estimating from inflated demand claims.

An ad platform can report delivery aligned with the objective selected in that platform; it does not prove the downstream business outcome. Meta describes objectives as a way to align delivery to a selected action. LinkedIn likewise defines estimated impressions, clicks, engagement, and lead-form measures. Those records are still useful, but each must map to a contractor stage before management treats it as evidence.

  • Impression: a channel-reported delivery event. Keep its channel and reporting date; do not add it to contacts.
  • Session: an analytics visit tied to a landing page and source tag. It is not a person or a project.
  • Call interaction: a call click or phone event. It becomes a contact only after intake creates or matches a record.
  • Form interaction: a submit or partially completed form. State whether the evidence is a submit, not merely a view.

Tag pages and campaigns consistently enough to answer a real construction question: did a commercial tenant-improvement page produce contacts that passed project-fit, or did it produce out-of-area residential inquiries? The answer requires a source field at contact creation, not a later guess from an estimator. For channel definitions such as organic visibility and sessions, use the separate SEO KPI guide; for content-only measures, use the content marketing KPI guide.

Every traffic report should carry a limitation note. “Unknown source” is a valid value when the evidence is absent. Forcing every inquiry into paid, organic, referral, or direct creates a false precision that contaminates later source-to-contract comparisons.

Measure intake and qualification where contractor fit is decided

Intake KPIs should show whether a contractor can reach, understand, and route a real inquiry without erasing why it was accepted or declined. The primary GC evidence is project fit: work scope, geography, client type, timing, licensing or service fit, information completeness, and available capacity, each recorded before estimating receives the opportunity.

Write the intake rules with the people who answer the phone and inbox. A family asking for a residential addition might be a fit for one GC but not another that only pursues commercial ground-up work. A property-management repair request may be the right client type but arrive outside the licensed service area. The stage should describe the contractor’s stated acceptance criteria, not whether marketing likes the source.

Intake checkEvidence to captureOwnerWhat it informs
ContactabilityReach attempts, timestamp, and response outcomeIntake or salesWhether routing and response process need review
Project typeResidential remodel, commercial build-out, repair, or approved local categoryIntakeSource and service fit
Geography and license fitProject location and written eligibility resultIntake with SME rule ownerOut-of-area or ineligible patterns
Client and timingOwner, property manager, developer, GC partner, and requested start periodIntakeRouting and cohort comparison
Capacity decisionAccept, waitlist, or decline and dated reasonOperations or assigned ownerCapacity context, not channel blame

GA4’s event reference includes lead-generation events for qualification, disqualification, working leads, and closure. That is a useful implementation prompt, not a ready-made contractor taxonomy: document what each local event means, who creates it, and whether the CRM record is the source of truth. A marketing analyst should not overwrite an intake disposition merely to complete a dashboard.

Measure estimating and bid handoffs as their own evidence chain

Estimating KPIs should preserve the path from qualified opportunity to site visit, estimate invitation, bid submitted, clarification, award, loss, or withdrawal. They reveal a handoff between intake and estimating, not a generic marketing conversion. The estimator owns proposal evidence and the reason a qualified inquiry did or did not become a submitted bid.

A site visit may uncover scope uncertainty, permit constraints, access limitations, or a client timeline that makes an estimate invitation inappropriate. That is not automatically poor marketing. The record needs a disposition and a reason code so a marketing review can see the pattern without pretending to diagnose estimating practice.

  1. Confirm the handoff: record who sent the qualified opportunity, when it arrived, and the identifier the estimating system uses.
  2. Record site-visit evidence: distinguish an attended walk, a remote review, a no-show, and a visit never scheduled.
  3. Record estimate invitation: show that estimating accepted the opportunity for pricing; do not substitute a calendar entry.
  4. Record bid submission: use the dated proposal delivery record, not an internal draft, as the numerator for submitted-bid measures.
  5. Close the disposition: capture award, lost award, withdrawal, or still-open status with the approved reason-code library.

A useful reason-code library is deliberately unglamorous: spam or duplicate, unreachable, out-of-area, wrong scope, wrong client type, timing, missing information, capacity, no-bid, lost award, withdrawn, and cancelled. The exact definitions need estimating, operations, and any relevant licensing or compliance SME approval. Do not merge no-bid with lost award: one says no submitted proposal existed, while the other says a submitted bid was not selected.

Example bid-submitted rate for qualified opportunities handed to estimating July 1–31, 2026: numerator = unique cohort opportunities with dated proposal delivery within 60 calendar days of handoff; denominator = all unique qualified opportunities in the handoff cohort. Evidence window: handoff through day 60. Source: CRM opportunity IDs joined to estimating proposal-delivery records. Owner: estimating lead. Exclusions: test and duplicate records after retaining the surviving ID; no-bid, lost-award, and still-open records remain in the denominator. Sixty days is an example window, not a universal target.

Measure signed work and booked backlog only with governed definitions

Signed contracts and booked backlog are downstream acquisition evidence only when finance and operations define them, own their records, and approve their exclusions. A signed agreement, a cancellation, a change order, and a backlog entry are separate governed fields. Marketing may analyze handoff cohorts, but it must not infer profitability, cash flow, margin, or schedule performance.

The date matters. A bid can be awarded in one period, signed in another, and entered into the operations backlog later. The contract record should state which event date is being used, who can amend it, and how rescissions are recorded. Otherwise a marketing report may claim a signed project during the month when the underlying agreement was still pending or subsequently cancelled.

FieldPermitted marketing useDefinition ownerDo not infer
Signed contract dateDownstream cohort timestamp after a governed signature eventFinance or operationsCash received or work completed
Contract valueOnly if finance approves the governed field for analysisFinanceProfitability, marketing return, or final value
CancellationSeparate outcome linked to the signed recordFinance or operationsThat the original signature remains active
Change orderSeparately governed project field, not a marketing-stage adjustmentFinance or operationsOriginal acquisition quality
Booked backlogHandoff context after operations-approved entryOperations and financeRevenue, margin, or delivery capacity

This boundary matters for a GC handling phased remodels or commercial work. A signed contract may still face scheduling, permitting, procurement, or client-driven changes. Marketing can ask whether a source cohort eventually reaches the governed signed-contract event. It should not convert that observation into a promise about job profitability or backlog health. Those are finance and operations questions with different source records.

Reconcile channel, analytics, CRM, estimating, and accounting records

Reconciliation connects records across systems without claiming they are identical. A contractor needs a unique intake identifier, dated stage timestamps, source fields, deduplication rules, attribution window, offline update process, privacy controls, and an exception queue. Platform metrics remain platform metrics until a documented join connects them to a contractor-owned intake and later handoff record.

Do not expect ad totals and CRM totals to match automatically. A platform may count a delivery or a lead-form event; the CRM may merge duplicate contacts; estimating may receive only accepted opportunities; finance may govern signed work after an offline signature. The right response is an auditable mismatch queue, not manual edits that force a matching total.

System pairJoin fieldsDeduplication / timing ruleException owner
Channel to analyticsCampaign, landing URL, source tag, datePreserve unknown and untagged trafficMarketing
Analytics to CRMForm or call reference, timestamp, source fieldCreate or match one unique contact recordMarketing and intake
CRM to estimatingOpportunity ID, project address or approved match fieldLog handoff and merge decisionsIntake and estimating
Estimating to contract recordProposal ID, customer or project ID, disposition dateKeep award, signature, and cancellation distinctEstimating with finance or operations
Contract record to backlogGoverned contract ID and approved backlog fieldUse operations-approved entry dateOperations and finance

Access controls belong in the design because project addresses, client information, and proposal records have different audiences. Document which role can export records, who can alter source fields, and how a correction is logged. The point is not to build a universal attribution model; it is to make a limited, defensible statement such as “these eligible contacts from this tagged cohort reached signed-contract evidence within the agreed window.”

Want help making your acquisition reporting easier to review?

Sign up for free →

Run a weekly data-quality check and monthly decision review

A weekly data-quality check and a monthly decision review create a practical contractor KPI rhythm when those intervals fit the business. The weekly review repairs missing owners, stale stages, source gaps, and duplicate records. The monthly review examines comparable cohorts, capacity context, and estimating outcomes, then records a keep, change, or stop decision with its evidence.

The weekly meeting can be short and operational. Look for contacts with no source or owner, qualified opportunities with no handoff timestamp, bids with no final disposition, and signed records that cannot be joined to a prior opportunity. Ask whether the record is missing, delayed, duplicated, or intentionally excluded. Assign a correction owner and preserve the reason rather than quietly filling a blank.

Metric or stageResponsibleAccountableConsultedInformed
Impressions, sessions, call or form interactions, and source tagsMarketing analystMarketing leadIntake or salesEstimating, operations, and finance
Contact-to-reached rateIntake or sales record ownerIntake or sales leadMarketingEstimating, operations, and finance
Project-fit and qualified-opportunity stagesIntake or salesIntake or sales leadEstimating and operationsMarketing and finance
Site-visit and estimate-invitation stagesEstimatingEstimating leadIntake or sales and operationsMarketing and finance
Bid-submitted rate and award, loss, or withdrawalEstimatingEstimating leadOperations and financeMarketing and intake or sales
Lead-to-contract conversion, signed contract, and cancellationMarketing lead for reconciliation; finance or operations for governed evidenceFinance or operations definition ownerEstimatingIntake or sales
Booked backlogOperationsOperations and finance definition ownersFinance and estimatingMarketing and intake or sales
Dashboard anti-patternWhy it failsReplacement
Vanity metricImpressions presented as projectsKeep exposure separate from contacts and opportunities
Collapsed stageContacts, bids, and contracts called “leads”Use the written funnel dictionary
Mixed denominatorOne source cohort divided by another period’s totalState numerator, denominator, and evidence window
Platform-only attributionDelivery record treated as signed workJoin to contractor-owned records and show gaps
Unreviewed benchmarkImported target ignores project mix and capacityUse first-party, like-for-like cohorts
Missing capacity contextDeclines are blamed on a source without operations evidenceRecord capacity as a separate reason

Do not treat the cadence itself as a target. A small contractor may need a different cycle around seasonal bidding, storm work, or a long commercial proposal process. The invariant is the decision record: what the team saw, what data limitation applied, who owned the next step, and what changed before the next review. That keeps the KPI system useful when the workload changes.

Frequently asked questions

These answers keep the boundary clear: contractor marketing KPIs trace an evidence-backed acquisition path, while estimating, operations, and finance retain their own governed definitions. Use them to settle dictionary questions before reporting, then adapt the owners, evidence windows, exclusions, and review actions to the contractor’s actual project mix and approved operating rules.

What marketing KPIs should a general contractor track?

A general contractor should track qualified-enquiry rate, booked-job rate, cost per booked job, and completed-job rate alongside the separate stages that evidence them. Each calculation needs a written rule, numerator, denominator, evidence window, source system, owner, exclusions, and same-prior-year job-mix comparison; none is a universal target.

Is a form submission or phone call a booked job?

No. A form submission or phone call is an attempted contact or enquiry until intake creates or matches a record and applies its written qualification rule. A booked job requires a confirmed scheduling event, and a completed job requires the governed job-management completion record. Keep those timestamps and owners separate.

How do seasonality and job mix change a contractor's marketing KPIs?

Compare the same prior-year window and tag each cohort by emergency or repair, planned or renovation, or new-build work. A peak-season enquiry increase is not proof of marketing improvement, while a shift to lower-urgency planned work can extend booking and completion timing without changing intake quality.

What is a good cost per booked job for a general contractor?

There is no portable good cost per booked job. Divide direct attributable channel spend by unique booked jobs from the same declared cohort, then read it against the contractor's same-prior-year window, job mix, urgency, ticket-size context, exclusions, and stated booking lag rather than an imported target.

Which system should be the source of truth for contractor marketing KPIs?

Use the system that creates the transition: call tracking for call attempts, form or CRM records for enquiries and qualification, scheduling for bookings, and job management for completion. Marketing can join the records for review, but the accountable intake, scheduling, and operations owners retain the underlying status evidence.

How should emergency repair work versus planned projects be measured differently?

Use the same definitions but separate cohorts by emergency or repair, planned or renovation, and new-build work. Emergency work may book on a shorter clock, while planned projects need more booking and completion lag. Compare each group with its same prior-year window and ticket-size context, not with another mix.

Start with one auditable contractor cohort

Start with one auditable contractor cohort, such as new residential remodeling contacts from a defined month and service area, rather than redesigning every report at once. Assign the owners, stage evidence, exclusions, source fields, and reconciliation queue first. Then use the first stable period to make a documented decision, not to manufacture a universal conversion target.

Keep the boundaries firm. Marketing is responsible for explaining exposure, visits, and source documentation. Intake is responsible for contactability and project fit. Estimating is responsible for site visits, estimate invitations, bids, and dispositions. Operations and finance govern contract and backlog records. That division makes a contractor’s measurement system more credible precisely because no one dashboard claims to own every answer.

If your team is working on the acquisition side of that system, compare the channel measures in content marketing KPIs to track with your contractor dictionary before copying anything into a management report. For a separate SEO cost decision, use the SEO cost guide. Keep every stage distinct, preserve unknowns, and write the action that follows a change in the baseline.

Build a more useful plan for the marketing work you can control.

Sign up for free →

Sources & references

Ritik Namdev

Ritik Namdev

Growth Manager

Growth Manager at theStacc. Five years in digital marketing, content strategy, and growth at content-led SaaS. Writes on Medium and YouTube about programmatic SEO and growth systems.

From the theStacc product Explore theStacc modules

Blog SEO, Local SEO, and Social Media — one dashboard, no headaches.