How Backbone worksWhat you provide, what we provide

You tell us three things: what your business is made of, the jobs you need the data to do, and where the data lives. Backbone then builds a governed, tested data warehouse in your own Snowflake account, with code stored in your GitHub repo, one use case at a time. We start from your business, not your systems: a shared model of common business processes, tailored to you. A short end-to-end check proves the plumbing first: a few hours once your data is landed. After that, every use case is checked against a number you already trust before anyone relies on it, and each one reuses what the earlier ones built. A first use case is usually live in 3–4 weeks. Nothing leaves your account, and nothing reaches production without approval, including yours.

Who provides what

You bring knowledge of the business and the authority to decide; we bring the model, the automation and the engineering.

AreaWhenYou provideWe provide
PlatformOnce, during onboardingA Snowflake account, a warehouse, and an administrator to run our generated setup scriptDevelopment and production databases, the generated warehouse code (dbt), its schedule and approval route
Business modelPer use case, as it needs itYour vocabulary, your exceptions, sign-off on how your business is describedA core ontology of common business processes (order-to-cash, source-to-pay and others), forked and extended with you
DataWhen a use case first needs a sourceSource systems in Snowflake, one system per schema, or access so we can set up the extractionA full scan of every in-scope table, profiling, and mapping of source fields to your business entities
Use casesPer use caseA short brief: the question, who uses the answer, how oftenA structured plan compiled from the brief, reusing what exists and listing every new assumption
ProofPer use caseA trusted figure to prove the use case against: a system we can load (ledger, platform report, bank) or an existing file the use case replacesReconciliation on every load against loaded sources, a parallel run against a replaced file, and consistency tests that keep running
DecisionsWhenever the data is ambiguousRulings (e.g. when is revenue recognised; what counts as a refund)The question, the evidence, the options, and the impact of each choice
ReleasePer changeFinal approval to move a change into productionDEV evidence: green run, test results, reconciliation, and what changed
AccessPer use caseThe login details and access scope of people who should be able to ask questions of the dataGoverned semantic views and a read-only Claude connector over them

How it comes together

Every engagement starts with an end-to-end check, then runs the same loop for each use case. Each pass adds only what that use case needs, so the warehouse grows in small, proven steps.

