Offline Revenue Attribution

Stop Letting Jobber & ServiceTitan Erase Credit for Your Ad Revenue.

A resilient, server-side data infrastructure layer. Track dynamic field upsells, protect attribution across 90-day contractor sales cycles, and train ad algorithms with true closed revenue.

Drop Files & Match Revenue No CRM login access, API keys, or password sharing required.

The ad gets the lead. The field system gets the revenue. The connection gets lost.

Standard integrations tend to capture a point-in-time lead record. Home service revenue is not a point-in-time event.

01 / POST-DISPATCH MUTATION

The Post-Dispatch Mutation

A technician changes the economics of the job after the lead already entered your CRM. A $99 tune-up can become a $20,000 system replacement on the technician's tablet.

Initial lead → $99
Field update → $20,000
Standard integration → still sees $99

If the integration only captured the original lead snapshot, the additional revenue never reaches the attribution layer.

02 / IDENTITY SWITCH

The Identity Switch

The person who clicks the ad does not always become the person who closes the contract. A husband can submit the form while his wife later calls from a different phone number.

Ad click → Husband / Phone A
Sales call → Wife / Phone B
Flat lookup → No deterministic match

When identity resolution stops at a single database field, the closed revenue can fall into Direct, Unknown, or an unrelated contact record.

Ad → Landing Page → GHL → Sales → FSM → Closed Revenue → Ad Platform

Revenue attribution that persists after the lead changes.

The system is designed around the actual lifecycle of a high-ticket home service contract: identity persists, financial changes are observed, and downstream events are processed safely.

01 / STATE

State Persistence

Preserve attribution parameters such as GCLID and FBCLID beyond the short-lived browser session. Marketing identity remains available while the contractor works through a longer sales cycle.

30–90 day attribution state
02 / REVENUE

Delta Calculations

Listen for FSM invoice and job changes, calculate the financial difference, and send the resulting revenue change downstream instead of repeatedly treating the same job as a new conversion.

new value − previous value
03 / INTEGRITY

Idempotent Safeguards

Webhooks can be retried and events can arrive more than once. Safeguards prevent duplicate processing, unnecessary API calls, and corrupted revenue reporting.

same event → one state change

Offline Revenue Attribution is the feedback layer between marketing spend and the contracts your clients actually close.

Lead volume and CPL describe the beginning of the funnel. Closed revenue describes the outcome.

When the connection between those two points is reliable, campaign reporting, optimization decisions, and conversion feedback can use the same underlying revenue events.

The objective is not another dashboard. It is preserving the data relationship from the original marketing interaction through the field-service outcome.

  • Marketing identity GCLID / FBCLID / UTMs
  • Sales horizon 30–90 days
  • Revenue events Quote → Job → Invoice
  • Downstream systems GHL / Jobber / ServiceTitan

GHL & Jobber Revenue Reconciliation

Instantly reconcile your field service revenue against your CRM pipeline. Normalizes phone strings, maps customer identifiers, and outputs a clean re-importable asset for GoHighLevel.

Must contain Contact Name, Phone, and the native Contact ID column.
Must contain client phone numbers and invoice/job totals or revenue values.

Processing happens 100% locally in your browser. No data touches an external server.

0
Matched Contacts
$0
Matched Revenue
0
Unmatched
Contact Name GHL Contact ID Phone Jobs Revenue Status

The exported CSV includes your GHL Contact ID column so GHL updates records seamlessly without creating duplicates.