learn-data-modeling-with-phoebe / Leader session 1 of 6
Learn Data Modeling with Phoebe · Leader track · Session 1 of 6

Why the schema decides everything

Every recurring argument about a number traces back to a modeling choice somebody made in a hurry, usually years earlier, usually undocumented. This session shows you where those choices live, who owns each one, why they outlive every tool you will ever buy, and the six-word question that ends most of those arguments inside a minute. No code, no query, no DDL to read.

🟢 Leader track C-level · heads of data · stakeholders No code to write 45 min ▶ Leaders start here
0-3 · Welcome 3-15 · Three artifacts, three owners 15-26 · Why the model outlives the tools 26-40 · Group exercise: the six-word audit 40-45 · Q&A
Part 0

How this track works

Six sessions, 45 minutes each, and nothing to install. This is the track for the people who will never write SQL but who approve the roadmap, referee the arguments about revenue, and sign off the rework when a model turns out to be wrong. You will not read DDL and you will not run a query. You will leave each session with a small number of questions that change what your data team tells you.

The running illustration is Bazaar, a multi-merchant ecommerce marketplace: 60 shoppers, 12 merchants, 60 products, 985 orders, 1,434 order lines, 2,229 carts and 1,060 payment attempts across 2026-04-01 to 2026-06-29, in SGD. It is the same marketplace the builder track designs table by table, so if you read both tracks you are looking at one case from two heights. Every number quoted on this page comes from that dataset, which the course generates and ships; they are illustrations from a teaching case, not industry benchmarks.

Live - discussed in session Self-study - read after class ◆ Discussion exercise - run it in your own meeting Sources covered
★ What you walk out with today One sentence you can say in any meeting to find out whether two people are describing the same number ("one row is one what?"), a clear picture of which of the three modeling artifacts you have actually been shown for each project you funded, and the reason a warehouse migration will not fix a disagreement that lives in the grain.
Part 1 · covers Fowler / Evans on modeling, Inmon on who owns change

Three artifacts, three owners 12 min live

A schema is a business decision wearing technical clothes. The clothes are the reason it never reaches your desk as a business decision: by the time anyone shows you a diagram, the choices that matter have already been made and translated into a language you are not expected to argue with.

There are three artifacts, not one. The conceptual model says what the business has and how those things relate, in the words the business already uses. The logical model adds attributes, keys and grain. The physical model is the DDL for one specific engine: types, constraints, indexes. Each one has a different natural owner, and each one has a different chance of ever being shown to you.

One decision, written down three times, by three different people Conceptual what the business has Logical attributes, keys, grain Physical types, indexes, one engine Owner: the business merchandising, finance, ops Written as: nouns, verbs "a cart holds products" Shown to leaders: rarely Owner: the data team analytics engineers, DE Written as: tables, keys "one row is one order line" Shown to leaders: sometimes Owner: the engine whoever runs the platform Written as: DDL, indexes unit_price DECIMAL(12,2) Shown to leaders: always Leaders are shown the third column, where every choice already looks technical and settled. The choices that get argued about for years were made in the first two, often in one afternoon.
🔍 Click to zoom - three artifacts, three owners, and three very different chances of reaching your desk
The artifactWhat it saysWho owns itWhat a leader usually sees
Conceptualthe things Bazaar has and how they relate: shopper, merchant, product, cart, order, payment attemptthe business - merchandising, finance, opsalmost never, because in most companies it was never written down at all
Logicalattributes, keys and grain: one row of the order-line table is one product on one orderthe data team - analytics engineers and data engineerssometimes, as a diagram in an appendix that nobody reads out loud
Physicaltypes, constraints, indexes, the DDL for one particular enginewhoever operates the platformalways, because it is the only one with a screenshot and a cost line
LiveWhat goes wrong when you only ever see the third one5 min

If the only artifact that reaches you is the physical one, three things happen, and none of them look like your problem at the time.

  • You approve a schema shaped like an export. When nobody writes down the business's own version, the tables end up mirroring whatever file arrived first: a payment provider's CSV, a spreadsheet tab, an app's internal event log. That shape is an accident of who emailed what, and it becomes the shape of every number you are given for the next five years.
  • Disagreements become invisible. Two people can agree completely on DECIMAL(12,2) and disagree completely on what a sale is. The physical model has no vocabulary for that argument, so the argument gets postponed to a meeting where it looks like a reporting bug.
  • Ownership drifts to the wrong place. The conceptual model is the business's to own, and when the business does not own it the data team invents it by inference. They are guessing at your intent, kindly and quietly, in a language you never see. Inmon's argument about the normalized core is really an argument about this: who is allowed to change the meaning of a thing. Session a5 turns that into named owners and a contract.

