RESS Revenue & Ads Report

Real Estate School for Success · Live snapshot June 22, 2026 (14:18 UTC)

Business Stable ROAS 4.4× Offline Tracking Down 22% Impression Share
$40,821
Revenue · last 30d
191 orders · WooCommerce
$14,128
Revenue · last 7d
61 orders · strong week
$214
AOV · 30d
$226 over 60d
$4,211
Ad Spend · 30d
CPA $49.84 · 84.5 conv
4.43×
Tracked ROAS
$18,668 ad-attributed value
54%
Revenue invisible to Ads
~$22,153 offline / in-person

The Story — what's happening & why it matters

FOR JASON
  • The business is healthy. Trailing-30d WooCommerce revenue is $40,821 across 191 orders and the last 7 days ($14,128 / 61 orders) are pacing above that run-rate. There is no demand problem.
  • Online sales tracking is solid. The web Purchase pixel is firing correctly — 83.5 conversions / $18,628 in 30d, and Google Ads is efficient: $49.84 CPA, 4.43× ROAS on what it can see.
  • !Google is flying blind on ~54% of revenue. Both offline conversion actions (WooCommerce Order (Offline) and offline (Upload)) are REMOVED in Google Ads. In-person classes are roughly 69% of the business, and ~$22,153 of the $40,821 monthly revenue is completely invisible to Smart Bidding.
  • !So the real ad ROAS is much higher — but we can't prove it yet. Google tracks $4.43 back per $1 spent, but that's a floor (it misses ad-driven in-person enrollments). Smart Bidding is systematically under-bidding keywords that drive walk-in sales — the school's largest revenue line. Don't scale spend until the signal is restored.
  • The fix exists and is ready. Auto-tagging is ON (GCLIDs are flowing on every click). The Lead Conversion Agent (neon-live branch in ress-admin) captures GCLID at lead → matches to the Woo order by email → uploads offline conversion with order value. Deploy it, recreate the offline conversion action in Ads, and Smart Bidding gets the full picture.
  • There is real headroom once tracking is whole. The main campaign sits at only 22% impression share (losing 74%+ to rank). "Fresh Start — RE License" is a 20.9× ROAS outlier on $120 of spend — the strongest scale candidate once we can trust the signal.
Bottom line — the business is healthy. Trailing-30d revenue is $40,821 across 191 orders, right on the ~$40K/mo run-rate, and the last 7 days ($14,128) are pacing above trend. Google Ads is efficient: $49.84 CPA, 4.43× ROAS on tracked conversions. There is no demand problem.
The one real issue is measurement, not sales. Both offline-conversion actions (WooCommerce Order (Offline) and offline (Upload)) are REMOVED in Google Ads. In-person + phone sales are ~54% of revenue, so Smart Bidding is optimizing on barely half the picture. Fix = recreate a primary offline action and feed it via the Lead Conversion Agent (GCLID → order match). Do not bid up the rank-lost headroom until tracking is restored.

Daily Revenue — last 30 days

peak $3,873 · May 29

Daily Revenue vs. Ad Spend vs. What Google Sees

30-day window
WooCommerce revenue (actual) Ads-reported conv. value Ad spend (right axis)

The gap between green (real revenue) and orange (what Google records) is the missing in-person/offline credit. Closing it is the whole game. Reconciliation: Woo $40,821 vs. Ads-attributed $18,668 = 46% tracked coverage.

Revenue by Window

Live Woo · completed + processing
WindowRevenueOrdersAOVRev / day
Last 7 days$14,127.9961$231.61$2,018
Last 14 days$21,146.99102$207.32$1,511
Last 30 days$40,820.98191$213.72$1,361
Last 60 days$73,579.96325$226.40$1,226

Top Products — last 30 days (by revenue)

Live line-item rollup
#ProductUnitsRevenue% of 30d
1Online SC 90-Hour Pre-Licensing — Package Deal flagship18$11,59228%
2Online 10-Hour CE Package 2025-26 volume leader78$6,94217%
3Real Estate Principles Unit I — 60hr (in-person)13$6,01515%
4Online Property Management20$5,50013%
5Advanced RE Principles Unit II — 30hr (in-person)9$3,5619%
6Property Management — 30hr (in-person)5$1,8755%
7Online 10-Hour BIC CE Package 2025-2617$1,6834%
8Online Unit I — 60-Hour Pre-Licensing4$1,5004%
9Online Unit II — 30-Hour Pre-Licensing2$5981%
10CE — Legal Hot Tips (4hr Core)13$5201%

Google Ads — campaign performance, last 30 days

CID 927-432-7118
CampaignCostConvConv ValueROASImpr. Share
Real Estate School (Audience Enh.)$2,99161.1$11,7723.9×22%
Property Mgt only$1,07220.5$4,3884.1×42%
Fresh Start — Real Estate License high ROAS$1202.9$2,50820.9×10%
Brand: Search$280.0$0100%
Total / blended$4,21184.5$18,6684.4×~22%

Conversion Tracking Health

Action required
Conversion ActionTypeStatus30d
Purchase primaryWeb pixelEnabled83.5
GA4 (web) purchaseGA4Enabled48.6*
Call from AdWordsAd callEnabled13*
Lead form — SubmitLead formEnabled0
WooCommerce Order (Offline) was primaryOffline uploadREMOVED0
offline (Upload)Offline uploadREMOVED0

*all-conversions (secondary signals). The web Purchase pixel is firing correctly. Two offline actions are REMOVED — that's the gap.

