learn-bayesian-with-phoebe / Leader session 6 of 6
Learn Bayesian with Phoebe · Leader session 6 of 6

Commissioning a Bayesian answer

Five sessions ago Northgate's number was 0.110 with an interval from 0.068 to 0.159, and the outlet was flagged for closure. Nothing in that report was false. The prior was a hundred pseudo-observations from the chain-wide history, the interval was 89 percent equal-tailed, and the truth, 0.192, was outside it. What the report did not say was any of that. It said "0.110, likely between 0.07 and 0.16", and the people who read it had no way to argue with a belief they could not see. Tonight is about the brief: the four lines you require in writing before the analysis starts, so that the prior is a decision somebody made rather than a default nobody noticed, and so that when the number comes back you can tell a careful answer from a stale one.

🔴 Hardest Whoever signs off a number from small data Product, finance and analytics leads 45 min
0-3 · Welcome 3-22 · The four lines of a brief 22-40 · Build-along: write yours 40-45 · Q&A
Part 0

What a brief is for

A Bayesian answer has moving parts a point estimate does not: a belief going in, a convention for cutting the interval, a rule for turning a probability into an action, and a check that the model could have produced data like the data. Each one is a choice. Left unwritten, each one gets made anyway, by a default in the tooling or a habit in the analyst, and the reader inherits a decision nobody took. The brief is where the choices are made on purpose, before the data arrive, in words a non-specialist can hold someone to.

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

★ What you walk out with tonight. A four-line brief you can put in front of any analyst before they open a notebook: the prior as a pseudo-count with a source, the interval kind and level, the decision rule, the check. The Northgate record that justifies every line, where the sensible prior missed at 0.068 to 0.159, the flat one contained the truth uselessly at 0.020 to 0.222, and the learned one halved the error at 0.124. One card of tooling facts so you can ask "which version, which default" and recognise a stale answer. And the five questions to ask before your name goes on a small-data number, which is where the leader track ends.

LiveA decision, or a default wearing one4 min▶

Session 1 made the point that a prior nobody can express as a pseudo-count has not been chosen, it has been defaulted. Tonight extends that to the whole answer. The interval level is a default: the tooling shipped 94 percent HDI until 2026 and ships 89 percent equal-tailed now, and an analyst who never thought about it will report whichever their installation happens to produce. The decision rule is a default: "the probability looked high" is what people fall back on when nobody wrote a threshold down, and session 4 showed that 0.915 looked high at n = 50 while the expected loss said keep going. The check is a default too, in the sense that the default is not to run one.

None of these defaults is malicious and most of them are survivable. The problem is that a default cannot be argued with, because there is nothing on the page to argue against. A brief converts each default into a sentence somebody signed. That is the whole job. It does not make the answer right; it makes the answer contestable, which for a leader is the property that matters.

Real world

Halloway's closure review for Northgate ran on 0.110 and "likely between 0.07 and 0.16". When the regional manager asked what the number assumed, the analyst could answer in full: Beta(12, 88), a hundred pseudo-observations from the chain-wide history, 89 percent equal-tailed. Every part of that was defensible, and none of it had been written down where the manager could have asked, three weeks earlier, whether Northgate resembled the chain. The brief is the document that makes that question arrive on time.

Self-studyThe four lines, named3 min▶
  • The prior, as a pseudo-count and a source. "Beta(12, 88), a hundred pseudo-observations, from the chain-wide history." Or "learned across the twelve outlets, kappa 116." Two numbers and a provenance. Session 1 owns the pseudo-count; session 3 owns the learned version.
  • The interval, kind and level. "89 percent equal-tailed." Both words matter. The level tells a reader how much of the posterior the range holds; the kind tells them how it was cut, equally from both tails rather than as the narrowest range. Session 2 owns the sentence the interval makes.
  • The decision rule, if a decision hangs on it. "Stop when the expected loss of the chosen arm falls below 0.001." Or a region of practical equivalence, Kruschke's rule, that lets the answer be "no meaningful difference" rather than "not yet". Session 4 owns the rule and the reason 0.915 was not enough.
  • The check that was run. A prior predictive simulation before the data, to see whether the belief could produce data like the data you expect; a posterior predictive one after, to see whether the fitted model could produce data like the data you got. Session 5 owns the prior predictive check as the shared ground the three prior positions agree on.
Part 1 · covers the four lines and when they must be written

Four lines, and the clock they run against

10 min live

Two of the four lines have a deadline, and it is the same deadline: before the data arrive. The other two can be filled in as the work proceeds, as long as they are filled in. The figure is the brief as a form, with the deadline marked, and with Halloway's own entries so that each line has a worked example rather than a blank.

