A Bayesian Field Guide

A small series, one ink language: how probability distributions relate, how the Bayesian workflow runs, and which model shape fits which people-analytics question.

Plate II — By Descent

The genealogy of distributions: a few atoms (Bernoulli, Exponential, Normal) built up by summing, limits, ratios and transforms.

Plate III — By Iteration

The Bayesian workflow as a loop — Define, Design, Fit, Check, Predict, and back again — mapped across four people decisions.

Plate IV — By Structure

A model zoo: eight decisions, eight fundamental model shapes, each with the trap to avoid.

Plate V — By Decision

From posterior to action: a loss function, an expected-value threshold, and how to say it to a non-technical stakeholder.

The four plates are the wall pieces (open in a browser to see the brush type). The three cheat sheets are the working references — open those when a problem actually lands on your desk. Everything under Reference is supporting material.

Plate II — By Descent

the distribution genealogy · open the .svg in a browser for the brush type

A genealogy of distributions — Plate IISumi-e poster organizing common probability distributions by generative lineage: the Bernoulli process, the Poisson process, and the Gaussian. PLATE II · A GENEALOGY OF DISTRIBUTIONS By Descent A handful of atoms, built up by summing, taking limits, ratios and transforms. derivation (labelled) deep cross-lineage link italic tag = Bayesian role THE BERNOULLI PROCESS · counts THE POISSON PROCESS · positive reals THE GAUSSIAN Bernoulli Bern(p) likelihood the atom — one trial Binomial Bin(n, p) likelihood successes in n trials Poisson Pois(λ) likelihood events per interval Neg. Binomial NB(r, p) overdispersed counts Categorical Cat(π) likelihood one draw of k outcomes Multinomial Mult(n, π) counts across k Geometric Geom(p) trials to first success sum of n n → ∞ Gamma mixture sum of n OTHER COUNTS Exponential Exp(λ) the atom — one gap Gamma Gamma(k, θ) conjugate prior wait for the kth event Beta Beta(α, β) conjugate prior a probability in (0,1) Dirichlet Dir(α) conjugate prior a vector of proportions Chi-squared χ²(ν) Gamma(ν/2, 2) · Σ Normal² Uniform U(a, b) Beta(1, 1) — flat Weibull Weibull(k, λ) stretched Exponential sum of k ratio of two multivariate RELATIVES Normal N(μ, σ²) likelihood + prior CLT limit of sums Student-t t(ν) heavy-tailed Normal Cauchy Cauchy(x₀, γ) Student-t, ν = 1 Log-normal lnN(μ, σ²) exp of a Normal Multivariate Normal N(μ, Σ) correlated Normal vector est. variance ν = 1 RELATIVES CLT Dashed links cross lineages. Poisson and Exponential are the same Poisson process — counts versus gaps. The central limit theorem funnels Binomial, Poisson and Gamma toward the Normal.

Plate III — By Iteration

the Bayesian workflow · open the .svg in a browser for the brush type

The Bayesian workflow applied to people decisions — Plate IIIWorkflow loop (Define, Design, Fit, Check, Predict, iterate) and a matrix mapping each step to four people-analytics use cases, in sumi-e ink style. PLATE III · THE BAYESIAN WORKFLOWBy IterationDefine a model, simulate it, fit it, interrogate it — and when a check fails, expand and go round again.Definelikelihood + priors1Designprior predictive2Fitinference + diagnostics3Checkposterior predictive · LOO4Predictnew cases + decision5expand & iterateHIRINGwill the hire succeed?PROMOTIONready to promote?ATTRITIONstay or leave?ROLE FITfit a future role?DEFINElikelihood + priors1Bernoulli · logitβ ~ N(0, 1)y = hire succeedsBernoulli · logit+ manager effect(hierarchical)Bernoulli — orWeibull for *when*+ team effectlatent θ (factor / IRT)over 4 dimensionsMVN correlationsDESIGNprior predictive + measurement2prior pred: 40–70%?define "success"⚠ range restrictionprior pred: ~15%/yrcoaching = interventionwho got it, & why?prior pred: 10–25%engagement = noisy⚠ censoringprior pred on fitanchor latent scalesmulti-instrumentFITinference + diagnostics3NUTS · R̂, ESSno divergencespool small sourcesnon-centeredfor manager effectsSBC checkwatch separationcensoring handledR̂ ≈ 1fix sign / rotationlabel switchingdelicateCHECKposterior predictive + LOO4PPC by source / rolecalibration⚠ adverse impactPPC by managercoaching sign?LOO vs no-coachingPPC by tenure / teamcalibrationLOO vs simplerrecover anchorsprior sensitivitydim correlationsPREDICTnew cases + decision5p(success) ± intervalrank by utilitybad-hire costp(ready) ±coaching lift(do-intervention)p(leave 6mo) ±EV of retentionper personfit score ±which dims drive itshortlist w/ intervalsCAUTIONS — they cut across every columnselection bias / range restrictioncausal ≠ predictivefairness / adverse impactmeasurement errorpooling & small NA Bayesian modelling workflow, applied to people decisions.

Plate IV — By Structure

a model zoo for people decisions · open the .svg in a browser for the brush type

