All case studies
Regional QSR · multi-unit

Unified POS, payroll, loyalty and financial data into Tableau dashboards operators actually opened and used to run a shift.

150+
Stores reporting from one Tableau environment
6
Operational systems unified into one warehouse
Same-day
Weekly performance reporting (was 5 days)
40+
Tableau dashboards in active use across ops, finance, marketing
3 → 1
Source of truth across operations, finance and marketing
Client context

A regional QSR chain operating more than 150 units across the western US, with store, marketing, and finance teams all needing real visibility into the business. The goal was turning scattered operational data into Tableau dashboards operators could use to run shifts, plan labor, and make decisions on the floor.

The problem

The POS system logged everything at the terminal, but getting that data into the hands of district managers and finance was manual and slow. Payroll lived in Paylocity, loyalty data in a vendor app, financials in NetSuite, and fundraiser activity in yet another system. Nothing talked to each other. Store performance meant waiting on someone in finance to export, stitch, and format files in Excel. Labor costs and sales lived in different systems and time frames, so reconciling them took a week of cleanup before any operations review.

The operational consequences compounded across 150+ stores. Cross-system analysis was effectively a project, which meant most of it didn't get done. District managers walked into stores without current numbers. Marketing couldn't tie loyalty engagement back to sales. Finance closed each week three days later than they wanted to. And anything that looked like real cohort or LTV analysis on the loyalty program was off the table entirely.

What we built
01

Foundation: orchestration and ingestion

Dagster pulled from each source on a defined schedule: POS terminal tables (sales, sales items, payments, media, categories, clerks), payroll endpoints per company, loyalty activity, fundraiser data, and financials from NetSuite. Everything landed in Snowflake with proper backfill behavior and freshness monitoring.

02

Modeling: medallion architecture in dbt

A bronze, silver, gold layered dbt project tagged by domain (operations, labor, finance, loyalty) so jobs ran independently per business area. Every metric definition (what counts as labor cost, how comp sales are calculated, what menu mix means) got documented and tested in dbt.

03

Activation: Tableau by business area

Tableau dashboards designed around the actual decisions each role makes: store performance for district managers, labor vs sales for operations, menu mix for merchandising, loyalty engagement for marketing, financial rollups for finance. We closed the loop with vendor-side exports so the platform connected back out to systems that needed it.

How we worked

The Blueprint phase opened with two weeks of field work: we walked five stores, sat with district managers during their Monday meetings, and audited every report and spreadsheet the team relied on. By the end of week three we had a definitions backlog of about forty conflicting metric definitions and a prioritized roadmap of the dashboards leadership cared about most.

Through the six-month Build, we ran weekly working sessions with the data lead and bi-weekly steering with operations, finance, and marketing leadership. Domain ownership ran through a small RACI document: operations owned labor and store performance, finance owned revenue and P&L, marketing owned loyalty and customer marketing. When teams disagreed on a metric definition, we documented the disagreement in dbt model descriptions and surfaced it to leadership rather than picking a side.

Knowledge transfer ran in parallel. By month three the data lead was committing dbt models alongside our team. We rolled training out in month five in two cohorts: a half-day for analysts on the dbt project structure, and ninety-minute sessions for district managers on Tableau navigation and the dashboards built for their workflow.

Results
  • One Tableau environment replaced siloed spreadsheet reporting across operations, finance and marketing
  • Weekly store performance reporting cycle compressed from 5 days to same-day
  • District managers saw store performance on demand instead of waiting on manual pulls
  • Labor, sales and financials reconciled in one place for the first time
  • Loyalty and POS data connected for real customer marketing analysis
We used to make district managers wait until Wednesday for last week's numbers. Now they walk in Monday morning with the full picture and can act on it during their store visits the same day.
VP of Operations, Regional QSR client

Outcomes start with a Blueprint. We plan, build and run from there.

Thirty minutes with a 829 Analytics partner. You leave with a prioritized view of what to build first, what's worth waiting on, and the business metric anchoring each move. Whether or not we end up working together.