# Outputs

## Financial outputs

`REopt.add_financial_results`

— Function`Financial`

results keys:

`lcc`

Optimal lifecycle cost`lifecycle_generation_tech_capital_costs`

LCC component. Net capital costs for all generation technologies, in present value, including replacement costs and incentives. This value does not include offgrid*other*capital_costs.`lifecycle_storage_capital_costs`

LCC component. Net capital costs for all storage technologies, in present value, including replacement costs and incentives. This value does not include offgrid*other*capital_costs.`lifecycle_om_costs_after_tax`

LCC component. Present value of all O&M costs, after tax. (does not include fuel costs)`lifecycle_fuel_costs_after_tax`

LCC component. Present value of all fuel costs over the analysis period, after tax.`lifecycle_chp_standby_cost_after_tax`

LCC component. Present value of all CHP standby charges, after tax.`lifecycle_elecbill_after_tax`

LCC component. Present value of all electric utility charges, after tax.`lifecycle_production_incentive_after_tax`

LCC component. Present value of all production-based incentives, after tax.`lifecycle_offgrid_other_annual_costs_after_tax`

LCC component. Present value of offgrid*other*annual_costs over the analysis period, after tax.`lifecycle_offgrid_other_capital_costs`

LCC component. Equal to offgrid*other*capital_costs with straight line depreciation applied over analysis period. The depreciation expense is assumed to reduce the owner's taxable income.`lifecycle_outage_cost`

LCC component. Expected outage cost.`lifecycle_MG_upgrade_and_fuel_cost`

LCC component. Cost to upgrade generation and storage technologies to be included in microgrid, plus expected microgrid fuel costs, assuming outages occur in first year with specified probabilities.`lifecycle_om_costs_before_tax`

Present value of all O&M costs, before tax.`year_one_om_costs_before_tax`

Year one O&M costs, before tax.`year_one_om_costs_after_tax`

Year one O&M costs, after tax.`lifecycle_capital_costs_plus_om_after_tax`

Capital cost for all technologies plus present value of operations and maintenance over anlaysis period. This value does not include offgrid*other*capital_costs.`lifecycle_capital_costs`

Net capital costs for all technologies, in present value, including replacement costs and incentives. This value does not include offgrid*other*capital_costs.`initial_capital_costs`

Up-front capital costs for all technologies, in present value, excluding replacement costs and incentives. This value does not include offgrid*other*capital_costs.`initial_capital_costs_after_incentives`

Up-front capital costs for all technologies, in present value, excluding replacement costs, and accounting for incentives. This value does not include offgrid*other*capital_costs.`replacements_future_cost_after_tax`

Future cost of replacing storage and/or generator systems, after tax.`replacements_present_cost_after_tax`

Present value cost of replacing storage and/or generator systems, after tax.`om_and_replacement_present_cost_after_tax`

Present value of all O&M and replacement costs, after tax.`developer_om_and_replacement_present_cost_after_tax`

Present value of all O&M and replacement costs incurred by developer, after tax.`offgrid_microgrid_lcoe_dollars_per_kwh`

Levelized cost of electricity for modeled off-grid system.`lifecycle_emissions_cost_climate`

LCC component if Settings input include*climate*in_objective is true. Present value of CO2 emissions cost over the analysis period.`lifecycle_emissions_cost_health`

LCC component if Settings input include*health*in_objective is true. Present value of NOx, SO2, and PM2.5 emissions cost over the analysis period.

calculated in combine_results function if BAU scenario is run:

`breakeven_cost_of_emissions_reduction_per_tonne_CO2`

