A DTC lifestyle apparel brand in the $20M to $40M revenue range, selling through Shopify and wholesale channels. The team wanted real visibility into the business without stitching spreadsheets every time a question came up from leadership.
Their data lived in Shopify with supporting bits scattered across the warehouse management system, the email platform, the loyalty app, and a handful of Google Sheets the ops team kept by hand. Pulling anything useful meant CSV exports, VLOOKUPs, and crossed fingers that the numbers matched across reports, and they usually didn't. Finance counted revenue net of returns and discounts; marketing counted gross order revenue; ops counted shipped revenue. Customer count was even messier: marketing counted email subscribers, finance counted unique billing accounts, and CX counted active users in the loyalty app. None of those reconciled cleanly.
The operational consequences compounded weekly. There was no consistent view of inventory movement against sales velocity, so reorder decisions ran on Excel snapshots that were already a week stale. Cohort and lifetime value analysis was effectively unavailable, which meant the team couldn't say with confidence which acquisition channels produced retained customers versus one-time buyers. Every question leadership asked in a Monday standup turned into a multi-day data pull, which meant most questions either went unanswered or got answered with directional guesses.
Shopify and the supporting source systems flow through Fivetran into BigQuery on daily incremental loads, with proper backfill behavior and freshness monitoring. The team learns about a missed sync from a Slack alert, not from a board deck.
A multi-layer dbt project across staging, intermediate, and marts. Customers modeled as a Type-2 slowly-changing dimension; orders and order lines as central facts; documented business logic for what counts as a new customer, how returns are treated, what an inventory snapshot means. Every metric is tested.
Looker explores designed around the questions each function actually asks: finance on revenue and returns, ops on inventory turnover, marketing on cohort and LTV. Certified content tagged so analysts know what's gold and what's draft. Training rolled out in week 9 of the build.
The Blueprint phase opened with two weeks of discovery: stakeholder interviews across finance, ops, marketing, and leadership; a full audit of every report and spreadsheet the team relied on; and a tracing exercise that mapped every metric back to its source system and calculation. By the end of week two we had a backlog of about sixty conflicting metric definitions to resolve, plus a prioritized list of the dozen-odd that mattered most for the operating cadence.
Through the Build, we ran weekly working sessions with the data lead and bi-weekly steering with finance, ops, and marketing leadership together in the same room. Metric-definition decisions ran through a small RACI document we kept current: finance owned revenue and returns, ops owned inventory and fulfillment, marketing owned customer cohorts and lifecycle. When the three disagreed, we documented the disagreement in dbt model descriptions rather than papering over it, so a future analyst could see exactly why a definition was settled the way it was.
Knowledge transfer ran in parallel rather than at the end. By week six the data lead was committing dbt models alongside our team. By week ten she was leading the metric-definition working sessions herself. We rolled training out in week twelve in two cohorts: a half-day for analysts on the dbt project structure and tests, and a 90-minute session for business users on Looker self-service patterns and the certified-content tagging system.
We came in expecting to fight about which Shopify report was right. We left with one model the whole company runs on, and finance, ops and marketing aren't arguing anymore.
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.