{

"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Comment describing your JSON Schema",
"type": "object",
"properties": {
  "scenario_report": {
    "$ref": "#/definitions/ScenarioReport"
  },
  "feature_reports": {
    "description": "features of each data point in the scenario",
    "type": "array",
    "items": {
      "$ref": "#/definitions/FeatureReport"
    }
  }
},
"additionalProperties": false,
"definitions": {
  "ScenarioReport": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "directory_name": {
        "type": "string"
      },
      "timesteps_per_hour": {
        "$ref": "#/definitions/TimestepsPerHour"
      },
      "number_of_not_started_simulations": {
        "type": "number"
      },
      "number_of_started_simulations": {
        "type": "number"
      },
      "number_of_complete_simulations": {
        "type": "number"
      },
      "number_of_failed_simulations": {
        "type": "number"
      },
      "location": {
        "$ref": "#/definitions/Location"
      },
      "timeseries_csv": {
        "$ref": "#/definitions/TimeseriesCSV"
      },
      "program": {
        "$ref": "#/definitions/Program"
      },
      "construction_costs": {
        "$ref": "#/definitions/ConstructionCosts"
      },
      "reporting_periods": {
        "$ref": "#/definitions/ReportingPeriods"
      },
      "distributed_generation": {
        "$ref": "#/definitions/DistributedGeneration"
      },
      "thermal_storage": {
        "$ref": "#/definitions/ThermalStorage"
      },
      "rnm_results": {
        "$ref": "#/definitions/RnmResults"
      },
      "scenario_power_distribution": {
        "$ref": "#/definitions/ScenarioPowerDistribution"
      },
      "scenario_power_distribution_cost": {
        "$ref": "#/definitions/ScenarioPowerDistributionCost"
      },
      "qaqc_flags": {
        "$ref": "#/definitions/qaqc_flags"
      }
    },
    "required": [
      "id",
      "name",
      "directory_name",
      "timesteps_per_hour",
      "number_of_not_started_simulations",
      "number_of_started_simulations",
      "number_of_complete_simulations",
      "number_of_failed_simulations",
      "program"
    ],
    "additionalProperties": false
  },
  "ScenarioPowerDistribution": {
    "type": "object",
    "properties": {
      "substations": {
        "description": "Array of electrical substations",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "nominal_voltage": {
              "description": "Nominal Voltage (V)",
              "type": "number"
            }
          }
        }
      },
      "distribution_lines": {
        "description": "Array of distribution lines",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "length": {
              "description": "Length of the line (m)",
              "type": "number"
            },
            "ampacity": {
              "description": "Maximum ampacity of the line (A)",
              "type": "number"
            },
            "commercial_line_type": {
              "description": "Array of the wire types that make up the line",
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      }
    }
  },
  "ScenarioPowerDistributionCost": {
    "title": "UpgradeParamsBaseModel",
    "description": "Contains results from all jobs in the simulation.",
    "type": "object",
    "properties": {
      "results": {
        "title": "results",
        "description": "Results summary for each job",
        "type": "array",
        "items": {}
      },
      "outputs": {
        "title": "outputs",
        "description": "Outputs for each job in the simulation.",
        "allOf": [
          {
            "$ref": "#/definitions/ScenarioPowerDistributionCost/definitions/UpgradeSimulationOutputModel"
          }
        ]
      },
      "violation_summary": {
        "title": "upgrade_summary",
        "description": "Contains thermal or voltage upgrade results for each job",
        "type": "array",
        "items": {
          "$ref": "#/definitions/ScenarioPowerDistributionCost/definitions/UpgradeViolationResultModel"
        }
      },
      "costs_per_equipment": {
        "title": "costs_per_equipment",
        "description": "Contains upgrade cost information for each job by equipment type",
        "type": "array",
        "items": {
          "$ref": "#/definitions/ScenarioPowerDistributionCost/definitions/TotalUpgradeCostsResultModel"
        }
      },
      "equipment": {
        "title": "equipment",
        "description": "Contains equipment information for each job",
        "type": "array",
        "items": {}
      }
    },
    "additionalProperties": false,
    "definitions": {
      "UpgradeJobOutputModel": {
        "title": "UpgradeParamsBaseModel",
        "description": "Contains outputs from one job.",
        "type": "object",
        "properties": {
          "upgraded_opendss_model_file": {
            "title": "upgraded_opendss_model_file",
            "description": "Path to file that will load the upgraded network.",
            "type": "string"
          },
          "feeder_stats": {
            "title": "feeder_stats",
            "description": "Path to file containing feeder metadata and equipment details before and after upgrades.",
            "type": "string"
          },
          "return_code": {
            "title": "return_code",
            "description": "Return code from process. Zero is success, non-zero is a failure.",
            "type": "integer"
          }
        },
        "required": [
          "upgraded_opendss_model_file",
          "feeder_stats",
          "return_code"
        ],
        "additionalProperties": false
      },
      "UpgradeSimulationOutputModel": {
        "title": "UpgradeParamsBaseModel",
        "description": "Contains outputs from all jobs in the simulation.",
        "type": "object",
        "properties": {
          "log_file": {
            "title": "log_file",
            "description": "Path to log file for the simulation.",
            "type": "string"
          },
          "jobs": {
            "title": "jobs",
            "description": "Outputs for each job in the simulation.",
            "type": "array",
            "items": {
              "$ref": "#/definitions/ScenarioPowerDistributionCost/definitions/UpgradeJobOutputModel"
            }
          }
        },
        "required": [
          "log_file",
          "jobs"
        ],
        "additionalProperties": false
      },
      "UpgradeViolationResultModel": {
        "title": "UpgradeParamsBaseModel",
        "description": "Defines result parameters for thermal upgrades.",
        "type": "object",
        "properties": {
          "name": {
            "title": "name",
            "description": "Job name that produced the result",
            "type": "string"
          },
          "scenario": {
            "title": "scenario",
            "description": "Simulation scenario describing the controls being used",
            "default": "control_mode",
            "type": "string"
          },
          "stage": {
            "title": "stage",
            "description": "Stage of upgrades: initial (before upgrades) or final (after upgrades)",
            "type": "string"
          },
          "upgrade_type": {
            "title": "upgrade_type",
            "description": "Type of upgrade: thermal or voltage",
            "type": "string"
          },
          "simulation_time_s": {
            "title": "simulation_time_s",
            "description": "Simulation time to perform upgrades (seconds)",
            "type": "number"
          },
          "thermal_violations_present": {
            "title": "thermal_violations_present",
            "description": "Flag indicating whether thermal violations are present",
            "type": "boolean"
          },
          "voltage_violations_present": {
            "title": "voltage_violations_present",
            "description": "Flag indicating whether voltage violations are present",
            "type": "boolean"
          },
          "max_bus_voltage": {
            "title": "max_bus_voltage",
            "description": "Maximum voltage recorded on any bus",
            "units": "pu",
            "type": "number"
          },
          "min_bus_voltage": {
            "title": "min_bus_voltage",
            "description": "Minimum voltage recorded on any bus",
            "units": "pu",
            "type": "number"
          },
          "num_voltage_violation_buses": {
            "title": "num_voltage_violation_buses",
            "description": "Number of buses with voltage violations",
            "type": "integer"
          },
          "num_overvoltage_violation_buses": {
            "title": "num_overvoltage_violation_buses",
            "description": "Number of buses with voltage above voltage_upper_limit",
            "type": "integer"
          },
          "voltage_upper_limit": {
            "title": "voltage_upper_limit",
            "description": "Voltage upper limit, the threshold considered for determining overvoltages",
            "units": "pu",
            "type": "number"
          },
          "num_undervoltage_violation_buses": {
            "title": "num_undervoltage_violation_buses",
            "description": "Number of buses with voltage below voltage_lower_limit",
            "type": "integer"
          },
          "voltage_lower_limit": {
            "title": "voltage_lower_limit",
            "description": "Voltage lower limit, the threshold considered for determining undervoltages",
            "units": "pu",
            "type": "number"
          },
          "max_line_loading": {
            "title": "max_line_loading",
            "description": "Maximum line loading",
            "units": "pu",
            "type": "number"
          },
          "max_transformer_loading": {
            "title": "max_transformer_loading",
            "description": "Maximum transformer loading",
            "units": "pu",
            "type": "number"
          },
          "num_line_violations": {
            "title": "num_line_violations",
            "description": "Number of lines with loading above line upper limit",
            "type": "integer"
          },
          "line_upper_limit": {
            "title": "line_upper_limit",
            "description": "Line upper limit, the threshold considered for determining line overloading",
            "units": "pu",
            "type": "number"
          },
          "num_transformer_violations": {
            "title": "num_transformer_violations",
            "description": "Number of transformers with loading above transformer upper limit",
            "type": "integer"
          },
          "transformer_upper_limit": {
            "title": "transformer_upper_limit",
            "description": "Transformer upper limit, the threshold considered for determining transformer overloading",
            "units": "pu",
            "type": "number"
          }
        },
        "required": [
          "name",
          "stage",
          "upgrade_type",
          "simulation_time_s",
          "thermal_violations_present",
          "voltage_violations_present",
          "max_bus_voltage",
          "min_bus_voltage",
          "num_voltage_violation_buses",
          "num_overvoltage_violation_buses",
          "voltage_upper_limit",
          "num_undervoltage_violation_buses",
          "voltage_lower_limit",
          "max_line_loading",
          "max_transformer_loading",
          "num_line_violations",
          "line_upper_limit",
          "num_transformer_violations",
          "transformer_upper_limit"
        ],
        "additionalProperties": false
      },
      "TotalUpgradeCostsResultModel": {
        "title": "UpgradeParamsBaseModel",
        "description": "Provides total output costs for upgrading a type of equipment.",
        "type": "object",
        "properties": {
          "name": {
            "title": "name",
            "description": "Job name",
            "type": "string"
          },
          "type": {
            "title": "type",
            "description": "Equipment type",
            "type": "string"
          },
          "count": {
            "title": "count",
            "description": "Count of upgraded equipment",
            "type": "integer"
          },
          "total_cost_usd": {
            "title": "total_cost_usd",
            "description": "Total cost in US dollars",
            "units": "dollars",
            "type": "number"
          }
        },
        "required": [
          "name",
          "type",
          "count",
          "total_cost_usd"
        ],
        "additionalProperties": false
      }
    }
  },
  "DistributedGeneration": {
    "type": "object",
    "properties": {
      "reopt_assumptions_file_path": {
        "description": "File path of REopt assumptions file used to generate results, if known",
        "type": "string"
      },
      "annual_renewable_electricity_pct": {
        "description": "Percentage of annual renewable electricity generation",
        "type": "number"
      },
      "lcc_us_dollars": {
        "description": "Optimal lifecycle cost",
        "type": "number"
      },
      "npv_us_dollars": {
        "description": "Net present value of savings realized by the project",
        "type": "number"
      },
      "year_one_energy_cost_us_dollars": {
        "description": "Optimal year one utility energy cost",
        "type": "number"
      },
      "year_one_demand_cost_us_dollars": {
        "description": "Optimal year one utility demand cost",
        "type": "number"
      },
      "year_one_bill_us_dollars": {
        "description": "Optimal year one utility bill",
        "type": "number"
      },
      "total_energy_cost_us_dollars": {
        "description": "Total utility energy cost over the lifecycle, after-tax",
        "type": "number"
      },
      "SolarPV": {
        "$ref": "#/definitions/SolarPV"
      },
      "Wind": {
        "$ref": "#/definitions/Wind"
      },
      "Generator": {
        "$ref": "#/definitions/Generator"
      },
      "Storage": {
        "$ref": "#/definitions/Storage"
      }
    }
  },
  "SolarPV": {
    "type": "object",
    "properties": {
      "size_kw": {
        "description": "rated power in kW",
        "type": "number"
      },
      "location": {
        "description": "Location of PV. Available options are roof, ground or both.",
        "type": "string",
        "enum": [
          "roof",
          "ground",
          "both"
        ]
      },
      "tilt": {
        "description": "PV system tilt",
        "type": "number"
      },
      "azimuth": {
        "description": "PV azimuth angle",
        "type": "number"
      }
    }
  },
  "Wind": {
    "type": "object",
    "properties": {
      "size_kw": {
        "description": "rated power in kW",
        "type": "number"
      },
      "average_yearly_energy_produced_kwh": {
        "description": "average yearly energy produced in kWh",
        "type": "number"
      },
      "size_class": {
        "description": "Turbine size-class. One of [residential, commercial, medium, large]",
        "type": "string"
      }
    }
  },
  "Generator": {
    "type": "object",
    "properties": {
      "size_kw": {
        "description": "rated power in kW",
        "type": "number"
      }
    }
  },
  "Storage": {
    "type": "object",
    "properties": {
      "size_kw": {
        "description": "rated power in kW",
        "type": "number"
      },
      "size_kwh": {
        "description": "rated capacity in kWh",
        "type": "number"
      }
    }
  },
  "RnmResults": {
    "type": "object",
    "properties": {
      "demand_generation_planning": {
        "description": "Demand generation planning",
        "type": "array",
        "items": {
          "$ref": "#/definitions/DemandGenPlanning"
        }
      },
      "electrical_lines_length": {
        "$ref": "#/definitions/LineLength"
      },
      "distribution_transformers_capacity_kva": {
        "description": "Distribution transformers capacity in kVA",
        "type": "number"
      },
      "costs": {
        "description": "Costs",
        "type": "object",
        "properties": {
          "investment": {
            "$ref": "#/definitions/RnmCost"
          },
          "yearly_maintenance": {
            "$ref": "#/definitions/RnmCost"
          }
        }
      },
      "reliability_indexes": {
        "description": "Reliability Indexes",
        "type": "object",
        "properties": {
          "SAIDI": {
            "description": "System Average Interruption Duration Index",
            "type": "number"
          },
          "SAIFI": {
            "description": "System Average Interruption Frequency Index",
            "type": "number"
          }
        }
      }
    }
  },
  "DemandGenPlanning": {
    "type": "object",
    "properties": {
      "type": {
        "description": "Type of demand generation planning",
        "type": "string",
        "enum": [
          "Low Voltage (LV) Consumers",
          "Medium Voltage (MV) Consumers",
          "Low Voltage (LV) Distributed generators",
          "Medium Voltage (MV) Distributed generators"
        ]
      },
      "peak_demand_kw": {
        "description": "Peak demand in kw for this type",
        "type": "number"
      },
      "number_of_nodes_in_network": {
        "description": "Number of nodes of this type in the network",
        "type": "number"
      }
    }
  },
  "LineLength": {
    "overhead_mi": {
      "description": "Length of overhead lines (miles)",
      "type": "number"
    },
    "underground_mi": {
      "description": "Length of underground lines (miles)",
      "type": "number"
    },
    "type": "object",
    "properties": {
      "overhead_mi": {
        "description": "Length of overhead lines (miles)",
        "type": "number"
      },
      "underground_mi": {
        "description": "Length of underground lines (miles)",
        "type": "number"
      }
    }
  },
  "RnmCost": {
    "low_voltage_network": {
      "description": "Low Voltage Network Cost ($)",
      "type": "number"
    },
    "distribution_transformers": {
      "description": "Distribution Transformers Cost ($)",
      "type": "number"
    },
    "medium_voltage_network": {
      "description": "Medium Voltage Network Cost ($)",
      "type": "number"
    },
    "primary_substations": {
      "description": "Primary Substations Cost ($)",
      "type": "number"
    },
    "total": {
      "description": "Total Cost ($)",
      "type": "number"
    },
    "type": "object",
    "properties": {
      "low_voltage_network": {
        "description": "Low Voltage Network Cost ($)",
        "type": "number"
      },
      "distribution_transformers": {
        "description": "Distribution Transformers Cost ($)",
        "type": "number"
      },
      "medium_voltage_network": {
        "description": "Medium Voltage Network Cost ($)",
        "type": "number"
      },
      "primary_substations": {
        "description": "Primary Substations Cost ($)",
        "type": "number"
      },
      "total": {
        "description": "TOtal Cost ($)",
        "type": "number"
      }
    }
  },
  "qaqc_flags": {
    "type": "object",
    "properties": {
      "eui_reasonableness": {
        "description": "Whether the EUI is within ASHRAE 90.1-2013 bounds for that building type",
        "type": [
          "integer",
          "null"
        ]
      },
      "end_use_by_category": {
        "description": "Whether building energy use is within ASHRAE 90.1-2013 bounds for that building type",
        "type": [
          "integer",
          "null"
        ]
      },
      "mechanical_system_part_load_efficiency": {
        "description": "Whether 40% & 80% heating and cooling efficiency is within ASHRAE 90.1-2013 bounds for that building type",
        "type": [
          "integer",
          "null"
        ]
      },
      "simultaneous_heating_and_cooling": {
        "description": "Whether heating and cooling are occuring during the same hour when cooling load exists",
        "type": [
          "integer",
          "null"
        ]
      },
      "internal_loads": {
        "description": "Whether lighting, plug, and equipment use is within ASHRAE 90.1-2013 bounds for that building type",
        "type": [
          "integer",
          "null"
        ]
      },
      "schedules": {
        "description": "Whether lighting, ventilation, occupant, plug, and equipment schedules are within ASHRAE 90.1-2013 bounds for that building type",
        "type": [
          "integer",
          "null"
        ]
      },
      "envelope_r_value": {
        "description": "Whether building envelope is within ASHRAE 90.1-2013 bounds for that building type",
        "type": [
          "integer",
          "null"
        ]
      },
      "domestic_hot_water": {
        "description": "Whether DHW energy use is within 2011 ASHRAE handbook bounds for that building type",
        "type": [
          "integer",
          "null"
        ]
      },
      "mechanical_system_efficiency": {
        "description": "Whether heating and cooling efficiency is within ASHRAE 90.1-2013 bounds for that building type",
        "type": [
          "integer",
          "null"
        ]
      },
      "supply_and_zone_air_temperature": {
        "description": "Whether fan effectiveness is within ASHRAE 90.1-2013 bounds for that building type",
        "type": [
          "integer",
          "null"
        ]
      },
      "total_qaqc_flags": {
        "description": "How many QAQC flags have been raised for this feature or scenario",
        "type": [
          "integer",
          "null"
        ]
      }
    }
  },
  "FeatureReport": {
    "type": "object",
    "properties": {
      "id": {
        "description": "Id refers to the id of a building/feature",
        "type": "string"
      },
      "name": {
        "description": "name refers to the name of the feature (eg. Building 1, tranformer 5)",
        "type": "string"
      },
      "directory_name": {
        "type": "string"
      },
      "feature_type": {
        "type": "string",
        "enum": [
          "Building",
          "District System",
          "Transformer"
        ]
      },
      "timesteps_per_hour": {
        "$ref": "#/definitions/TimestepsPerHour"
      },
      "simulation_status": {
        "type": "string",
        "enum": [
          "Not Started",
          "Started",
          "Complete",
          "Failed"
        ]
      },
      "timeseries_csv": {
        "$ref": "#/definitions/TimeseriesCSV"
      },
      "location": {
        "$ref": "#/definitions/Location"
      },
      "program": {
        "$ref": "#/definitions/Program"
      },
      "design_parameters": {
        "$ref": "#/definitions/DesignParameters"
      },
      "construction_costs": {
        "$ref": "#/definitions/ConstructionCosts"
      },
      "reporting_periods": {
        "$ref": "#/definitions/ReportingPeriods"
      },
      "distributed_generation": {
        "$ref": "#/definitions/DistributedGeneration"
      },
      "power_distribution": {
        "$ref": "#/definitions/PowerDistribution"
      },
      "thermal_storage": {
        "$ref": "#/definitions/ThermalStorage"
      },
      "qaqc_flags": {
        "$ref": "#/definitions/qaqc_flags"
      }
    },
    "required": [
      "id",
      "name",
      "directory_name",
      "feature_type",
      "timesteps_per_hour",
      "simulation_status"
    ],
    "additionalProperties": false
  },
  "ReportingPeriods": {
    "type": "array",
    "items": {
      "$ref": "#/definitions/ReportingPeriod"
    }
  },
  "ReportingPeriod": {
    "description": "Non-overlapping reporting periods",
    "type": "object",
    "properties": {
      "id": {
        "description": "Id refers to the id of the reporting period. Ids of reporting periods are matched across simulations, so the same period of time gets the same id for all simulations.",
        "type": "number"
      },
      "name": {
        "description": "name refers to the name of the reporting period(eg. Annual, January)",
        "type": "string"
      },
      "multiplier": {
        "description": "Multiplier used if this reporting period is representative of mulitple periods.  For example one week simulation that represents entire month.",
        "type": "number",
        "default": 1
      },
      "start_date": {
        "$ref": "#/definitions/Date"
      },
      "end_date": {
        "$ref": "#/definitions/Date"
      },
      "total_site_energy_kwh": {
        "description": "Total energy used on site, does not include generation (kWh)",
        "type": "number"
      },
      "total_source_energy_kwh": {
        "description": "Total source energy used, does not include generation (kWh)",
        "type": "number"
      },
      "site_EUI_kwh_per_m2": {
        "type": "number"
      },
      "site_EUI_kBtu_per_ft2": {
        "type": "number"
      },
      "source_EUI_kwh_per_m2": {
        "type": "number"
      },
      "source_EUI_kBtu_per_ft2": {
        "type": "number"
      },
      "net_site_energy_kwh": {
        "description": "Net site energy (kWh)",
        "type": "number"
      },
      "net_source_energy_kwh": {
        "description": "Net source energy (kWh)",
        "type": "number"
      },
      "total_utility_cost_dollar": {
        "description": "Total utility cost ($)",
        "type": "number"
      },
      "net_utility_cost_dollar": {
        "description": "Net utility cost for reporting period includes generation ($)",
        "type": "number"
      },
      "utility_costs_dollar": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/UtilityCost"
        }
      },
      "electricity_kwh": {
        "description": "Sum of all electricity used, does not include electricity produced (kWh)",
        "type": "number"
      },
      "natural_gas_kwh": {
        "description": "Sum of all natural gas end uses consumption (kWh)",
        "type": "number"
      },
      "propane_kwh": {
        "description": "Sum of all propane end uses consumption (kWh)",
        "type": "number"
      },
      "fuel_oil_kwh": {
        "description": "Sum of all fuel oil #2 end uses consumption (kWh)",
        "type": "number"
      },
      "other_fuels_kwh": {
        "description": "Sum of all other (fuel oil #1, diesel, gasoline, coal, steam) fuel end uses consumption (kWh)",
        "type": "number"
      },
      "district_cooling_kwh": {
        "description": "Sum of all distric cooling end uses consumption (kWh)",
        "type": "number"
      },
      "district_heating_kwh": {
        "description": "Sum of all distric heating end uses consumption (kWh)",
        "type": "number"
      },
      "water_qbft": {
        "description": "Sum of all water end uses consumption (ft^3)",
        "type": "number"
      },
      "electricity_produced_kwh": {
        "description": "Sum of all electricity produced (kWh)",
        "type": "number"
      },
      "end_uses": {
        "$ref": "#/definitions/EndUses"
      },
      "energy_production_kwh": {
        "description": "Energy produced for reporting period.  Water reported in m^3, all others in kWh.",
        "type": "object",
        "properties": {
          "electricity_produced": {
            "type": "object",
            "properties": {
              "photovoltaic": {
                "type": "number"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "comfort_result": {
        "$ref": "#/definitions/ComfortResult"
      },
      "emissions": {
        "type": "object",
        "properties": {
          "future_annual_electricity_emissions_mt": {
            "description": "Future emissions in metric ton (mt) calculated based on an annual emission factor value for the selected future year",
            "type": "number"
          },
          "future_hourly_electricity_emissions_mt": {
            "description": "Future emissions in metric ton (mt) calculated based on hourly emission factor values for the selected future year",
            "type": "number"
          },
          "historical_annual_electricity_emissions_mt": {
            "description": "Historical emissions in metric ton (mt) calculated based on an annual emission factor value for the selected historical year",
            "type": "number"
          },
          "historical_hourly_electricity_emissions_mt": {
            "description": "Historical emissions in metric ton (mt) calculated based on hourly emission factor values for the selected historical year",
            "type": "number"
          },
          "future_annual_electricity_emissions_intensity_kg_per_ft2": {
            "description": "Future emissions intensity in kg/ft2 calculated based on an annual emission factor value for the selected future year",
            "type": "number"
          },
          "future_hourly_electricity_emissions_intensity_kg_per_ft2": {
            "description": "Future emissions intensity in kg/ft2 calculated based on hourly emission factor values for the selected future year",
            "type": "number"
          },
          "historical_annual_electricity_emissions_intensity_kg_per_ft2": {
            "description": "Historical emissions intensity in kg/ft2 calculated based on an annual emission factor value for the selected historical year",
            "type": "number"
          },
          "historical_hourly_electricity_emissions_intensity_kg_per_ft2": {
            "description": "Historical emissions intensity in kg/ft2 calculated based on hourly emission factor values for the selected historical year",
            "type": "number"
          },
          "natural_gas_emissions_mt": {
            "description": "Natural Gas emissions in mt calculated based on EPA eGRID data and calculated using 20-year GWP horizon based on ASHRAE 189.1",
            "type": "number"
          },
          "natural_gas_emissions_intensity_kg_per_ft2": {
            "description": "Natural Gas emissions intensity in kg/ft2 calculated based on EPA eGRID data and calculated using 20-year GWP horizon based on ASHRAE 189.1",
            "type": "number"
          },
          "propane_emissions_mt": {
            "description": "Propane emissions in mt calculated based on EPA eGRID data and calculated using 20-year GWP horizon based on ASHRAE 189.1",
            "type": "number"
          },
          "propane_emissions_intensity_kg_per_ft2": {
            "description": "Propane emissions intensity in kg/ft2 calculated based on EPA eGRID data and calculated using 20-year GWP horizon based on ASHRAE 189.1",
            "type": "number"
          },
          "fueloil_no2_emissions_mt": {
            "description": "FuelOilNo2 emissions in mt calculated based on EPA eGRID data and calculated using 20-year GWP horizon based on ASHRAE 189.1",
            "type": "number"
          },
          "fueloil_no2_emissions_intensity_kg_per_ft2": {
            "description": "FuelOilNo2 emissions intensity in kg/ft2 calculated based on EPA eGRID data and calculated using 20-year GWP horizon based on ASHRAE 189.1",
            "type": "number"
          }
        }
      }
    },
    "additionalProperties": false
  },
  "Date": {
    "type": "object",
    "properties": {
      "month": {
        "type": "integer"
      },
      "day_of_month": {
        "type": "integer"
      },
      "year": {
        "type": "integer"
      }
    },
    "additionalProperties": false
  },
  "EndUses": {
    "description": "End uses for reporting period.  Does not include energy produced. Water reported in m^3, all others in kWh.",
    "type": "object",
    "properties": {
      "electricity_kwh": {
        "$ref": "#/definitions/EndUse"
      },
      "natural_gas_kwh": {
        "$ref": "#/definitions/EndUse"
      },
      "propane_kwh": {
        "$ref": "#/definitions/EndUse"
      },
      "fuel_oil_kwh": {
        "$ref": "#/definitions/EndUse"
      },
      "other_fuels_kwh": {
        "$ref": "#/definitions/EndUse"
      },
      "district_cooling_kwh": {
        "$ref": "#/definitions/EndUse"
      },
      "district_heating_kwh": {
        "$ref": "#/definitions/EndUse"
      },
      "water_qbft": {
        "$ref": "#/definitions/EndUse"
      }
    },
    "additionalProperties": false
  },
  "EndUse": {
    "type": "object",
    "properties": {
      "heating": {
        "type": "number"
      },
      "cooling": {
        "type": "number"
      },
      "interior_lighting": {
        "type": "number"
      },
      "exterior_lighting": {
        "type": "number"
      },
      "interior_equipment": {
        "type": "number"
      },
      "exterior_equipment": {
        "type": "number"
      },
      "electric_vehicles": {
        "type": "number"
      },
      "fans": {
        "type": "number"
      },
      "pumps": {
        "type": "number"
      },
      "heat_rejection": {
        "type": "number"
      },
      "humidification": {
        "type": "number"
      },
      "heat_recovery": {
        "type": "number"
      },
      "water_systems": {
        "type": "number"
      },
      "refrigeration": {
        "type": "number"
      },
      "generators": {
        "type": "number"
      }
    },
    "additionalProperties": false
  },
  "ComfortResult": {
    "type": "object",
    "properties": {
      "time_setpoint_not_met_during_occupied_cooling": {
        "description": "(hrs)",
        "type": "number"
      },
      "time_setpoint_not_met_during_occupied_heating": {
        "description": "(hrs)",
        "type": "number"
      },
      "time_setpoint_not_met_during_occupied_hours": {
        "description": "(hrs)",
        "type": "number"
      },
      "hours_out_of_comfort_bounds_PMV": {
        "type": "number"
      },
      "hours_out_of_comfort_bounds_PPD": {
        "type": "number"
      }
    },
    "additionalProperties": false
  },
  "ConstructionCosts": {
    "type": "array",
    "items": {
      "$ref": "#/definitions/ConstructionCost"
    }
  },
  "ConstructionCost": {
    "description": "Program related information, does not change in time",
    "type": "object",
    "properties": {
      "category": {
        "type": "string",
        "enum": [
          "Construction",
          "Building",
          "Space",
          "ThermalZone",
          "AirLoop",
          "PlantLoop",
          "ZoneHVAC",
          "Lights",
          "Luminaire",
          "Equipment",
          "HVACComponent",
          "ZoneHVACComponent"
        ]
      },
      "item_name": {
        "description": "Name of the item being costed, e.g. the name of the exterior wall construction",
        "type": "string"
      },
      "unit_cost": {
        "description": "Cost per unit of item, e.g. cost per area of construction.  This can be adjusted in post processing.",
        "type": "number"
      },
      "cost_units": {
        "description": "Unit of cost for this item",
        "type": "string",
        "enum": [
          "CostPerEach",
          "CostPerFt2",
          "CostPerKW",
          "CostPerCFM"
        ]
      },
      "item_quantity": {
        "description": "Amount of the item in units corresponding to cost_units",
        "type": "number"
      },
      "total_cost": {
        "description": "Total cost is unit_cost multiplied by item_quantity. Can be updated if unit_cost is changed.",
        "type": "number"
      }
    },
    "additionalProperties": false
  },
  "UtilityCost": {
    "type": "object",
    "properties": {
      "fuel_type": {
        "type": "string",
        "enum": [
          "Electricity",
          "Natural Gas",
          "Propane",
          "Fuel Oil",
          "District Cooling",
          "District Heating",
          "Other Fuels",
          "Water"
        ]
      },
      "total_cost": {
        "description": "($)",
        "type": "number"
      },
      "usage_cost": {
        "description": "($)",
        "type": "number"
      },
      "demand_cost": {
        "description": "($)",
        "type": "number"
      }
    },
    "additionalProperties": false
  },
  "Location": {
    "type": "object",
    "properties": {
      "latitude_deg": {
        "description": "latitude for the centroid of the feature (deg)",
        "type": "number"
      },
      "longitude_deg": {
        "description": "longitude for the centroid of the feature (deg)",
        "type": "number"
      },
      "surface_elevation_ft": {
        "description": "The surface elevation (above NAVD88 datum) (ft).",
        "type": "number"
      },
      "weather_filename": {
        "description": "Name of EPW weather file.",
        "type": "string"
      }
    },
    "additionalProperties": false
  },
  "TimestepsPerHour": {
    "type": "integer",
    "minimum": 1,
    "maximum": 60
  },
  "Program": {
    "type": "object",
    "properties": {
      "site_area_sqft": {
        "description": "Area of the entire site or lot (ft^2)",
        "type": "number"
      },
      "floor_area_sqft": {
        "description": "Building gross floor area (ft^2)",
        "type": "number"
      },
      "conditioned_area_sqft": {
        "description": "Building conditioned floor area (ft^2)",
        "type": "number"
      },
      "unconditioned_area_sqft": {
        "description": "Building unconditioned floor area (ft^2)",
        "type": "number"
      },
      "footprint_area_sqft": {
        "description": "Building floorprint area (ft^2)",
        "type": "number"
      },
      "maximum_roof_height_ft": {
        "description": "Maximum height of the roof relative to surface elevation (ft)",
        "type": "number"
      },
      "maximum_number_of_stories": {
        "description": "The maximum number of building stories, sum of number of above and below ground stories.",
        "type": "number"
      },
      "maximum_number_of_stories_above_ground": {
        "description": "The maximum number of building stories above ground",
        "type": "number"
      },
      "parking_area_sqft": {
        "description": "Parking gross area (ft^2)",
        "type": "number"
      },
      "number_of_parking_spaces": {
        "description": "Number of parking spaces",
        "type": "number"
      },
      "number_of_parking_spaces_charging": {
        "description": "Number of parking spaces with electric vehicle charging",
        "type": "number"
      },
      "parking_footprint_area_sqft": {
        "description": "Parking floorprint area (ft^2)",
        "type": "number"
      },
      "maximum_parking_height_ft": {
        "description": "Maximum height of the parking structure relative to surface elevation (ft)",
        "type": "number"
      },
      "maximum_number_of_parking_stories": {
        "description": "The maximum number of parking stories, sum of number of above and below ground stories.",
        "type": "number"
      },
      "maximum_number_of_parking_stories_above_ground": {
        "description": "The maximum number of parking stories above ground",
        "type": "number"
      },
      "number_of_residential_units": {
        "description": "Total number of residential units.",
        "type": "integer"
      },
      "building_types": {
        "type": "array",
        "items": {
          "$ref": "#/definitions/BuildingType"
        }
      },
      "window_area_sqft": {
        "description": "Exterior windows gross area (ft^2)",
        "type": "object",
        "properties": {
          "north_window_area_sqft": {
            "type": "number"
          },
          "south_window_area_sqft": {
            "type": "number"
          },
          "east_window_area_sqft": {
            "type": "number"
          },
          "west_window_area_sqft": {
            "type": "number"
          },
          "total_window_area_sqft": {
            "type": "number"
          }
        },
        "required": [
          "total_window_area_sqft"
        ],
        "additionalProperties": false
      },
      "wall_area_sqft": {
        "description": "exterior walls gross area (ft^2)",
        "type": "object",
        "properties": {
          "north_wall_area_sqft": {
            "type": "number"
          },
          "south_wall_area_sqft": {
            "type": "number"
          },
          "east_wall_area_sqft": {
            "type": "number"
          },
          "west_wall_area_sqft": {
            "type": "number"
          },
          "total_wall_area_sqft": {
            "type": "number"
          }
        },
        "required": [
          "north_wall_area_sqft",
          "south_wall_area_sqft",
          "east_wall_area_sqft",
          "west_wall_area_sqft",
          "total_wall_area_sqft"
        ],
        "additionalProperties": false
      },
      "roof_area_sqft": {
        "type": "object",
        "properties": {
          "equipment_roof_area_sqft": {
            "type": "number"
          },
          "photovoltaic_roof_area_sqft": {
            "type": "number"
          },
          "available_roof_area_sqft": {
            "description": "gross roof area (ft^2)",
            "type": "number"
          },
          "total_roof_area_sqft": {
            "description": "Exterior roofs gross area (ft^2)",
            "type": "number"
          }
        },
        "required": [
          "total_roof_area_sqft"
        ],
        "additionalProperties": false
      },
      "orientation_deg": {
        "description": "Rotation of longest axis from East-West,about up axis (deg)",
        "type": "number"
      },
      "aspect_ratio": {
        "description": "Ratio of longest to shortest axis",
        "type": "number"
      },
      "total_construction_cost_dollar": {
        "description": "total construction cost calculated from the defined cost per floor area ($)",
        "type": "number"
      }
    },
    "required": [
      "floor_area_sqft",
      "conditioned_area_sqft",
      "unconditioned_area_sqft",
      "footprint_area_sqft",
      "maximum_roof_height_ft",
      "number_of_residential_units",
      "building_types",
      "window_area_sqft",
      "wall_area_sqft",
      "roof_area_sqft"
    ],
    "additionalProperties": false
  },
  "BuildingType": {
    "type": "object",
    "properties": {
      "building_type": {
        "description": "Primary building space type",
        "type": "string",
        "enum": [
          "Single-Family",
          "Multifamily (2 to 4 units)",
          "Multifamily (5 or more units)",
          "Mobile Home",
          "Vacant",
          "Office",
          "Laboratory",
          "Nonrefrigerated warehouse",
          "Food sales",
          "Public order and safety",
          "Outpatient health care",
          "Refrigerated warehouse",
          "Religious worship",
          "Public assembly",
          "Education",
          "Food service",
          "Inpatient health care",
          "Nursing",
          "Lodging",
          "Strip shopping mall",
          "Enclosed mall",
          "Retail other than mall",
          "Service"
        ]
      },
      "maximum_occupancy": {
        "description": "Maximum number of occupants ",
        "type": "number"
      },
      "floor_area": {
        "description": "Building gross floor area of this type (ft^2)",
        "type": "number"
      }
    },
    "required": [
      "building_type",
      "maximum_occupancy",
      "floor_area"
    ],
    "additionalProperties": false
  },
  "DesignParameters": {
    "type": "object",
    "properties": {
      "district_cooling_chilled_water_rate": {
        "type": "number"
      },
      "district_cooling_mass_flow_rate": {
        "type": "number"
      },
      "district_cooling_inlet_temperature": {
        "type": "number"
      },
      "district_cooling_outlet_temperature": {
        "type": "number"
      },
      "district_heating_hot_water_rate": {
        "type": "number"
      },
      "district_heating_mass_flow_rate": {
        "type": "number"
      },
      "district_heating_inlet_temperature": {
        "type": "number"
      },
      "district_heating_outlet_temperature": {
        "type": "number"
      }
    },
    "additionalProperties": false
  },
  "TimeseriesCSV": {
    "type": "object",
    "properties": {
      "path": {
        "type": "string"
      },
      "first_report_datetime": {
        "type": "string"
      },
      "column_names": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "required": [
      "path",
      "first_report_datetime",
      "column_names"
    ],
    "additionalProperties": false
  },
  "PowerDistribution": {
    "type": "object",
    "properties": {
      "over_voltage_hours": {
        "type": "number"
      },
      "under_voltage_hours": {
        "type": "number"
      }
    }
  },
  "ThermalStorage": {
    "type": "object",
    "properties": {
      "its_size": {
        "description": "Total central plant TES capacity in kWh",
        "type": "number"
      },
      "ptes_size": {
        "description": "Total distributed/packaged TES capacity in kWh",
        "type": "number"
      }
    }
  }
}

}