learn-web3-with-phoebe / Leader session 1 of 6
Learn Web3 with Phoebe · Leader session 1 of 6

The data is public now

A data team runs on four quiet assumptions: the dataset is ours, we can fix a wrong row, we can join it to a person, and nobody outside is working to move our numbers. Larkfield's product issues rewards on a public ledger, and all four of those stopped being true on the same day. Tonight is the four couplings, drawn as a mechanism rather than a feature list, and an honest split between the ones that cost Larkfield something and the one that gives it something back.

🟠 Leader track Anyone asked to build on a public ledger Anyone who signs off the user number 45 min
0-3 · Welcome 3-18 · Four assumptions 18-28 · Larkfield 28-45 · Build-along and Q&A
Part 0

Larkfield, on the morning the board asks for a user number

Larkfield ships a product that issues rewards on a public ledger. The engineering side of that is settled and is not tonight's subject; how a ledger is built, agreed and kept tamper evident belongs to learn-blockchain-with-phoebe, which is the prerequisite here. Tonight starts one step later, in the warehouse, with a data team that has been asked a plain question: how many people use this? Every instinct that team has for answering a question like that was formed on datasets with four properties that its current dataset does not have.

Live = presented in the 45 minutes Self-study = the full depth, after class 🔍 Every diagram zooms

★ What you walk out with tonight. The four couplings a data team relies on without noticing, named out loud, and the point in Larkfield's mechanism where each one comes apart. A clear-eyed view of which of the four is a tax and which is a genuine improvement, held apart rather than blended into a position. And the one number Larkfield is about to report, staring at you unanswered, so that session 2 has something to measure rather than something to describe.

LiveFour assumptions nobody writes down4 min▶

Ask a data leader what their team depends on and you get tooling, headcount and a warehouse. The four things that actually hold the work together are further down and rarely said: we own this dataset, we can correct it, we can attach a person to a row, and the only people optimising against our metrics are us.

None of those is a technology choice. They are properties of the arrangement, and they are so reliable that the entire craft is built on top of them without a mention. A public ledger removes all four in one move, which is why the experience of working on one is disorienting rather than merely unfamiliar. It is not that the tools are different. It is that four load-bearing assumptions are gone and the tools were built assuming them.

Real world

Larkfield's team is competent and well equipped. Their first month on the public data went badly not because they lacked skill but because every recovery move they reached for assumed at least one of the four. They tried to correct a wrong row. They tried to join to a customer table. They tried to keep a metric definition quiet until it stabilised. Each of those is the right instinct somewhere else.

Self-studyThe words that keep coming back4 min▶
  • Address. The only identifier a row carries. It is not a person and it is not an account you can look up. Part 2 tonight, measured in session 2.
  • Entity. The real party behind one or more addresses. The gap between an address count and an entity count is session 2's whole subject.
  • Append only. New records can be added. Existing records cannot be altered. Session 4.
  • Adversarial data. A dataset where some rows exist because somebody wanted your metric to read differently. Session 3.
  • Pseudonymous. Persistent identifiers with no attached identity. Not the same as anonymous, and the difference matters more than it sounds.
  • Provenance. The record of where a figure came from and what produced it. The one place a public ledger hands a data team something better than usual. Session 5.
  • Record linkage. Joining records that describe the same party through fuzzy attributes and probability. That craft lives in learn-entity-resolution-with-phoebe; the evidence here is structural instead, so the machinery differs even where the problem rhymes.
  • Scoping. What to ask before agreeing to build on any of this. Session 6.
Part 1 · covers what changes

Four couplings, and all four come apart at once

15 min live

Each of the four is easiest to see as a mechanism rather than a statement. On the usual arrangement there is a wall with one set of readers inside it, an edit path that rewrites a row in place, a key that joins a row to a person, and a metric that only the people who own it can reach. Take the wall away and every one of those parts behaves differently, including the three that were never touched.

