bars.com

Case study · bars.com

6 MIN READ

How bars.com built a data product with no data team

What bars.com sells its brand partners is proof: hard evidence, from the venue's own transactional data store, that a sampling campaign moved sales. With no data team to produce it, the company built its reporting on Credible — and turned a week of manual work into answers on demand.

Overview

bars.com is the leading platform for beverage sampling, running campaigns for spirits brands across a national network of bars and restaurants. A brand buys a campaign, guests try a pour and leave quick feedback, and the venue hosts the event. What bars.com sells its partners is proof — real numbers from the venue's transactional data store showing what a campaign did to sales. The tagline is literal: "We're buying America a drink™."

The challenge: proof, by hand

That proof is a data product, and bars.com is a hospitality company. No data engineers on staff, not much software expertise. Building one campaign report took over a week of manual work against a pipeline nobody really owned: pull the data together, apply the business rules from memory, assemble the deck, check it again. The pipeline went a month stale at one point because nobody's job was to keep it running. Meanwhile the roadmap was heading the opposite way, toward a self-serve app where brands could explore their own results directly. They needed to run like a data company without being one.

The stakes are public. A number that is wrong but believable doesn't look like a bug to a brand. It looks like a reason to distrust the whole measurement — and two reports that disagree because they were built by hand on different days are exactly that. The definitions had to be written once, kept in one place, and applied the same way every time.

“The old way was just too much manual work. Every report meant pulling the data together by hand, and it always took more time than we had. It wasn't something we could keep up with.”
Alberto Marmolejo-Daher, Technical Solutions, bars.com

By the numbers

  • 1 week → minutes. Campaign reports went from over a week of hand assembly to AI-generated output on demand.
  • The same revenue number, everywhere. A full month was reconciled against the old pipeline to the cent — and that number now stays consistent across every agent, every report and every eval run.
  • Built by the team they already had. No data engineers hired, no orchestration infrastructure stood up.

The build: from raw dump to answers on demand

The reason bars.com could pull this off with no data team is that it's one engine, not six. Credible captures what the data means, then materializes, checks, and serves it. The meaning lives in one place, and the team they already had could own the whole thing.

From there it runs itself. Each refresh is incremental, so the pipeline stays fast and cheap as the data grows, with no orchestrator to babysit and nothing left to go stale.

Before
Raw dumpRun by handOne-off reportunowned · went a month stale
After
Pipeline
Raw dataGoverned modelEvaluation gates
Delivery
AI agentsGenerated reportsSelf-serve appThe same verified numbers, in minutes.
Owned in-houseRebuilds itselfCheaper as data grows
Before and after: a raw dump run by hand, unowned and a month stale, versus one governed engine that refreshes itself, checks every run, and serves the same verified numbers to every product — maintained by the team already in place.

Write down what the data means, once

The first stage turns the raw dump into a single governed model — orders, venues, campaigns — with every business definition, what counts as revenue, what a campaign covers, which window is "before" and which is "after", written down in one place that people and AI both read. For a team with no data engineers, this is the knowledge that usually lives in someone's head. Here it lives in the model, and every later stage builds on it.

Trust is gated, not hoped for

A plausible wrong number is the kind of mistake a brand can't spot and won't forgive. So the pipeline checks itself: every run is validated before it is served, every change to the model has to pass a regression suite before it ships, and a report that would be built on incomplete data is stopped before a brand sees it. Those gates caught real problems before any client did. The migration was held to the same bar: a full month reproduced against the old pipeline to the cent.

The same numbers everywhere brands look

The governed model is served to AI agents, so they can answer campaign questions with bars.com's own verified numbers. Those agents now drive the slide decks and reporting workflows that used to take a week to put together by hand. The same model sits under bars.com's self-serve data app, where brands explore their own results directly. Whether an answer comes from an agent, a generated report, or the app, it's the same definitions and the same numbers.

Campaign report · generated by agentSample Brand — Summer Sampling
148 venues · Jun 1–30
Units sold42,318+18% vs baseline
Revenue lift$214kattributed
Return on spend3.2×vs 2.4× target
Venues active96 / 148ran it
Top venues by units
The Copper Still — Austin, TX1,840
Lantern Room — Nashville, TN1,520
Harbor & Vine — San Diego, CA1,310
Ask the data
Where did we underperform, and why?
Two venues came in under target. One ran its activation midweek. The other has no sales rows for the window, so the report left it out rather than counting it as a zero. Net of that venue, the campaign beat target by 0.8×.
Split the lift by week.
Week 1 +$38k, week 2 +$61k, week 3 +$57k, week 4 +$58k. The lift held after the first week instead of fading.
Illustrative example — brand, numbers, and conversation are sample data, not a live report.
The report an agent assembles from the governed model, and the same model answering follow-ups down to venue, week, and flag — the self-serve depth a static report can't give.

Agent answers are measured, not asserted. Twenty questions taken from real analyst workflows go to fresh agent sessions with no access to the answers, and each answer is scored against ground truth derived independently in SQL. The suite has been run three times: 20 of 20 correct, every time.

One system, end to end

It's all one engine. A governed model over the warehouse defines what the data means. Materialization keeps it fast and cheap, evaluation gates catch bad output before it ships, and the same numbers are served to agents, reporting workflows, and the bars.com app.

The impact: the whole chain, owned in-house

  1. Modeled once. The meaning lives in one governed model instead of being scattered across scripts and people's memory.
  2. Numbers a brand can trust. Plausible-but-wrong numbers are caught before they ship, and the regression gate keeps it that way through every future change.
  3. A pipeline that maintains itself. Incremental, self-building, no orchestrator to babysit — and it refuses to report on incomplete data.
  4. Reporting on demand. A week of manual assembly became AI-generated output, grounded in the model.
  5. A foundation that compounds. The same model that powers agent-built reports powers the self-serve app, and every new surface starts from captured meaning instead of the raw dump.

And bars.com owns all of it. The model and the pipeline are theirs, maintainable by the team they already had.

“Your platform is insane. Two report decks due the same day — I chatted with our model and had both before lunch. Reporting that took weeks is now a conversation we're building into our product for our customers.”
Aquiles La Grave, Co-founder & Chief Product Officer, bars.com

What's next

The bigger story is what bars.com is building on top of this: a self-serve data platform where brands answer their own campaign questions. The reporting that used to take a week is turning into a product bars.com sells. Other companies can copy the pattern: the meaning of your data can live in a model instead of in people's heads, evaluation gates can catch the mistakes before anyone sees them, and the same verified numbers can reach every agent, report and app you put in front of customers. None of it takes a big data-engineering buildout — just a clear idea of what your data means and a system that keeps it accurate.

More case studies

VideoAmp5 MIN READ

How VideoAmp shipped AI that answers from its own measurement — or not at all

VideoAmp's measurement backs real media spend, so an answer that looks right and isn't could cost the business. Working with Credible, VideoAmp wrote down what its metrics mean and what they're allowed to do — and shipped AI that answers from those definitions or declines and names the gap.

47% → 100%

coverage of the definitions a correct answer depends on