is it the model or the questions?

When a tracked number moves there are three candidate explanations: the model answered differently this time, the prompt set happens to be a small sample of all the things buyers ask, or something real changed. A dashboard that reports one number cannot tell them apart. This estimates the first two, so that the third becomes a claim that can be tested instead of assumed.

how is the wobble split?

With the standard one-way random effects decomposition, the prompt as the grouping factor. The within-prompt variance is the model rerunning itself and disagreeing. The between-prompt variance is genuine prompt-to-prompt difference. Published measurement finds the first can exceed the second, which is exactly why running each prompt once and bootstrapping over prompts understates the uncertainty.

what is the noise floor?

The smallest movement this measurement design can distinguish from nothing. Anything under it is not a finding.

should the next dollar buy repeats or prompts?

It depends on the split, which is why the answer cannot be a fixed k. When between-prompt variance dominates, repeats buy almost nothing and prompts buy everything. There is a share of real prompt-to-prompt difference past which no number of repeats reaches the target at all, because repeats only ever shrink the within term. runs_needed returns "unreachable, add prompts" in that regime, and saying so is more useful than returning a large k.

what does it look like from python?

mirror/variance.py, with no key and no network:

y_ij = mu + a_i + e_ij,   a_i ~ (0, s2_between),  e_ij ~ (0, s2_within)

what does it export?

Every public name in lulumelon.mirror.variance that its source says something about, with the first paragraph of what it says.

VarianceSplit ± Where the wobble in a measured mean actually comes from.
decompose(clusters, confidence=0.95) ± Split observed variance into within-prompt and between-prompt parts.
DesignRequirement ± What a measurement design must be to reach a stated precision.
runs_needed(split, target_half_width, *, n_prompts=None, confidence=None, max_k=1000) ± How many repeats per prompt to reach a target precision.
prompts_needed(split, target_half_width, *, k_runs, confidence=None, max_n=100000) ± How many prompts to reach a target precision at a fixed repeat count.

which commands reach it?