The same four parts, drawn twice. Only the wall was removed, and all four behave differently. NORMALLY, ON A DATASET YOU RUN 1 · OWNERSHIP One dataset, one wall, and one set of readers: yours. 2 · CORRECTION row 41, the wrong value UPDATE rewrites it in place A wrong row gets fixed and the table still has one row. 3 · IDENTITY rows people joined on a key you control A row can be turned into a person whenever you need it. 4 · THE METRIC rows metric one direction only Nobody outside is trying to move the number you report. WHEN THE LEDGER IS PUBLIC 1 · OWNERSHIP The same rows, read by you, your competitor and anyone. 2 · CORRECTION UPDATE row 41, still wrong row 118, the fix The wrong row stays. A new row is appended beside it. 3 · IDENTITY rows ? no key, and none is coming An address is the only name that the data carries at all. 4 · THE METRIC rows metric The reader can add rows and move the number themselves. All four change at the same time, which is why none of them can be handled on its own. Larkfield can work around any single one of these. It cannot work around all four, because every workaround it reaches for assumes at least one of the other three still holds. Sessions 2, 3 and 4 take three of them apart with numbers.
🔍 Click to zoom - nothing in the bottom row was redesigned. The wall came off and the other three parts changed behaviour on their own.
LiveYou do not own it, and neither does anyone else4 min▶

The first coupling is the one people expect to hurt most and it is the most double-edged of the four. Larkfield's competitor can query exactly the rows Larkfield queries, at the same moment, with the same completeness. A data moat built on exclusive access to those rows does not exist and cannot be built, because the rows were never Larkfield's to withhold.

That removes an advantage. It also removes an excuse, and the second half is the part that gets left out. When the underlying rows are public, "our numbers say something different" stops being the end of a conversation. Anyone can go and look. A team that has been quietly resting on the unverifiability of its own reporting finds that support gone, and a team that has been reporting carefully finds that its care is now visible to people who could not previously check.

Neither of those is a small change to how a data function is run. The first shifts where the advantage has to come from: not the rows, but what is built on top of them, which is a harder and more honest place to compete. The second shifts what a reported figure is: a claim that can be audited by a stranger rather than a claim that has to be taken.

LiveYou cannot correct it3 min▶

Appending a fix is possible. Changing a record is not. Read that twice, because the first half makes the second half sound survivable and it is only survivable if every consumer of the data knows the difference.

The usual restatement machinery assumes a rewrite somewhere. A wrong figure is corrected, the corrected figure is what the table now says, and the history of the error lives in a changelog that nobody reads. Here the error is a row, it stays a row, and the fix is a second row. Every reader who does not know to look for the second row is reading the first one and getting the wrong answer, permanently and with no warning.

The general craft of append-only loading and late-arriving data is handled in the data engineering courses. Session 4 deals with the twist that those do not have to handle: the upstream can withdraw history that has already been loaded and reported.

LiveIdentity is an address, not a person3 min▶

Every row carries an address. An address is persistent, so it behaves like an identifier, which is exactly the trap. It looks like the customer id column that every analyst has used since they started, and it will pass every schema check and every join that column would pass. It just does not mean what that column means.

One person can hold four addresses and often does, for reasons that have nothing to do with concealment. Four addresses can also be one party holding sixty. Nothing in the data distinguishes those cases, and nothing outside the data can be joined in to settle them, because the key that would do the joining does not exist and is not being withheld from you by anyone you could ask.

Session 2 measures what this does to Larkfield's headcount, on generated data where the truth is known and the answer can be checked rather than asserted.

Self-studyWhere serious people disagree5 min▶

One camp holds that a dataset you cannot correct has no business being the system of record for anything a regulator, a customer or a court might ask about. Their argument is not squeamishness: it is that every governance regime in existence assumes a correction path, so a dataset without one cannot be brought into compliance by effort, only by building a second, private, correctable store beside it and treating the public one as an input. On this view the right answer is usually to keep the ledger out of the reporting line entirely.

The other camp holds that the correction path was always the problem. A dataset that can be quietly rewritten has no provenance worth the name, and the reason nobody noticed is that the rewriting was done by people acting in good faith. An append-only record forces every correction to be visible as a correction, which is the first time most data functions will have had genuine, externally checkable lineage. On this view the discomfort is the machinery working, and the teams complaining loudest are the ones whose previous numbers would not have survived it.

Both positions are held by people who have shipped regulated data products. They point at different first moves: one starts by drawing a boundary and keeping the ledger outside it, the other starts by rebuilding the reporting layer so that a superseded row is a first-class concept. Which one the person across the table holds tells you more about how the project will go than any technical answer they give you.

Part 2 · covers Larkfield

Larkfield, and the sentence it has to put in a report

10 min live

Larkfield's mechanism is four steps long and there is nothing exotic in any of them. A reward is issued, it lands at an address, the row is written where anyone can read it and cannot be changed, and a number is reported. Each step is ordinary. Each step is also where exactly one of the four couplings comes apart, and they come apart in that order.

