BayesianDisaggregation 0.2.1

Robustness fix to the CPI reader (debt D-7.2, settled in the OU-hierarchical Session 10).

BayesianDisaggregation 0.2.0

Complete redesign to a genuinely evidence-based method. The aggregate index now enters the estimation as a real observation density; the sectoral indices come out as a posterior with credible intervals.

Two honest Bayesian engines

Helpers: simulate_disagg() (the model’s own DGP, for recovery and examples), align_disagg_inputs() and disaggregate_from_files() (read + align CPI and VAB-weight Excel files), disagg_default_priors(), disagg_stan_code().

Removed: the entire deterministic legacy (F1–F6 audit)

The 0.1.2 “deterministic Bayesian” family never conditioned on the aggregate CPI (F1): the posterior was derived from the prior weight matrix alone, several pieces cancelled on renormalization (Dirichlet concentration F2, temporal pattern F3), the “efficiency” term was a fixed constant (F4), there were no recovery tests (F5), and robust_cor opportunistically picked the larger correlation (F6). Because that foundational defect cannot be fixed without turning the method into the new evidence-based engine, the deterministic blend was retained for one design cycle as a baseline and then removed entirely (it added nothing the two Bayesian engines do not do, honestly). Deleted: bayesian_disaggregate(), posterior_weighted/multiplicative/dirichlet/adaptive(), compute_L_from_P(), spread_likelihood(), coherence_score(), numerical_stability_exp(), temporal_stability(), stability_composite(), interpretability_score(), run_grid_search(), save_results(), and the robust_cor/kl_divergence/ total_variation/safe_div utilities.

Validation and documentation