Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Commitment Flexibility Appendix #535

Open
wants to merge 25 commits into
base: working_draft
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d751750
Initial draft
cnharris10 Aug 23, 2024
943efd7
Update commitment_discounts.md
cnharris10 Aug 24, 2024
f21c015
Incorporated a few suggestions from Shawn Alpay
cnharris10 Aug 27, 2024
e864bb5
Ignore MD031: Fenced code blocks should be surrounded by blank lines …
cnharris10 Aug 27, 2024
3fec018
Grammar fixes, calling out when Consumed{Quantity,Unit} are null, and…
cnharris10 Aug 29, 2024
788c90c
Update specification/appendix/commitment_discounts.md
cnharris10 Aug 29, 2024
93199b7
Specify that 1 resource is being modeled
cnharris10 Aug 29, 2024
f43ee82
Size flexibility Appendix
cnharris10 Aug 30, 2024
e4bd744
Update commitment_discounts.md
cnharris10 Sep 3, 2024
167f67a
Fix DateTime format
cnharris10 Sep 3, 2024
d50cbbd
Merge branch 'commitment-discount-appendix' of github.com:FinOps-Open…
cnharris10 Sep 3, 2024
8af4400
Fix DateTime format
cnharris10 Sep 3, 2024
4b2ebb0
Adding editorial changes from Michael
cnharris10 Sep 3, 2024
e7eff95
Merge branch 'commitment-discount-appendix' into size-flexibility-app…
cnharris10 Sep 3, 2024
a0d27bc
Small term/wording updates based on the evolution of pr: https://gith…
cnharris10 Sep 11, 2024
8b4d8bb
Merge branch 'commitment-discount-appendix' into size-flexibility-app…
cnharris10 Sep 11, 2024
10d065c
Small term/wording updates based on the evolution of pr: https://gith…
cnharris10 Sep 11, 2024
821d926
Rearrange property in JSON block
cnharris10 Sep 16, 2024
4e57192
Minor fixes
cnharris10 Sep 16, 2024
d5ab0a9
Merge branch 'commitment-discount-appendix' into size-flexibility-app…
cnharris10 Sep 16, 2024
7be3840
Adding 'Commitment Discount Visibility' to v1.1 Release Planning
cnharris10 Sep 30, 2024
6c9b254
Merge branch 'working_draft' of github.com:FinOps-Open-Cost-and-Usage…
cnharris10 Oct 30, 2024
86f0149
Merge branch 'working_draft' into size-flexibility-appendix
cnharris10 Oct 30, 2024
9fc11ab
Rebasing against working_draft
cnharris10 Oct 30, 2024
74fe05d
Bug fix: '{Billing,Charge}Period{Start,End}Date' should be '{Billing,…
cnharris10 Oct 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# Size-Flexibility
# Commitment Flexibility

A usage-based commitment discount obligates a customer to a usage amount for one or more related SKUs in return for reduced rates. For example, a usage-based commitment discount is purchased to cover a specific database SKU, this commitment will cover every hour over the term where at least one instance of this SKU is running. It can also cover eligible resources wholly, where 1 hour is covered by 1 resource, or partially, where 1 committed hour can be split across multiple resources or 1 resource can be fully covered with unused commitment discount costs. These latter two examples are commonly known as *size-flexibility*.
A usage-based commitment discount obligates a customer to a usage amount for one or more related SKUs in return for reduced rates. For example, a usage-based commitment discount is purchased to cover a specific database SKU, this commitment will cover every hour over the term where at least one instance of this SKU is running. It can also cover eligible resources wholly, where 1 hour is covered by 1 resource, or partially, where 1 committed hour can be split across multiple resources or 1 resource can be fully covered with unused commitment discount costs. These latter two examples are commonly known as *commitment flexibility*.

Since providers have different rules for when size-flexibility is or is not enabled, the following, fictitious SKU pricing attributes will be used in each example below, and each example will be categorized under size-flexibility enabled or disabled sections.
When mixing usage-based commitment discounts with and without commitment flexibility with `CommitmentDiscountQuantity` measured by time, it is important to differentiate the `CommitmentDiscountUnit` for each type of commitment discount. In each scenario below, commitment discounts *without* commitment flexibility applied use "Hour" as a `CommitmentDiscountUnit`, and conversely commitment discounts *with* commitment flexibility use "Normalized Hour" as a `CommitmentDiscountUnit`.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paragraph was added to highlight the importance of using different units for commitment discounts with/without commitment flexibility

Since providers have different rules for when commitment flexibility is or is not enabled, the following, fictitious SKU pricing attributes will be used in each example below, and each example will be categorized under commitment flexibility enabled or disabled sections.

## SKUs & Rates

Expand All @@ -13,9 +15,9 @@ Since providers have different rules for when size-flexibility is or is not enab
| TinyCloud | Compute | VM_Large | $2.00 | $1.00 | 4 |
| TinyCloud | Compute | VM_XLarge | $4.00 | $2.00 | 8 |

The above, fictitious SKU pricing attributes show that this provider, *TinyCloud*, only has 1 service that offers 4 virtual machine SKUs with various list rates, committed rates, and normalization factors. Each SKU's normalization factor classifies its relative size to its committed rate. Usage-based commitment discounts with size-flexibility can fully cover any combination of 1 or more SKUs where the sum of their normalization factor equals the normalization factor of the commitment discount.
The above, fictitious SKU pricing attributes show that this provider, *TinyCloud*, only has 1 service that offers 4 virtual machine SKUs with various list rates, committed rates, and normalization factors. Each SKU's normalization factor classifies its relative size to its committed rate. Usage-based commitment discounts with commitment flexibility can fully cover any combination of 1 or more SKUs where the sum of their normalization factor equals the normalization factor of the commitment discount.

### Scenarios *without* size-flexibility
### Scenarios *without* commitment flexibility

#### Scenario #1: 100% utilization with matching resources

Expand Down Expand Up @@ -97,14 +99,14 @@ The VM_Large commitment discount is unused because no VM_Large resources are run
]
```

### Scenarios *with* size-flexibility
### Scenarios *with* commitment flexibility

#### Scenario #1: 100% utilization with 2 VM_medium resources

Purchase: 1 commitment discount purchased for 1 year (2023) for 1 VM_XLarge with a normalization factor of 8.
Usage: 2 VM_Medium resources run from 2023-01-01T00:00:00 to 2023-01-01T01:00:00 with a normalization factor of 4 for each resource.

1 commitment discount for a VM_XLarge has a normalization factor of 8, and 2 VM_Medium resources have a normalization factor of 4, each. Therefore, with size-flexibility, 1 VM_XLarge commitment discount can fully cover 2 VM_Medium resources resulting in a $2 amortized cost.
1 commitment discount for a VM_XLarge has a normalization factor of 8, and 2 VM_Medium resources have a normalization factor of 4, each. With commitment flexibility, 1 VM_XLarge commitment discount can fully cover 2 VM_Medium resources resulting in a $2 amortized cost.

```json
[
Expand Down
Loading