Retrofit Analysis

SkillDev tools

Analyze energy conservation measures — apply upgrades and compare before/after performance. Use when user asks about "retrofit", "upgrade", "ECM", "energy savings", or "what-if analysis".

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Retrofit Analysis skill

What this skill tells your AI

The instructions your AI receives, as published by natlabrockies/openstudio-mcp in .claude/skills/retrofit/SKILL.md and read by ahel’s review.

Apply energy conservation measures to an existing model and compare before/after performance.

Steps

1. Establish Baseline

Ensure a simulation has been run on the current model. If not:

save_osm_model(save_name="baseline")            # response carries osm_path
run_simulation(osm_path=<osm_path from save>, epw_path="<epw>")
get_run_status(run_id=<id>)
extract_summary_metrics(run_id=<baseline_id>)

Record baseline EUI and end-use breakdown.

2. Identify Upgrade Opportunities

Inspect the model to suggest relevant ECMs:

get_building_info()
list_model_objects(object_type="Construction")
list_air_loops()
list_zone_hvac_equipment()

3. Apply Selected Measures

Ask the user which upgrades to apply. Available ECM tools:

Envelope:

  • replace_window_constructions(construction_name="Triple Low-E") — bulk replace windows
  • create_standard_opaque_material + add_layer_to_construction + assign_construction_to_surface — upgrade walls/roof (adds to the existing assembly; never rebuild it from scratch)

HVAC/Controls:

  • adjust_thermostat_setpoints(cooling_offset_f=2.0, heating_offset_f=-2.0) — widen deadband
  • replace_thermostat_schedules(...) — new thermostat schedules
  • shift_schedule_time(schedule_name="<schedule>", shift_hours=1) — shift occupancy/HVAC schedules

Renewables:

  • add_rooftop_pv(fraction_of_surface=0.5) — rooftop solar
  • add_pv_to_shading(...) — PV on shading surfaces

Loads:

  • enable_ideal_air_loads() — remove HVAC for load-only studies
  • add_zone_ventilation(...) — modify ventilation rates
  • add_ev_load(...) — add EV charging

Model Cleanup:

  • clean_unused_objects() — remove orphans before re-simulation

For typical savings ranges, fetch the catalog: get_skill_file(skill_name="retrofit", filename="ecm-catalog.md").

4. Re-Simulate

save_osm_model(save_name="retrofit")            # response carries osm_path
run_simulation(osm_path=<osm_path from save>, epw_path="<epw>")
get_run_status(run_id=<id>)
extract_summary_metrics(run_id=<retrofit_id>)
extract_end_use_breakdown(run_id=<retrofit_id>)

5. Compare Results

compare_runs(baseline_run_id=<baseline_id>, retrofit_run_id=<retrofit_id>)

Returns EUI delta, per-fuel end-use breakdown, and unmet hours change. For manual comparison, use extract_summary_metrics on both runs.

Notes

  • Always save under a new save_name before re-simulating to preserve the baseline
  • Multiple ECMs can be stacked before re-simulating
  • Some measures modify the model in-memory (thermostat, window); others run as OpenStudio measures
  • For custom ECMs not covered by existing tools, use create_measure to write a custom measure (see measure-authoring skill)

Signals

GitHub stars
33
Forks
8
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
retrofit
Source
github.com/natlabrockies/openstudio-mcp