The fix is not that you learn DDL. It is that you insist on being shown the first artifact, in the business's own words, before the third one exists. Two paragraphs and a whiteboard photo are enough. If nobody can produce them, that is the finding.

LiveThe choice is business judgement, not engineering taste4 min

Take one real decision from Bazaar and watch it change hands. A cart is where a shopper puts things they might buy. Does the cart deserve to be a thing the company keeps, or is it screen state that gets thrown away at checkout?

  • Engineering has no stake in the answer. Either version ships. Keeping carts costs a little storage; throwing them away costs nothing today.
  • You have an enormous stake in it. Bazaar's carts convert at 44.19%. Keep the carts and you can tell the difference between "fewer people wanted to buy" and "checkout broke". Throw them away and both look identical in the revenue line, which means the next bad month sends you to argue with the wrong team.
  • The decision looks technical when it is written down. "Do we persist cart state?" is a sprint-planning sentence. "Do we want to be able to tell demand collapse apart from checkout failure?" is a board sentence. They are the same decision.
The translation habit Whenever a modeling question arrives in engineering language, ask what business question becomes unanswerable if the answer is no. If the honest reply is "none", let the team decide it and move on. If the reply names a question you ask every quarter, it is your decision and you should make it out loud.
Self-studyOne word, one meaning: why naming is part of the model3 min read

Evans and Fowler make an argument that sounds like style advice and is not: the words in the model must be the words the business says out loud, and each concept gets exactly one of them. Bazaar's people say merchant. So nothing anywhere is allowed to say vendor, seller, supplier or partner.

The cost of breaking that rule is not aesthetic. Every synonym is a place where two teams can build two slightly different populations and both be sure they are right. "Active sellers" and "merchants with sales" sound like the same group in a meeting and are almost never the same group in a query. You cannot police this from a dashboard; it has to be a standard, with an owner, which is what session a5 builds.

Domain ownership is the other half of the same idea. Dehghani's Data Mesh argues that the team closest to a business domain should own its model and publish it as a product, precisely because meaning degrades every time it is translated by someone further away. You do not need to buy a mesh to take the point: the further your conceptual model travels from the people who live the process, the more of it arrives as guesswork.

Part 2 · covers Inmon on the durable core, Kimball on grain as the fixed point

The model outlives every tool 11 min live

Here is the pattern nobody puts on a roadmap. Over seven years a company replaces its warehouse, replaces its BI vendor, and replaces its pipeline framework. Each of those is a funded programme with a business case, a migration plan and a celebration. Through all three, the grain of the sales table stays exactly as it was decided in the first month, by whoever wrote the first load script, because no migration ever forces anyone to revisit it.

What changed, and what did not, in seven years 2019 2021 2023 2025 2026 Warehouse on-prem SQL Server Redshift Snowflake BI and reporting Excel and Access Tableau Power BI Pipeline framework hand-written cron jobs Airflow dbt plus Airflow The data model never on an agenda Grain of the sales table: one row is one order line Decided once, in the first month. Never revisited, because nothing forced it. Three vendor decisions got revisited, budgeted and celebrated. The fourth decision was never on an agenda. It is the one every number on every dashboard still depends on.
🔍 Click to zoom - tools churn on a funded cycle; the model persists by default
LiveWhy migrations carry the mistake across4 min

A migration is judged on fidelity. The test everybody agrees on before it starts is "the new system returns the same numbers as the old one". That test is exactly the mechanism that preserves a bad model: if the old warehouse counted order lines and called them orders, then a migration that corrects the grain will fail its own acceptance criteria on day one.

  • Fidelity beats correctness in every migration plan. Nobody wants to explain a 47% change in the June order count during a cutover, so the wrong definition gets faithfully reproduced and inherits fresh credibility from a new logo.
  • The tools get better; the meaning does not. A semantic layer will happily serve a wrong definition to more people faster, with better caching. Session a4 covers what tooling genuinely buys you here, and what it cannot buy.
  • The one decision with no natural review point is the one worth reviewing. Contracts get renewed, licences get re-tendered, frameworks get deprecated. Grain has no renewal date. If you do not put one in the calendar, there is not one.
Self-studyThe two questions that separate tool from model3 min read

When a proposal arrives, it is usually a mix of tool change and model change, presented as one thing. Two questions pull them apart:

  • "If we did nothing about the tool, would this problem still exist?" If yes, you have a model problem, and buying the tool will move the cost rather than remove it.
  • "If we replaced this platform next year, which of these decisions would we have to make again?" The ones you would have to make again are tool decisions. The ones that would just carry over are model decisions, and they deserve more of your attention than they are getting, not less.