A model zoo for people decisions — Plate IVEight people-analytics decisions, each illustrating a different fundamental modelling structure, in sumi-e ink style. PLATE IV · MODEL SHAPES FOR PEOPLE DECISIONSBy StructureEight decisions, eight fundamental shapes — match the model to the question, and mind the trap.Incidents per teamCounts & overdispersionPoisson → NegBinom THE TRAPvariance > mean breaksPoisson — use NegBinom,add an exposure offsetTime to attritionTime-to-event & censoringWeibull hazard THE TRAPstaff still here arecensored — not "stayers"Performance ratingsOrdinal outcomecumulative logitTHE TRAP1–5 isn’t continuous —model the cutpointsA manager’s shareHierarchical variancepartial poolingTHE TRAPdon’t rank managers onn = 4; pool & shrinkDoes the program work?Causal, not predictivediff-in-diff · IVTHE TRAPa fitted slope ≠ theeffect of interveningEmployee archetypesLatent classesfinite mixture THE TRAPclusters carry uncertainty— not hard bucketsOffer acceptanceChoice & comparisonmultinomial · Bradley–Terry THE TRAPmodel the chooser andthe alternativesTime / budget splitCompositional (sum-to-one)Dirichlet · logratio THE TRAPshares live on a simplex— not ordinary regressionA model zoo for people decisions — companion to Plates II and III.

Plate V — By Decision

from posterior to action · open the .svg in a browser for the brush type

From posterior to action — Plate VTwo-act sumi-e plate: the decision calculus (posterior, loss function, expected utility, decision threshold worked on an attrition case) and the communication craft (presenting the decision to a non-technical stakeholder). PLATE V · FROM POSTERIOR TO ACTIONBy DecisionA posterior is not yet a decision. Weigh it by what actions cost — then say it so someone who never saw the model can act.I · THE DECISION CALCULUSturning the posterior for p(leave) into "act or wait"0.00.10.20.30.40.5p(leave within 12 months)p* = 0.15threshold from costswaitactmedian 0.220.110.3880% posterior interval — the product is the range, not the point1The posterior is the inputA full distribution for p(leave) — not a single number.Median 0.22, 80% interval [0.11, 0.38]. A decisionconsumes the whole shape, especially its spread.2A loss function turns belief into actionName the costs. A regretted exit R ≈ ½–2× salary;a retention conversation c is cheap. The asymmetry isthe point: missing a leaver dwarfs a needless chat.3Average utility over the posteriorDon’t plug in the median. For each action a,compute E[U(a)] = ∫ U(a, θ) · p(θ | data) dθ and pickthe action with the best expected utility.4The rule is a threshold, set by costsNot p < 0.05. Act when p(leave) > p* = c / value_retained.The data picks the posterior; the costs pick the cut.When the interval straddles p*, buy information first —a stay interview — rather than acting blind.II · THE COMMUNICATION CRAFTsaying it to someone who never saw the modelTHE ONE SLIDEReach out to 12 people this quarter.About 1 in 5 leave within a year(could be 1 in 9 to 1 in 3)Worth a 30-min conversation against the cost of losing them.It flags who is at risk — not why. The chat is how we learn why.1Lead with the decision, not the modelThe first sentence is the action you recommend.Priors, links and diagnostics come only if asked.2Numbers as natural frequencies“Of 100 people like this, about 22 leave in a year”beats “p = 0.22.” People reason with counts, notprobabilities — so hand them counts.3Always carry the interval“About 1 in 5 — could be 1 in 9 to 1 in 3.”A point estimate read as certainty is the mostcommon and most expensive misread there is.4Predictive ≠ causal — say so out loudThe model flags who is at risk, not what will fix it.Don’t promise an intervention works just becausethe predictor it leans on happens to correlate.5Name what acting on it could breakPeople game a score once they can see it; a calibratedmodel can still drive unfair action. Choose the fairnesscriterion deliberately, before the list goes out.THE HANDOFF — five moves from a fitted model to a taken actionposteriorp(leave) | dataweigh by costthe loss functionexpected valueE[U(a)]decisionp(leave) > p*communicatestakeholder actsthe analyst’s workthe stakeholder’sThe posterior is the analyst’s; the decision is the stakeholder’s; communication is the bridge between them.CAUTIONS — where decisions go wrongfalse precisionpredictive ≠ causalfeedback & gamingunfair actionno loss functionFrom a posterior to an action — and to a stakeholder who can take it.

Plate III — The Bayesian Workflow, Applied to People Decisions

Companion to the workflow poster. The poster is the map; this is the territory — one case worked end-to-end, plus how the same five moves play out across four people-analytics decisions.


Why a workflow, not a recipe

A single model fit is almost never the point. Following Gelman et al. (Bayesian Workflow, 2020), the real activity is navigating a sequence of models: you specify one, simulate from it, fit it, interrogate it, and — when it fails a check — expand it and go around again. The loop is the method. A model you never tried to break is a model you don't yet understand.

The five headline moves below are deliberately memorable. Nested under each are the steps that do the actual work.

Headline move What you actually do (the Gelman sub-steps)
1 · Define Write the generative model: an outcome distribution (likelihood) and priors on its parameters. State the data-generating story in words first.
2 · Design Prior predictive check — simulate fake outcomes from the priors alone; are they plausible? Decide what to measure, how outcomes are defined, and how the sample is selected.
3 · Fit Run inference (HMC/NUTS). Diagnose computation: R-hat ≈ 1, adequate effective sample size, no divergences. Validate on fake data (simulation-based calibration) before trusting real fits.
4 · Check Posterior predictive checks — does the fitted model reproduce features of the real data? Check calibration. Compare candidate models (LOO cross-validation). If it fails: expand and loop back to Define.
5 · Predict Posterior predictive distribution for new cases — always with uncertainty. Turn the predictive distribution into a decision using costs/utilities, not a bare cut-off.