From a reward issued to a number in a board pack, and what comes apart at each step Anyone can read these rows A competitor, an auditor, anyone. 1 · A REWARD IS ISSUED Larkfield sends a reward to an address. The address is the whole of the recipient. 2 · THE LEDGER RECORDS IT The row is written where anyone reads it, with no request and no account. 3 · THE ROW IS PERMANENT It can be added to. It cannot be edited and it cannot be withdrawn. 4 · LARKFIELD REPORTS The board is told how many people used the product in the last month. WHAT BREAKS HERE Identity is an address No person sits on the row, and no key gets you one. WHAT BREAKS HERE You do not own it Your competitor queries the same rows that you query. WHAT BREAKS HERE You cannot correct it Appending a fix is possible. Changing a record is not. WHAT BREAKS HERE The metric is reachable Whoever the number is about can also go and move it. The number is worth something to move, and moving it costs one new address. Nothing in the mechanism separates a person who wants a reward from a party who wants many. Three of these four are a tax on the data team. One of them is the improvement. Not owning the rows removes a moat, and the same property removes an excuse: a figure taken from here can be checked by a stranger, which almost no reported figure anywhere can. Sessions 2, 3 and 4 price the other three. Session 5 counts the credit side properly.
🔍 Click to zoom - the amber loop is the part that has no equivalent in a normal pipeline. The output of the report is an input to the data.
Live The generator behind the whole Larkfield estate, running in this page. Everything below is computed here.

...

...
LiveWhy the last row of that table is the honest one3 min▶

Change the month and watch the address count move around a thousand. That figure is solid: it is a count of distinct things in the data and no judgement went into it. Then look at the row underneath, which is the row the board actually asked about, and notice that the correct entry is not a worse number. It is a statement that the data does not contain the answer.

A data team's reflex at this point is to go and find the answer, and there is a standard method for doing so. Session 2 runs it on this same data, where the truth is known, and reports how close it gets. The result is not what most people expect, in a direction most people do not guess.

LiveThe metric and the incentive in the same place3 min▶

In an ordinary pipeline the people who can move a metric and the people the metric is about are different sets, mostly. Here they overlap completely. Larkfield issues a reward for activity; activity is what the metric counts; creating activity costs one new address. There is no separating layer, because the thing being measured and the thing being paid for are the same event, written to the same row.

The consequence for a data function is that data quality stops being a function of the pipeline and becomes a function of what the product pays for. A metric that nobody has an interest in moving can be fixed by better engineering. A metric that somebody is being paid to move cannot, and treating it as an engineering problem produces a cleaner pipeline reporting the same wrong number. Session 3 is where that gets measured.

Self-studyWhat is genuinely better here4 min▶

Three of the four couplings cost Larkfield something, and it would be easy to leave tonight with the impression that the whole arrangement is a downgrade. That would be the wrong conclusion and it would also be a useless one, because Larkfield is not going to stop shipping the product.

The credit side is real and it is mostly provenance. A figure derived from these rows can be recomputed by anyone who doubts it, from the same inputs, without asking Larkfield for access. Two parties who disagree about a number can settle the disagreement by running the derivation rather than by escalating. A regulator can check a claim without an audit engagement. None of those is available on a private warehouse at any price, because the bottleneck there is not the quality of the data, it is that the other party has to be granted access to it and then has to trust that what they were granted is complete.

Whether that credit outweighs the three costs depends entirely on what is being built, which is why it is session 5 and session 6 rather than a slogan. Session 5 takes the credit side seriously enough to say where it fails too.

Part 3 · build-along

Take the four couplings apart on your own data

17 min hands on

No code. Six steps on a dataset your own team owns today, said out loud in the room. The aim is to feel which of the four you are leaning on hardest, because that is the one that will hurt first.

Name the four from memory

Without looking up: ownership, correction, identity, and the metric. Say what each one means in one sentence. The one most people cannot state is the fourth, which is also the one with no engineering fix.

Pick a dataset you report from weekly

Something real, with a number that goes to someone senior. Write down who else can read the underlying rows today. If the answer is nobody outside, say plainly what that is worth to you and what it is covering up.

Count last quarter's corrections

How many times did somebody change a row rather than add one? Then ask whether any downstream reader would have been able to tell. That number is the size of your dependence on coupling two.