This is not an argument against tooling. Bazaar's builder track ships real DDL and real transformations, and the platform matters. It is an argument about attention: the tool decision arrives with a vendor, a demo and a deadline, and the model decision arrives with nobody.

Part 3 · covers Kimball on grain, touched only

The six-word test 6 min live

You do not need to read a schema to find the fault line in it. You need one question, and it fits in six words: "one row is one what?" Ask it about the table behind any number and one of three things happens. Someone answers in one clean sentence, and the number is probably safe. Two people answer differently, and you have found the disagreement in about ten seconds. Or nobody answers, and you have found something worse.

"One row is one what?" six words, and the meeting stops guessing orders one row is one order header 985 rows order_items one row is one product line on one order 1,434 rows transactions one row is one payment attempt 1,060 rows carts one row is one cart, converted or not 2,229 rows Same marketplace, same 90 days, four honest counts. None of them is "sales" until somebody writes down which one is. Bazaar's own figures, from the dataset this course ships. Ask the question about your own tables and watch the room pause.
🔍 Click to zoom - four counts of the same 90 days, all correct, all different
LiveThe two questions to ask about any new dashboard4 min

A dashboard lands in your inbox with a nice headline number. You have about ninety seconds of attention and no ability to inspect the query. Spend it on two questions, in this order.

  • "What is one row of the table behind this?" This tests whether the number has a definition or a vibe. In Bazaar, if the answer to "how many orders in June" is 481, somebody counted order lines; the answer at order grain is 327. That is a 47% overstatement produced without a single mistake in the SQL, and it is invisible on the tile.
  • "Who may change this table, and who finds out when they do?" This tests whether the number has an owner. A table anyone may change is a number nobody can promise. Note the second half of the question: an owner who cannot detect a change is not an owner, they are a name in a wiki.

Those two questions cover the two ways dashboards fail leaders: the number never meant what you thought, or the number quietly stopped meaning it last Tuesday. Neither is a BI problem. Both are modeling problems.

LiveWhat a good answer sounds like, and what an evasion sounds like3 min

A good answer is one sentence, has no "and" in the middle, and mentions a single thing. "One row is one payment attempt." Done.

  • "One row is one order and its payment" is two things wearing one row. In Bazaar, gluing the sales and payment facts together reports 121,003 SGD instead of the settled 111,906 SGD, because orders that needed a retry get counted twice. That is 9,097 SGD of revenue that does not exist, from a join that looks completely reasonable in a query.
  • "It depends on the filter" means the grain is unstable, which means every comparison across time is suspect.
  • "I would have to check" is a perfectly honest answer and a useful finding: the definition is not published anywhere a human can read it. That is the gap session a5 closes with a contract, and the gap session a6 shows is fatal for anything automated.
Do not stop at the first answer Ask the same six words of the second person in the room. The failure you are hunting is not ignorance, it is two confident and incompatible answers. You will only find it by asking twice.
Group exercise · no code

The six-word audit ◆ 14 min · everyone talks

This is the whole session made portable. It takes fourteen minutes here and about ten minutes in your own next team meeting, and it needs nothing but the dashboards you already have open.

Name three numbers your leadership team looked at in the last month. Not three dashboards, three specific numbers: the revenue figure in the monthly pack, the conversion rate in the growth review, the one metric in your own objectives.

Ask the six words for each one: "one row is one what?" Write down the answer verbatim, including the hesitations. Then ask a second person in the room the same question about the same number.

Ask who may change it and who would find out. If the answer is a team rather than a person, or a person who has left, mark it.

Sort the three into one clean answer, two different answers, or no answer. You now have a one-page finding that is more actionable than most data audits, and you produced it without opening a query editor.

LiveExercise 1 · Run the audit on your own numbers8 min · run this in your next team meeting

The prompt, word for word: "Before we discuss the number, I want to understand the row. One row of the table behind this figure is one what? And who is allowed to change that table?"

What a good answer sounds like: one sentence, one noun, no conjunction. "One row is one settled order." Then, without being pushed: "Finance owns the definition, the analytics engineering team owns the table, and it is in the metric doc." A good answer often comes with a caveat volunteered rather than extracted: "note that refunds are handled at the payment grain, not here". Volunteered caveats are the strongest signal you will get that someone has actually thought about the grain.

The failure mode to listen for: the confident restatement. You ask what one row is and you get the metric's name back in a longer sentence ("one row is one revenue record for the period"). That is not a grain, it is a synonym, and it is the single most common way this question gets deflected without anyone intending to deflect. The second failure mode is a room where two people answer differently and then both say "well, same thing really". It is not the same thing; in Bazaar the same "same thing really" is the difference between an average order value of 116.93 and 80.68, a 31% understatement, and both of those numbers came off the same dataset.