The brief. Four lines, each one a choice somebody signs, two of them before the data arrive. Line What it must say Halloway's entry Deadline 1 · The prior A pseudo-count and a source. Not "informative". Not "the default". A number and where it came from. Beta(12, 88), 100 pseudo-obs, from the chain-wide history or: learned across 12 outlets, kappa 116 before data 2 · The interval Kind and level, both words. The default was 94 percent HDI until 2026. It is 89 percent equal-tailed now. 89 percent equal-tailed the 5.5 and 94.5 percent quantiles a reader assuming 95 misreads every number with the result 3 · The decision rule Only if a decision hangs on the number. Expected loss below a threshold, or a region of practical equivalence. stop when E[loss] of the chosen arm falls below 0.001 0.915 at n = 50 was not enough; 0.0029 > 0.001 before data 4 · The check What was run before believing the model. Prior predictive simulation before the fit, posterior predictive after it. prior predictive before the fit: the counts Beta(12, 88) expects in 18 posterior predictive after, reported before + after A prior chosen after seeing the data is a conclusion wearing a costume. A stopping rule chosen after is peeking with extra steps.
🔍 Click to zoom - the brief as a form. Lines 1 and 3 have a deadline; lines 2 and 4 have to exist.
LiveWhy "before the data arrive" is the load-bearing phrase4 min▶

A prior is a statement about what you believed before you looked. If it is written after the eighteen customers are in, it is no longer that. It is a conclusion about those eighteen customers, dressed as a belief, and the arithmetic will happily blend the data with a restatement of the data and hand back a narrow interval that has counted the evidence twice. Nobody does this on purpose. It happens when the analyst opens the notebook, sees 1 in 18, thinks "that seems low for Northgate", and reaches for a prior centred a little higher than they would have yesterday. The brief stops it by making the prior a line somebody signed on a date.

The stopping rule has the same problem with a different costume. A threshold written before the experiment, "stop when the expected loss falls below 0.001", is a rule. A threshold written at n = 50, when P(B > A) has just reached 0.915 and the team is impatient, is a decision to stop with a number attached afterwards. Session 4 showed that the pre-written rule said keep going at 0.915 because the loss was still 0.0029, and stopped at n = 100 at 0.0005. It also showed that the rule, run two hundred times, stopped on the wrong arm twice. That is the measured cost of the rule, and it is only a fair cost if the rule was fixed before anyone saw a result. The argument about why looking early and often inflates that cost belongs to learn-experimentation-with-phoebe, and this brief simply insists that the rule be dated.

Self-studyOne card of tooling facts, so you can hear a stale answer4 min▶

You do not need to run any of this. You need to know it exists, so that when an analyst answers "which version and which default" you can tell September 2026 from a notebook copied in 2023. Four facts, as of 18 September 2026.

  • PyMC is at 6.3.2, released 8 September 2026. PyMC 6.0.0 shipped on 13 May 2026 and needs Python 3.12 or later. "pymc3" is a dead import. If a notebook says pymc3, it predates the current major version by years, and its intervals were cut under the old default.
  • ArviZ is at 1.3.0, and is three libraries under one name: arviz-base, arviz-stats, arviz-plots. The old results container, InferenceData, no longer exists; the current one is an xarray DataTree. An answer that talks about InferenceData as current is describing the previous generation of the tool.
  • The interval default changed with ArviZ 1. The level moved from 94 percent to 89 percent, and the kind moved from HDI, the narrowest range, to equal-tailed, the 5.5 and 94.5 percent quantiles. The maintainers' stated reason is that 0.89 produces intervals with lower variability and therefore more stable summaries. A third-party repository documented two notebooks whose intervals silently became equal-tailed on upgrade while the prose still said HDI. That is the whole reason line 2 of the brief exists.
  • The sampler default changed too. Under PyMC 6, nutpie is the default sampler when installed, with 400 tuning steps against 1000 under PyMC's own sampler. You will never need this number. You need to know that "the defaults" is not a fixed thing, so that "we used the defaults" is not an answer to "what did you use".

The question these facts let you ask is short: "Which PyMC and ArviZ versions, and is that interval 89 percent equal-tailed?" An analyst working in the current tooling answers in one breath. One who hesitates has given you the information you needed.

Part 2 · covers why the brief has to name the prior

Three priors, one outlet, and the brief that names which

7 min live

The brief's first line is not bureaucracy. Northgate, across five sessions, was estimated three ways, and the three estimates disagree about whether the outlet should exist. A report that says "0.110" and a report that says "0.124, partial pooling across the twelve outlets, kappa 116" contain the same kind of number, and only one of them can be argued with.

