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

FOCUS #314: SKU ID, SKU Price ID and SKU Price Details clarification #676

Draft
wants to merge 9 commits into
base: working_draft
Choose a base branch
from

Conversation

ijurica
Copy link
Contributor

@ijurica ijurica commented Jan 13, 2025

This PR provides clarification on the specifications, purpose, and guidance for the following columns:

  • SKU ID,
  • SKU Price ID,
  • and SKU Price Details,

ensuring a better understanding and consistent usage of these columns across providers.

@ijurica ijurica requested a review from a team as a code owner January 13, 2025 17:23
@jpradocueva jpradocueva linked an issue Jan 13, 2025 that may be closed by this pull request
@ijurica ijurica added the 1.2 Agreed scope for release 1.2 label Jan 16, 2025
@jpradocueva jpradocueva added this to the v1.2 milestone Jan 23, 2025
specification/columns/skupriceid.md Outdated Show resolved Hide resolved

The SkuPriceId column adheres to the following requirements:

* SkuPriceId MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider publishes a SKU price list and MUST be of type String.
* SkuPriceId MUST define a single unit price used for calculating the charge.
* [ListUnitPrice](#listunitprice) MUST be associated with the SkuPriceId in the provider published price list.
* SkuPriceId MUST define a single unit price used for calculating the charge, reflecting a stable grouping of core properties of a SKU Price while excluding fluctuations in dynamic or negotiable properties such as unit price amount, currency, temporal validity (e.g., effective dates), and contract- or negotiation-specific elements.
Copy link
Contributor

Choose a reason for hiding this comment

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

This feels like a lot to put into this one requirement. Can we break it into 2?

Suggested change
* SkuPriceId MUST define a single unit price used for calculating the charge, reflecting a stable grouping of core properties of a SKU Price while excluding fluctuations in dynamic or negotiable properties such as unit price amount, currency, temporal validity (e.g., effective dates), and contract- or negotiation-specific elements.
* SkuPriceId MUST define a single unit price used for calculating the charge, reflecting a stable grouping of core properties of a SKU Price.
* SkuPriceId MUST be consistent across dynamic or negotiable properties for a specific provider such as unit price amount, currency, temporal validity (e.g., effective dates), and contract- or negotiation-specific elements (e.g., billing account).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

What about this:

  • SkuPriceId MUST NOT reflect (or be influenced/affected by) dynamic or negotiable properties such as unit price amount, currency, temporal validity (e.g., effective dates), and contract- or negotiation-specific elements (e.g., billing account).

flanakin and others added 2 commits January 29, 2025 03:43
Co-authored-by: Michael Flanakin <flanakin@users.noreply.github.com>
A SKU ID is a unique identifier that defines a provider-supported construct for organizing properties that are common across one or more [*SKU Prices*](#glossary:sku-price). SKU ID can be referenced on a catalog or [*price list*](#glossary:price-list) published by a provider to look up detailed information about the SKU. The composition of the properties associated with the SKU ID may differ across providers. Some providers may not support the [*SKU*](#glossary:sku) construct and instead associate all such properties directly with the *SKU Price*. SKU ID is commonly used for analyzing cost based on *SKU*-related properties above the pricing constructs.

PROPOSED:
A SKU ID is a provider-specified unique identifier that represents a specific [*SKU*](#glossary:sku) (e.g., billable good or service offering) that can be used or purchased. Each SKU ID represents specific functionality and technical specifications of a single *SKU* that are common across one or more [*SKU Prices*](#glossary:sku-price). SKU ID is consistent across different billing accounts, pricing models (e.g., flat-rate, tiered, committed, spot pricing), and regions for a single provider to facilitate price comparisons for the same functionality, regardless of where the functionality is provided or how it's paid for.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Nit:
Consider 'quantifiable/measurable/trackable' instead of 'billable' since some charges (e.g., committed charges) are not necessarily billable.
I understand that this column does not define what is billable and what is not, so 'billable' is not necessarily incorrect - I just prefer 'quantifiable' 😄

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Consider mentioning that SKUs are priced, tracked, measured, and billed, rather than used or purchased.

We don't directly use or purchase SKUs; rather, we interact with resources and services, while SKUs represent specific elements of those resources and services that are priced, tracked, measured, and eventually billed.

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
A SKU ID is a provider-specified unique identifier that represents a specific [*SKU*](#glossary:sku) (e.g., billable good or service offering) that can be used or purchased. Each SKU ID represents specific functionality and technical specifications of a single *SKU* that are common across one or more [*SKU Prices*](#glossary:sku-price). SKU ID is consistent across different billing accounts, pricing models (e.g., flat-rate, tiered, committed, spot pricing), and regions for a single provider to facilitate price comparisons for the same functionality, regardless of where the functionality is provided or how it's paid for.
A SKU ID is a provider-specified unique identifier that represents a specific [*SKU*](#glossary:sku) (e.g., measurable good or service offering) that can be used or purchased. Each SKU ID represents specific functionality and technical specifications of a single *SKU* that are common across one or more [*SKU Prices*](#glossary:sku-price). SKU ID is consistent across different billing accounts, pricing models (e.g., flat-rate, tiered, committed, spot pricing), and regions for a single provider to facilitate price comparisons for the same functionality, regardless of where the functionality is provided or how it's paid for.

Comment on lines +13 to +15
- SkuId should be the same no matter how the billing account is configured
- SkuId should support comparing before/after negotiations
- SkuId should support comparing with a public/retail price list
Copy link
Contributor Author

Choose a reason for hiding this comment

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

These also apply to both SkuPriceId and SkuPriceDetails, right?

@@ -1,12 +1,12 @@
# SKU Price ID

A SKU Price ID is a unique identifier that defines the unit price used to calculate the charge. SKU Price ID can be referenced on a [*price list*](#glossary:price-list) published by a provider to look up detailed information, including a corresponding list unit price. The composition of the properties associated with the SKU Price ID may differ across providers. SKU Price ID is commonly used for analyzing cost based on pricing properties such as Terms and Tiers.
A SKU Price ID is a unique identifier that defines the unit price used to calculate the charge. It can serve as a key reference to a [*price list*](#glossary:price-list) published by a provider, allowing practitioners to look up detailed information, including the associated list unit prices and pricing properties. Although the composition of properties associated with the SKU Price ID may differ across providers, the SKU Price ID is designed to represent the core, stable properties of a [*SKU Price*](#glossary:sku-price), excluding dynamic or negotiable properties such as unit price amount, currency (and related exchange rates), temporal validity (e.g., effective dates), and contract- or negotiation-specific elements (e.g., contract or account identifiers, and negotiable discounts). This ensures that the SKU Price ID remains consistent across different pricing scenarios, even though variable aspects (e.g., unit price, currency, effective dates) might fluctuate, facilitating the filtering of charges with the same stable SKU Price properties and allowing for tracking price fluctuations (e.g., changes in unit price amount) over time — for both list and contracted unit prices. The SKU Price ID is also commonly used to analyze costs based on pricing properties such as terms and tiers.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

I prefer this:

A SKU Price ID is a provider-specified unique identifier that represents the core, stable properties of a SKU Price, excluding fluctuations in dynamic or negotiable properties such as unit price amount, currency, temporal validity (e.g., effective dates), and contract- or negotiation-specific elements.

over this:

A SKU Price ID is a unique identifier that defines the unit price used to calculate the charge.

If we proceed in this direction, I’ll need to adjust the rest accordingly, including the normative requirements.
Additionally, we must not forget to update the glossary.

@flanakin flanakin marked this pull request as draft January 29, 2025 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.2 Agreed scope for release 1.2
Projects
Status: W.I.P
Development

Successfully merging this pull request may close these issues.

[Work_Item] Clarify definition of SKU ID
4 participants