LiveExercise 2 · Which artifact were you shown?6 min

The prompt: "Take the last data project you personally approved. Which of the three artifacts did you actually see: the business's own model in business words, the logical model with grain and keys, or the physical schema? If you only saw the third, who wrote the first one down, and where is it?"

What a good answer sounds like: someone can point at an artifact - even a whiteboard photo, a one-page list of entities, a paragraph in a project brief - and name the business person who signed it off. The version of this answer that should reassure you most is unglamorous: "we spent the first two hours listing the things we have and arguing about what a merchant is, and here are those notes".

The failure mode to listen for: "the ERD is the model". An ERD is a picture of the second and third artifacts. It cannot tell you whether the business agreed that a cart is a thing worth keeping, because it only shows the tables that survived that conversation. Also listen for "the model is in the code" or "dbt is the source of truth". Those statements are true about implementation and irrelevant to the question of who decided what a sale means.

Real world

The two-year argument that was a one-afternoon decision. A marketplace spent two years with finance and growth reporting different revenue every month. Finance was right about the total and growth was right about the trend, and both sides gradually built their own pipeline to defend their own number. The root cause, found eventually, was a load script written on day nine of the company's life: it wrote one row per order line into a table someone named sales. Nothing after that was wrong. Every dashboard, every export and every board slide correctly reported the wrong grain, through two warehouse migrations and a BI replacement, for eight years. The person who wrote the script had left before the first argument happened, and had no idea they were making a decision about anything other than a script.

Take this with you

Questions to ask your data team use them this week

Six questions. None of them requires you to understand the answer's implementation, and each one is hard to answer vaguely without the vagueness being obvious.

Ask them in this order Grain first, ownership second, blast radius third. Grain tells you whether the number means anything; ownership tells you whether it will still mean it next month; blast radius tells you what a fix costs. Asking about cost first is how a conversation about meaning turns into a conversation about budget, and stops.
Homework

Try it yourself - this week ◐ 20-30 min total, all of it conversation

Source material

Sources covered

The leader track teaches the judgement half of the standard modeling literature: the decisions and their owners, without the build. The full source map, including what is deliberately out of scope for the whole course, is in materials/official-course-map.md. This page covers:

Fowler (PoEAA) and Evans (DDD) - conceptual, logical and physical as three distinct artifacts; ubiquitous languageParts 1 and 3 · the ladder, the owners, and one word per concept. The naming standard is session a5
Kimball & Ross, The Data Warehouse Toolkit - grain, one meaning per numberPart 3 · the six-word test only. The workshop that agrees a definition is a3; the build is builder b5-b7
Inmon, Building the Data Warehouse - who owns changePart 1 · owners of each artifact. The normalized-core argument itself is builder b5
Dehghani, Data Mesh - domain ownership, data as a productPart 1 · named as the reason meaning degrades at distance. Contracts and ownership are session a5
Check yourself

Three questions before you go 🎯 ◐ 90 seconds

1 · A new dashboard arrives with a headline revenue number. You have ninety seconds. Which two questions do you ask?

Grain tells you whether the number means what you think; ownership tells you whether it will still mean that next month. Tooling and refresh are real operational questions and neither of them can save a number whose definition was never written down.

2 · Two teams have disagreed about revenue for a year. You are replacing the warehouse next quarter. What is the honest expectation?

Migrations are accepted when the new system returns the same numbers as the old one. That acceptance test is precisely what carries a wrong grain across, with fresh credibility attached to a new logo. Fixing meaning has to be its own decision, with its own approval.

3 · For every data project this year, the only artifact you were shown was the physical schema. What is the real risk?

The physical model faithfully implements whatever the logical model said, and the logical model faithfully implements whatever the conceptual model said - or, if nobody wrote one, whatever shape the first file happened to have. Performance is fixable later. A schema shaped like an accident is not.

Leader session 1 cheat sheet · pin this

The six words"One row is one what?" Ask it about any number, then ask a second person the same thing.
Three artifactsConceptual (the business owns it), logical (the data team owns it), physical (the platform owns it).
The asymmetryYou are always shown the third and almost never the first. The arguments come from the first.
Two dashboard questionsWhat is one row, and who may change this table. Ninety seconds, both answerable without SQL.
Models outlive toolsWarehouse, BI vendor and pipeline framework all get replaced. The grain of the sales table does not.
Why migrations preserve it"Same numbers as before" is the acceptance test, so a wrong grain passes and gains credibility.
Bazaar's four counts985 orders, 1,434 order lines, 1,060 payment attempts, 2,229 carts. All correct, all different.
Nexta2 prices what a bad model bills you, and when to fix, ringfence or live with it.