Northgate, n = 18, truth 0.192. Three estimates, three briefs. 0.00 0.05 0.10 0.15 0.20 0.25 0.30 truth 0.192 Sensible · Beta(12, 88) 100 pseudo-obs, chain-wide history 0.068 to 0.159, misses. Precise and wrong. Flat · Beta(1, 1) 2 pseudo-obs, no source needed 0.020 to 0.222, contains the truth. Too wide to decide anything. Learned · partial pooling 12 outlets, kappa 116, weight 0.13 0.124, error 0.136 to 0.068. Still under. A brief that names which of the three was used, and why, is a brief that can be argued with.
🔍 Click to zoom - the same eighteen customers, three defensible priors, three different fates for the outlet.
LiveWhat each brief would have said4 min▶

Under the sensible prior the brief reads: "Beta(12, 88), a hundred pseudo-observations, from the chain-wide history, because Halloway outlets have sat near 0.12 for years." Written that way, the weak point is visible before a single customer is counted. A hundred against eighteen means the history carries 0.85 of the answer, and someone can ask whether Northgate, the newest site in a different kind of neighbourhood, is a chain-wide outlet. The interval, 0.068 to 0.159, is precise and misses the truth by 0.033. That is not a failure of the arithmetic. It is the bet the brief described, lost.

Under the flat prior the brief reads: "Beta(1, 1), two pseudo-observations, because we did not want to assume anything." The interval, 0.020 to 0.222, contains the truth and would support closing the outlet or doubling its budget with equal ease. Under the learned prior the brief reads: "partial pooling across the twelve outlets, learned kappa 116, which weights Northgate's own month at 0.13, because eleven other outlets are the best available evidence about what a twelfth is like." The estimate is 0.124, the error falls from 0.136 to 0.068, and the outlet is not closed. Three briefs, each honest, each arguable, and the argument is only possible because each one wrote its first line down.

Self-studyThe line the brief must not leave out: what the method did not fix3 min▶

Session 3 was careful to say both halves of the pooling result, and the brief has to be as careful. Northgate under partial pooling is 0.124 against a truth of 0.192. The method halved the error; it did not remove it. A report that says "the estimate improved" is true. A report that says "Northgate is now well understood" is not, and the second sentence is the one that gets written when the first is not required.

So a fifth line, informal but required: what the answer still cannot tell you. For Northgate it is that eighteen customers remain eighteen customers, that the estimate leans 0.87 on the other eleven outlets, and that a genuinely unusual outlet will be under-estimated by exactly the method that saves the ordinary ones. Whether the 89 percent intervals your team produces turn out to contain the truth 89 percent of the time, measured over many such numbers, is a different question and belongs to learn-decision-intelligence-with-phoebe. The brief's job is narrower: to make sure the sentence that gets acted on is the one the analysis supports.

Part 3 · build-along

Write the brief for a number you are about to commission

18 min build-along

No laptop. Take a small-data estimate your area is going to ask for in the next quarter, a conversion rate on a pilot, a defect rate on a short run, a redemption rate at a new site, and write the four lines before anyone has the data. Use Halloway's entries as the model and your own words for the reasons. The reasons are the part the analyst cannot supply.

Name the rate, the unit and the expected sample. "Voucher redemption at the new Northgate outlet, about eighteen vouchers in the first month." If the expected sample is small, say so in the brief. It is the reason the brief exists.

Write line 1: the prior, as a pseudo-count and a source. Choose between asserting it, "Beta(12, 88), a hundred pseudo-observations, from the chain-wide history", and learning it, "partial pooling across the other outlets". Then write the reason, and the reason this case might not resemble the source. Date the line.

Write line 2: the interval, kind and level. "89 percent equal-tailed, the 5.5 and 94.5 percent quantiles." If somebody wants 95, write 95 and say why; the brief does not care which level, only that it is stated and that the kind travels with it.

Write line 3, if a decision hangs on the number. Either a threshold on expected loss, "stop when the expected loss of the chosen arm is below 0.001", or a region of practical equivalence, "a difference smaller than half a point is no difference". Date this line too. A rule written after the first result is not a rule.

Write line 4: the check. "A prior predictive simulation before fitting, reported as the range of redemption counts the prior expects in eighteen vouchers; a posterior predictive check after." You will not read the plots. You will ask whether they were made.

Add the sentence about what the answer will not tell you. "Eighteen customers cannot distinguish 0.12 from 0.19; the estimate will lean on the source in line 1 and an unusual outlet will be pulled toward the ordinary ones." If that sentence makes the commission feel pointless, the commission was pointless before you wrote it.

The five questions to ask before your name goes on a small-data number. One, how many pseudo-observations is the prior worth and where did they come from? Two, is that interval 89 percent equal-tailed, and which versions of PyMC and ArviZ produced it? Three, what was the decision rule and what is its date? Four, what check was run before the model was believed? Five, what did the method not fix? Each question has an answer of one sentence, none of them contains a formula, and the leader track ends here because a leader who asks all five has done the job the track was for.