You decideWe buildEnd-to-end check, firstone critical figure, end to end, in hoursYour warehouseEach pass adds entities, sources, rules and rulings.Earlier outputs keep working.next use caseBriefquestion, slice andtrusted figurePlanreuses what exists,lists what is newConfirmthe new assumptionsin the planBuild and testreconcile againstyour trusted figureRuleon each opendifferencePublishsemantic views,packs, connectorApproveeach change; it thenruns daily in production
The use-case loop: end-to-end check first, then seven steps per use case
  1. 1

    An end-to-end check first. Before any real use case, we take one critical figure (say, yesterday's orders and their value) from one source all the way through. That covers connection, build, tests, publishing, the production schedule and the approval route. Once your data is landed, the check takes a few hours. It proves everything works in your account with real data, so problems surface straight away, not halfway through a use case.

  2. 2

    We start with the part of the ontology you need. Every client begins with a copy of our core ontology: the entities and relationships that recur across businesses (a party, an order, a product, a payment, an invoice), organised around common business processes. We tailor what the current use case touches (your entity names, your roles (a party can be a customer, a supplier, a store), your exceptions) and later use cases extend it. Moving into purchasing, for example, adds suppliers and bills. The copy is yours; changes to it never leak into anyone else's.

  3. 3

    Connect your sources. If you already have your source systems loaded into their own Snowflake schema, we run a setup script we generate, which grants us read-only access and creates two Backbone-controlled databases (development and production). We scan every in-scope table, so nothing is skipped by sampling. We can set up the extraction if you don't already have them. A source joins when a use case first needs it; the databases and access are set up once, with the end-to-end check.

  4. 4

    You write a brief per use case. A few paragraphs in plain language: the question to answer, who uses it, how often, and anything you already know is tricky. You do not need to know which tables hold the answer. A use case can ship in slices (one store or region first, the rest after), and a brief can leave a decision open until the data shows what it is.

  5. 5

    You name a trusted source. The figure the business already believes — a trial balance, a platform's own report, last month's spreadsheet. We prove our numbers against this.

  6. 6

    We compile a plan. The brief becomes a structured plan: which entities and sources the use case needs, and which metrics, rules and outputs it produces. Most of the model usually exists already, so the plan reuses it and lists only what is new, with each new assumption for you to confirm.

  7. 7

    We build. Backbone generates the warehouse code from the plan — a Data Vault model that keeps full history and lineage, then the business rules and outputs on top — and runs it in your development database. Changes are additive: earlier outputs keep working, and every version of the warehouse is recorded.

  8. 8

    We test and reconcile, on every load. Generated tests check keys, relationships and completeness. Reconciliation tests compare our output to your trusted source. Where that source is a system we load (your ledger, a platform report, the bank), the comparison repeats on every load. Where it is a file the use case replaces, we run in parallel for a closed month or two until every difference is explained, and then retire the file. Consistency tests keep running regardless: balances roll forward, every payout meets the bank, closed months don't move. Differences are explained or traced to a source, never hidden, and open ones go on a differences register that carries across use cases. Sometimes a use case shows the model needs adjusting; we go back and adjust it, which is expected, not a failure.

  9. 9

    We publish. The use case is published as governed semantic views with business definitions, plus the outputs it needs (a monthly pack, a report). Your team can ask questions through a read-only Claude connector (or similar) that answers only from these definitions. By default we provide monthly packs and similar outputs via Claude Artifacts.

  10. 10

    You approve; we promote. Each change is approved on its own: a named member of the engagement team approves the DEV evidence, and your administrator gives the second approval by merging into production. There is no big-bang go-live; your production schedule simply runs the latest approved code every day.

How the warehouse grows: a worked example

Each use case reuses what came before, so later ones need less new work. Here is a typical sequence for an online retailer, starting with sales and moving towards cash and the balance sheet.

StepUse caseProved againstReusesAdds
0End-to-end check: yesterday's orders and their valueThe e-commerce platform's own sales report—Orders, customers, products; the e-commerce source; both databases, the schedule, the approval route
1Monthly sales reconciliationTrial balance sales lines (every load); your existing month-end file (parallel run, then retired)Orders, customers, productsRefunds, discounts, tax; the accounting source; a monthly pack
2Payouts to bankBank statementsSales by order, refundsPayouts, processing fees, bank transactions; the payments and bank sources
3Deferred revenueThe balance sheet's deferred income accountOrders, refunds, the sales rulesFulfilment events; your revenue-recognition ruling
4Gift cards and store creditThe gift card liability balanceOrders, refunds, payoutsGift card issue and redemption events

By step 4 most of the model already exists, so the work is mainly new rules and a new reconciliation. Every other control in this sequence is data we load, so those reconciliations repeat on every load with nothing for you to maintain.

Where we need you

The system scans, infers and generates; you confirm, correct and decide. Expect to be asked at these points, and nowhere else:

WhenWhat we askWhy it is yours
Once, at kick-offAgree the tenant name and the critical figure for the end-to-end checkThe name becomes permanent object names in your account
Each use case: briefThe question, the slice to start with, and the trusted sourceYou know which answer matters and which number the business believes
Each use case: planConfirm what is new in the ontology and the assumptions listedA wrong assumption is cheap to fix here, costly later
Each use case: reconciliationRule on each open difference: accept, correct the source, or change the ruleAccounting and policy choices are business decisions
Each changeApprove and merge to productionProduction is your system of record

Rulings are dated and recorded, so the reasoning behind every number survives staff changes. A later ruling can revise an earlier use case; its tests then follow the new rule.

The operating rhythm

Once the first use case is live, the work settles into a steady cadence rather than a project with an end date.

CadenceWhat happensWho
Every dayProduction loads new data, runs every test and reconciliation, and refreshes the published viewsAutomatic; failures come to us
Every month-endMonthly outputs (packs, reports) are produced for the closed monthWe produce; you review
As they ariseOpen differences are investigated and brought to you with evidenceWe investigate; you rule
Between use casesThe next use case is chosen from your backlog, by value to the businessYou decide; we advise on effort and reuse

What you end up with

Value arrives with each use case, not at the end. Everything lives in your Snowflake account and your git repository, so it stays yours if the engagement ends.

After each use case

  • A reconciled output in use: tied to its trusted source by tests that run on every load.
  • Governed semantic views with business definitions, and a read-only Claude connector over them.
  • The plan, its assumptions and your rulings, dated.

Over time

  • A growing ontology: the agreed description of your business, versioned.
  • One shared warehouse in two databases (development and production), with full history and source lineage, that each new use case builds on.
  • The generated code (dbt) in your repository, with a lineage page showing every model, what it computes and which tests guard it.
  • A cumulative decision record: every plan, ruling and approval since the end-to-end check.

Frequently asked questions

Isn't understanding the business the hard part — and isn't that probabilistic if AI does it?
Yes, it is the hard part, which is why AI never has the last word on it. AI proposes the plan: which entities, which source fields, which rules. You confirm or correct every assumption it lists. The warehouse code is then generated from the confirmed plan by a deterministic generator, so the same plan always produces the same code.
If AI writes the configuration, isn't that just code by another name?
In effect, yes, and we treat it that way. Deterministic only means the same plan gives the same result; it doesn't make a wrong rule right. So the configuration is versioned in your git repository, every rule in it traces to a plan you confirmed or a ruling you made, and reconciliation tests check the result against figures you already trust.
What do the tests actually test? Is it more than checking columns aren't empty?
Some tests are structural: keys are unique, relationships resolve, required fields are present. Most of the effort goes into business tests written for the live use case: reconciliation to your trusted source, balances rolling forward, every payout matching a bank line, closed months not moving. When a test finds broken records, such as orders that never completed, those cases become tests too. All of them run in dbt on every load, independently of the AI that proposed the mappings.
Who owns a failing test at month end?
A failing test produces a list of the records that fail, not just a red light. We work out whether the data or the rule is wrong. A data problem goes, with its list, to the team that can fix it at source, such as customer operations or finance; a rule problem comes to you for a ruling. On a recent build, nearly 100 source-data issues found during development went to finance this way.
Does reconciliation hold up with exceptions, source changes and messy data?
That is what it is for. Tests check relationships rather than fixed numbers, so new data arriving is not a finding. Exceptions sit on the differences register until they are explained or ruled on. A change in a source shows up as failing tests on the next load, before it reaches a published figure.
Hundreds of models sounds like a lot. Are they all needed?
Each one does a job the requirements call for. Most are the layers that integrate the sources: landing, staging, the history-keeping model, and the business rules on top. Requirements shape the count too: keeping two stores' figures separate, for example, roughly doubles the outputs. People use a handful of published views; the layers underneath are what make those views consistent, traceable and testable.
Why Data Vault?
It is the most reliable way we know to bring several source systems into one structure that keeps full history and traces every value to its source. It also gives repeatable patterns, so the outputs built on top can be generated rather than hand-written.
We have several ERPs and acquired brands. Does that work?
Yes, it is the situation Backbone is built for. Each system lands in its own schema and is mapped to the same business entities, so an order is an order whichever ERP it came from. Where systems disagree, such as different charts of accounts or product codes, the difference comes to you as a ruling and the rule is recorded. Adding an acquired brand later means mapping a new source onto the model you already have, not building a new warehouse.
Does it scale beyond a small data estate?
The model grows by adding entities, relationships and sources; a new use case adds to the warehouse without reworking what exists. The processing runs in your Snowflake account, so it scales with your Snowflake warehouse. Tell us your volumes early and we will size the end-to-end check to test them.
What technology does it use, and can we see the code?
Backbone is our own generator. It produces standard dbt code, which runs in your Snowflake account and is committed to your git repository, so you can read, run and keep all of it. The vault layer is built on the open-source datavault4dbt package.
Can we trace a number back to where it came from?
Yes. Every row in the warehouse records which source system it came from and when it was loaded. A lineage page, redrawn after every run, shows every model by layer and source system, what each one computes, and which tests guard it.
Will it work with my BI tools, and can people ask questions nobody planned for?
The published views are ordinary Snowflake objects with business definitions attached, so any tool that reads from Snowflake can query them live, and tools with their own lineage can follow the trail into Snowflake. People can also ask questions in plain language through the read-only Claude connector. The warehouse integrates the data; it doesn't limit the questions you can ask of it.
Can I buy the software?
Not on its own. Backbone is currently delivered by Calon as an implementation, starting from €20,000: we run the platform for you, and everything it builds stays in your account. More at databackbone.io.

Glossary

TermMeaning
End-to-end checkOne critical figure taken end to end through the whole platform, first, to prove everything works
Use caseOne job the data must do, delivered as one pass round the loop
OntologyThe agreed description of your business: its entities (customer, order, product) and how they relate
Core ontologyOur shared starting model of common business processes, which yours is copied from
BriefYour plain-language description of one use case
Trusted sourceThe figure your business already relies on, used to prove our numbers
PlanThe structured version of a brief, with every new assumption listed
ReconciliationAn automated test comparing our output to the trusted source on every load
Differences registerThe running list of open differences and how each was resolved
Semantic viewA governed, documented view of the data that people and tools query
Data VaultThe modelling method underneath: keeps full history and traces every value to its source
Book an intro call