Growth & reporting

Which ad paid for itself? Now you'll know.

Most owners can tell you what they spent and roughly how busy they are, but not which channel actually produced the profit. This half joins the ad to the lead to the won job to the margin — and then tells you what to do about it on Monday morning.

Book a call

Cost per lead and per won jobWeekly report in your inboxNothing spends or posts itself

The screen

A dash means we don't know. Not zero.

It sounds like a small thing. It isn't: a channel showing $0 cost per lead looks free, quietly flatters your blended numbers, and sends budget to the wrong place. Every gap here is named and explained.

app.epsystems.ca/analytics
Median first reply
4m 12s
Leads this month
86
Won
23
ChannelLeadsSpendCost / leadWonROAS
Google Ads34$1,840$5493.1×
Google Business228
Website form195
Facebook Ads11$610$5510.6×
Why the dashes? Google Business and your website form don't cost anything per lead, so there is no cost per lead to show. Printing $0 would make them look free rather than unpriced — and would quietly flatter your blended CPL.
Representative figures. Every dash is a real behaviour: an unknown is never shown as a zero.
The three nevers

This is the half people are rightly nervous about.

An agent with your ad account and your social login is exactly the kind of automation that goes wrong in public. So it was built to be unable to.

It never spends your money

The ads agent reads your spend and proposes changes with before-and-after numbers. Raising a budget is a click you make, and it won't even suggest one while your crews are already full.

It never posts as you

The content agent drafts posts from jobs you actually finished and reviews you actually got. There is no setting anywhere that makes them publish themselves — that state doesn't exist in the system.

It never invents a statistic

Every number in a report is computed from your records before the AI sees it. It's handed a fact sheet and asked to explain it, so it can't produce a customer or a figure that isn't there.

What's included

Five parts that turn activity into a decision.

Analytics

Where your leads come from, what they cost, what converts.

  • Cost per lead and cost per won job, by source
  • Profit by channel — the ad, the job, and the margin joined up
  • How fast you actually replied, measured, not estimated

Weekly report

A plain-English summary in your inbox every Monday.

  • This week against last week, with the trend called out
  • What’s working, what needs attention, written for an owner
  • Gaps are named, not hidden — if a number is missing it says so

Ads agent

Watches ad spend and proposes budget changes for approval.

  • Tells you mid-month if you’re on pace to overspend
  • Suggests moving budget toward what’s actually booking jobs
  • Won’t raise spend when your crews are already full

Content agent

Drafts social posts from your finished jobs and reviews.

  • Uses work you actually did — real jobs, real reviews, no invented claims
  • Written and scheduled, waiting for your thumbs-up
  • Approving is always a human click

Setup & readiness

Shows exactly what’s running, what’s blocked, and whose move it is.

  • Every automation reads live: off, blocked, drafting, or live
  • A blocked one says the consequence in a sentence — “nobody is being asked for a review”
  • It reports the real state of the system, so nothing is quietly broken for a month
What tends to happen

The gap that closes first is answered, not captured.

Businesses rarely have a lead problem before they have a follow-up problem. The enquiries are already arriving — they just aren't all getting answered.

Captured vs. answered

What changes the month a follow-up system goes live

0153045MarAprMayJunJulAugsystem liveLeads capturedLeads answered

Representative rollout shape from a live dealership build — before go-live, a third of captured leads were never contacted.

Guardrails

The rules underneath all of it

Automation people regret is automation that surprised them. Every agent here is built to hold back first and act second.

  • Draft mode by default. Week one, every message waits for a human to approve it. You turn that off when you trust it — not before.
  • Money and prices need a human. Budget changes and price changes arrive as proposals with the reasoning attached. They never execute themselves.
  • It never invents a number. Every price, cost and report is computed from your actual records. The AI writes the sentence; the code does the arithmetic.
  • Opt-outs are permanent. Someone asks to stop hearing from you and that's the end of it — across every agent, forever.
  • One switch stops everything. A single kill switch holds every message across every agent, instantly. Quiet hours apply on top of it.
  • Your data is yours to take. Leads, conversations, job records and costs export whenever you ask, in a format you can actually open.

What did last month's ad spend actually buy?

If the honest answer is “more calls, I think”, that's the gap. Twenty minutes and we'll map what you'd need to connect to answer it properly.

Book a callNo pitch deck, no obligation. We'll say so if it isn't worth building.
Book a call