---
title: "Tariff Optimize - Calculate Tariff-Scenario Cost"
method: POST
path: "/spark/optimized_tariffs/scenario_cost"
tags: ["Spark"]
---

# Tariff Optimize - Calculate Tariff-Scenario Cost

`POST /spark/optimized_tariffs/scenario_cost`

Calculates the “what-if” cost of a single tariff-scenario, or combination of tariff, load curve and qualifying criteria. A tariff-scenario can simulate additional devices with various operational schedules. For example, we can simulate the cost of adding an EV with basic charging, and we can compare that to another tariff-scenario where the cost on the same tariff is simulated with an EV using smart charging.

__Either utility_account_id or zip_code/main_tariff_id must be specified.__

## Headers

- `Arcadia-Version` string, required

## Request body

- TariffScenarioCostRequestParams
  - `utility_account_id` integer — (Beta - due to limited coverage) The unique ID of the utility account that this calculation is being run against. Optional if calculating costs by Genability `main_tariff_id`/`zip_code`.
  - `main_tariff_id` string — The Genability 'masterTariffId' unique identifier for this tariff. See [Genability documentation](https://developer.genability.com/api-reference/tariff-api/tariff/) for details. Must be provided if calculating costs by Genability `main_tariff_id`/`zip_code`.
  - `zip_code` string — The zip code of the scenario. Must be provided if calculating costs by Genability `main_tariff_id`/`zip_code`.
  - `applicability_answers` TariffApplicabilityAnswerSchema[] — Answers to tariff applicability questions
    - `question_id` string, required — String identifier for the applicability question
    - `value` boolean, required — User response to the tariff applicability question
    - `data_type` string, required — Type of answer expected to be returned for this tariff applicability question
  - `baseline_load` 'TYPICALS', required — A `TYPICALS` `baseline_load` uses the typical hourly energy usage for the end-user's zip code.
  - `device_loads` union[], required — List of device simulations to add additional synthetic load curves on top of the `baseline_load`
    - union
      - TariffScenarioDeviceSolarParams
        - `device` 'SOLAR', required — Identifies this device as a rooftop solar system
        - `solar_system_kw` number, required — Size of solar system in kW
      - TariffScenarioDeviceEvChargingParams — Parameters for charging level and EV operation schedule
        - `device` 'EV_CHARGING', required — A value of `EV_CHARGING` indicates a future EV purchase.
        - `charging_availability` EvChargePlan[], required — Schedule of when the car is at home and able to be charged. `BASIC` charging will simulate a charging schedule assuming charging starts at the specified window start times (for example, at 18:00 when the driver comes home). `SMART` charging will simulate a charging schedule using our Calculate Smart Charging Schedule endpoint logic to charge during the cheapest hours on this tariff in the provided windows.
          - `start_day_of_week` integer, required — Day of the week the available charging block begins. ISO format -- 1 is Monday, 7 is Sunday.
          - `start_time` string, required — Time when the EV is available to begin charging. For example, when the driver comes home in the evening.
          - `end_day_of_week` integer, required — Day of the week the available charging block ends. ISO format -- 1 is Monday, 7 is Sunday.
          - `end_time` string, required — Time when the EV is no longer available for charging. For example, when the driver leaves for their morning commute.
          - `expected_consumption_kwh` number, required — Expected kwh consumption until the next EvChargePlan residential charging event.
        - `charging_power_kw` number, required — This helps to determine the EVSE (electric vehicle supply equipment) level. 0.0 indicates no charging at home. 1.8kW or 2.4kW chargers are typical power levels for wall outlets (Level 1). 7.2kW or 9.6kW are typical charging powers for a Level 2 charger.
        - `operation_schedule` 'BASIC' | 'SMART', required — An operation schedule of `BASIC` charging will simulate a charging schedule assuming charging starts at the specified window start times (for example, at 18:00 when the driver comes home). `SMART` charging will simulate a charging schedule using our Calculate Smart Charging Schedule endpoint logic to charge during the cheapest hours on this tariff in the provided windows.
      - TariffScenarioDeviceRemovedEvChargingParams — Parameters for charging level and EV operation schedule
        - `device` 'REMOVED_EV_CHARGING' — The `REMOVED_EV_CHARGING` parameter is used to remove (disaggregate) simulated existing EV load, eg to simulate effects of adding smart charging by removing effects of basic charging.
        - `charging_availability` EvChargePlan[] — Schedule of when the car is at home and able to be charged. `BASIC` charging will simulate a charging schedule assuming charging starts at the specified window start times (for example, at 18:00 when the driver comes home). `SMART` charging will simulate a charging schedule using our Calculate Smart Charging Schedule endpoint logic to charge during the cheapest hours on this tariff in the provided windows.
          - `start_day_of_week` integer, required — Day of the week the available charging block begins. ISO format -- 1 is Monday, 7 is Sunday.
          - `start_time` string, required — Time when the EV is available to begin charging. For example, when the driver comes home in the evening.
          - `end_day_of_week` integer, required — Day of the week the available charging block ends. ISO format -- 1 is Monday, 7 is Sunday.
          - `end_time` string, required — Time when the EV is no longer available for charging. For example, when the driver leaves for their morning commute.
          - `expected_consumption_kwh` number, required — Expected kwh consumption until the next EvChargePlan residential charging event.
        - `charging_power_kw` number — This helps to determine the EVSE (electric vehicle supply equipment) level. 0.0 indicates no charging at home. 1.8kW or 2.4kW chargers are typical power levels for wall outlets (Level 1). 7.2kW or 9.6kW are typical charging powers for a Level 2 charger.
        - `operation_schedule` 'BASIC' | 'SMART' — An operation schedule of `BASIC` charging will simulate a charging schedule assuming charging starts at the specified window start times (for example, at 18:00 when the driver comes home). `SMART` charging will simulate a charging schedule using our Calculate Smart Charging Schedule endpoint logic to charge during the cheapest hours on this tariff in the provided windows.

## Response `200`

Success

- TariffScenarioCostResponse — Parameters for a rooftop solar system
  - `cost` number — Costs from multiple Tariff-Scenarios can be compared to find the optimal combination of tariff and device-scenarios. A baseline Tariff-Scenario cost can be calculated to present potential savings of each what-if Tariff-Scenario. Plug endpoints can be used to further compare to actual utility costs.
  - `start_date` string, date — The start date of the calculated simulation. If using `baseline_load=TYPICALS`, this will be one year in the past.
  - `end_date` string, date — The end date of the calculated simulation. If using `baseline_load=TYPICALS`, this will be the current time.

## Other responses

- `422` — Bad Request

---

[API](https://skmtc.dev/arcadia/apis/arcadia-api-reference.md) · [All operations](https://skmtc.dev/arcadia/apis/arcadia-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/arcadia/arcadia-api-reference/revisions/468f1c903722/schema)
