Skip to content
Acorn Works
All work

REPORTING

What sales said versus what the register said

FTAP Pulse (Full Throttle Adrenaline Parks) — venues across four states

Two systems with no shared key, joined into one reconciled figureWon deals from the CRM and actual totals from the point-of-sale system have no shared key between them. The reconciliation logic joins the two and produces a single figure, with the gap between booked and actual made visible.CRM — WON DEALSNO SHARED KEYPOINT OF SALE — ACTUALTHE JOINONE NUMBERTHE GAP, WITH A NUMBER ON IT
Client
FTAP Pulse (Full Throttle Adrenaline Parks)
Work
REPORTING
Built with
Zoho CRM · Point-of-sale API · Supabase
Result
Booked vs. actual, per venue

Situation

The starting point

Marketing saw deals won in the CRM, operations saw revenue in the POS, and nobody could tell whether an event that sold for a number actually rang up that number. It was a running argument with no data behind it.

What we built

Scope

  1. 01A KPI dashboard pulling won deals from the CRM and reconciling expected event revenue against actual POS totals
  2. 02Walk-in customer demographics from the venue system layered alongside the event view
  3. 03Role-based access, venue filtering, and arbitrary date ranges, behind auth

Details that mattered

Where the work actually went

  1. 01The join is the hard part. Two systems, two definitions of an event, two definitions of revenue, and no shared key. Most of the work was reconciliation logic, not charts.
  2. 02Access is scoped by role and venue — a regional manager sees their locations, corporate sees all of them.

What it proves

Every multi-location operator has this exact gap. Closing it is a two-system join with a real number at the end, not a data warehouse project.

Stack

  • Zoho CRM·
  • Point-of-sale API·
  • Supabase

Have something like this?

Tell us what's broken, in your own words. We'll come back with whether we can help and roughly what it would take.