Prioritized action plan
camber.actionplan fuses three layers into one operator punch list: what's wrong (FDD
findings), what it costs (camber.fault_economics), and what to do (camber.aso). Each
actionable finding becomes an ActionItem with its estimated annual dollar impact and its advisory
recommendation, ranked worst-dollars-first (severity breaks ties).
flowchart LR
findings["FDD findings"] --> bap["build_action_plan"]
econ["fault_economics ($/yr)"] --> bap
aso["aso (what to do)"] --> bap
bap --> item["ActionItem (equip, rule, cost, recommendation)"]
item --> rank["rank worst-dollars-first (severity ties)"]
rank --> plan["prioritized action plan"]
plan --> out["action_plan_html / audit report section"]
Three layers fuse per finding, then rank into one prioritized punch list.
from camber.actionplan import build_action_plan, action_plan_html
from camber.fault_economics import EnergyPrice, EquipmentLoad
plan = build_action_plan(
findings,
loads={"AHU-1": EquipmentLoad(heating_capacity_kbtuh=200)},
price=EnergyPrice(electricity_per_kwh=0.15),
)
for a in plan:
print(
a.severity,
a.equip,
a.rule,
f"${a.annual_cost_usd:,.0f}",
"→",
a.recommendation.title if a.recommendation else "",
)
Each ActionItem: equip, rule, severity, annual_cost_usd, costed (False when sizing is
missing — the dollar figure is then omitted, never fabricated), recommendation (a
camber.aso.Recommendation or None), and the source finding. action_plan_rows(plan) gives
JSON/table rows; action_plan_html(plan) a self-contained table. Flags: loads, price, params
(cost models), aso_params (recommendation targets), min_severity, costed_only.
In the audit report
AuditReport.to_html(recommend=True, loads=…, price=…) appends a Recommended actions section
(the same ranked plan) beneath the findings; AuditReport.action_plan(...) returns the items
directly. Everything stays advisory and read-only toward the BAS.
In config-driven runs
A declarative run can emit the action plan too: set "recommend": true (and optionally
"price": {"electricity_per_kwh": 0.15}) in the config's report block, and the HTML report
(out_html) includes the ranked Recommended actions section.