Bijection for Data & Analytics
A metric is a Function. Not two people’s SQL.
Define each metric once, in reviewed code, and get the rows behind every number.
- Metric changes
- Billing reconciliation
- Feed checks
- Board pack
- Data requests
- Unexpected moves
Revenue has three definitions: one in the finance deck, one in the board dashboard and one in a notebook nobody has opened since its author left. When the numbers disagree, someone spends a day finding out why.
In Bijection each metric is a Function in reviewed code, and every report reads the same one. Each number comes back with the rows that produced it, and changing a definition is a change someone approves.
Metric changes
Starts: Someone edits a metric definition
- Run the old and new definitions side by side on a branch.
- See which reports move, and by how much.
- An owner approves before the new definition goes live.
Billing reconciliation
Starts: Every night
- Compare invoices in Stripe with usage in the warehouse.
- Rows that disagree become a list with both values.
- Each mismatch is assigned to an owner.
Feed checks
Starts: Every morning, before reports refresh
- Check that each source arrived and kept its shape.
- A failing feed opens a task for its owner.
- The task closes when the next sync passes.
Board pack
Starts: Five days before the board meeting
- Run every metric in the pack at the same cut-off.
- Each number links to the rows behind it.
- Finance signs off before it is shared.
Data requests
Starts: Someone asks for a new figure in Slack
- Check whether an existing definition already answers it.
- If not, an analyst writes one, and it is reviewed.
- The answer goes back with its definition.
Unexpected moves
Starts: A metric moves more than you expect
- Compare it with the same period last month.
- List the rows that account for the change.
- The metric owner confirms it or investigates.