Retrofit Analysis
SkillDev toolsAnalyze 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.
No other account needed.
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 windowscreate_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 deadbandreplace_thermostat_schedules(...)— new thermostat schedulesshift_schedule_time(schedule_name="<schedule>", shift_hours=1)— shift occupancy/HVAC schedules
Renewables:
add_rooftop_pv(fraction_of_surface=0.5)— rooftop solaradd_pv_to_shading(...)— PV on shading surfaces
Loads:
enable_ideal_air_loads()— remove HVAC for load-only studiesadd_zone_ventilation(...)— modify ventilation ratesadd_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_measureto write a custom measure (seemeasure-authoringskill)
Signals
- GitHub stars
- 33
- Forks
- 8
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
retrofit- Source
- github.com/natlabrockies/openstudio-mcp