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 Discount Appendix #528

Merged
merged 25 commits into from
Sep 20, 2024
Merged

Conversation

cnharris10
Copy link
Contributor

@cnharris10 cnharris10 commented Aug 24, 2024

An appendix detailing how various commitment discount purchases and usage records are modeled through various examples.

@cnharris10 cnharris10 force-pushed the commitment-discount-appendix branch 3 times, most recently from 50af97a to 9228f59 Compare August 24, 2024 01:28
@cnharris10 cnharris10 added this to the v1.1 milestone Aug 24, 2024
@cnharris10 cnharris10 changed the title Initial draft Commitment Discount Appendix Aug 24, 2024
@cnharris10 cnharris10 force-pushed the commitment-discount-appendix branch 6 times, most recently from 478a5dc to 729ba5b Compare August 24, 2024 01:43
@cnharris10 cnharris10 marked this pull request as ready for review August 24, 2024 02:02
@cnharris10 cnharris10 requested a review from a team as a code owner August 24, 2024 02:02
@cnharris10 cnharris10 force-pushed the commitment-discount-appendix branch 5 times, most recently from 583d30d to 27e1622 Compare August 24, 2024 12:26
…-Cost-and-Usage-Spec/FOCUS_Spec into commitment-discount-appendix
jpradocueva pushed a commit that referenced this pull request Sep 12, 2024
…arately from consumed quantity/unit columns (#400)

**Lead Maintainers**: Chris Harris, @cnharris10, Irena Jurica, @ijurica
### Documents: 
* **PR**:
[#400](#400)
Commitment Utilization and Normalization
* **PR**:
[#524](#524)
rename Commitment-Based Discount to Commitment-Discount by
[christopher.harris@datadoghq.com](mailto:christopher.harris@datadoghq.com)
* [Usage vs Pricing Quantity and unit
examples](https://docs.google.com/spreadsheets/d/1zA0brhrEntfWlzt5VNcNLBFnKPEiarajTF84o4ATeEw/edit?gid=1705742856#gid=1705742856)
*
[24.07.21-CommitmentUtilization-sample-datasets](https://docs.google.com/spreadsheets/d/1AYDPZ4rl90PPEbyQJUaGCUSwZ4s_sfy-8sO2KyNq0aM/edit?usp=drive_link)
*
[#400-commitment-utilization](https://drive.google.com/drive/u/0/folders/1u4_rc6TAqgMwuIQEKUVIX3zAzyvLM7Dj)
folder
* Document: [24.09.08 - Commitment utilization
discussion](https://docs.google.com/document/d/1bOD6MYoFi0fX-MgLyN-hxUpNOSfojlsL0MSt3menOxk/edit?usp=sharing)
* **Slack channel**:
[#tf-commitment-utilization](https://f2-focus.slack.com/archives/C07CPAQDN75)
* Approval deadline: ~Aug 29~, Sep 5


# Related PR's (Appendices):
- #528
- #535

# Key Points
- Adds 3 new columns to track CSP usage-based and spend-based
commitments: `CommitmentDiscountConsumedQuantity`,
`CommitmentDiscountPurchasedQuantity`, `CommitmentDiscountUnit`
- `CommitmentDiscountConsumedQuantity` captures the commitment units
used or unused in a charge period.
- `CommitmentDiscountPurchasedQuantity` captures the commitment units
purchased for one-time and recurring charge periods.
- `CommitmentDiscountUnit` captures the unit that the commitment
discount specifies.
- Fixes a 1.0 bug by specifying that `ConsumedQuantity` and
`ConsumedUnit` MUST be NULL for unused commitment rows. (reference
[pr](#507))
- Further scopes the definition of `commitment discount` and `negotiated
discount` within the glossary and specifies that `CommitmentDiscount*`
columns only correspond to `commitment discounts`.

## UPDATE (8/16/24)
1. Columns renamed to: `CommitmentDiscountConsumedQuantity`,
`CommitmentDiscountUnit`, `CommitmentDiscountPurchaseQuantity`
2. `{List,Contracted}UnitPrice`, `Pricing{Quantity,Unit}` are null when
`CommitmentDiscountStatus:Unused`
3. `{List,Contracted}Cost` are 0 when `CommitmentDiscountStatus:Unused`
4. New, official glossary terms incorporated from FinOps page for
[`commitment-based
discount`](https://www.finops.org/assets/terminology/#commitment-discounts)
and [`negotiated
discount`](https://www.finops.org/assets/terminology/#cloud-cost-management-terminology)

## UPDATE (8/19/24)
1. `{List,Contracted}{Cost,UnitPrice}` and `Pricing{Quantity,Unit}`
columns now `0` or `null` when `CommitmentDiscountStatus:Unused` (TO BE
DISCUSSED in TF-1)
2. `{List,Contracted}{Cost,UnitPrice}` and `Pricing{Quantity,Unit}`
columns now in bullet-list format.
3. Correction-based normative text added by Irena.
4. This
[pr](#524)
exists to renaming all instances of
`/commitment[\-,\s]?based\sdiscount/i` to `commitment discount` (with
correct casing)

### Discussion Points (8/20/24)
1. 2 current views for columns: `{List,Contracted}{Cost,UnitPrice}` and
`Pricing{Quantity,Unit}` when `CommitmentDiscountStatus:Unused`
    a. Set all values to appropriate `null` or `0` values (current).
b. Set all values to the same values as the purchase record (if it
exists).
2. Currently, `PricingCategory MUST be "Committed" when
[CommitmentDiscountId](#commitmentdiscountid) is not null`. Should this
be changed to `Standard` for `Purchase` rows where the
`CommitmentDiscountId` is the `ResourceId`?
3. With commitment/negotiated discount definitions altered, is it clear
that current/planned `CommitmentDiscount*` columns are relevant for
commitment discounts and *not* negotiated discounts?

## UPDATE (8/21/24)
1. Includes a recurring purchase for each charge period of the term for
No/Partial Upfront commitments
- No Upfront Purchase - has all units for the charge period
- Partial Upfront Purchase - has 1/2 of the units for each charge period
2. Reverts changing guidance around these
`{List,Contracted}{Cost,UnitPrice}` and `Pricing{Quantity,Unit}`
columns.
3. Adds additional guidance commitment discount purchase is one-time vs.
recurring
4. Adds additional phrasing to differentiate commitment vs negotiated
discounts in each CommitmentDiscount* column.
5. Removes edit to resource name to further minimize pr size (for now)

## Update (8/22/24)
1. Changes to the ResourceId column have been reverted (no clause for
ResourceId to be null with an unused commitment discount)

## Update (8/31/24)
Given that this pr was not fully approved on 8/30, and there was
considerable feedback (but less time) to merge
`CommitmentDiscountConsumedQuantity` and
`CommitmentDiscountPurchasedQuantity` into 1 column, I've gone ahead
with this change to form column: `CommitmentDiscountQuantity`.

Practitioners can stil filter to purchases and committed usage like:
- Purchases: `ChargeCategory = 'Purchase' AND CommitmentDiscountId IS
NOT NULL`
- Committed Usage (Used): `ChargeCategory = 'Usage' AND
CommitmentDiscountStatus = 'Used' AND CommitmentDiscountId IS NOT NULL`
- Committed Usage (Unused): `ChargeCategory = 'Usage' AND
CommitmentDiscountStatus = 'Unused' AND CommitmentDiscountId IS NOT
NULL`.

## Update (9/3/24)
- Added a brief paragraph around size-flexibility within
`CommitmentDiscountQuantity`
- Added additional glossary terms: `size-flexibility`,
`instance-family`, `instance-type`, `instance-type-ratio`.
- `instance-type-ratio` is the proposal for a generic, "FOCUS" term for
`normalization factor` (AWS), or `size flexibility ratio` (Azure)

This change is meant to reduce the number of proposed columns *without*
changing *any* (meaningful) intent of the previous versions with 2
quantity columns. The last commit to this pr encapsulates this entire
change and can be backed out if the group does not approve of this
iteration.

## Update (9/10/24)
- Further generalize "size-flexibility" as "commitment flexibility" and
tie to provider requirements
- Further generalize unit suggestions

# Sample Data

https://docs.google.com/spreadsheets/d/1AYDPZ4rl90PPEbyQJUaGCUSwZ4s_sfy-8sO2KyNq0aM/edit?pli=1&gid=1976106562#gid=1976106562

# Normative Text (original version, adopted into pr)


https://docs.google.com/spreadsheets/d/1AYDPZ4rl90PPEbyQJUaGCUSwZ4s_sfy-8sO2KyNq0aM/edit?pli=1&gid=464941124#gid=464941124

---------

Co-authored-by: Irena Jurica <irena.jurica@neos.hr>
Co-authored-by: Udam Dewaraja <udam@finops.org>
Co-authored-by: Graham <graham_murphy@sunsuper.com.au>
Co-authored-by: Larry Advey <104788770+ljadvey@users.noreply.github.com>
Co-authored-by: Michael Flanakin <flanakin@users.noreply.github.com>
@jpradocueva
Copy link
Contributor

Action Items from TF-2 call on Sep 18:

  • [TF2-#428] Chris, @cnharris10 : Update the PR to reflect the term "partial" instead of "hybrid" and submit for final review.
  • [TF2-#428] All members: Review the updated appendix in preparation for the next meeting’s discussion.

@jpradocueva
Copy link
Contributor

Approved by the Members on the Sep 19 call.

Copy link
Contributor

@udam-f2 udam-f2 left a comment

Choose a reason for hiding this comment

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

Nit: this looks like its missing a bunch of links to various glossary entries and columns etc. Also seems to be using other formatting patterns e.g. CommitmentDiscountQuantitywhen after the first one, we would just be using italics per the guidelines.

Fine if fixed afterwards during consistency review.

specification/appendix/commitment_discounts.md Outdated Show resolved Hide resolved
specification/appendix/commitment_discounts.md Outdated Show resolved Hide resolved
@jpradocueva
Copy link
Contributor

@udam-f2, @cnharris10, I suggest that this can be fixed as part of the consistency review. I would like to issue a notice to the group with the links to the baseline for the consistency review, and for that, we need to merge this PR. Suggestions?

AWS-ZachErdman and others added 5 commits September 20, 2024 12:46
**Lead Maintainer**: Zach
### Documents: 
* Folder #495 : [SKU Properties & Providers
Alignment](https://drive.google.com/drive/u/0/folders/11CDin-7o7KNGrdCzgq7gdVwQFcJ2l8aq)
by Zach moved to folder #495
* Document: [SKU Details from Providers
(FOCUS)](https://docs.google.com/document/d/1PdF8VQ5Ad4kDmrTlSEzWGOitwyEeQHR5B13hPWArMg0/edit#heading=h.ezdq0hltg6)
* Spreadsheet: [24.08.08 -
Alternative-Column-Names-for-UsageType](https://docs.google.com/spreadsheets/d/1-n_-z1bWKKwEbSXfiICHl0ff-uC9qAdDaDYhQGsagEM/edit?usp=sharing)
* PR
[#516](#516)
Initial Draft of UsageType
* Approval date: Sep 05

---------

Co-authored-by: Christopher Harris <cnharris@gmail.com>
Co-authored-by: Joaquin <jprado@linuxfoundation.org>
Co-authored-by: Karl <133434112+kk09v@users.noreply.github.com>
Co-authored-by: Udam Dewaraja <udam@finops.org>
- Adding glossary links, italics to key terms
- Removing declaration of CommitmentDiscountUnit for usage-based commitment discounts
- Rephrasing the spend-based usage examples to specify that unit is chosen
Co-authored-by: Udam Dewaraja <udam@finops.org>
Co-authored-by: Udam Dewaraja <udam@finops.org>
…-Cost-and-Usage-Spec/FOCUS_Spec into commitment-discount-appendix
@jpradocueva jpradocueva merged commit 1b39b0c into working_draft Sep 20, 2024
2 checks passed
@jpradocueva jpradocueva deleted the commitment-discount-appendix branch September 20, 2024 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: W.I.P
Development

Successfully merging this pull request may close these issues.

8 participants