LONELY PINE AI Prepared for Equipped Painting
Walkthrough · 28 July 2026

Tracking a lead before it becomes a job

Your sheet already tracks where leads come from. What it cannot do yet is tie a lead to the job it became. That takes one ID.

For
Mitchell, Daniel, Juan
Sheet
2026 Sales & Production Costing
Change
Two columns
The one idea

A join key

Today the story starts at the appointment. To bring lead data in, we move the start line back to the lead and give every lead one stable ID that rides along through appointment, sold and produced.

DripJobs already creates that ID the moment a lead exists. Nothing new gets invented.

Names can never be the link. Jennifer Carroll appears twice in your own history as two different jobs. So does Arden Dougan. Names collide, get misspelled, and change. IDs do not.

Where you actually are

Further along than it feels

Lead Source already exists on all four tabs, along with City, Location Code and Tax Rate. Nothing there needs adding. Two things are missing, and they are the whole problem.

0
Tabs with a DripJobs ID
There is no join key anywhere, so nothing can be tied to anything except by name.
No
Lead date on Sales Tracking
The earliest column is Estimate Scheduled. The funnel literally starts at the appointment.
47
Spellings of ~12 channels
Found in the all-time export. Not carelessness — a side effect of the retype below.
Production Costing header row showing Lead Source, City, Location Code and Tax Rate columns
Your Production Costing tab. Lead Source, City, Location Code and Tax Rate are already here. There is no DripJobs ID column anywhere on it.

The retype is the actual leak

A job passes through four tabs, and the same five fields are entered by hand at every one.

Sheet tab strip showing Leads, Appmts/Sales Tracking, Sold Jobs Feed and Production Costing
The four tabs a job passes through, in your sheet today.
Tab 1
Leads
Job Name
Lead Source
City
Location Code
Tax Rate
Tab 2
Appmts / Sales Tracking
Job Name
Lead Source
City
Location Code
Tax Rate
Tab 3
Sold Jobs Feed
Job Name
Lead Source
City
Location Code
Tax Rate
Tab 4
Production Costing
Job Name
Lead Source
City
Location Code
Tax Rate

That is where attribution drifts. A lead entered as Google LSA on tab one becomes Google on tab two and website by tab four.

The point

With an ID on the row, Lead Source is entered once at first touch and the later tabs inherit it. This change is less typing, not more.

The list

One locked set of sources

These live on the Dropdown Data tab, with Reject input switched on so a typo cannot get in. Where this differs from what you already have, yours wins — except the two splits below.

Google LSAGoogle AdsWebsite SEO/GMBMetaThumbtackYelpAngi AdsBBBContractor HotlineRepeat/ReferralNetworking/EventsYard Sign/VehicleOutbound/CanvassingOtherUnattributed

Google is three lines, because it is three costs

$539
Google LSA
Cost per sale, your 2026 numbers.
$1,347
Google Ads
Two and a half times LSA. Averaging them hides which one to feed.
184
Rows saying only "google"
Could be either, or organic. These now report as Unattributed.

Reporting a bare google as Unattributed rather than guessing is deliberate. Guessing is how the website channel came to look like a 65x return: paid leads that landed on the site were counted as free. An honest gap beats a flattering wrong number, and the dropdown is what shrinks the gap.

Reassurance

No history is lost

Every existing spelling maps forward automatically. Nothing needs cleaning by hand.

What DripJobs says todayReports as
facebook ads, Facebook Ads, facebook, instagram, FMM FB Lead FormMeta
Google Local Services Ads, Google LSAGoogle LSA
Google Ads, google_ads, Call Ads ExtensionsGoogle Ads
Google Business Profile, Google My Business, Google Organic, website, Website PoolWebsite SEO/GMB
word of mouth, repeat customer, Client Referral, BHG ReferralRepeat/Referral
THG 2026 Trade Show, TRE 2026 Trade ShowNetworking/Events
contractor hotlineContractor Hotline
door to door, Cold CallOutbound/Canvassing
VehicleYard Sign/Vehicle
google, phone call, email, No Lead SourceUnattributed
Spam, TestNot counted as leads at all
The build

