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.”
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.
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.
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.
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
- Modeled once. The meaning lives in one governed model instead of being scattered across scripts and people's memory.
- 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.
- A pipeline that maintains itself. Incremental, self-building, no orchestrator to babysit — and it refuses to report on incomplete data.
- Reporting on demand. A week of manual assembly became AI-generated output, grounded in the model.
- 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.”
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.