# Price Ramp

> For the complete machine-readable documentation index, see [llms.txt](https://apidocs.chargebee.com/llms.txt).


Price ramp resource lets you define a stepped pricing schedule on an [item price](/docs/api/item_prices) in the Product Catalog. Each ramp is an ordered list of `ramp_intervals` that set the price for contiguous ranges of billing cycles, so new subscriptions inherit introductory or stepped pricing without custom per-subscription logic.

Here's an example to show how you can use ramp pricing:

A media streaming company offers a **Basic** monthly plan with a catalog price of $9.99. To grow acquisitions, they configure a price ramp so new subscribers start on an introductory price, then step up to full price.

**Plan**

**Currency**

**Frequency**

**Catalog price**

Basic

USD

Monthly

$9.99

**Billing cycles**

**Price charged**

**Price type**

Month 1

$0.99

Introductory ramp price

Months 2–4

$4.99

Introductory ramp price

Month 5 onwards

$9.99

Catalog price

Every new subscription on this Basic USD Monthly item price inherits the ramp automatically. In this example the final interval uses the catalog price, so the subscriber stays on $9.99 from month 5 onward. The catalog price continues only when that final interval sets `apply_catalog_price` to `true`. A final interval that sets `price` and omits `ending_billing_cycle` keeps that fixed price for the remaining billing cycles.

An interval that uses the item price's catalog price returns `apply_catalog_price` as `true`. The resolved price for every interval is always available in `price` (in the [minor unit of the currency](/docs/api/currencies)) and, when [multi-decimal pricing](/docs/api/currencies) is enabled, in `price_in_decimal`.

When a price ramp is linked to an item price, the `price_ramp_id` is exposed on the corresponding [item price](/docs/api/item_prices) object.

**See also:** For a more detailed understanding of Price Ramps, including how to configure and manage them, as well as their impact on other features, follow these resources:

-   [Price Ramps](https://www.chargebee.com/docs/billing/2.0/product-catalog/price-ramps)
-   [Configuring a Price Ramp](https://www.chargebee.com/docs/billing/2.0/product-catalog/price-ramps-configure)
-   [How Ramp Pricing works with Create Subscription](https://www.chargebee.com/docs/billing/2.0/product-catalog/price-ramps-create-subscription)
-   [How Ramp Pricing works with Hosted Checkout](https://www.chargebee.com/docs/billing/2.0/product-catalog/price-ramps-hosted-checkout)

## Sample Price-ramp

```json
{
  "price_ramp": {
    "id": "3b930dda-1444-44f1-b79b-8de01fd9c139",
    "item_price_id": "basic-USD-Monthly",
    "status": "active",
    "object": "price_ramp",
    "ramp_intervals": [
      {
        "starting_billing_cycle": 1,
        "ending_billing_cycle": 1,
        "price": 99
      },
      {
        "starting_billing_cycle": 2,
        "ending_billing_cycle": 4,
        "price": 499
      },
      {
        "starting_billing_cycle": 5,
        "apply_catalog_price": true,
        "price": 999
      }
    ],
    "resource_version": 1594110587730,
    "created_at": 1594110587,
    "updated_at": 1594110587
  }
}
```

## Price Ramp attributes

## Input Parameters

- `id` (required, string, max chars=100)
  A unique and immutable ID for the price ramp. It is auto-generated when the price ramp is created.

- `item_price_id` (required, string, max chars=100)
  The ID of the [item price](/docs/api/item_prices) whose price changes according to this ramp. An item price can be linked to at most one price ramp.

- `status` (required, enumerated string, default=active)
  The current status of the price ramp.
  Possible enum values:
    - `active`
      The price ramp is active and its ramp intervals apply to the linked item price.
    - `archived`
      The price ramp has been archived and no longer applies to the linked item price.
    - `deleted`
      The price ramp has been deleted and its link to the item price has been removed.

- `created_at` (required, timestamp(UTC) in seconds)
  Timestamp (UTC, in seconds) indicating when this price ramp was created.

- `resource_version` (optional, long)
  Version number of this resource. The `resource_version` is updated with a new timestamp in milliseconds for every change made to the resource.

- `updated_at` (optional, timestamp(UTC) in seconds)
  Timestamp (UTC, in seconds) indicating when this price ramp was last updated.

- `archived_at` (optional, timestamp(UTC) in seconds)
  Timestamp (UTC, in seconds) indicating when this price ramp was archived. Present only when `status` is `archived`.

- `business_entity_id` (optional, string, max chars=50)
  The unique ID of the [business entity](/docs/api/business_entities) of this `price_ramp`. This is applicable only when multiple business entities have been created for the site. The value of this attribute indicates that the resource is specific to the given business entity.

- `ramp_intervals` (optional, list of ramp_interval)
  The ordered list of intervals that make up the price ramp. Each interval defines the price that applies for a contiguous range of billing cycles. Adjacent intervals with the same pricing are stored as a single interval. Up to 3 intervals. The first interval starts at billing cycle `1`.
  - `starting_billing_cycle` (required, integer, min=1)
    The billing cycle at which this interval begins. The first interval starts at billing cycle `1`.
  - `ending_billing_cycle` (optional, integer, min=1)
    The billing cycle at which this interval ends. The next interval, if any, begins at the following billing cycle. When omitted for the final interval, the interval's price applies to all remaining billing cycles.
  - `apply_catalog_price` (optional, boolean, default=false)
    Indicates that the catalog price of the item price applies for this interval instead of an overridden ramp price. Returned only when its value is `true`.
  - `price` (optional, in cents, min=0)
    The price that applies for this interval, in the [minor unit of the currency](/docs/api/currencies) . This is the resolved price for the interval and is always returned.
  - `price_in_decimal` (optional, string, max chars=39)
    The price that applies for this interval, in the major (decimal) unit of the currency. Present only when [multi-decimal pricing](/docs/api/currencies) is enabled.