Your Leads tab, pre-filled

The Leads tab is empty today, so there is nothing to migrate. This is the header row it gets. The two navy columns are the only genuinely new fields — everything else already exists elsewhere in the sheet.

Lead DateLead SourceDripJobs IDJob NameSalespersonCurrent StageAppt DateStatus
2026-07-240789508238cbb6…Karey JensenMitchellLeadOpen
2026-07-21229500615776550…Clem - Lynnwood 3070343IsmaelEstimate sent2026-07-22Open
2026-07-11Google Business ProfileKearns, RachelleSophiaLeadNot booked
2026-07-10Facebook AdsLangan, HelgaSophiaLeadNot booked

New columns. Everything else is copied from what your other tabs already track.

We pre-fill 216 rows so nobody backfills by hand

Your team does not start from a blank tab. We hand it over already populated from data we hold, and the shape of what we can fill is the problem in one picture:

38
Rows with a DripJobs ID
Your live open pipeline. Real ID, date, stage and salesperson — but no source, because the DripJobs feed has never sent one.
178
Rows with a Lead Source
Still-open leads from the 12 July export. Real source and date — but no ID, because the export does not carry one.
0
Rows with both
Which is exactly why nothing can be attributed today. Filling this in is the entire job.

One caveat worth saying plainly: for the 38 live rows, the date is when Steward first saw the lead, not necessarily when DripJobs created it — our capture only starts 10 July. Good enough as a start date, not safe to measure sales-cycle length from. Rows created from here on carry the real date.

Next steps

Who does what

WhoDoes whatWhen
Daniel & JuanAgree who enters the DripJobs ID and Lead Date, and at what moment a lead comes in. You two are doing this, so you define it, not us.On this call
MitchellSign off the source list, or send edits. We compare it against your Dropdown Data tab live.On this call
Lonely PineHand over the 216-row seed and set up the Leads tab header row and the dropdown, once the list is agreed.Same day
NicoleInstall the sync script on the sheet. Four steps, about three minutes, no Google Cloud work. It runs under whoever installs it, so it should be an owner's account rather than a consultant's.This week
EveryoneEvery lead gets a row the day it arrives, booked or not, with a source picked from the dropdown.From this week
Lonely PineWire cost per lead and cost per sale by channel into Steward, and switch on sales-cycle length.Once leads flow

Two decisions we need from Mitchell

1. When a job hits "Project Accepted", should it move onto the production board?

Sounds small, is not. It is the same sold-definition question from last time: proposal-accepted (447 jobs) or completed (645). Your answer decides whether we let those events through or correct them at the source.

2. How should Daniel's work show up?

The DripJobs feed is keyed on the salesperson of record. Daniel is the pre-closer and is never the salesperson of record, so the system structurally cannot see his activity today. Either DripJobs starts assigning him on the leads he sets, or his view keys off his own activity instead. This is a business decision, not a technical one.

What changes on Monday

Three habits

  1. Start the row at the lead, not the appointment.Every lead gets a row the day it arrives, including the ones that never book. A channel's cost per sale is meaningless if only the leads that booked were recorded. The dead leads are what tell you a channel is expensive.
  2. Pick the source at first touch, from the dropdown.Whoever takes the call or the form picks it right then. The channel that produced the lead owns it for life, so a later, vaguer correction cannot overwrite it.
  3. Paste the DripJobs ID.It is the only thing tying the lead to the job. Everything else follows from it.
Then it stops being manual

What Steward does with it

Leads arrive from DripJobs the moment they are created, carrying the same ID and source. Steward advances the one record through each stage as events fire, so nothing is entered twice.

Cost per lead and cost per sale by channel go live. Sales-cycle length — days from lead to purchase — starts reporting as leads captured from now on begin to close.

The sheet keeps working the whole time. Steward reads it rather than replacing it, so there is no cutover day where anything stops.

Expect this

The first month of full-funnel numbers will look worse than what you see today. That is the honest denominator arriving, not performance dropping. Channels that looked efficient because their dead leads were never recorded will move toward their real cost.