> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.solvimon.com/platform-guides/customers-and-billing/subscriptions/subscription-schedules/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.solvimon.com/_mcp/server. # Subscription schedules A subscription schedule is the period of billing or the duration for the invoice. A subscription consists of one or more schedules, each with a pricing plan version and a start and end date. There are many options for configuring subscriptions to fit what you agreed with the customer. A subscription always has 1 or more schedules, and an optional set of: * [Discounts](/platform-guides/customers-and-billing/subscriptions/schedule-configurations#discounts) * [Commitments](/platform-guides/customers-and-billing/subscriptions/schedule-configurations#minimum-usage-commitments) * [Markups](/platform-guides/customers-and-billing/subscriptions/schedule-configurations#markups) * [Included usage volumes](/platform-guides/customers-and-billing/subscriptions/schedule-configurations#included-usage-volume) * or [Seats](/platform-guides/customers-and-billing/subscriptions/schedule-configurations#seat-overrides) One can also take a pricing plan and fully customise the pricing based on the agreements you have made with your customer. Read more about pricing overrides [here](/platform-guides/customers-and-billing/subscriptions/custom-pricing). ![Subscription schedules on a subscription](/_fern-img/9d0063011b3eea30b08f3a375cc49fedd8009ab79ce82041d85d842eb2f9fc8f.webp) --- ## Creating a subscription schedule A start date is mandatory with an optional end date for the schedule which means that it renews indefinitely unless updated. An active schedule without an end date can be updated with an end date of the future. No two schedules within one subscription can overlap or leave a gap. The end date of one will be the beginning or start date of the next schedule. If the first schedule has no definitive end date, then the start date of the next schedule will set the end date of the previous schedule. ![Creating a subscription schedule](/_fern-img/d7c53d522b7a44a044a1d966b64d5877d08915daf2d1d28ece6257e90404d291.webp) --- ## Schedule status A schedule carries a `status` of either `DRAFT` or `ACTIVE`. `ACTIVE` is the default when the field is absent, so a schedule created without one behaves as it always has: live the moment it exists. | Status | Meaning | | -------- | ---------------------------------------------------- | | `DRAFT` | Stored on the subscription, not part of billing | | `ACTIVE` | In effect; bills according to its dates and pricings | Two read-only fields sit alongside it. `approval_status` reflects the approval request attached to the schedule, and `is_current` combines the schedule's date window with an `ACTIVE` status so you can tell what the customer is on today in one read. Use a draft when a change needs review before it bills. See [Draft schedules](/platform-guides/customers-and-billing/subscriptions/draft-schedules) for the full flow, the activate actions and the permissions that separate preparing a change from releasing it. --- ## Cloning subscription schedules with overrides While creating a new schedule in an active subscription, if the previous schedule has overrides, you can copy them onto the new schedule or start from scratch. ![Copying overrides onto a new schedule](/_fern-img/e1d12364b7f7f40f2dcce181c2eb30776c3c41be25cd179f13372f9c218d0e4c.webp) --- ## Tracing invoices back to schedules Invoices expose a read-only `pricing_plan_schedule_ids` field listing the schedules the invoice bills for, next to the existing `pricing_plan_subscription_ids`. It is a list because an invoice can span multiple subscriptions and can include usage and pay-in-advance fees from different schedules around a cut-over. Use it to trace every invoice line back to the schedule that produced it without expanding each line. --- ## Setting units on a one-off item A one-off pricing item priced `FLAT` bills a unit price and a quantity. The plan-level default for that quantity is `default_units` on the pricing item config. A schedule can override the quantity for one subscription with `units`, keyed on the pricing item config the same way `seats_values` is: **`Units on a schedule`** ```json Units on a schedule "units": [ { "pricing_item_config_id": "pico_5RmXe2QbtKfYuA9DcNH3P", "number": "4" } ] ``` A count of zero is valid and bills no line. Copying or migrating the schedule carries its units across. See [One-off pricing](/platform-guides/products-and-pricing/pricing-plans/one-off-pricing) for how `units` combines with `fixed_amount` and `amount` on the line. --- ## Indexing prices When a contract carries an annual uplift, you do not have to edit each price by hand. Copying a schedule can apply a percentage to every price it bills, or to a chosen subset, and return the result as a new schedule while the current one stays intact. See [Price indexation](/platform-guides/customers-and-billing/subscriptions/price-indexation) for the settings, the rounding modes and what indexation does and does not move. ---