Where this sits in the leader track
Six sessions, 45 minutes each, and one deliverable: a page you can hand to whoever funds this. Session 1 put a number on the discovery gap, session 2 named the five signals, session 3 turned quality into three chosen dimensions and session 4 priced a false page. Tonight is the money question: how far does a small team's attention stretch, and what do you deliberately leave uncovered. Session 6 turns the answer into three reportable numbers and a 90-day plan. The estate throughout is Bellwether's, a grocery delivery company with 340 tables in the warehouse and two people who could plausibly carry a pager.
★ What you walk out with tonight. A tier list for your own estate, built from four questions rather than from who complained most recently. Three written service levels, including the one that says out loud what the long tail does not get. And the check that reorders most tier lists in the room: which of your quiet tables feeds something a customer, a regulator or a payment run can see.
LiveThe shape of the problem, in one paragraph3 min▶
Detection is bought with two currencies. One is money, and it is the smaller of the two: a metadata check on a table costs a fraction of a cent to run and the invoice only becomes interesting when checks start reading rows. The other currency is human attention, and it does not scale at all. A rota of two people can hold a few dozen tables in their heads and answer a page about them at 07:00 with some idea of what to do. It cannot hold 340.
So the real constraint on coverage is not the tooling budget. It is the number of tables about which somebody can be woken and still be useful. Every tiering decision below is an argument about how to spend that number.
Bellwether's first attempt turned freshness and volume on for all 340 tables at one fixed threshold. The first week produced 40-odd alerts. Three were real. By the second Friday the channel had been muted by everybody except the analyst who had built it, and when a genuine partial load hit the orders table it was still finance who found it on the Monday.
Self-studyThe vocabulary you need for the tier conversation3 min▶
- Tier - a promise about a table, not a description of it. Two tables with identical schemas can sit in different tiers because different things happen when they are wrong.
- Service level - what a tier gets: which signals are watched, in which hours, and how fast detection is expected to be. Written down, dated, and reviewed.
- Detection target - the honest promise. Minutes, hours or days. A tier with no stated target is a tier nobody can hold you to and nobody can plan around.
- Downstream reader count - how many models, dashboards, exports and jobs read this table. A good first proxy for damage and a bad last word on it.
- Blast radius - everything that breaks when this table is wrong, including the paths nobody documented. Builder session 7 builds the graph that answers this properly.
- Rota capacity - the number of tier 1 tables your named humans can actually carry. The hard ceiling on the whole plan.
Full coverage is not the goal and never was
10 min liveThere is a version of this practice that fails in a predictable way: somebody wins the budget, switches monitoring on estate-wide, and six weeks later the reported coverage number is excellent and the detection number has not moved. It fails because coverage and detection are not the same thing, and equal coverage actively works against detection.
LiveWhy equal coverage is worse than partial coverage4 min▶
Two separate costs, and the second one is the one that kills the practice.
- It is unaffordable in attention, even when it is affordable in money. Every monitored table needs a threshold that somebody set, a threshold that somebody re-tunes when the table changes shape, and a human who knows what to do when it fires. Multiply that by 340 and you have described a team you do not have. The monitors that nobody maintains do not sit still: they drift into noise, because tables change and guessed thresholds do not.
- It spends the false-page budget on tables nobody reads. A team tolerates a small number of false alarms a week before it stops treating the channel as real. That tolerance is a fixed, shared resource across the whole estate. Spend it on a staging table that three people have ever queried and it is gone by the time the payments table needs it. This is the mechanism behind every muted alert channel you have inherited: not too few monitors, too many on the wrong tables.
Which gives the operating principle for the rest of the session. You are not trying to watch everything. You are trying to spend a fixed and rather small amount of human attention where being wrong actually costs something.
LiveThe four questions that predict damage4 min▶
Tiering conversations go wrong when they are run on importance, because everybody's table is important and the loudest stakeholder wins. Run them on damage instead, and damage is answerable with four questions that anybody can answer about their own table in a minute.
- Does a decision or a payment depend on it? Money moving, prices changing, a supplier being paid, a shift being staffed. If being wrong here changes what somebody does with money, it is a candidate for the top tier regardless of how few readers it has.
- Does an external party see it? A customer, a partner, a regulator, an auditor. External visibility converts a data problem into a trust problem, and trust problems cost far more than the fix.
- How many downstream assets read it? Models, dashboards, exports, reverse-ETL jobs. This is the cheapest of the four to compute because your warehouse or catalogue can usually tell you, and it is a proxy rather than an answer: high reader count means wide blast radius, low reader count means nothing at all.
- How fast would anybody notice on their own? The honest one. A table feeding a dashboard that three people open every morning has a human monitor already. A table feeding a quarterly regulatory extract has nobody, and a defect there sits undisturbed for weeks.
Two of those four questions are about damage and two are about detection. Both halves matter: a table where the damage is large and somebody would notice in ten minutes anyway is a worse investment than a table where the damage is moderate and nobody would notice until the quarter closed.
Bellwether's most-read table was a customer dimension with 60 downstream readers, and it scored badly on the fourth question: it feeds every dashboard in the company, so a defect gets reported by a human within the hour. Their worst exposure was a supplier terms table with two readers, feeding a monthly payment run, where nobody would have noticed until money left the building.
Self-studyA small number of tables carries nearly all the risk4 min▶
The pattern is consistent enough to plan around and worth stating honestly rather than as a statistic. In most warehouses, a small minority of tables sits underneath almost all of the decisions, the money and the external reporting. The rest is intermediate models, staging copies, abandoned experiments and one-off extracts that somebody built for a project that ended.
The exact share varies by estate and anybody quoting you a precise percentage for your warehouse has not looked at it. What does not vary is the shape: the distribution of damage across tables is steep, not flat. That is the whole reason tiering works. If damage were evenly spread, equal coverage would be the right answer and this session would not exist.
The good news is the cost of finding out. This is a morning of work, not a project, and it does not need a catalogue purchase:
- Reader counts come from your transform project's dependency graph or from the warehouse's query history. One query, sorted descending.
- Money and external paths come from asking finance and whoever owns customer-facing reporting which tables they depend on. Two conversations, twenty minutes each, and they will name the same handful.
- The noticing question comes from the incident history you already have, even if it lives in a chat channel rather than a tracker. Which tables have ever generated a complaint, and how long did it take.
What takes a project is maintaining the list once it exists, which is why the approval rule in part 2 matters more than the first pass does.
Three tiers, three service levels
9 min liveThree tiers is the right number for most estates, because two cannot express "watched but not paged" and four produces a boundary nobody can define. What makes a tier real is not its name but its written service level: which signals, which hours, and how fast detection is promised to be.
| Tier | Signals watched | Response window | Detection target |
|---|---|---|---|
| Tier 1 · decisions, money, external eyes | All five: freshness, volume, uniqueness, schema, distribution. Thresholds learned from the table's own history | A named rota, in hours and out of hours | Minutes |
| Tier 2 · real work depends on it, nothing leaves the building | Freshness and volume only | Business hours, one shared queue, triaged the same morning | Hours |
| Tier 3 · everything else | A nightly heartbeat: did it load at all | No rota and no page. Reviewed quarterly | Days, accepted in writing |
Read the table by column, not by row. The signals column is the cheap one to change and the response window is the expensive one. Adding distribution monitoring to a tier 2 table costs a query. Promoting a tier 2 table to a named out-of-hours rota costs a person's evening, repeatedly, and that is the decision that needs a conversation.
LiveWrite the tier 3 promise down on purpose4 min▶
Every estate already has a tier 3. The difference between a good practice and a bad one is whether it was chosen or whether it happened. An accidental tier 3 is the set of tables nobody got round to, and it is indefensible in an incident review because the honest answer is "we did not think about it". A deliberate tier 3 is a decision with a name and a date on it, and it survives the review.
The wording matters, because the two versions below get different reactions in the same room.
The second version buys you three things. It tells stakeholders what to expect so they stop assuming a level of protection that does not exist. It makes promotion a normal request rather than an escalation. And when a tier 3 table does cause an incident, the conversation is about whether the tier was right, which is a productive conversation, rather than about who forgot, which is not.
LiveWho approves a tier change3 min▶
A tier list with no approval rule inflates. Every incident produces a request to promote the table involved, every request sounds reasonable in isolation, and within two quarters the top tier holds 80 tables and the rota is meaningless. The rule that prevents it is not strictness, it is arithmetic made visible.
- Promotion into tier 1 is capped by the rota, not by the merits. Decide the ceiling first, out loud: this rota can carry twelve tier 1 tables. After that, a promotion requires a demotion, and the person requesting it gets to argue about which table leaves. That conversation is where the real priorities surface.
- One named approver, not a committee. Whoever owns the rota approves tier changes, because they are the person who absorbs the cost. A committee approves everything.
- Requests are logged with the reason. Six months of promotion requests is the best evidence you will ever have for a headcount case, because it is a list of things the business said mattered, in its own words, with dates.
- Demotion is a normal event and needs its own habit. Nobody ever asks to be demoted, so it has to be scheduled: at each quarterly review, look for tier 1 tables that have not fired a real alert in two quarters and no longer feed anything important. Moving one down is not an admission of error.
LiveThe reverse-ETL and export problem4 min▶
This is the finding that reorders most tier lists, and it is why reader count is a proxy and not an answer. A table can look like the quietest thing in the warehouse - two readers, no dashboards, nobody has queried it interactively in months - and feed a job that pushes values into a CRM, a partner SFTP drop, a pricing file or a customer-facing portal. Downstream of that job is an external party, which means question two of the four is a yes, which means the table belongs a tier up.
These paths are hard to see for a structural reason. Reader counts are usually computed inside the warehouse, and a reverse-ETL job or a scheduled export is the point at which data leaves the warehouse. The graph you are looking at stops exactly where the risk starts.
Bellwether's delivery slot table had two readers and sat in tier 3. It also fed a nightly export that populated available slots in the customer app. When a schema change dropped a region column, the app showed no Saturday slots in one city for a day and a half. Nobody in the data team had a monitor on it, and the incident arrived as a support ticket queue rather than as an alert.
Self-studyCheap coverage for the long tail4 min▶
Tier 3 is not zero, and the difference between zero and nearly-zero is worth understanding before you sign the promise. A nightly heartbeat asks one question of every table in the estate: did anything load. It is one aggregate query per table, it costs almost nothing, and it catches the loudest failure class - a table that has silently stopped updating - across 300 tables for less attention than a single well-tuned tier 1 monitor.
- It reports, it does not page. The output is a daily list of tables that did not load, read by whoever is on triage with a coffee. No out-of-hours anything. A list is not an alert and does not spend the false-page budget.
- It is how tables get discovered, not just checked. The first run of a heartbeat across a whole estate typically finds tables that stopped loading months ago and nobody noticed. Those are candidates for deletion, which is a better outcome than monitoring them.
- It gives you the promotion signal. If a tier 3 table shows up on the daily list and somebody in the business complains the same day, that table has told you it is not tier 3. Two occurrences is enough evidence to promote it.
What tier 3 explicitly does not catch is a table that loads on time with wrong data in it. That is the sentence to say out loud when you present the tier list, because it is the assumption stakeholders make by default.
Tier your estate
★ 18 min · everyone buildsA spreadsheet with five columns is enough. Bring a list of your tables if you have one; if you do not, that is the first step and it takes one query. The output by the end of this is a first-pass tier list, a count of tier 1 tables, and an honest answer about whether your rota can carry that count.
List your tables, sorted by downstream reader count. Descending. Your transform project's dependency graph knows this, and so does your warehouse's query history if you do not have a graph. Do not clean the list up yet: the abandoned tables at the bottom are useful information and you will want them for the deletion conversation later.
Mark the ones a payment, a regulator or a customer sees. Go down the list and put a flag against every table where money moves, a filing depends on it, or an external party reads a value that came from it. This is the column that ignores the sort order, and it should. Expect it to flag things near the bottom of the list.
Ask which tables would be noticed within an hour if they were wrong. Not "should be" - would be, by a real person with a real habit. Tables with an audience of daily dashboard users already have human detection and can often sit a tier lower than their reader count suggests. Tables feeding monthly or quarterly processes have nobody, and that is where undetected defects live for weeks.
Chase every export and sync job back to its source table. The reverse-ETL pass. List every scheduled export, every CRM sync, every partner file drop and every application read, then write down which table each one reads. Promote what you find. On a first pass this usually moves two or three tables up a tier, and they are almost never the tables anybody expected.
Assign tiers. Tier 1 for damage plus nobody-would-notice. Tier 2 for real internal dependency. Tier 3 for the rest, including the ones you suspect should be deleted. Write one sentence of reason next to every tier 1 table, because that sentence is what you will be asked for in three months when somebody wants to add a fourth.
Count your tier 1 tables and check the rota against the count. The arithmetic to do in the room: how many people are on the rota, how many tables each can plausibly hold in their head, and what happens on the week when one of them is on leave. If the count exceeds the capacity, you do not have a tier 1 list, you have a wish. Cut it until it fits, and keep the cut list as the first page of your headcount case.
The number to walk out of the room with. Not the coverage percentage. The count of tier 1 tables next to the count of people who have agreed to answer a page about them. When those two numbers are visible on the same line, the conversation about what to monitor stops being about tooling and becomes a conversation about capacity, which is the conversation you actually need to have with whoever funds this.
Before session 6
30 min- Finish the reverse-ETL pass properly. Ask the application and integration teams what they read, rather than inferring it from the warehouse. The answer will contain at least one path you did not know about, and finding it is worth more than any threshold you will tune this quarter.
- Write the tier 3 promise in one paragraph and take it to whoever owns the risk. Their reaction tells you whether the tier list is real. If they will not accept it in writing, the tables in question are not tier 3 and your plan needs to change.
- Set the tier 1 ceiling out loud and write it next to the rota names. A number with names beside it is a commitment; a number on its own is a target nobody owns.
- Pick the three tier 3 tables you would delete. Deletion is the only intervention that removes risk permanently, and it is almost always available in an estate that has been running for a few years.
Three questions
Why is monitoring every table at the same service level worse than monitoring a chosen subset, even when the query cost is affordable?
Money scales and attention does not. False-page tolerance is one pool shared across the whole estate, so a noisy monitor on a staging table degrades detection on the payments table.
A table has two downstream readers, no dashboards, and feeds a nightly export into the customer app. What does the reader count tell you?
A high reader count means a wide blast radius. A low one means the graph you are looking at cannot see the path that matters. Chasing every export back to its source table is what finds these, and it moves two or three tables up on a typical first pass.
What is the difference between an accidental tier 3 and a deliberate one?
Both may run the same single heartbeat. What differs is defensibility: a written promise of days-to-detect, accepted by a named owner, turns an incident review into a tiering decision rather than a search for who forgot.