<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>API Reference — Abacus Documentation</title>
    <link>/reference/index.html</link>
    <description>This section is a hand-curated reference for the retained public Abacus API.&#xA;It focuses on stable entry points that users are expected to import directly. It does not try to document every internal module under abacus.mmm.models, abacus.mmm.summarization, or abacus.pipeline.stages.&#xA;For task-oriented workflows, use the main documentation sections first. Use this reference when you need the exact import path, object name, or the scope of a public surface.&#xA;Main module groups Module Primary public surface abacus.mmm.panel PanelMMM abacus.mmm Adstock, saturation, Fourier, HSGP, and trend classes abacus.mmm.optimization PanelBudgetOptimizerWrapper and advanced optimisation helpers abacus.mmm.builders.yaml build_mmm_from_yaml(...) abacus.pipeline PipelineRunConfig, run_pipeline(...), PipelineRunResult abacus.scenario_planner Planner specs, ScenarioPlanner, ScenarioComparison abacus.data.idata MMMIDataWrapper, schema helpers, and idata utilities Pages PanelMMM: Core model import path, constructor surface, lifecycle methods, and bound properties. Post-Fit Facades: mmm.data, mmm.summary, mmm.diagnostics, mmm.plot, and direct factory imports. Transforms and Supporting Types: Adstock, saturation, Fourier, HSGP, trend, and scaling types. Optimisation API: PanelBudgetOptimizerWrapper and the exported advanced optimisation helpers. Builders and Pipeline: YAML builder, structured pipeline entry points, and run result objects. Scenario Planner API: Scenario spec classes, planner service objects, and the Dash app entry point. Additive Effects and Events: Advanced extension points for mu_effects and dated event modelling. Recommended starting points If you are building and fitting a model in code, start with PanelMMM. If you are reading fitted outputs, start with Post-Fit Facades. If you are building from YAML or running the structured runner, start with Builders and Pipeline. If you are comparing plans, start with Scenario Planner API.</description>
    <generator>Hugo</generator>
    <language>en-gb</language>
    <atom:link href="/reference/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PanelMMM</title>
      <link>/reference/panel-mmm/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/reference/panel-mmm/index.html</guid>
      <description>PanelMMM is the single retained public MMM model API in Abacus.&#xA;Import it from:&#xA;from abacus.mmm.panel import PanelMMM For conceptual guidance, see Model Overview. For data contracts, see Data Preparation.&#xA;Constructor PanelMMM(...) is keyword-only.&#xA;The main constructor arguments are:&#xA;Argument Meaning date_column Name of the date column in X channel_columns Required media columns target_column Semantic target column name target_type &#34;revenue&#34; or &#34;conversion&#34; adstock An AdstockTransformation instance saturation A SaturationTransformation instance dims Optional panel dimensions such as (&#34;geo&#34;,) control_columns Optional non-media regressors control_impacts Optional directional expectations for controls control_sign_policy &#34;soft&#34; or &#34;strict&#34; yearly_seasonality Number of yearly Fourier modes time_varying_intercept bool or an HSGPBase instance time_varying_media bool or an HSGPBase instance use_mundlak_cre Add Mundlak / correlated random effects terms scaling Scaling, a dict, or None model_config Prior and likelihood configuration sampler_config Default sampler settings adstock_first Whether adstock runs before saturation Core lifecycle methods The most commonly used methods are:</description>
    </item>
    <item>
      <title>Transforms and Supporting Types</title>
      <link>/reference/transforms-and-supporting-types/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/reference/transforms-and-supporting-types/index.html</guid>
      <description>Abacus keeps most reusable modelling primitives under abacus.mmm.&#xA;This page lists the main import groups for transformations, seasonality and trend components, HSGP helpers, and scaling types.&#xA;Top-level abacus.mmm re-exports Import these directly from abacus.mmm:&#xA;from abacus.mmm import GeometricAdstock, LogisticSaturation, YearlyFourier Adstock transformations Top-level import path:</description>
    </item>
    <item>
      <title>Post-Fit Facades</title>
      <link>/reference/post-fit-facades/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/reference/post-fit-facades/index.html</guid>
      <description>After fitting, PanelMMM exposes most read and reporting operations through bound properties:&#xA;mmm.data mmm.summary mmm.diagnostics mmm.plot These are the preferred entry points when you already have a fitted model.&#xA;mmm.data mmm.data returns MMMIDataWrapper.&#xA;Direct import path:&#xA;from abacus.data.idata import MMMIDataWrapper You can also create it explicitly with:&#xA;wrapper = MMMIDataWrapper.from_mmm(mmm) Main methods:&#xA;Method Purpose get_target(original_scale=True) Return observed target data get_channel_spend() Return observed channel spend get_posterior_predictive(original_scale=True) Return posterior predictive samples get_errors(original_scale=True) Return residual samples get_channel_contributions(original_scale=True) Return media contribution samples get_contributions(...) Return channels, baseline, controls, seasonality, and events get_elementwise_roas(original_scale=True) Contribution-over-spend ratios get_elementwise_cost_per_target(original_scale=True) Spend-over-contribution ratios get_channel_scale() Return stored channel scaling factors get_target_scale() Return stored target scaling factors to_original_scale(...) Convert a posterior variable or array to original scale to_scaled(...) Convert an original-scale array back to model scale mmm.summary mmm.summary returns MMMSummaryFactory.</description>
    </item>
    <item>
      <title>Optimisation API</title>
      <link>/reference/optimisation-api/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/reference/optimisation-api/index.html</guid>
      <description>Abacus exposes the retained optimisation surface through abacus.mmm.optimization.&#xA;For workflow guidance and interpretation, see Optimisation.&#xA;Primary wrapper Recommended import path:&#xA;from abacus.mmm.optimization import PanelBudgetOptimizerWrapper PanelBudgetOptimizerWrapper adapts a fitted PanelMMM to the generic budget optimiser.&#xA;Constructor:&#xA;wrapper = PanelBudgetOptimizerWrapper( model=mmm, start_date=&#34;2025-03-03&#34;, end_date=&#34;2025-03-31&#34;, ) Main constructor arguments:&#xA;Argument Meaning model Fitted PanelMMM start_date Optimisation window start date end_date Optimisation window end date compile_kwargs Optional compilation settings Useful attributes:</description>
    </item>
    <item>
      <title>Scenario Planner API</title>
      <link>/reference/scenario-planner-api/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/reference/scenario-planner-api/index.html</guid>
      <description>The scenario planner API lives under abacus.scenario_planner.&#xA;Use it when you want to compare current, manual, and fixed-budget optimised plans in total horizon spend units.&#xA;For workflow guidance, see Scenario Planning.&#xA;Main import path from abacus.scenario_planner import ( CurrentScenarioSpec, DataArraySpec, FixedBudgetOptimizedScenarioSpec, ManualAllocationScenarioSpec, ScenarioComparison, ScenarioPlanner, ScenarioResult, ) The package also exports shared base types:&#xA;BaseScenarioSpec HistoricalReferenceScenarioSpec SimulatedScenarioSpec ScenarioSpec Scenario spec classes Main concrete spec types:</description>
    </item>
    <item>
      <title>Builders and Pipeline</title>
      <link>/reference/builders-and-pipeline/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/reference/builders-and-pipeline/index.html</guid>
      <description>Abacus exposes one public YAML builder and one structured pipeline runner.&#xA;Use these surfaces when you want configuration-driven model construction or a staged run directory with machine-readable artefacts.&#xA;YAML builder Import path:&#xA;from abacus.mmm.builders.yaml import build_mmm_from_yaml Signature:&#xA;model = build_mmm_from_yaml( config_path, X=X, y=y, model_kwargs=None, holidays_path=None, ) Main inputs:&#xA;Argument Meaning config_path YAML file path X Optional pre-loaded feature data y Optional pre-loaded target data model_kwargs Model init overrides holidays_path Optional holiday CSV override It returns a built PanelMMM.</description>
    </item>
    <item>
      <title>Additive Effects and Events</title>
      <link>/reference/additive-effects-and-events/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/reference/additive-effects-and-events/index.html</guid>
      <description>Abacus supports advanced additive components through mu_effects and dated event surfaces.&#xA;These are extension points rather than the default modelling path, but they are part of the retained public API.&#xA;MuEffect protocol surface Import path:&#xA;from abacus.mmm.additive_effect import MuEffect MuEffect is the abstract base class for additive components appended to mmm.mu_effects.&#xA;Required methods:&#xA;Method Purpose create_data(mmm) Register any required pm.Data inputs create_effect(mmm) Return the additive contribution tensor set_data(mmm, model, X) Update the effect for new prediction data Custom effects should inherit from MuEffect so they can participate in model serialization logic.</description>
    </item>
  </channel>
</rss>