The Command Center is now a product you can license. Open the demo

Use cases

Prove which dollar made the phone ring, from your own record.

Count leads from the forms your site received, record the outcome your team saw, and set both against the spend Google reports and the payments Stripe records, on one dashboard. You stop taking the platform's word for what its dollar produced.

How do I get a lead count I can trust?

Your own website supplies the count. When someone submits a form on your site, the form handler appends the submission to a lead sheet server-side and emails your team the moment it lands. The Leads view reads that sheet, newest first. It is a record of forms actually sent, not a figure an ad platform reports back, so it keeps counting on a day when every tracking tag on the site is broken.

Each row carries the person's name and contact details, what they asked for and the page they submitted from. Where your site's script captures the visit, the same handler writes the channel that sent them on the row at submission. That is why the ledger the Leads view reads is the starting point for every count on this page. A lead here is an enquiry your own site received, not a shared enquiry bought from a marketplace, and that difference has its own page.

One lead row, at submission
Receiveddate and time
Contactname, phone, email
Asked forthe service and the message
Traffic sourcenamed at submission
Emailedto your team as it lands

How do I know which channel sent each lead?

Your site names the channel at submission. During the visit, the site's own script notes the page the visitor landed on, the page that sent them and any campaign tags on the link they clicked. When the form goes in, the handler reads those and writes the channel on the row. How finely it is named is set per site. One handler we run names a paid click from its click id or paid tag, Google and Bing referrers as organic search, Facebook, Instagram, Yelp and Nextdoor by name, any other host as a referral by hostname, and a visit with no referrer as direct. Another groups the same signals into paid, AI search and organic. Both keep the campaign tags and the referrer on the row; the three-bucket handler keeps the click id in full and the other notes it as present, so any label can be audited back to what the browser sent.

An uncaptured visit is handled in the open. The named handler writes unknown rather than guessing; the three-bucket handler files it as organic, and the raw signals stay on the row either way, so you can see which it was. How the source lands on the row and what attribution can and cannot say each have a page of their own. A lead that arrives by phone rather than by form counts only if your CRM records it, with whatever source your staff entered.

How one handler we run names the channel
Paid clickclick id or paid campaign tag
Organic searchGoogle or Bing referrer
Social and listingsFacebook, Instagram, Yelp, Nextdoor
Referralany other host, by name
Directno referrer
Unknownvisit not captured

How do I record which leads became jobs?

Your team sets it, from the screen. Where the outcome dropdown is on for your instance, each lead in the Leads view carries a status your staff choose: new, contacted, quoted, won or lost, or not a lead with a reason: existing customer, spam or sales pitch, wrong number, out of area. The outcome is written to the lead record with the time it was set and stands until your team changes it. Nobody at TruLata sets one for you, and nothing downstream is assumed: a lead with no outcome counts as a lead and nothing more.

Two things follow from that record. A lead with no status two days after it arrived wears a small badge saying no contact has been marked yet, computed from your own record and nobody's opinion. A lead you mark as not a lead is raised to the team, and where it came through Google's Local Services Ads it queues as a refund candidate.

Per-lead status
Newno record yet
Contacted, quotedset by your staff
Won, lostset by your staff
Not a leadwith a reason
Recordedwith the time it was set

How do I see what each campaign cost?

Google Ads supplies the spend, through its API. The ads view shows spend, conversions and cost per conversion, one row per campaign with its status, and the account totals above. Google publishes that data a few hours behind, and the header stamp says when it was last pulled. Where you run Local Services Ads, that account's spend, the leads Google counted and its cost per lead are read as well.

The conversions column is what Google counted, not your lead count. On an instance whose forms feed the sheet, a daily watch compares the ledger against Ads conversions and GA4 events and raises it when leads are landing while one of them reports zero, the case it was built for. The daily change watch behind the ads view reads the changes Google logs against the account, and who made each one, at 7:05am Eastern every morning, so the spend on this page ties back to who changed what and when.

Ads, by campaign
Spendperiod to date
Conversionswhat Google counted
Cost per conversionspend over conversions
Freshnesshours behind, set by Google
Change watchdaily, 7:05am ET

How do I get to a cost per won job?

Three numbers, one dashboard. Spend by campaign, in the ads view. Leads in the Leads view, source written at submission, outcome set by your team. Payments in the revenue view, from Stripe, live through its API and read only: no charge, no refund, no subscription change, no card data held. The cost of a won job on a channel is that channel's spend divided by the jobs won from it. You do that division from numbers you can see; the product does not print it, and the result is only as good as the outcomes set on the leads, which is why setting one is a dropdown on the row and not a form to fill in later. What the revenue view reads and refuses to do has its own page.