REopt performs load balances using average annual production values for technologies that include degradation. Therefore, all timeseries (`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## ElectricTariff outputs

`REopt.add_electric_tariff_results`

— Method`ElectricTariff`

results keys:

`lifecycle_energy_cost_after_tax`

lifecycle cost of energy from the grid in present value, after tax`year_one_energy_cost_before_tax`

cost of energy from the grid over the first year, before considering tax benefits`lifecycle_demand_cost_after_tax`

lifecycle cost of power from the grid in present value, after tax`year_one_demand_cost_before_tax`

cost of power from the grid over the first year, before considering tax benefits`lifecycle_fixed_cost_after_tax`

lifecycle fixed cost in present value, after tax`year_one_fixed_cost_before_tax`

fixed cost over the first year, before considering tax benefits`lifecycle_min_charge_adder_after_tax`

lifecycle minimum charge in present value, after tax`year_one_min_charge_adder_before_tax`

minimum charge over the first year, before considering tax benefits`year_one_bill_before_tax`

sum of`year_one_energy_cost_before_tax`

,`year_one_demand_cost_before_tax`

,`year_one_fixed_cost_before_tax`

,`year_one_min_charge_adder_before_tax`

, and`year_one_coincident_peak_cost_before_tax`

`lifecycle_export_benefit_after_tax`

lifecycle export credits in present value, after tax`year_one_export_benefit_before_tax`

export credits over the first year, before considering tax benefits. A positive value indicates a benefit.`lifecycle_coincident_peak_cost_after_tax`

lifecycle coincident peak charge in present value, after tax`year_one_coincident_peak_cost_before_tax`

coincident peak charge over the first year

## ElectricLoad outputs

`REopt.add_electric_load_results`

— Function`ElectricLoad`

results keys:

`load_series_kw`

vector of site load in every time step`critical_load_series_kw`

vector of site critical load in every time step`annual_calculated_kwh`

sum of the`load_series_kw`

`offgrid_load_met_series_kw`

vector of electric load met by generation techs, for off-grid scenarios only`offgrid_load_met_fraction`

percentage of total electric load met on an annual basis, for off-grid scenarios only`offgrid_annual_oper_res_required_series_kwh`

, total operating reserves required (for load and techs) on an annual basis, for off-grid scenarios only`offgrid_annual_oper_res_provided_series_kwh`

, total operating reserves provided on an annual basis, for off-grid scenarios only

REopt performs load balances using average annual production values for technologies that include degradation. Therefore, all timeseries (`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## ElectricUtility outputs

`REopt.add_electric_utility_results`

— Method`ElectricUtility`

results keys:

`annual_energy_supplied_kwh`

# Total energy supplied from the grid in an average year.`electric_to_load_series_kw`

# Vector of power drawn from the grid to serve load.`electric_to_storage_series_kw`

# Vector of power drawn from the grid to charge the battery.`annual_emissions_tonnes_CO2`

# Average annual total tons of CO2 emissions associated with the site's grid-purchased electricity. If include*exported*elec*emissions*in_total is False, this value only reflects grid purchases. Otherwise, it accounts for emissions offset from any export to the grid.`annual_emissions_tonnes_NOx`

# Average annual total tons of NOx emissions associated with the site's grid-purchased electricity. If include*exported*elec*emissions*in_total is False, this value only reflects grid purchases. Otherwise, it accounts for emissions offset from any export to the grid.`annual_emissions_tonnes_SO2`

# Average annual total tons of SO2 emissions associated with the site's grid-purchased electricity. If include*exported*elec*emissions*in_total is False, this value only reflects grid purchases. Otherwise, it accounts for emissions offset from any export to the grid.`annual_emissions_tonnes_PM25`

# Average annual total tons of PM25 emissions associated with the site's grid-purchased electricity. If include*exported*elec*emissions*in_total is False, this value only reflects grid purchsaes. Otherwise, it accounts for emissions offset from any export to the grid.`lifecycle_emissions_tonnes_CO2`

# Total tons of CO2 emissions associated with the site's grid-purchased electricity over the analysis period. If include*exported*elec*emissions*in_total is False, this value only reflects grid purchaes. Otherwise, it accounts for emissions offset from any export to the grid.`lifecycle_emissions_tonnes_NOx`

# Total tons of NOx emissions associated with the site's grid-purchased electricity over the analysis period. If include*exported*elec*emissions*in_total is False, this value only reflects grid purchaes. Otherwise, it accounts for emissions offset from any export to the grid.`lifecycle_emissions_tonnes_SO2`

# Total tons of SO2 emissions associated with the site's grid-purchased electricity over the analysis period. If include*exported*elec*emissions*in_total is False, this value only reflects grid purchaes. Otherwise, it accounts for emissions offset from any export to the grid.`lifecycle_emissions_tonnes_PM25`

# Total tons of PM2.5 emissions associated with the site's grid-purchased electricity over the analysis period. If include*exported*elec*emissions*in_total is False, this value only reflects grid purchaes. Otherwise, it accounts for emissions offset from any export to the grid.`avert_emissions_region`

# EPA AVERT region of the site. Used for health-related emissions from grid electricity (populated if default emissions values are used) and climate emissions if "co2*from*avert" is set to true.`distance_to_avert_emissions_region_meters`

# Distance in meters from the site to the nearest AVERT emissions region.`cambium_emissions_region`

# NREL Cambium region of the site. Used for climate-related emissions from grid electricity (populated only if default (Cambium) climate emissions values are used)

REopt performs load balances using average annual production values for technologies that include degradation. Therefore, all timeseries (`_series`

) and `annual_`

results should be interpretted as energy and emissions outputs averaged over the analysis period.

By default, REopt uses marginal emissions rates for grid-purchased electricity. Marginal emissions rates are most appropriate for reporting a change in emissions (avoided or increased) rather than emissions totals. It is therefore recommended that emissions results from REopt (using default marginal emissions rates) be reported as the difference in emissions between the optimized and BAU case. Note also that the annual_emissions metrics are average annual emissions over the analysis period, accounting for expected changes in future grid emissions.

## PV outputs

`REopt.add_pv_results`

— Method`PV`

results keys:

`size_kw`

Optimal PV capacity`lifecycle_om_cost_after_tax`

Lifecycle operations and maintenance cost in present value, after tax`year_one_energy_produced_kwh`

Energy produced over the first year`annual_energy_produced_kwh`

Average annual energy produced when accounting for degradation`lcoe_per_kwh`

Levelized Cost of Energy produced by the PV system`electric_to_load_series_kw`

Vector of power used to meet load over the first year`electric_to_storage_series_kw`

Vector of power used to charge the battery over the first year`electric_to_grid_series_kw`

Vector of power exported to the grid over the first year`electric_curtailed_series_kw`

Vector of power curtailed over the first year`annual_energy_exported_kwh`

Average annual energy exported to the grid`production_factor_series`

PV production factor in each time step, either provided by user or obtained from PVWatts

The key(s) used to access PV outputs in the results dictionary is determined by the `PV.name`

value to allow for modeling multiple PV options. (The default `PV.name`

is "PV".)

All outputs account for any existing PV. E.g., `size_kw`

includes existing capacity and the REopt-recommended additional capacity.

REopt performs load balances using average annual production values for technologies that include degradation. Therefore, all timeseries (`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## Wind outputs

`REopt.add_wind_results`

— Function`Wind`

results keys:

`size_kw`

Optimal Wind capacity [kW]`lifecycle_om_cost_after_tax`

Lifecycle operations and maintenance cost in present value, after tax`year_one_om_cost_before_tax`

Operations and maintenance cost in the first year, before tax benefits`electric_to_storage_series_kw`

Vector of power used to charge the battery over an average year`electric_to_grid_series_kw`

Vector of power exported to the grid over an average year`annual_energy_exported_kwh`

Average annual energy exported to the grid`electric_to_load_series_kw`

Vector of power used to meet load over an average year`annual_energy_produced_kwh`

Average annual energy produced`lcoe_per_kwh`

Levelized Cost of Energy produced by the PV system`electric_curtailed_series_kw`

Vector of power curtailed over an average year`production_factor_series`

Wind production factor in each time step, either provided by user or obtained from SAM

`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## ElectricStorage outputs

`REopt.add_electric_storage_results`

— Method`ElectricStorage`

results keys:

`size_kw`

Optimal inverter capacity`size_kwh`

Optimal storage capacity`soc_series_fraction`

Vector of normalized (0-1) state of charge values over the first year`storage_to_load_series_kw`

Vector of power used to meet load over the first year`initial_capital_cost`

Upfront capital cost for storage and inverter

**The following results are reported if storage degradation is modeled:**

`state_of_health`

`maintenance_cost`

`replacement_month`

`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## HotThermalStorage outputs

`REopt.add_hot_storage_results`

— Method`HotThermalStorage`

results keys:

`size_gal`

Optimal TES capacity, by volume [gal]`soc_series_fraction`

Vector of normalized (0-1) state of charge values over the first year [-]`storage_to_load_series_mmbtu_per_hour`

Vector of power used to meet load over the first year [MMBTU/hr]

`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## ColdThermalStorage outputs

`REopt.add_cold_storage_results`

— Method`ColdThermalStorage`

results:

`size_gal`

Optimal TES capacity, by volume [gal]`soc_series_fraction`

Vector of normalized (0-1) state of charge values over the first year [-]`storage_to_load_series_ton`

Vector of power used to meet load over the first year [ton]

## Generator outputs

`REopt.add_generator_results`

— Method`Generator`

results keys:

`size_kw`

Optimal generator capacity`lifecycle_fixed_om_cost_after_tax`

Lifecycle fixed operations and maintenance cost in present value, after tax`year_one_fixed_om_cost_before_tax`

fixed operations and maintenance cost over the first year, before considering tax benefits`lifecycle_variable_om_cost_after_tax`

Lifecycle variable operations and maintenance cost in present value, after tax`year_one_variable_om_cost_before_tax`

variable operations and maintenance cost over the first year, before considering tax benefits`lifecycle_fuel_cost_after_tax`

Lifecycle fuel cost in present value, after tax`year_one_fuel_cost_before_tax`

Fuel cost over the first year, before considering tax benefits`annual_fuel_consumption_gal`

Gallons of fuel used in each year`electric_to_storage_series_kw`

Vector of power sent to battery in an average year`electric_to_grid_series_kw`

Vector of power sent to grid in an average year`electric_to_load_series_kw`

Vector of power sent to load in an average year`annual_energy_produced_kwh`

Average annual energy produced over analysis period

`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## ExistingBoiler outputs

`REopt.add_existing_boiler_results`

— Function`ExistingBoiler`

results keys:

`fuel_consumption_series_mmbtu_per_hour`

`annual_fuel_consumption_mmbtu`

`thermal_production_series_mmbtu_per_hour`

`annual_thermal_production_mmbtu`

`thermal_to_storage_series_mmbtu_per_hour`

# Thermal power production to TES (HotThermalStorage) series [MMBtu/hr]`thermal_to_steamturbine_series_mmbtu_per_hour`

`thermal_to_load_series_mmbtu_per_hour`

`lifecycle_fuel_cost_after_tax`

`year_one_fuel_cost_before_tax`

`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## CHP outputs

`REopt.add_chp_results`

— Function`CHP`

results keys:

`size_kw`

Power capacity size of the CHP system [kW]`size_supplemental_firing_kw`

Power capacity of CHP supplementary firing system [kW]`annual_fuel_consumption_mmbtu`

Fuel consumed in a year [MMBtu]`annual_electric_production_kwh`

Electric energy produced in a year [kWh]`annual_thermal_production_mmbtu`

Thermal energy produced in a year (not including curtailed thermal) [MMBtu]`electric_production_series_kw`

Electric power production time-series array [kW]`electric_to_grid_series_kw`

Electric power exported time-series array [kW]`electric_to_storage_series_kw`

Electric power to charge the battery storage time-series array [kW]`electric_to_load_series_kw`

Electric power to serve the electric load time-series array [kW]`thermal_to_storage_series_mmbtu_per_hour`

Thermal power to TES (HotThermalStorage) time-series array [MMBtu/hr]`thermal_curtailed_series_mmbtu_per_hour`

Thermal power wasted/unused/vented time-series array [MMBtu/hr]`thermal_to_load_series_mmbtu_per_hour`

Thermal power to serve the heating load time-series array [MMBtu/hr]`thermal_to_steamturbine_series_mmbtu_per_hour`

Thermal (steam) power to steam turbine time-series array [MMBtu/hr]`year_one_fuel_cost_before_tax`

Cost of fuel consumed by the CHP system in year one [$]`lifecycle_fuel_cost_after_tax`

Present value of cost of fuel consumed by the CHP system, after tax [$]`year_one_standby_cost_before_tax`

CHP standby charges in year one [$]`lifecycle_standby_cost_after_tax`

Present value of all CHP standby charges, after tax.`thermal_production_series_mmbtu_per_hour`

`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## Boiler outputs

Missing docstring for `REopt.add_boiler_results`

. Check Documenter's build log for details.

## HeatingLoad outputs

`REopt.add_heating_load_results`

— Function`HeatingLoad`

results keys:

`dhw_thermal_load_series_mmbtu_per_hour`

vector of site thermal domestic hot water load in every time step`space_heating_thermal_load_series_mmbtu_per_hour`

vector of site thermal space heating load in every time step`process_heat_thermal_load_series_mmbtu_per_hour`

vector of site thermal process heat load in every time step`total_heating_thermal_load_series_mmbtu_per_hour`

vector of sum thermal heating load in every time step`dhw_boiler_fuel_load_series_mmbtu_per_hour`

vector of site fuel domestic hot water load in every time step`space_heating_boiler_fuel_load_series_mmbtu_per_hour`

vector of site fuel space heating load in every time step`process_heat_boiler_fuel_load_series_mmbtu_per_hour`

vector of site fuel process heat load in every time step`total_heating_thermal_load_series_mmbtu_per_hour`

vector of sum fuel heating load in every time step`annual_calculated_dhw_thermal_load_mmbtu`

sum of the`dhw_thermal_load_series_mmbtu_per_hour`

`annual_calculated_space_heating_thermal_load_mmbtu`

sum of the`space_heating_thermal_load_series_mmbtu_per_hour`

`annual_calculated_process_heat_thermal_load_mmbtu`

sum of the`process_heat_thermal_load_series_mmbtu_per_hour`

`annual_calculated_total_heating_thermal_load_mmbtu`

sum of the`total_heating_thermal_load_series_mmbtu_per_hour`

`annual_calculated_dhw_boiler_fuel_load_mmbtu`

sum of the`dhw_boiler_fuel_load_series_mmbtu_per_hour`

`annual_calculated_space_heating_boiler_fuel_load_mmbtu`

sum of the`space_heating_boiler_fuel_load_series_mmbtu_per_hour`

`annual_calculated_process_heat_boiler_fuel_load_mmbtu`

sum of the`process_heat_boiler_fuel_load_series_mmbtu_per_hour`

`annual_calculated_total_heating_boiler_fuel_load_mmbtu`

sum of the`total_heating_boiler_fuel_load_series_mmbtu_per_hour`

## CoolingLoad outputs

`REopt.add_cooling_load_results`

— Function`CoolingLoad`

results keys:

`load_series_ton`

# vector of site cooling load in every time step`annual_calculated_tonhour`

# sum of the`load_series_ton`

. Annual site total cooling load [tonhr]`electric_chiller_base_load_series_kw`

# Hourly total base load drawn from chiller [kW-electric]`annual_electric_chiller_base_load_kwh`

# Annual total base load drawn from chiller [kWh-electric]

`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.

## Uncertain Outages outputs

`REopt.add_outage_results`

— Function`Outages`

results keys:

`expected_outage_cost`

The expected outage cost over the random outages modeled.`max_outage_cost_per_outage_duration`

The maximum outage cost in every outage duration modeled.`unserved_load_series_kw`

The amount of unserved load in each outage and each time step.`unserved_load_per_outage_kwh`

The total unserved load in each outage.`storage_microgrid_upgrade_cost`

The cost to include the storage system in the microgrid.`storage_discharge_series_kw`

Array of storage power discharged in every outage modeled.`pv_microgrid_size_kw`

Optimal microgrid PV capacity. Note that the name`PV`

can change based on user provided`PV.name`

.`pv_microgrid_upgrade_cost`

The cost to include the PV system in the microgrid.`pv_to_storage_series_kw`

Array of PV power sent to the battery in every outage modeled.`pv_curtailed_series_kw`

Array of PV curtailed in every outage modeled.`pv_to_load_series_kw`

Array of PV power used to meet load in every outage modeled.`wind_microgrid_size_kw`

Optimal microgrid Wind capacity.`wind_microgrid_upgrade_cost`

The cost to include the Wind system in the microgrid.`wind_to_storage_series_kw`

Array of Wind power sent to the battery in every outage modeled.`wind_curtailed_series_kw`

Array of Wind curtailed in every outage modeled.`wind_to_load_series_kw`

Array of Wind power used to meet load in every outage modeled.`generator_microgrid_size_kw`

Optimal microgrid Generator capacity. Note that the name`Generator`

can change based on user provided`Generator.name`

.`generator_microgrid_upgrade_cost`

The cost to include the Generator system in the microgrid.`generator_to_storage_series_kw`

Array of Generator power sent to the battery in every outage modeled.`generator_curtailed_series_kw`

Array of Generator curtailed in every outage modeled.`generator_to_load_series_kw`

Array of Generator power used to meet load in every outage modeled.`generator_fuel_used_per_outage_gal`

Array of fuel used in every outage modeled, summed over all Generators.`chp_microgrid_size_kw`

Optimal microgrid CHP capacity.`chp_microgrid_upgrade_cost`

The cost to include the CHP system in the microgrid.`chp_to_storage_series_kw`

Array of CHP power sent to the battery in every outage modeled.`chp_curtailed_series_kw`

Array of CHP curtailed in every outage modeled.`chp_to_load_series_kw`

Array of CHP power used to meet load in every outage modeled.`chp_fuel_used_per_outage_mmbtu`

Array of fuel used in every outage modeled, summed over all CHPs.`microgrid_upgrade_capital_cost`

Total capital cost of including technologies in the microgrid`critical_loads_per_outage_series_kw`

Critical load series in every outage modeled`soc_series_fraction`

ElectricStorage state of charge series in every outage modeled

The output keys for "Outages" are subject to change.

`Outage`

results only added to results when multiple outages are modeled via the `ElectricUtility.outage_durations`

input.

When modeling PV the name of the PV system is used for the output keys to allow for modeling multiple PV systems. The default PV name is `PV`

.

The Outage results can be very large when many outages are modeled and can take a long time to generate.

## AbsorptionChiller outputs

`REopt.add_absorption_chiller_results`

— Function`AbsorptionChiller`

results keys:

`size_kw`

# Optimal power capacity size of the absorption chiller system [kW]`size_ton`

`thermal_to_storage_series_ton`

# Thermal production to ColdThermalStorage`thermal_to_load_series_ton`

# Thermal production to cooling load`thermal_consumption_series_mmbtu_per_hour`

`annual_thermal_consumption_mmbtu`

`annual_thermal_production_tonhour`

`electric_consumption_series_kw`

`annual_electric_consumption_kwh`

## FlexibleHVAC outputs

`REopt.add_flexible_hvac_results`

— Function`FlexibleHVAC`

results keys:

`purchased`

`temperatures_degC_node_by_time`

`upgrade_cost`

## SteamTurbine outputs

`REopt.add_steam_turbine_results`

— Function`SteamTurbine`

results keys:

`size_kw`

Power capacity size [kW]`annual_thermal_consumption_mmbtu`

Thermal (steam) consumption [MMBtu]`annual_electric_production_kwh`

Electric energy produced in a year [kWh]`annual_thermal_production_mmbtu`

Thermal energy produced in a year [MMBtu]`thermal_consumption_series_mmbtu_per_hour`

Thermal (steam) energy consumption series [MMBtu/hr]`electric_production_series_kw`

Electric power production series [kW]`electric_to_grid_series_kw`

Electric power exported to grid series [kW]`electric_to_storage_series_kw`

Electric power to charge the battery series [kW]`electric_to_load_series_kw`

Electric power to serve load series [kW]`thermal_to_storage_series_mmbtu_per_hour`

Thermal production to charge the HotThermalStorage series [MMBtu/hr]`thermal_to_load_series_mmbtu_per_hour`

Thermal production to serve the heating load SERVICES [MMBtu/hr]

`_series`

) and `annual_`

results should be interpretted as energy outputs averaged over the analysis period.