Skip to content

Commit

Permalink
Initial draft
Browse files Browse the repository at this point in the history
  • Loading branch information
cnharris10 committed Aug 23, 2024
1 parent 1ff49ca commit 2652dbc
Showing 1 changed file with 145 additions and 0 deletions.
145 changes: 145 additions & 0 deletions specification/appendix/commitment_discounts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# Commitment Discounts

A commitment discount is a billing discount that offers reduced rates on preselected SKUs in exchange for an obligated usage or spend amount over a predefined term. Within cost and usage datasets, commitment discounts typically consist of a set of purchases and usage records.

# Commitment Breakdown

## Purchases

While customers are bound to the term of a commitment discount, cloud-service providers, or CSPs, offer various payment options before and/or during the term:

* In-Advance - The commitment discount is paid in full before the term begins
* Monthly - The commitment discount is paid monthly over the term.
* Hybrid (In-Advance & Monthly) - Half of the commitment discount is paid in-advance and half is paid monthly over the term.

For example, if a customer buys a spend-based commitment discount for 1 year, with a $1 hourly commitment, and pays with the hybrid option, their purchase schedule is:

* In-Advance: $4,380 (24 hours * 365 days * $1 * 0.5)
* Monthly: $182.50 (24 hours * 365 days * $1 / 12 months)

## Usage

Commitment discounts follow a "use-it-or-lose-it" model where the amortization of a commitment discount's purchase applies evenly over each charge period (typically hourly) over the term.

For example, if a customer buys a spend-based commitment with a $1 hourly commitment in January (31 days), only $1 is eligible for amortization for each hourly charge period. This means that if I have eligible resources running during this charge period, some or all of the $1 allocated to the charge period will be also be allocated to one or more resources. Conversely, if I don't have eligible resources running during this charge period, the $1 allocated to the charge period is wasted.

# FOCUS

Within the FOCUS spec, the following examples demonstrate how a commitment discount would appear across various payment and amortization scenarios.

## Purchases

While a one-time purchase has 1 row, recurring purchases are spread out evenly over all charge periods of the term. Using the same example as above, a one-year, spend-based commitment discount with a $1 hourly commitment purchased on Jan 1, 2023 can be the following.

## In-Advance

The entire commitment is billed _once_ during the first charge period of the term for $8,670 (24 hours * 365 days * $1).

```
[{
"BillingPeriodStartDate": "2023-01-01 00:00:00Z",
"BillingPeriodEndDate": "2024-01-01 00:00:00Z",
"ChargePeriodStartDate": "2023-01-01 00:00:00Z",
"ChargePeriodEndDate": "2024-01-01 00:00:00Z",
"ChargeCategory": "Purchase",
"ChargeFrequency": "One-Time",
"PricingCategory": "Committed",
"ResourceId": "<commitment-discount-id>",
"BilledCost": 8760.00,
"EffectiveCost": 0.00,
"CommitmentDiscountId": "<commitment-discount-id>",
"CommitmentDiscountPurchasedQuantity": 1.00,
"CommitmentDiscountUnit": "USD"
}]
```

## Monthly

The commitment is billed across all 8,760 charge periods of the term.

```
[
{
"BillingPeriodStartDate": "2023-01-01 00:00:00Z",
"BillingPeriodEndDate": "2024-01-01 00:00:00Z",
"ChargePeriodStartDate": "2023-01-01 00:00:00Z",
"ChargePeriodEndDate": "2023-01-01 01:00:00Z",
"ChargeCategory": "Purchase",
"ChargeFrequency": "Recurring",
"PricingCategory": "Committed",
"ResourceId": "<commitment-discount-id>",
"BilledCost": 1.00,
"EffectiveCost": 0.00,
"CommitmentDiscountId": "<commitment-discount-id>",
"CommitmentDiscountPurchasedQuantity": 1.00,
"CommitmentDiscountUnit": "USD"
},
...
]
```

## Hybrid (In-Advance & Monthly)

Half of the commitment is billed _once_ during the first charge period of the term _and_ the other half is billed across all 8,760 charge periods of the term.

```
[
{
"BillingPeriodStartDate": "2023-01-01 00:00:00Z",
"BillingPeriodEndDate": "2024-01-01 00:00:00Z",
"ChargePeriodStartDate": "2023-01-01 00:00:00Z",
"ChargePeriodEndDate": "2024-01-01 00:00:00Z",
"ChargeCategory": "Purchase",
"ChargeFrequency": "One-Time",
"PricingCategory": "Committed",
"ResourceId": "<commitment-discount-id>",
"BilledCost": 1.00,
"EffectiveCost": 0.00,
"CommitmentDiscountId": "<commitment-discount-id>",
"CommitmentDiscountPurchasedQuantity": 0.50,
"CommitmentDiscountUnit": "USD"
},
{
"BillingPeriodStartDate": "2023-01-01 00:00:00Z",
"BillingPeriodEndDate": "2024-01-01 00:00:00Z",
"ChargePeriodStartDate": "2023-01-01 00:00:00Z",
"ChargePeriodEndDate": "2024-01-01 00:00:00Z",
"ChargeCategory": "Purchase",
"ChargeFrequency": "Recurring",
"PricingCategory": "Committed",
"ResourceId": "<commitment-discount-id>",
"BilledCost": 1.00,
"EffectiveCost": 0.00,
"CommitmentDiscountId": "<commitment-discount-id>",
"CommitmentDiscountPurchasedQuantity": 0.50,
"CommitmentDiscountUnit": "USD"
},
...
]
```

## Usage
























0 comments on commit 2652dbc

Please sign in to comment.