Check yourself

Three questions

An analyst's report says "the prior was informative and the interval is 0.068 to 0.159". Which line of the brief is missing, and why does it matter?

Line 1 requires a pseudo-count and a source, here Beta(12, 88), a hundred pseudo-observations from the chain-wide history, so that a reader can see the belief outweighs the eighteen customers 85 to 15. Line 2 requires the kind and level, because the tooling default changed in 2026 and a reader who assumes 95 percent misreads the range. The check matters too, but the report as written cannot even be argued with yet.

A team proposes to write the stopping threshold once they have seen the first fifty customers per arm, "so we can set it realistically". What does the brief say?

Line 3 has a deadline: before the data arrive. The expected-loss rule controls the cost of a wrong decision, not the frequency of one, and the measured 2 in 200 is the frequency. Why looking early inflates it is the experimentation course's argument; the brief simply insists the rule carry a date that precedes the data.

Northgate's estimate under partial pooling is 0.124, and the analyst wants to write "Northgate's rate is now well estimated". What should the brief require instead?

Partial pooling took Northgate's error from 0.136 to 0.068. Halved, not removed. The brief's last line exists so that the sentence acted on is the one the analysis supports, and "well estimated" is not that sentence for an outlet with eighteen customers and a weight of 0.13 on its own data.

Homework

After the track

30 min

Send the four-line brief you wrote tonight to whoever will actually produce the number, before they start. Ask them to return it with each line filled in and dated, and with the five questions answered in a sentence each. Keep the returned brief next to the result when it arrives. If you want to see where the numbers in this track came from, the practitioner capstone, The pooling bench, runs all three Halloway benches live: the four priors at Northgate and Westfield, the pooling ladder at 0.054, 0.031 and 0.025, and the stopping rule with its two wrong stops in two hundred. Nothing on it needs code to read.

Sources covered

What tonight maps to

✓ The four lines of a Bayesian brief The prior as a pseudo-count with a source; the interval kind and level; the decision rule dated before the data; the prior and posterior predictive checks. Each line anchored to the session that taught it.
✓ Northgate three ways, as the brief's justification Sensible 0.068 to 0.159, missed; flat 0.020 to 0.222, contained the truth uselessly; learned 0.124 with kappa 116, error halved from 0.136 to 0.068 against a truth of 0.192.
✓ The tooling as it is in September 2026 PyMC 6.3.2, ArviZ 1.3.0, the interval default at 89 percent equal-tailed since ArviZ 1, DataTree in place of InferenceData, pymc3 a dead import. Known to exist, not learned.
✓ Kruschke's region of practical equivalence, as a rule the brief can name Bayesian estimation supersedes the t test, 2013: a decision rule that compares the interval to a region of practical equivalence and can accept the null when the estimate is precise.
◐ Running the checks the brief requires Practitioner session 8 owns prior and posterior predictive checks at working depth. Tonight asks whether they were run; it does not read them.
· Why peeking inflates the wrong-stop rate Not covered by design. learn-experimentation-with-phoebe owns the peeking argument and experiment mechanics; the brief requires the rule to be dated and reports the measured 2 in 200.
· Whether a stated 89 percent is honest over many forecasts Not covered by design. Measuring calibration is learn-decision-intelligence-with-phoebe's territory; the brief produces the Bayesian sentence and hands the audit of it there.
· Confidence intervals and the frequentist sentence Not covered by design. learn-statistics-with-phoebe owns frequentist inference; the brief's interval line is Bayesian and says so.

Session 6 cheat sheet

Line 1 · the priorA pseudo-count and a source. "Beta(12, 88), 100 pseudo-obs, chain-wide history" or "learned across 12 outlets, kappa 116".
Line 2 · the intervalKind and level, both words. 89 percent equal-tailed, the 5.5 and 94.5 percent quantiles. The default changed in 2026.
Line 3 · the decision ruleExpected loss below a threshold, or a ROPE. Written and dated before the data arrive, or it is not a rule.
Line 4 · the checkPrior predictive before the fit, posterior predictive after. Ask whether they were made.
A prior chosen after the dataIs a conclusion wearing a costume. A stopping rule chosen after is peeking with extra steps.
Northgate, three waysSensible 0.068 to 0.159 missed; flat 0.020 to 0.222 useless; learned 0.124 halved the error. Name which.
Which version, which defaultPyMC 6.3.2, ArviZ 1.3.0, 89 percent equal-tailed. "pymc3" or "InferenceData" means a stale notebook.
The fifth questionWhat did the method not fix? Northgate is 0.124 against 0.192. Halved, not removed.