The arrow that matters most runs from Check → Define: model expansion. Everything else is in service of knowing when to take it.


The four decisions at a glance

All four are the same workflow with different outcome types. Three are binary (a Bernoulli likelihood — the same family we started this whole thread on, LPM vs. logit); the fourth is a latent-trait problem.

Step Hiring success Promotion readiness Attrition (stay/leave) Role fit (future role)
Define hired_success ~ Bernoulli(p); logit p = α + β·(interview, work-sample, résumé); β ~ Normal(0, 1) on standardized inputs promoted ~ Bernoulli(p); logit p = α + β·(performance, coaching dose, tenure) + manager_effect; hierarchical over managers left ~ Bernoulli(p) in a window — or time_to_leave ~ Weibull(k, λ) for when; logit/log link on engagement, pay ratio, tenure + team effect latent fit θ from a factor/IRT model over experience, competencies, cognitive ability, personality/values; θ ~ Normal, loadings with weakly-informative priors; multivariate-Normal correlations among dimensions
Design Prior predictive: implied success rate ~40–70%? Define "success" (e.g. 12-month performance). Range restriction: you only observe hires. Prior predictive: base promotion rate ~10–20%/yr? Coaching is an intervention — who got it and why? Prior predictive: annual attrition ~10–25%? Engagement is measured with error; current employees are censored (haven't left yet). Prior predictive on the fit-score spread; anchor the latent scales so dimensions are identified; multi-instrument measurement.
Fit NUTS; R-hat, ESS, divergences. Small per-source samples → partial pooling. Hierarchical → watch funnels; non-centered parameterization. SBC on the manager effects. If survival model, fit hazard; check censoring handled. Watch separation if a predictor perfectly splits leavers. Latent-variable models are computationally delicate — identify rotation/sign, check label switching.
Check PPC: reproduce success rate by source/role? Calibration of predicted probabilities. Adverse-impact check across protected groups. PPC: promotion rates by level/manager. Is the coaching coefficient's sign/size believable, or confounded? LOO vs. a no-coaching model. PPC: attrition by tenure/team; calibration. LOO vs. a simpler model. If survival: does the hazard shape match? PPC: recover known-anchor patterns; prior sensitivity; are dimension correlations sensible?
Predict p(success | new candidate) with an interval; rank/threshold using the cost of a bad hire vs. a missed good one. p(ready) with uncertainty; counterfactual: expected lift from coaching (a do-intervention, not a correlation). p(leave in 6 mo) with uncertainty; expected value of a retention action per person. posterior fit score with uncertainty; show which dimensions drive it; shortlist with intervals, not point ranks.

Worked end-to-end: who is likely to leave?

Attrition is the cleanest full illustration — a binary outcome, the model we opened this conversation discussing, and a decision with real costs. Suppose we have ~2,000 employees, an annual engagement survey, tenure, a pay-vs-market ratio, and team membership; the outcome is left within 12 months.

1 · Define

The data-generating story: each employee has some latent monthly risk of leaving; higher engagement and fair pay lower it; teams differ. As a binary-in-window model:

left_i        ~ Bernoulli(p_i)
logit(p_i)    = α + β_eng·engagement_i + β_pay·pay_ratio_i + β_ten·tenure_i + u_team[i]
u_team[j]     ~ Normal(0, σ_team)          # partial pooling across teams
α             ~ Normal(logit(0.15), 0.5)   # centred on a ~15% base rate
β_*           ~ Normal(0, 1)               # standardized predictors → these are "modest effect" priors
σ_team        ~ HalfNormal(0.5)

The Normal(0,1) priors are not "uninformative" — on the log-odds scale they say a one-SD change in a predictor probably shifts the odds by less than ~e¹ ≈ 2.7×, which is a deliberately reasonable claim. (For when rather than whether, swap the Bernoulli for a Weibull survival model — see Plate II — and keep the rest.)

2 · Design (prior predictive check)

Before touching the data, simulate employees from the priors and look at the implied attrition rate. With α ~ Normal(logit 0.15, 0.5) and standardized predictors, simulated rates land roughly in 7–28% — plausible. Had we used the reflexive β ~ Normal(0, 10), the prior predictive would pile most employees at p≈0 or p≈1 (near-certain stayers and leavers) — absurd, and a sign the "vague" prior is actually a strong, silly claim. This is also where you confront measurement (engagement is a noisy survey measure) and censoring (employees still present are not "stayers" — they simply haven't left yet; a survival model handles this honestly).

3 · Fit (inference + diagnostics)

Fit with HMC/NUTS. Acceptance criteria before reading any coefficient: all R-hat ≤ 1.01, bulk- and tail-ESS in the hundreds, zero divergences. The team effects invite a funnel — if divergences appear, switch u_team to a non-centered parameterization (u = σ_team · z, z ~ Normal(0,1)). Validate the whole pipeline on simulated data (simulation-based calibration): fit the model to data generated from known parameters and confirm it recovers them.

4 · Check (posterior predictive + comparison)

Draw replicated datasets from the posterior and compare to reality: - Aggregate: does the predicted attrition rate match the observed ~15%? - By segment: attrition by tenure band and by team — does the model track the curve, or miss the high-churn first-year cohort? - Calibration: among people the model called "20% risk," did ~20% actually leave?

Then compare models with LOO cross-validation: does adding the team hierarchy, or a tenure spline, actually improve out-of-sample prediction, or just fit noise? If the model systematically under-predicts early-tenure churn, that's the loop firing — expand (add a tenure nonlinearity or a survival hazard) and return to Define.

5 · Predict (and decide)

For a new employee you get a full posterior predictive distribution for p(leave), e.g. a median of 0.22 with an 80% interval of [0.11, 0.38] — the interval is the product, not the point. Turn it into a decision with a utility: if a regretted exit costs ~C and a retention conversation costs ~c, act when E[benefit] = p(leave)·(value retained) > c. The same posterior tells you where the uncertainty is — sometimes the right action is to reduce uncertainty (a stay interview) rather than to intervene.


People-analytics cautions (the part that bites)

These cut across all four decisions and belong on every plate:

  • Selection bias / range restriction. Hiring and promotion models are trained only on people who got hired or promoted. The relationship you estimate is conditional on passing an earlier gate, and can invert the true one (the classic: among hires, interview score and résumé strength look negatively correlated purely because both can't be low).
  • Causal ≠ predictive. Coaching, engagement, and pay are interventions someone chose. A predictive coefficient is not the effect of changing it. If you want "what happens if we coach," you need a causal estimand (a do-intervention), confounders, and ideally a design — not just a fitted slope.
  • Fairness and adverse impact. A calibrated, accurate model can still produce disparate outcomes across protected groups. Check it explicitly, decide on a fairness criterion deliberately, and remember that omitting a protected attribute does not remove its influence (proxies remain).
  • Measurement error. Engagement scores, competency ratings, and interview scores are noisy, and the noise is often not random (halo effects, rater leniency). Model the measurement, or at least don't treat a survey mean as ground truth.
  • Pooling and small N. Per-manager or per-team estimates from tiny samples are mostly noise; hierarchical partial pooling shrinks them toward the population and is almost always the right default.

Where this sits in the series

Plate I — the distributions in the abstract (LPM vs. logit, links, families). Plate II — the genealogy of distributions. Plate III (this) — the workflow that uses those distributions to answer a question. The natural Plate IV would be decision & communication: turning a posterior into an action and explaining it to a non-technical stakeholder, which is where most people-analytics work actually lives or dies.

Plate IV — Model Zoo Cheat Sheet

A day-job reference for picking the right model shape for a people-analytics question. The poster is the glance; this is the manual. Each entry stands on its own — start with the picker, jump to the scenario you're in.


How to use this

  1. Look at your outcome — the thing you're trying to explain or predict — and its structure. The picker below routes you to a scenario by the shape of that outcome.
  2. Read that scenario's entry: when it applies, the model, the choices you must make, how to check it, and the one trap that most often bites.
  3. The workflow itself (how to define → design → fit → check → predict, and when to iterate) is in the workflow cheat sheet (Plate III companion). This sheet is about which model; that one is about how to run it.

A glossary of the recurring terms is at the bottom.


The picker — which model do I even need?

What does your outcome look like? Scenario Go to
Yes / no (hired, promoted, left) Binary Plate III main examples
A count (incidents, tickets, applications) Counts & overdispersion §1
Time until something happens — and some haven't yet Time-to-event & censoring §2
An ordered rating (1–5, low/med/high, 9-box) Ordinal §3
You care how much variation is "the team / the manager" Hierarchical variance §4
You want the effect of an action you could take Causal, not predictive §5
You suspect hidden subgroups in the population Latent classes / mixture §6
A choice among options, or "who beats whom" Choice & comparison §7
A set of proportions that sum to 1 (time, budget, headcount mix) Compositional §8
A quality you can't measure directly, inferred from many indicators Latent trait Plate III role-fit

If two apply, you probably have two linked models (e.g. who leaves is binary; when they leave is time-to-event). That's normal — model the question you actually need to answer.


1 · Counts & overdispersion

You're here when: the outcome is a non-negative count — safety incidents, support tickets, applications per req, sick days — often over unequal exposure (different team sizes or time windows).

The model: start with Poisson (count ~ Poisson(λ), log λ = α + βx). Almost always move to Negative Binomial, which adds a dispersion parameter for the very common case where the variance exceeds the mean.

Key choices: include an offsetlog(exposure) (headcount, hours, days at risk) added to the linear predictor — so you model a rate, not a raw count. Weakly-informative priors on β (e.g. Normal(0,1) on standardized predictors).

Fit & check: posterior predictive check on the count distribution — does the model reproduce the spread and the number of zeros? If zeros pile up beyond what Negative Binomial allows, consider a zero-inflated model.

The trap: using Poisson when variance > mean. Poisson forces variance = mean, so your standard errors come out far too small and everything looks "significant." Check dispersion; reach for Negative Binomial by default.

Example: modelling safety incidents per site per quarter. Offset by hours worked; Negative Binomial because a few sites have incident clusters; predictor = a safety-climate survey score.


2 · Time-to-event & censoring

You're here when: the outcome is how long until something — time to attrition, time-to-fill a req, time-to-promotion — and crucially, for some people it hasn't happened yet.

The model: a survival model — Weibull (or exponential, or a Cox proportional-hazards model) for the time, with a hazard that predictors shift. The Weibull's shape parameter lets risk rise or fall with tenure.

Key choices: handle censoring explicitly — an employee still here at the end of the window contributes "survived at least this long," not "stayed." This is the whole point; a model that ignores it is wrong.

Fit & check: compare predicted vs. observed survival curves (Kaplan–Meier overlay); check the hazard shape matches reality (e.g. first-year churn spike).

The trap: treating "hasn't left yet" as "is a stayer," or throwing current employees out of the data. Both bias you badly — the people who haven't left are exactly the informative censored cases.

Example: time-to-attrition. Weibull hazard rising then falling; predictors = engagement, pay ratio, tenure; current staff censored at today's date. Upgrades the binary "will they leave?" to "when, and how does risk evolve?"


3 · Ordinal outcome

You're here when: the outcome is an ordered category — performance rating 1–5, a 9-box cell, a Likert engagement item, low/medium/high potential.

The model: ordered (cumulative) logit/probit — one slope per predictor, plus a set of estimated cutpoints that carve the latent scale into the ordered categories.

Key choices: let the cutpoints be estimated (don't assume equal spacing). Decide whether the proportional-odds assumption (same slope across thresholds) holds; relax it if not.

Fit & check: posterior predictive check on the category proportions; inspect whether predicted and observed distributions match per group.

The trap: treating a 1–5 rating as a continuous number and running ordinary regression. That invents distances ("4 is exactly twice 2") that don't exist and can distort or reverse conclusions, especially with floor/ceiling effects.

Example: predicting performance-review rating from goal attainment and tenure. Cumulative logit; check that the model reproduces the lump of "meets expectations" ratings.


4 · Hierarchical variance (partial pooling)

You're here when: your data are nested — employees in teams in regions — and you want to compare groups, or know how much of the variation is the group vs. the individual.

The model: a multilevel model with a random effect per group (y = α + βx + u_group, u_group ~ Normal(0, σ_group)). The variances (σ_group, residual) decompose where the signal lives; the intraclass correlation (ICC) summarizes the group share.

Key choices: partial pooling is the default — group estimates are pulled toward the population mean by an amount set by how much data each group has. Tiny groups shrink a lot; large groups barely move.

Fit & check: watch for divergences (hierarchical models create "funnels"); use a non-centered parameterization if they appear. Check the group-level standard deviation is identified.

The trap: ranking managers or teams on raw per-group averages from tiny samples (n = 4). That's mostly noise; the "best" and "worst" are usually just the smallest teams. Pool, and report uncertainty on the ranking.

Example: "how much of engagement is the manager?" Variance decomposition across individual / team / region; shrink small-team scores; an ICC of, say, 0.12 says managers matter but most variation is within-team.


5 · Causal, not predictive

You're here when: the question is "if we do X, what happens?" — does the coaching program work, does the 4-day week reduce attrition, does a pay raise retain people. You want the effect of intervening, not a correlation.

The model: a causal design first, model second — difference-in-differences, propensity weighting/matching, regression discontinuity, or an instrumental variable. State the estimand (the specific counterfactual contrast) before fitting.

Key choices: identify and adjust for confounders (why did some people get the treatment?). A randomized or quasi-random source of variation is worth more than any modelling cleverness.

Fit & check: test the design's assumptions (parallel trends for diff-in-diff; balance after matching); sensitivity analysis to unmeasured confounding.

The trap: reading a fitted coefficient as an effect. "Coached employees were promoted more" is not "coaching causes promotion" — the people chosen for coaching were already on the up. A predictive slope answers a different question than a causal one.

Example: evaluating a leadership program. Diff-in-diff on promotion rates of participants vs. a comparable non-participant group, before vs. after — not a regression of promotion on "attended program."


6 · Latent classes / mixture

You're here when: you suspect the population is a mix of unobserved types — "thrivers vs. coasters vs. at-risk," distinct engagement profiles, behavioral archetypes — rather than one homogeneous group.

The model: a finite mixture (or latent class analysis) — the data come from K subpopulations with unknown membership; you estimate each class's parameters and each person's probability of belonging to each class.

Key choices: choosing K (use predictive comparison, not just fit); handling label-switching; deciding whether classes are substantively real or just convenient.

Fit & check: does the mixture reproduce the multimodal shape of the data? Are classes stable across runs and interpretable? Compare K via cross-validation.

The trap: treating soft, uncertain class membership as hard buckets ("you ARE an at-risk employee"). Membership is probabilistic; a person can be 60/40, and acting as if they're 100% one type discards real uncertainty and can stigmatize.

Example: segmenting employees from engagement-survey patterns into latent profiles; carry the membership probabilities forward rather than assigning everyone a single persona.


7 · Choice & comparison

You're here when: the outcome is a choice among alternatives (which offer a candidate accepts, which internal role someone bids for, which benefit they pick) or a comparison ("who's the tougher interviewer," forced ranking).

The model: multinomial / conditional logit for choices among options; Bradley–Terry for pairwise comparisons (turns "A was rated above B" data into a latent ability/strictness score per item or rater).

Key choices: model attributes of both the chooser and the alternatives; decide the choice set each person actually faced.

Fit & check: posterior predictive on choice shares; for Bradley–Terry, check that estimated abilities predict held-out comparisons.

The trap: ignoring the choice set or the alternatives' attributes — modelling "what was chosen" without "what was on offer." Also, comparing raw interviewer scores without modelling the rater conflates candidate quality with rater strictness.

Example: interviewer calibration. Bradley–Terry over which candidate each interviewer rated higher recovers each interviewer's strictness, so you can adjust scores rather than penalize candidates who drew tough panels.


8 · Compositional (sum-to-one)

You're here when: the outcome is a set of proportions that must sum to 1 — how a team splits time across activities, headcount mix across functions, budget allocation, a diversity composition.

The model: treat the vector on the simplex — a Dirichlet likelihood, or transform with log-ratios (additive/centered log-ratio) and model in that space. (This is exactly the Dirichlet from Plate II — multivariate Beta.)

Key choices: which log-ratio transform / reference component; priors on the Dirichlet concentration.

Fit & check: predictions stay on the simplex (non-negative, sum to 1); posterior predictive on the component shares.

The trap: running ordinary regression on each share independently. The shares aren't independent — if one goes up another must come down — so independent models give incoherent predictions (shares that don't sum to 1, impossible negatives).

Example: modelling how engineering teams split time across build / maintenance / meetings as a function of team size and tenure mix; Dirichlet so the predicted split is always a valid composition.


Glossary

  • Offset — a known quantity (like log(headcount)) added to a count model's linear predictor so you model a rate per unit exposure, not a raw count.
  • Censoring — you know an event hasn't happened yet but not when it will; the observation is partial, not missing. Survival models use it instead of discarding it.
  • Cutpoints — the estimated thresholds in an ordinal model that divide a continuous latent scale into ordered categories.
  • Partial pooling — estimating group effects by borrowing strength across groups; each group's estimate is shrunk toward the overall mean in proportion to how little data it has.
  • ICC (intraclass correlation) — the share of total variation attributable to the grouping (e.g. the manager/team).
  • Prior predictive checkbefore fitting, simulate fake outcomes from the priors alone; if they're implausible, your "vague" prior is actually a strong, silly claim.
  • Posterior predictive check (PPC)after fitting, simulate datasets from the fitted model and compare to the real data; the main way to find where the model is wrong.
  • LOO — leave-one-out cross-validation; estimates out-of-sample predictive accuracy to compare models without overfitting to the sample.
  • R-hat / ESS / divergences — MCMC health checks: R-hat ≈ 1.00 means chains agree; effective sample size (ESS) should be in the hundreds+; divergences flag a geometry the sampler can't explore (often fixed by reparameterizing).
  • Non-centered parameterization — rewriting a hierarchical model (u = σ·z, z ~ Normal(0,1)) to remove the "funnel" that causes divergences.
  • SBC (simulation-based calibration) — validate the whole pipeline by fitting to data simulated from known parameters and checking it recovers them.
  • Estimand — the precise quantity you're after (e.g. "the average effect on promotion of assigning coaching"), stated before modelling so you know what would even count as an answer.

Plate V — From Posterior to Action

Companion to the decision poster. Plate III showed the workflow that produces a posterior; this sheet is about the two moves that come after the model is good enough: deciding what to do, and saying it to someone who never saw the model. It is where people-analytics work actually lands or dies.


Why the model is only half the job

A fitted, well-checked model hands you a posterior — a distribution over the thing you care about. It does not hand you an action. Two further steps stand between the posterior and a result, and both are routinely skipped:

  1. Decision — combine the posterior with a loss function (what each outcome costs) to choose the action with the best expected consequences. A probability is not a decision until you say what acting, or not acting, is worth.
  2. Communication — render that decision in language a non-technical stakeholder can trust and act on. A correct analysis that the decision-maker misreads is, operationally, a wrong analysis.

The running example is the attrition model worked end-to-end in Plate III: ~2,000 employees, outcome left within 12 months, a hierarchical logistic model. For one employee the posterior predictive for p(leave) has a median of 0.22 with an 80% interval of [0.11, 0.38]. Everything below starts from that distribution.


Act I — the decision calculus

1 · The posterior is the input, in full

The input to a decision is the whole distribution, not a summary of it. The median (0.22) tells you the central guess; the spread ([0.11, 0.38]) tells you how much you should hedge. Two employees with the same median but different spreads can warrant different actions — the one whose interval reaches well past your threshold is the more urgent case, and the one whose interval is wide is the better candidate for gathering information before acting.

2 · A loss function turns belief into action

Name what outcomes cost. For attrition there are two error types and they are wildly asymmetric:

They actually leave They actually stay
You reach out conversation cost c, exit possibly averted conversation cost c (small, sometimes positive)
You do nothing regretted exit cost R (≈ ½–2× salary + ramp) nothing lost

A regretted exit R dwarfs a retention conversation c. That asymmetry — not the raw probability — is what should drive the cut-off. A decision made without writing down the loss function is a decision that has silently assumed a symmetric one.

3 · Average the utility over the posterior — don't plug in the median

The expected utility of an action a integrates over your uncertainty:

E[U(a)] = ∫ U(a, θ) · p(θ | data) dθ

You compute this for each candidate action and choose the largest. Crucially you average U over the posterior, rather than evaluating U at the posterior mean. When the utility is non-linear (and asymmetric costs make it so), E[U(θ)] ≠ U(E[θ]) — plugging in the median throws away exactly the tail risk the decision is supposed to manage.

4 · The decision rule is a threshold, set by costs not by p < 0.05

For the act/don't-act case the rule reduces to a probability threshold. Reaching out beats doing nothing when its expected benefit clears its cost:

act  when   p(leave) · (value retained)  >  c
i.e. when   p(leave)  >  p*  =  c / (value retained)

The data picks the posterior; the costs pick the cut. With our numbers, a p* ≈ 0.15 means the employee at median 0.22 is comfortably over the line. There is nothing magic about 0.05 — significance thresholds answer a different question and have no business setting an operational cut-off.

5 · Sometimes the right action is to buy information

When the 80% interval straddles p*, you genuinely don't know which side of the threshold you're on. The expected-utility-maximising move may be neither "act" nor "wait" but reduce the uncertainty — a stay interview, a pulse survey, another month of data — provided the cost of that information is less than the decision swing it could produce. This is the value-of-information view, and it is why "the interval straddles the line" is an answer, not a failure.


Act II — the communication craft

The posterior is the analyst's; the decision is the stakeholder's. Communication is the bridge, and most of its failures are predictable.

1 · Lead with the decision, not the model

The first sentence is the recommended action — "I'd reach out to these twelve people this quarter." Priors, link functions, R-hat and LOO are answers to questions the stakeholder hasn't asked yet. Open with what to do; keep the method in your back pocket for when they ask "how do you know?"

2 · Numbers as natural frequencies

"Of 100 people like this, about 22 leave within a year" lands where "p = 0.22" slides off. Decades of risk-communication research show people reason far more accurately with natural frequencies (counts out of a stated whole) than with probabilities or percentages. Convert before you present, and keep the denominator fixed across comparisons.

3 · Always carry the interval

A point estimate spoken aloud is heard as a certainty. Say the range every time: "about 1 in 5 — could be as low as 1 in 9 or as high as 1 in 3." The interval is not a hedge or an apology; it is the part of the answer that tells the stakeholder how hard to lean on it. Dropping it is the single most common and most expensive miscommunication in applied modelling.

4 · Predictive ≠ causal — say it out loud

The model flags who is at risk; it does not tell you what will fix it. The coefficient on engagement is not the effect of raising engagement. State plainly that acting on a predictor is a bet, not a guarantee, and that testing whether the intervention works is a separate (causal) question. Letting a stakeholder hear "raise engagement and they'll stay" from a predictive model is a failure of communication, not just of method.

5 · Name what acting on it could break

Three failure modes belong in the same breath as the recommendation:

  • Gaming / feedback. Once people know the score exists and how it's used, the behaviour that produced the data changes, and the model decays.
  • Fairness of the action. A perfectly calibrated model can still drive disparate action across protected groups. Decide the fairness criterion deliberately, and remember that omitting a protected attribute doesn't remove its influence (proxies remain).
  • Self-fulfilling labels. Flagging someone "high flight-risk" can change how they're treated and thereby cause the exit it predicted.

The misreads to pre-empt

These are the specific wrong conclusions a stakeholder will reach unless you head them off:

  • "The model says she'll leave." No — it says roughly a 1-in-5 chance, with real uncertainty around it.
  • "0.22, so basically a quarter, so act" without ever asking what acting and not acting cost. The number doesn't decide; the loss function does.
  • "The model found that engagement drives attrition." It found a predictive association; the causal claim needs a different design.
  • "It was 0.22 last quarter and 0.19 now, so we improved." Two overlapping intervals are not a trend. Show the uncertainty before anyone reads movement into noise.

Where this sits in the series

Plate II — the genealogy of distributions. Plate III — the workflow that fits one to a question and yields a posterior. Plate IV — which model shape each decision demands. Plate V (this) — what to do with the posterior, and how to say it. It is deliberately the last plate: every earlier move exists to support a decision that someone who never saw the math has to make and own.

Possible Plate VI — By Comparison: model selection, stacking and the honest reporting of "we tried several models," which is the part of the workflow a decision-maker most often needs translated.

Gamma — hero tile

one distribution in full · open the .svg in a browser for the brush type

Gamma distribution — sumi-e brush poster tile (washi texture) A hand-inked distribution tile with multi-scale washi paper texture and ink granulation: brushstroke density curves, an enso ring, teardrop data marks, equation, parameters, moments and family ties. PLATE II • CONTINUOUS • WAITING TIMES Gamma X ∼ Gamma(k, θ) k = 2 k = 4 k = 7 01020 min Minutes until the kᵗʰ guest is seated on a quiet afternoon. Mean gap θ = 2 min · marks show 22 synthetic arrivals. DENSITY f(x) = xk−1 e−x/θ θk Γ(k) PARAMETERS k — shape, k > 0 θ — scale, θ > 0 support: x ∈ (0, ∞) MOMENTS E[X] = kθ Var[X] = kθ2 mode = (k−1)θ FAMILY TIES k = 1 → Exponential(θ) sum of k Exp(θ) → Gamma Gamma(ν/2, 2) = χ2 k → ∞ → approaches Normal

Distributions Poster — Contents Sketch

Plate II in a series on the Bayesian modeling workflow (after Gelman et al., Bayesian Data Analysis / Regression and Other Stories). This sheet plans the content; the visual language is fixed by the Gamma hero tile.


What the plate covers

A field guide to the distributions you actually reach for when specifying likelihoods and priors, drawn as a connected family rather than an alphabetical list. Each distribution gets one tile with a fixed anatomy (see below). The recommended set — broad enough to be a reference, tight enough to stay legible at arm's length on a wall:

Discrete

  • Bernoulli — single yes/no trial
  • Binomial — count of successes in n trials
  • Poisson — count of events in fixed time/space
  • Negative Binomial — count with overdispersion (Poisson–Gamma mixture)
  • Geometric — trials until first success
  • Categorical / Multinomial — counts across k outcomes

Continuous

  • Uniform — flat over an interval
  • Normal (Gaussian) — the central hub
  • Student-t — heavy-tailed Normal (robustness)
  • Cauchy — t with 1 df; weakly-informative prior staple
  • Exponential — waiting time, memoryless
  • Gamma — waiting time for the k‑th event (hero tile)
  • Beta — proportion / probability on (0,1)
  • Log-normal — positive, multiplicative
  • Weibull — time-to-failure with shape
  • Chi-squared — sum of squared Normals

Multivariate (a small upper band)

  • Multivariate Normal — correlated continuous vector
  • Dirichlet — vector of proportions (Beta generalized)

The relationship web (the edges that make it a family)

These are the connections the "relationship web" layout would draw. They're the most interesting content of the poster and worth foregrounding regardless of final layout.

From Relationship To
Bernoulli sum of n i.i.d. Binomial
Binomial n→∞, np→λ Poisson
Binomial n→∞ (CLT) Normal
Poisson mix rate over Gamma Negative Binomial
Geometric special case (1 failure) Negative Binomial
Exponential sum of k i.i.d. Gamma
Exponential = Gamma(k=1) Gamma
Gamma shape (ν/2, scale 2) Chi-squared
Gamma k→∞ (CLT) Normal
Normal ratio / 1 df Cauchy
Normal with estimated variance Student-t
Beta 2-category case of Dirichlet
Normal exp of Log-normal
Beta conjugate prior for Bernoulli / Binomial
Gamma conjugate prior for Poisson rate
Dirichlet conjugate prior for Multinomial
Normal conjugate prior for Normal mean

The conjugacy edges (last four) are what would drive the "by Bayesian role" layout — they pair each likelihood with its natural prior.


Use-case map — how each narrative supplies the example

You wanted to compare the three narrative worlds before committing. Here's the same set of distributions populated three ways, so you can see which world covers the family most naturally. (Cells show the synthetic-data story each tile would tell.)

Distribution 🍵 Tea house 🏺 Kiln / pottery 🔭 Mountain observatory
Bernoulli guest orders matcha? (y/n) does a piece survive firing? is the night clear?
Binomial matcha orders out of 20 guests survivors per kiln load clear nights per lunar month
Poisson guests arriving per hour chips/defects per glaze batch photons / meteors per minute
Neg. Binomial arrivals, busier-than-Poisson days defects clustered by clay batch meteor counts during a shower
Geometric guests until first tea-ceremony booking firings until first crack nights until first clear sky
Categorical/Multinomial tea type chosen (sencha/houji/matcha) glaze finish grade (A/B/C) object class (star/planet/galaxy)
Uniform random table assignment kiln shelf position telescope slew angle
Normal water temperature at pour kiln peak temperature measurement/instrument error
Student-t ratings with occasional outliers temperature with sensor spikes faint-source flux, heavy tails
Cauchy tip size (wild outliers) shrinkage outliers resonance line width
Exponential gap between guests time between cracks gap between detections
Gamma time until k‑th guest (hero) time until k‑th crack time until k‑th photon
Beta fraction of guests reordering pass rate of a kiln load fraction of usable frames
Log-normal bill size per table particle/grain size galaxy brightness
Weibull teapot lifespan time-to-failure of a kiln element component reliability
Chi-squared goodness-of-fit of demand model variance test on temperatures spectral fit statistic
Multivariate Normal temp & steep-time jointly shrinkage in x and y RA/Dec position errors
Dirichlet tea-type market shares grade mix across loads class proportions in a survey

Read of the three worlds: the tea house covers the discrete/waiting-time families most charmingly and suits the ink aesthetic; the observatory is strongest for measurement-error and counting (Normal, Poisson, t) and feels the most scientifically "serious"; the kiln is the most tactile and covers reliability (Weibull) best. They're not mutually exclusive — a strong option is to pick one as the spine and let two or three tiles borrow from another world where the example is irresistible.


Tile anatomy (locked by the hero)

Every tile carries, in this order: family/section eyebrow → name + parametric notation → translucent ink density/PMF plot with a synthetic-data rug → the defining equation (PDF/PMF) → parameters with support → moments (mean, variance, mode) → "family ties" line with brush arrows → a corner seal. Discrete tiles use brush-stroke stems/lollipops instead of filled washes.

Visual specification

  • Paper: warm washi #f4f0e5. Ink: sumi black #211e1a.
  • Grayscale via translucency only: layered fills at ~10 / 12 / 14% opacity; strokes at 66–90% and 1.7–2.4 px. Overlaps darken naturally — this is the whole grayscale strategy, no extra grays needed.
  • One accent option: a single vermilion seal (#9e3b2e) is the traditional move if you ever want one spot of color; the hero keeps it monochrome to honor the black-and-white brief. Easy to toggle.
  • Type: display & math in a humanist serif (recommend EB Garamond or Spectral, both free/embeddable); eyebrows & axis labels in a geometric/humanist sans with wide tracking (recommend Gill Sans, Futura, or Inter tracked +3). Math is set in serif italic.
  • Motifs: a faint enso (zen brush ring) behind the title; brush-stroke underlines; arrowheads as small ink chevrons.
  • Print: delivered as vector SVG → scales to 24×36 in with no loss; export to PDF/CMYK for the printer. For crisp math at large format, the final pass can typeset equations in LaTeX → SVG and drop them into each tile.

Suggested next step

Pick a layout and a narrative spine from the studies, and I'll build the full 24×36 plate — all ~18 tiles in the hero's style, wired into the chosen organizing logic. After that, we can template the remaining plates in the series (priors, likelihoods, model checking, workflow loop).

LPM vs. logit / probit

interactive explainer