<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Scenario Planning — Abacus Documentation</title>
    <link>/scenario-planning/index.html</link>
    <description>Use this section when you want to compare historical, manual, and optimised future plans with abacus.scenario_planner.&#xA;The scenario planner is a higher-level planning surface than the low-level optimisation wrapper. It works in total horizon spend units, returns structured comparison tables, and includes a supported workspace app for fitted runs.&#xA;Pages Supported Surface: The recommended planner entry points, fitted-run contract, persisted workspace state, and beta limits. Overview and Workflow: What the planner does, how it differs from low-level optimisation, and how scenario windows work. Scenario Specifications: The public scenario spec classes, allocation shapes, bounds, and budget distributions. Python API: How to use ScenarioPlanner.evaluate(...) and the supported workspace helpers from Python. Comparison Outputs: The structure and meaning of ScenarioResult, ScenarioComparison, and the output tables. Dash App: How to launch the supported workspace UI from a fitted run, work with saved workspaces, and understand background jobs.</description>
    <generator>Hugo</generator>
    <language>en-gb</language>
    <atom:link href="/scenario-planning/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Overview and Workflow</title>
      <link>/scenario-planning/overview-and-workflow/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/scenario-planning/overview-and-workflow/index.html</guid>
      <description>Use the scenario planner when you want to compare whole plans rather than run a single low-level optimisation call.&#xA;The planner combines three things:&#xA;typed scenario specifications a Python comparison service a supported workspace app for fitted results directories If you need the low-level optimiser instead, see Budget Optimisation.&#xA;For the supported beta entry points and current limits, see Supported Surface.&#xA;What the planner compares The retained planner supports three scenario types:</description>
    </item>
    <item>
      <title>Scenario Specifications</title>
      <link>/scenario-planning/scenario-specifications/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/scenario-planning/scenario-specifications/index.html</guid>
      <description>This page documents the public spec classes under abacus.scenario_planner.&#xA;Most users create one of the three concrete scenario specs:&#xA;CurrentScenarioSpec ManualAllocationScenarioSpec FixedBudgetOptimizedScenarioSpec Abacus also exposes shared base models such as HistoricalReferenceScenarioSpec and SimulatedScenarioSpec, but you do not normally instantiate those directly.&#xA;Shared fields All public scenario specs inherit these core fields:&#xA;Field Meaning name Display name for the scenario start_date Requested scenario start date end_date Requested scenario end date scenario_id Stable scenario key used in outputs If you do not set scenario_id, Abacus derives one by slugifying name.</description>
    </item>
    <item>
      <title>Python API</title>
      <link>/scenario-planning/python-api/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/scenario-planning/python-api/index.html</guid>
      <description>Use ScenarioPlanner when you want to evaluate one scenario or compare multiple scenarios from Python.&#xA;The public API lives under abacus.scenario_planner.&#xA;For the recommended entry points and supported beta scope, see Supported Surface.&#xA;Prerequisite ScenarioPlanner requires a fitted PanelMMM with idata.&#xA;If you construct the planner before fitting, Abacus raises ValueError.&#xA;Create a planner from abacus.scenario_planner import ScenarioPlanner planner = ScenarioPlanner(mmm) You can inspect the modelled channel names with:</description>
    </item>
    <item>
      <title>Comparison Outputs</title>
      <link>/scenario-planning/comparison-outputs/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/scenario-planning/comparison-outputs/index.html</guid>
      <description>ScenarioPlanner returns structured planning tables rather than a single optimiser object.&#xA;This page explains the output objects and the meaning of each table.&#xA;Output objects Object Produced by Tables ScenarioResult planner.evaluate(spec) totals, channels, contributions_over_time, allocation, metadata ScenarioComparison planner.compare(specs) totals, channels, contributions_over_time, allocations, metadata ScenarioComparison is a row-wise concatenation of the individual scenario results, with scenario identifiers added to every table.</description>
    </item>
    <item>
      <title>Supported Surface</title>
      <link>/scenario-planning/supported-surface/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/scenario-planning/supported-surface/index.html</guid>
      <description>Use this page to understand which Scenario Planner entry points Abacus supports for beta evaluation.&#xA;The planner has two primary surfaces:&#xA;a Python comparison API for scripted planning workflows a workspace-based Dash app for interactive scenario editing and review Recommended entry points Use these entry points in preference order.&#xA;Entry point Use it when you want to Notes ScenarioPlanner evaluate or compare scenarios from Python Best fit for notebooks, scripts, and testable planning flows python -m abacus.scenario_planner launch the supported interactive app from a fitted run directory Starts the workspace UI with file-backed persistence create_app_from_results_dir(...) embed the supported app in your own Python launcher Returns app, run_context, workspace_service, and workspace load_workspace_bundle(...) load the fitted run and active workspace without starting Dash Useful for custom wrappers around the supported app WorkspaceService work with saved workspaces programmatically Advanced surface for cloning, saving, evaluating, sweeping, and exporting Advanced integration surfaces Abacus also exposes lower-level objects such as:</description>
    </item>
    <item>
      <title>Dash App</title>
      <link>/scenario-planning/dash-app/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/scenario-planning/dash-app/index.html</guid>
      <description>Abacus includes a supported Dash app for workspace-based scenario planning.&#xA;Use it when you already have a fitted run directory and want to inspect, edit, evaluate, compare, sweep, and export scenarios without writing the entire workflow by hand.&#xA;The app does not fit PanelMMM. It loads an existing fitted run, reuses the saved idata, and evaluates planner scenarios against that fitted model.&#xA;For the recommended entry points and beta scope, see Supported Surface.</description>
    </item>
  </channel>
</rss>