Find the join that makes a row a person

Trace the key from the row to the human being. Count the hops. Then imagine the key is deleted and nobody has it, including your vendors, and say what your weekly number becomes.

Ask who is paid to move your number

Anyone at all: a team with a bonus on it, a supplier, a customer, an affiliate. Write the list. If it is empty, say whether that is because nobody has the incentive or because nobody has the access.

Commit to a guess about Larkfield

Larkfield sees about a thousand addresses in a month. Write down how many real people you think are behind them, as a single number, on paper where you can see it. Do not hedge it and do not qualify it. Session 2 checks it against the truth.

The habit to keep. When someone hands you a number taken from a public ledger, ask which of the four they were relying on when they computed it. Not whether they know the chain mechanics, which they usually do, but whether their method quietly assumed they owned the rows, could correct them, could reach a person, or had nobody working against them. The method is almost never wrong about the arithmetic. It is wrong about which of the four it still had.

Check yourself

Three questions

Larkfield's competitor can read every row Larkfield reads. What is the second consequence of that, the one teams usually leave out?

Losing exclusivity removes an advantage and it also removes a defence. A figure that cannot be checked by an outsider is easy to defend and hard to trust. Once the inputs are public, care in the derivation becomes visible, and so does its absence.

A new analyst joins Larkfield and joins the reward table to the address column, treating it as a customer id. Why is that a problem even though every query runs and every schema check passes?

The failure is silent, which is what makes it expensive. The column behaves like a key in every mechanical sense. It simply is not one entity per value, and there is no external table to correct that, because the key that would do it does not exist anywhere.

Larkfield's pipeline is rebuilt, tested and instrumented to a very high standard. Which of the four couplings does that work not help with at all?

Engineering fixes the transport. It does not touch the incentive that created the rows. A cleaner pipeline reporting an inflated count reports it faster, more reliably and with better monitoring, and the number is exactly as wrong as it was.

Before session 2

Homework

Twenty minutes, on a number your own team reports and on the guess you just wrote down.

Write your four couplings down

For one reported number: who else can read the rows, how corrections are made, how a row becomes a person, and who benefits from the number moving. One line each. Mark the ones you had never articulated before tonight.

Bring the guess you committed to

Your single number for how many real people sit behind Larkfield's thousand addresses, unhedged, on paper. Session 2 runs the standard method on the same data and puts both against a truth the generator knows.

Covered tonight

What this session covers

✓The four couplingsOwnership, correction, identity and the metric, drawn as a mechanism rather than listed as features.
✓Shared access and what it costsA moat that cannot be built, and an excuse that can no longer be used.
✓Append against correctWhy a fix is a second row, and why every reader who misses it gets the old answer forever.
✓Larkfield's mechanism end to endReward issued, address credited, row written, number reported, and the loop from the number back to the rows.
✓The credit side, honestlyProvenance a stranger can recompute, which no private warehouse offers at any price.
◐How far off the address count isAsked tonight, with your guess on paper. Session 2 measures it on data where the truth is known.
◐Metrics people are paid to moveNamed tonight as the fourth coupling. Session 3 puts numbers on it.
◐Immutability against restatement and erasureSketched tonight. Session 4 takes the correction path apart properly.
○Hashes, blocks, consensus and the chain itselfThe prerequisite is learn-blockchain-with-phoebe and it is assumed rather than repeated.
○Probabilistic record linkageFuzzy matching, blocking and scoring live in learn-entity-resolution-with-phoebe.
○Anything to do with price, markets or holdingsOut of scope by design, and nothing here is advice of any kind.
Take this with you

Cheat sheet

The one sentence. Four assumptions hold a data function together, and a public ledger removes all four at the same time.
Coupling 1, ownership. You do not own it and neither does anyone else. No moat, and no excuse either.
Coupling 2, correction. Appending a fix is possible. Changing a record is not. The wrong row stays readable forever.
Coupling 3, identity. An address is a persistent identifier that is not a person, and no key exists to make it one.
Coupling 4, the metric. The number and the incentive to move it sit at the same address. No pipeline work touches this.
The credit side. Provenance a stranger can recompute without being granted access, which a private warehouse cannot offer.
The test for a method. Ask which of the four it quietly assumed. The arithmetic is usually right; the assumption usually is not.
The open question. About a thousand addresses in a month. How many people? Commit to a number before session 2.