The count comes from your forms and not from the platform for a reason. On one account we manage, a tag change silently stopped every conversion from firing for six weeks. Twenty-one real leads landed in the ledger while Google Ads reported zero. The owner read the report, paused the campaign that carried every counted lead and cut its budget 90 percent. A cost per won job computed from that report would have called the channel worthless. Computed from the ledger, it was the channel producing every counted lead.

The division
Spend on the channelads view
Leads from the channelledger, source at submission
Marked wonyour team, from the screen
PaidStripe, live
Cost per won jobyour division, spend over jobs won

Where does the proof stop?

At a phone call it did not see. There is no call-tracking system in the product, so a phone lead counts only when your CRM records it, and its source is whatever your staff wrote down. If most of your work arrives by phone and your CRM is not recording those calls, this page cannot count them and does not pretend to. The honest answer to the question in the title starts with the forms.

Nothing from your inbox or calendar; neither is connected. Nothing after the lead unless you set it. Nothing fresher than the source allows: leads, the CRM and Stripe are live; Google Ads and GA4 lag hours intraday; Search Console runs two to three days behind. The header stamp says when the data was last pulled, and the Refresh button starts a pull and reloads the page when the stamp moves; it never shows an error. Where you want our team on the numbers as well, the analytics service and managed paid media are the agency counterparts to this page.

The Command Center Overview on the demo company Meridian: four headline cards for marketing-sourced pipeline, revenue, AI-visibility score and assets published, a pipeline funnel from visitors down to closed won, revenue by channel bars, and a grid of workstreams each marked Running.
The spec

Every number on the page, and where it is read from.

WhatWhere it comes fromHow fresh
Lead rowsYour website's form handler, appended to a lead sheet server-sideLive, the moment a form is submitted
Traffic source, landing page, referrer, campaign tagsCaptured on the visit, written on the row at submissionLive
OutcomeSet from the screen by your team, written to the lead record with the time it was setLive
Spend, conversions, cost per conversionGoogle Ads API, by campaignHours behind, set by Google
Local Services Ads spend and cost per leadThe Local Services account, where you run oneHours behind, set by Google
Payments, subscriptions, recent chargesStripe API, read onlyLive
Pipeline stagesYour CRM, GoHighLevel todayLive
Ledger vs Ads vs GA4The daily lead watch, where the forms feed the sheetDaily
Phone leadsYour CRM, only when your staff record themAs entered
What this page does not claim

Every figure behind the cost per won job is one you can see and trace: leads your own forms received, outcomes your own team set, spend Google reported and payments Stripe recorded, with no call tracking, no inbox or calendar, no job counted as won that nobody marked won and no revenue spread across channels by a model.

FAQ

Questions, answered.

Does this track phone calls?

No. There is no call-tracking system in the product. A phone lead counts only when your CRM records it, with whatever source your staff entered.

Who sets the outcome on a lead?

Your team, from the Leads view: contacted, quoted, won, lost, or not a lead with a reason. Each outcome is written to the lead record with the time it was set. Nobody at TruLata sets one for you.

How fresh is each number?

Leads, the CRM and Stripe are live. Google Ads and GA4 run hours behind, set by Google. Search Console runs two to three days behind. The header stamp on the page says when its data was last pulled.

Can the product charge or refund a customer?

No. It reads Stripe through the API, never writes to it and holds no card data.

What happens when my leads and Google Ads disagree?

A daily watch raises it the next morning. On an instance whose forms feed the sheet, it compares the ledger against Ads conversions and GA4 events and flags leads landing while one of them reports zero. It exists because a broken tag once made Ads report zero for six weeks while twenty-one real leads landed.

Which tier includes this?

The Command Center is on all tiers, and a view appears once its source is connected. Ads operations, where our team runs the account, is on all tiers.

See it running
before you decide.

The demo is the real product on a fictional company, with no form in front of it. Pricing is three published tiers. Setup on your own accounts takes two to four weeks.

Open the live demo See pricing

New here? See what the Command Center is. Prefer to write? Send us the one thing you want to know.

  • Refreshed when you open itLive data on page load, never a monthly PDF
  • Counted from your own formsLeads recorded server-side, compared daily with Ads and GA4
  • Four answer engines, measuredChatGPT, Gemini, Claude and Grok, with a published denominator
  • A review-first queue on every sendEvery draft waits in a review-first queue and every send is logged.