What happened: Jason's offline-conversion import (GCLID → daily upload) was meant to warm to primary over ~30 days. Instead both offline actions ended up REMOVED, so in-person + phone sales stopped feeding Google Ads entirely. The web side was never broken — only the offline side regressed.
Why it matters: ~54% of revenue (~$22K/30d) is in-person or phone. With both offline actions gone, Smart Bidding optimizes on the online half only — so it systematically under-bids the keywords that drive walk-in enrollments, the school's biggest revenue line.
Ad-attributed value (30d)$18,668
Total Woo revenue (30d)$40,821
Tracked coverage46%
Untracked (offline)~$22,153
Auto-tagging / GCLIDsON ✓
Fix ownerLead Conv. Agent

The fix — restore offline conversions in 5 steps

Auto-tagging is already on, so GCLIDs are flowing on every click — the plumbing exists, it just needs to be reconnected. This is exactly what the Lead Conversion Agent (built, on the neon-live branch) automates:

  1. Recreate a primary offline conversion action in Google Ads ("WooCommerce Order (Offline)", category Purchase, count one-per-click, value from order total).
  2. Capture the GCLID at lead/checkout and persist it on the order (already wired: lead_discount_states.gclid, migration 003 on Neon).
  3. Match lead → completed Woo order by email (lead_conversion_match()), attaching the GCLID and the real dollar value.
  4. Upload the offline conversion daily with order value via the Google Ads API (the L1 uploader exists in "dark" mode — flip it live once the action is back).
  5. Smart Bidding now sees in-person revenue and rebalances toward the keywords that actually convert to enrollments.

Then — there's real headroom to grow into

Once tracking is whole, the impression-share data says the main campaigns are demand-constrained by rank, not budget — i.e. room to scale efficiently:

CampaignImpr. ShareLost to rankRead
Real Estate School (main)22%~74%Big headroom — but don't bid up until offline tracking is restored.
Property Mgt only42%~58%Efficient (4.1× ROAS); room to grow.
Fresh Start — RE License10%~90%20.9× ROAS on $120 — strongest scale candidate.
Brand: Search100%Saturated; keep bids low (defensive only).

Product Catalog Red Flags

5 issues · 28 products

From the live 28-product catalog export (research/woocommerce-products-2026-06-22.md). These are revenue-leak and data-hygiene items — none are outages, but a few are leaking money or muddying attribution right now. Sorted by priority.

2
Published at $0
1 with live sales
3
Out of stock, still live
visible, unbuyable
10
Missing a SKU
36% of catalog
$25–655
Price spread
$644 vs $655 near-dup
PriorityIssueProduct(s)Detail & fix
P1 $0 + selling Property Manager in Charge Published with 5 lifetime sales at $0.00, no SKU, and currently outofstock — so it's been given away and now can't even be bought. Comparable PM courses sell at $275–$375. Fix: set a price (~$349), restock, assign a SKU — or unpublish if retired. This is the only literal active leak.
P2 near-dup Real Estate License Package Deal ($655) A near-duplicate of the $644 flagship ("Online SC 90-Hour Pre-Licensing — Package Deal"), 0 sales, no SKU. Two almost-identical $644/$655 packages split SEO authority and confuse buyers at the highest-value price point. Fix: retire it and 301-redirect to the $644 flagship, or repurpose it as a deliberately-differentiated tier.
P2 stock 3 products: PM in Charge · Broker Package Deal (60hr) · Real Estate Continuing Education Published but outofstock — they appear in catalog/search and on ad landing pages, then can't be purchased. Fix: mark in-stock (digital courses should never be out of stock) or unpublish.
P3 $0 dead SKU Real Estate Continuing Education $0, outofstock, 0 sales, no SKU — a placeholder shell. Fix: unpublish; it adds nothing but a broken catalog entry.
P3 SKU gaps 10 of 28 products (mostly in-person) No SKU on Unit I/II in-person, PM courses, broker packages, study guides, the $655 package, etc. Why it matters: SKUs are the clean key for revenue reporting and for the Lead Conversion Agent's order-match join — missing SKUs weaken both. Fix: assign a consistent SKU scheme (e.g. RE-U1-IP, CE-10HR).
Bigger picture — the mix is fine, the hygiene isn't. The catalog itself is healthy (the $644 flagship and $89 CE package are doing the work). But these issues live on the highest-intent surfaces — the $0 PM course and the duplicate $644/$655 packages are exactly what a paid click can land on. Cleaning them up is cheap and protects ad spend. Owner: Nate (WordPress/Woo). Effort: ~30–45 min total.

What To Do Next

  • Recreate a primary offline conversion action in Google Ads and feed it with the Lead Conversion Agent (GCLID capture → Woo order match → value upload). Single highest-leverage fix.
  • Hold the bid-up. The main campaign loses ~74% impression share to rank — real headroom — but don't chase it until offline tracking is restored, or you scale on a half-blind signal.
  • Fix the $0 products (Property Manager in Charge especially) — immediate, literal revenue leak.
  • Mind the mix. AOV is healthy ($214) and the $644 flagship is back as the #1 revenue product; the $89 CE package is the volume engine (78 units) — a natural upsell/renewal funnel.
  • "Fresh Start" is a 20.9× ROAS outlier on tiny spend — candidate to scale carefully once tracking is fixed.

All Products · WooCommerce Catalog

28 PRODUCTSJune 22, 2026

# Product Category Price Stock SKU Lifetime Sales Flags