FAQ
Does the library fit Bayesian random-effects models with PyMC?
Yes. The default model is a Bayesian normal-normal random-effects meta-analysis in PyMC. Random effects are a sensible default for comparable marketing measurement studies because campaigns, markets, periods, execution, and measurement designs often differ.
When should studies not be pooled?
Do not pool studies just because they share a broad label such as “sales uplift” or “awareness”. Pool only when the estimand, scale, population, measurement window, and study design are comparable enough for a pooled effect to mean something.
MMM, PA2, ROI, CPA, CPO, and iROAS should usually be triangulated rather than pooled unless harmonised explicitly upstream.
How many studies are enough?
There is no universal threshold. With two studies, random-effects meta-analysis is usually not recommended. With three to five studies, the pooled estimate can be useful but should be treated as directional and prior-sensitive.
By default, config runs require at least three comparable rows for an exploratory
directional run and at least four for ready.
Where do priors come from?
Priors should come from defensible external information and explicit scale calibration, not from tuning the model until the result looks convenient.
Defaults are scale-aware:
log_relative:mu_sd=1.0,tau_scale=0.5percentage_point:mu_sd=10.0,tau_scale=5.0
For serious reporting, set and justify priors in YAML and run prior sensitivity.
Why not use LOO by default?
LOO can be useful with enough independent studies, but it is easy to over-read at very small K. In the main use case, readiness checks, sampler diagnostics, prior sensitivity, and posterior predictive checks are more useful first-line review tools.