# Effective savings rate, globally and per account

> What the same usage would have cost at public on-demand rates against what it actually cost, for the organization and for each account that consumed the benefit. The rate is split into the part a negotiated agreement earns and the part commitments earn, because the public on-demand price sits above both and an account owning no commitment at all would otherwise report a healthy rate. esr_pct is the rate after idle commitment, and is null until the month is complete. months adds that many calendar months ending at period, for the organization, each payer and each account.

Source: https://docs.levelfour.ai/api-reference/commitments/get-commitments-esr


## GET /api/v1/commitments/esr

What the same usage would have cost at public on-demand rates against what it actually cost, for the organization and for each account that consumed the benefit. The rate is split into the part a negotiated agreement earns and the part commitments earn, because the public on-demand price sits above both and an account owning no commitment at all would otherwise report a healthy rate. esr_pct is the rate after idle commitment, and is null until the month is complete. months adds that many calendar months ending at period, for the organization, each payer and each account.

### Authentication

Send `Authorization: Bearer <token>`.

### Parameters

- `scope` (query, string, default `eligible`)
- `period` (query, string, nullable)
- `months` (query, integer, default `0`)

### Responses

#### 200: Successful Response

- `success` (boolean, default `true`)
- `timestamp` (date-time string)
- `data` (object, required)
  - `period` (string, nullable, required)
  - `scope` (string, required)
  - `measured_share_pct` (number, required)
  - `totals` (object, nullable, required)
    - `measured` (boolean, required)
    - `on_demand_equivalent` (number, required)
    - `effective_cost` (number, required)
    - `commitment_saved` (number, required)
    - `negotiated_saved` (number, required)
    - `total_saved` (number, required)
    - `commitment_rate_pct` (number, nullable, required)
    - `negotiated_rate_pct` (number, nullable, required)
    - `total_rate_pct` (number, nullable, required)
    - `unused_commitment_cost` (number, nullable)
    - `unused_rate_pct` (number, nullable)
    - `esr_pct` (number, nullable)
  - `accounts` (array of object, required)
    - `measured` (boolean, required)
    - `on_demand_equivalent` (number, required)
    - `effective_cost` (number, required)
    - `commitment_saved` (number, required)
    - `negotiated_saved` (number, required)
    - `total_saved` (number, required)
    - `commitment_rate_pct` (number, nullable, required)
    - `negotiated_rate_pct` (number, nullable, required)
    - `total_rate_pct` (number, nullable, required)
    - `unused_commitment_cost` (number, nullable)
    - `unused_rate_pct` (number, nullable)
    - `esr_pct` (number, nullable)
    - `account_id` (string, required)
    - `account_name` (string, required)
  - `latest_complete_period` (string, nullable)
  - `excluded_non_usd_cost` (number, default `0`)
  - `series` (array of object)
    - `measured` (boolean, required)
    - `on_demand_equivalent` (number, required)
    - `effective_cost` (number, required)
    - `commitment_saved` (number, required)
    - `negotiated_saved` (number, required)
    - `total_saved` (number, required)
    - `commitment_rate_pct` (number, nullable, required)
    - `negotiated_rate_pct` (number, nullable, required)
    - `total_rate_pct` (number, nullable, required)
    - `unused_commitment_cost` (number, nullable)
    - `unused_rate_pct` (number, nullable)
    - `esr_pct` (number, nullable)
    - `period` (string, required)
    - `complete` (boolean, required)
    - `measured_share_pct` (number, required)
  - `account_series` (array of object)
    - `account_id` (string, required)
    - `account_name` (string, required)
    - `organization_id` (string, nullable, required)
    - `months` (array of object, required)
      - `measured` (boolean, required)
      - `on_demand_equivalent` (number, required)
      - `effective_cost` (number, required)
      - `commitment_saved` (number, required)
      - `negotiated_saved` (number, required)
      - `total_saved` (number, required)
      - `commitment_rate_pct` (number, nullable, required)
      - `negotiated_rate_pct` (number, nullable, required)
      - `total_rate_pct` (number, nullable, required)
      - `unused_commitment_cost` (number, nullable)
      - `unused_rate_pct` (number, nullable)
      - `esr_pct` (number, nullable)
      - `period` (string, required)
      - `complete` (boolean, required)
  - `organizations` (array of object)
    - `organization_id` (string, nullable, required)
    - `series` (array of object, required)
      - `measured` (boolean, required)
      - `on_demand_equivalent` (number, required)
      - `effective_cost` (number, required)
      - `commitment_saved` (number, required)
      - `negotiated_saved` (number, required)
      - `total_saved` (number, required)
      - `commitment_rate_pct` (number, nullable, required)
      - `negotiated_rate_pct` (number, nullable, required)
      - `total_rate_pct` (number, nullable, required)
      - `unused_commitment_cost` (number, nullable)
      - `unused_rate_pct` (number, nullable)
      - `esr_pct` (number, nullable)
      - `period` (string, required)
      - `complete` (boolean, required)
      - `measured_share_pct` (number, required)

#### Errors

- `400`: Bad Request
- `401`: Authentication Error
- `403`: Authorization Error
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Rate Limit Exceeded
- `500`: Internal Server Error

Body of `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`:

- `success` (`false`, required)
- `error` (object, required)
  - `code` (string, required)
  - `message` (string, required)
  - `details` (any)
- `timestamp` (date-time string, required)
