You know what you spent. Do you know what it sold?
ROAS by source · last 90 days
90 DAYS| Source | Spend | Closed rev | ROAS |
|---|---|---|---|
| Google LSA | $4,200 | $61,800 | 14.7x |
| Meta | $3,100 | $18,400 | 5.9x |
| Home show | $1,500 | $22,000 | 14.6x |
| Angi | $2,600 | $3,900 | 1.5x |
Illustrative figures. Revenue is closed job value, not form fills.
A cheap lead is not the same as a cheap job.
The lead vendor sends a monthly report full of green arrows. Two hundred leads, cost per lead is down, everybody nods. Then the season ends and the bank account does not match the story. What happened?
Cost per lead only counts the phone ringing. It says nothing about whether the caller wanted a real repair or a free opinion, whether the address was even in your territory, or whether the job ever got sold. A source can look brilliant on lead volume and quietly lose you money on every dollar once you follow it all the way to a signed contract.
The honest question is not “what did a lead cost.” It is “what did a paid job cost, and which source keeps producing them.” Answering that means connecting the ad click to the same job record where the estimate got signed and the deposit got collected. If those live in different tools, you are stitching it together by hand, or not at all.
What real attribution looks like
Log your spend once. Watch it meet the revenue.
Enter what you spend by source, and Oblyss does the part that usually never gets done: it matches that spend against the jobs those sources actually closed.
Spend in, closed revenue out
Leads land in that source-tagged system automatically, not by someone typing them in. The Lead Ingestion API, a Meta Lead Ads webhook, and a CallRail post-call webhook all feed straight into the same pipeline, so a form fill, a Facebook lead ad, or a phone call all arrive already tagged with where they came from.
- Ad spend tracking by source, entered monthly, no spreadsheet to maintain on the side.
- Cost per lead by source with a monthly trend, so a rising number gets caught early.
- Return on ad spend calculated from closed job revenue, not form submissions.
CPL report · by source
Google LSA · 38 leads
Meta · 51 leads
Angi · 44 leads
Illustrative. Cheapest lead, worst return.
Send the win back to Google
- Click identifier captured on the inbound lead and kept on the job.
- Closed-job revenue pushed to GA4 so Smart Bidding optimizes for real sales.
- One source of truth from the click all the way to the signed contract.
GA4 conversion · revenue push
LiveThe home show either paid for itself or it did not. Now you can tell.
Trade shows, home shows, chamber mixers, the little league sponsorship: they all feel worth it in the moment and vanish from the math by the time the invoices clear. Put every event on the marketing calendar, tag the leads that came from it at booking, and the event ROI report tells you whether that weekend produced jobs or just foot traffic and free pens.
Next spring, when you decide which shows to book again, you are choosing from a record instead of a hunch. The one nobody expected to work gets the bigger booth. The one everyone loves but never sells gets cut.
Marketing events · ROI
Illustrative event attribution.
A marketing department built into the platform.
Most foundation repair companies do not employ a marketer. These pieces cover the work that would otherwise never get done, and every one of them writes back to the same job record so the attribution stays honest.
Review Engine
Request a Google review from the homeowner after the job is marked complete, while the lift is fresh and the yard is clean. More reviews feed the local ranking that produces the next free lead.
AI Copy Assistant
An AI writing tool already primed for foundation repair, for ads, follow-up emails, and website copy. It gets you a solid first draft in your trade's language instead of a blank page at 9pm.
Site Tags
Tag every form on your site, default or custom-named, and route submissions by ZIP or state straight to the right branch. Install by pasting HTML, through Google Tag Manager, WordPress, or Gravity Forms, whichever your site actually runs on. Each tag shows its own capture count, so you know which form is actually pulling leads.
NFRA Research
Foundation repair industry data and market reports available from inside the app, so the numbers behind a campaign or a territory decision are a click away, not a subscription you forgot to renew.
Call Tracking
Every call in gets tracked back to the ad, the page, or the campaign that drove it, powered by CallRail under the hood. A phone call closes as many foundation jobs as a form fill. Now it shows up in the same report.
Some of your best leads are public record. You just have to be looking.
FEMA
Disaster declarations affecting the zip codes you serve.
NWS
Flood and drought warnings from the National Weather Service, the conditions that move foundations.
Permits
Structural and foundation permits filed nearby, pulled from Shovels and PermitStack.
Seasonal
Timing prompts for tax season, spring saturation, summer drought, and fall pre-winter prep.
A structural permit filed three doors down is a homeowner already spending money on their foundation. Read more about the connected job record that turns a signal into a booked inspection.
The best time to win the neighbors is the week your trucks are on their street.
From a job detail page, launch a postcard campaign to the homes around a site you just repaired. Addresses are pulled automatically, the copy is drafted for you, and the pieces are verified, printed, and mailed without leaving Oblyss. Target every home on the street, or blast a radius up to a mile.
Foundation trouble runs along the same soil and the same builder. When a crew’s trucks are parked out front for three days, the whole block is thinking about their own cracks. Reach them while it is on their mind.
Neighbor campaign · from a job
See where you have already won, and where the next job is waiting.
A density map of every foundation job you have completed, layered with permit activity in the same territory. Toggle your own jobs against structural permits from Shovels and PermitStack, filter by foundation type and time period, and let the map show you which neighborhoods keep producing work.
The hottest zip is not a guess anymore. It is where your money should go next, and where a competitor’s permit activity says demand is already there.
Job Heatmap · territory
Illustrative.
Attribution is only honest when the lead and the job live in the same place.
None of this works if marketing lives in one tool and the jobs live in another. The reason Oblyss can tell you a source’s true return is that the lead, the estimate, the signed contract, and the collected payment are all one record. Revenue does not have to be exported and matched by hand. It is already attached to where it came from.
That is also why the growth tools pull their weight. A review request fires because the job was marked complete. A postcard campaign launches from the job you just finished. A GA4 push carries the real closed value because the close happened right here. The reporting and business intelligence dashboards read from the same numbers, so the marketing story and the money story are finally the same story.
What owners stop doing
Exporting lead lists into a spreadsheet. Guessing which show to rebook. Paying for a source on volume while it quietly loses money per job. Trusting a vendor’s report instead of their own closed revenue. The busywork goes away, and the decisions get made on facts.
Frequently asked questions
How is this different from the cost-per-lead report my lead vendor already sends?
Do I have to tag every lead by hand for attribution to work?
What does the GA4 revenue push actually do for my Google Ads?
Can I see whether a home show or trade show was worth it?
How do the neighbor postcards get sent, and what do they cost?
Where do the Lead Signals come from?
Do I need a marketing person on staff to use any of this?
Can I build a custom report on my marketing numbers?
Yes. The custom report builder lets you pick a dimension like lead source, week, or job tag, add up to four metrics, filter by date, and export to CSV. It sits alongside the full reporting suite, so a marketing view and a profitability view read from the same underlying jobs. See the reporting and business intelligence page for the wider dashboard set.