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

Editorial changes - links to FOCUS dataset glossary term #592

Merged
merged 4 commits into from
Oct 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion EDITORIAL_GUIDELINES.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ These guidelines can be modified through a Pull Request (PR), which the members
>
> The **[Pricing Quantity](#pricing-quantity)** represents the volume of a given [SKU](#glossary:sku) associated with a [resource](#glossary:resource) or [service](#glossary:service) used or purchased, based on the **[Pricing Unit](#pricing-unit)**. Distinct from **[Consumed Quantity](#consumed-quantity)** (complementary to **[Consumed Unit](#consumed-unit)**), it focuses on pricing and cost, not resource and service consumption.
>
> * The PricingQuantity column MUST be present in the billing data.
> * The PricingQuantity column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset).
> * This column MUST be of type Decimal and MUST conform to Numeric Format requirements.
> * The value MAY be negative in cases where ChargeClass is "Correction".
>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Metadata Examples

The following sections contain examples of metadata provided by a hypothetical FOCUS data provider called ACME to supply the required reference between the FOCUS dataset and the schema metadata. Provider implementations will vary on how the metadata is disseminated; however, the provider's chosen metadata delivery approach should be able to support the structure represented in this example.
The following sections contain examples of metadata provided by a hypothetical FOCUS data provider called ACME to supply the required reference between the [*FOCUS dataset*](#glossary:FOCUS-dataset) and the schema metadata. Provider implementations will vary on how the metadata is disseminated; however, the provider's chosen metadata delivery approach should be able to support the structure represented in this example.

In this example, the provider supports delivery of FOCUS data via file export to a data storage system. It uses JSON as the format for providing the metadata. The provider delivers data every 12 hours into a path structure described below:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Scenario

ACME specifies the optional metadata property [Provider Version](#providerversion) in their [Schema](#schema) object. They made a change to the FOCUS dataset they produce that does not adopt a new FOCUS Version, nor make a change the included columns but does impact values in the data. This example illustrates that Provider Version changes are independent of column changes, however provider version changes may include column changes.
ACME specifies the optional metadata property [Provider Version](#providerversion) in their [Schema](#schema) object. They made a change to the [*FOCUS dataset*](#glossary:FOCUS-dataset) they produce that does not adopt a new FOCUS Version, nor make a change the included columns but does impact values in the data. This example illustrates that Provider Version changes are independent of column changes, however provider version changes may include column changes.

The provider creates a new schema object to represent the new schema. The provider includes both the FOCUS Version and Provider Version in the schema object.

Expand Down
2 changes: 1 addition & 1 deletion specification/attributes/attributes.mdpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Attributes

Attributes are requirements that apply across a FOCUS dataset instead of an individual column level. Requirements on data content can include naming
Attributes are requirements that apply across a [*FOCUS dataset*](#glossary:FOCUS-dataset) instead of an individual column level. Requirements on data content can include naming
conventions, data types, formatting standardizations, etc. Attributes may introduce high-level requirements
for data granularity, recency, frequency, etc. Requirements defined in attributes are necessary for servicing
[FinOps capabilities][FODOFC] accurately using a standard set of instructions regardless of the origin of the data.
Expand Down
2 changes: 1 addition & 1 deletion specification/attributes/column_naming_and_ordering.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Column Naming and Ordering

## Description

Naming and ordering convention for columns appearing in a FOCUS dataset.
Naming and ordering convention for columns appearing in a [*FOCUS dataset*](#glossary:FOCUS-dataset).

## Requirements

Expand Down
2 changes: 1 addition & 1 deletion specification/attributes/currency_code_format.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Currency Code Format

## Description

Formatting for currency columns appearing in a FOCUS dataset.
Formatting for currency columns appearing in a [*FOCUS dataset*](#glossary:FOCUS-dataset).

## Requirements

Expand Down
2 changes: 1 addition & 1 deletion specification/attributes/datetime_format.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Date/Time Format

## Description

Rules and formatting requirements for date/time-related columns appearing in a FOCUS dataset.
Rules and formatting requirements for date/time-related columns appearing in a [*FOCUS dataset*](#glossary:FOCUS-dataset).

## Requirements

Expand Down
2 changes: 1 addition & 1 deletion specification/attributes/key_value_format.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Key-Value Format

## Description

Rules and formatting requirements for columns appearing in a FOCUS dataset that convey data as key-value pairs.
Rules and formatting requirements for columns appearing in a [*FOCUS dataset*](#glossary:FOCUS-dataset) that convey data as key-value pairs.

## Requirements

Expand Down
2 changes: 1 addition & 1 deletion specification/attributes/numeric_format.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Numeric Format

## Description

Rules and formatting requirements for numeric columns appearing in a FOCUS dataset.
Rules and formatting requirements for numeric columns appearing in a [*FOCUS dataset*](#glossary:FOCUS-dataset).

## Requirements

Expand Down
2 changes: 1 addition & 1 deletion specification/attributes/string_handling.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ String Handling

## Description

Requirements for string-capturing columns appearing in a FOCUS dataset.
Requirements for string-capturing columns appearing in a [*FOCUS dataset*](#glossary:FOCUS-dataset).

## Requirements

Expand Down
4 changes: 2 additions & 2 deletions specification/attributes/unit_format.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Unit Format

Billing data frequently captures data measured in units related to data size, count, time, and other [*dimensions*](#glossary:dimension). The Unit Format attribute provides a standard for expressing units of measure in columns appearing in a FOCUS dataset.
Billing data frequently captures data measured in units related to data size, count, time, and other [*dimensions*](#glossary:dimension). The Unit Format attribute provides a standard for expressing units of measure in columns appearing in a [*FOCUS dataset*](#glossary:FOCUS-dataset).

All columns defined in FOCUS specifying Unit Format as a value format MUST follow the requirements listed below.

Expand All @@ -14,7 +14,7 @@ Unit Format

## Description

Indicates standards for expressing measurement units in columns appearing in a FOCUS dataset.
Indicates standards for expressing measurement units in columns appearing in a *FOCUS dataset*.

## Requirements

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/billedcost.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The [*billed cost*](#glossary:billed-cost) represents a charge serving as the basis for invoicing, inclusive of the impacts of all reduced rates and discounts while excluding the [*amortization*](#glossary:amortization) of relevant purchases (one-time or recurring) paid to cover future eligible charges. This cost is denominated in the [Billing Currency](#billingcurrency). The Billed Cost is commonly used to perform FinOps capabilities that require cash-basis accounting such as cost allocation, budgeting, and invoice reconciliation.

The BilledCost column MUST be present in a FOCUS dataset and MUST NOT be null. This column MUST be of type Decimal, MUST conform to [NumericFormat](#numericformat), and be denominated in the BillingCurrency. The sum of the BilledCost for [*rows*](#glossary:row) in a given [*billing period*](#glossary:billing-period) MUST match the sum of the invoices received for that *billing period* for a [*billing account*](#glossary:billing-account).
The BilledCost column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) and MUST NOT be null. This column MUST be of type Decimal, MUST conform to [Numeric Format](#numericformat), and be denominated in the BillingCurrency. The sum of the BilledCost for [*rows*](#glossary:row) in a given [*billing period*](#glossary:billing-period) MUST match the sum of the invoices received for that *billing period* for a [*billing account*](#glossary:billing-account).

## Column ID

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/billingaccountid.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

A Billing Account ID is a provider-assigned identifier for a [*billing account*](#glossary:billing-account). *Billing accounts* are commonly used for scenarios like grouping based on organizational constructs, invoice reconciliation and cost allocation strategies.

The BillingAccountId column MUST be present in a FOCUS dataset. This column MUST be of type String and MUST NOT contain null values. BillingAccountId MUST be a globally unique identifier within a provider.
The BillingAccountId column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset). This column MUST be of type String and MUST NOT contain null values. BillingAccountId MUST be a globally unique identifier within a provider.

See [Appendix: Grouping constructs for resources or services](#groupingconstructsforresourcesorservices) for details and examples of the different grouping constructs supported by FOCUS.

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/billingaccountname.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

A Billing Account Name is a display name assigned to a [*billing account*](#glossary:billing-account). *Billing accounts* are commonly used for scenarios like grouping based on organizational constructs, invoice reconciliation and cost allocation strategies.

The BillingAccountName column MUST be present in a FOCUS dataset and MUST NOT be null when the provider supports assigning a display name for the *billing account*. This column MUST be of type String. BillingAccountName MUST be unique within a customer when a customer has more than one *billing account*.
The BillingAccountName column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) and MUST NOT be null when the provider supports assigning a display name for the *billing account*. This column MUST be of type String. BillingAccountName MUST be unique within a customer when a customer has more than one *billing account*.

See [Appendix: Grouping constructs for resources or services](#groupingconstructsforresourcesorservices) for details and examples of the different grouping constructs supported by FOCUS.

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/billingcurrency.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

[*Billing currency*](#glossary:billing-currency) is an identifier that represents the currency that a charge for [*resources*](#glossary:resource) or [*services*](#glossary:service) was billed in. Billing Currency is commonly used in scenarios where costs need to be grouped or aggregated.

The BillingCurrency column MUST be present in a FOCUS dataset. BillingCurrency MUST match the currency used in the invoice generated by the invoice issuer. This column MUST be of type String and MUST NOT contain null values. BillingCurrency MUST conform to [CurrencyCodeFormat](#currencycodeformat) requirements.
The BillingCurrency column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset). BillingCurrency MUST match the currency used in the invoice generated by the invoice issuer. This column MUST be of type String and MUST NOT contain null values. BillingCurrency MUST conform to [Currency Code Format](#currencycodeformat) requirements.

## Column ID

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/billingperiodend.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Billing Period End represents the [*exclusive*](#glossary:exclusivebound) end date and time of a [*billing period*](#glossary:billing-period). For example, a time period where [BillingPeriodStart](#glossary:billingperiodstart) is '2024-01-01T00:00:00Z' and BillingPeriodEnd is '2024-02-01T00:00:00Z' includes charges for January, since BillingPeriodStart is [*inclusive*](#glossary:inclusivebound), but does not include charges for February since BillingPeriodEnd is *exclusive*.

The BillingPeriodEnd column MUST be present in a FOCUS dataset. This column MUST be of type [DateTimeFormat](#date/timeformat), MUST be an *exclusive* value, and MUST NOT contain null values. The sum of the [BilledCost](#billedcost) column for [*rows*](#glossary:row) in a given *billing period* MUST match the sum of the invoices received for that *billing period* for a [*billing account*](#glossary:billing-account).
The BillingPeriodEnd column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset). This column MUST be of type [Date/Time Format](#date/timeformat), MUST be an *exclusive* value, and MUST NOT contain null values. The sum of the [BilledCost](#billedcost) column for [*rows*](#glossary:row) in a given *billing period* MUST match the sum of the invoices received for that *billing period* for a [*billing account*](#glossary:billing-account).

## Column ID

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/billingperiodstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Billing Period Start represents the [*inclusive*](#glossary:inclusivebound) start date and time of a [*billing period*](#glossary:billing-period). For example, a time period where BillingPeriodStart is '2024-01-01T00:00:00Z' and [BillingPeriodEnd](#billingperiodend) is '2024-02-01T00:00:00Z' includes charges for January, since BillingPeriodStart is inclusive, but does not include charges for February since BillingPeriodEnd is [*exclusive*](#glossary:exclusivebound).

The BillingPeriodStart column MUST be present in a FOCUS dataset, MUST be of type [DateTimeFormat](#date/timeformat), MUST be an *inclusive* value, and MUST NOT contain null values. The sum of the [BilledCost](#billedcost) metric for [*rows*](#glossary:row) in a given *billing period* MUST match the sum of the invoices received for that *billing period* for a [*billing account*](#glossary:billing-account).
The BillingPeriodStart column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset), MUST be of type [Date/Time Format](#date/timeformat), MUST be an *inclusive* value, and MUST NOT contain null values. The sum of the [BilledCost](#billedcost) metric for [*rows*](#glossary:row) in a given *billing period* MUST match the sum of the invoices received for that *billing period* for a [*billing account*](#glossary:billing-account).

## Column ID

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/capacityreservationid.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ A Capacity Reservation ID is the identifier assigned to a [*capacity reservation

The CapacityReservationId column adheres to the following requirements:

* CapacityReservationId MUST be present in the billing data when the provider supports *capacity reservations* and MUST be of type String.
* CapacityReservationId MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports *capacity reservations* and MUST be of type String.
* CapacityReservationId SHOULD NOT be null when a charge is related to a capacity reservation.
* CapacityReservationId MUST NOT be null when a charge represents the unused portion of a *capacity reservation*.
* CapacityReservationId MUST be null when a charge is not related to a *capacity reservation*.
Expand Down
2 changes: 1 addition & 1 deletion specification/columns/capacityreservationstatus.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Capacity Reservation Status indicates whether the charge represents either the c

The CapacityReservationStatus column adheres to the following requirements:

* CapacityReservationStatus MUST be present in a FOCUS dataset when the provider supports *capacity reservations* and MUST be of type String.
* CapacityReservationStatus MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) when the provider supports *capacity reservations* and MUST be of type String.
* CapacityReservationStatus MUST be null when CapacityReservationId is null.
* CapacityReservationStatus MUST NOT be null when CapacityReservationId is not null and [ChargeCategory](#chargecategory) is "Usage".
* CapacityReservationStatus MUST be one of the allowed values.
Expand Down
2 changes: 1 addition & 1 deletion specification/columns/chargecategory.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Charge Category represents the highest-level classification of a charge based on the nature of how it is billed. Charge Category is commonly used to identify and distinguish between types of charges that may require different handling.

The ChargeCategory column MUST be present in a FOCUS dataset and MUST NOT be null. This column is of type String and MUST be one of the allowed values.
The ChargeCategory column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) and MUST NOT be null. This column is of type String and MUST be one of the allowed values.

## Column ID

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/chargeclass.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Charge Class indicates whether the row represents a correction to a previously invoiced [*billing period*](#glossary:billing-period). Charge Class is commonly used to differentiate corrections from regularly incurred charges.

The ChargeClass column MUST be present in the FOCUS dataset. This column MUST be of type String and MUST be "Correction" when the row represents a correction to a previously invoiced *billing period*. ChargeClass MUST be null when it is not a correction or when it is a correction within the current *billing period*.
The ChargeClass column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset). This column MUST be of type String and MUST be "Correction" when the row represents a correction to a previously invoiced *billing period*. ChargeClass MUST be null when it is not a correction or when it is a correction within the current *billing period*.

## Column ID

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/chargedescription.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

A Charge Description provides a high-level context of a [*row*](#glossary:row) without requiring additional discovery. This column is a self-contained summary of the charge's purpose and price. It typically covers a select group of corresponding details across a billing dataset or provides information not otherwise available.

The ChargeDescription column MUST be present in a FOCUS dataset, MUST be of type String, and SHOULD NOT be null. Providers SHOULD specify the length of this column in their publicly available documentation.
The ChargeDescription column MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset), MUST be of type String, and SHOULD NOT be null. Providers SHOULD specify the length of this column in their publicly available documentation.

## Column ID

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/chargefrequency.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Charge Frequency indicates how often a charge will occur. Along with the [charge period](#glossary:chargeperiod) related columns, the Charge Frequency is commonly used to understand recurrence periods (e.g., monthly, yearly), forecast upcoming charges, and differentiate between one-time and recurring fees for purchases.

The ChargeFrequency column is RECOMMENDED be present in a FOCUS dataset and MUST NOT be null. This column is of type String and MUST be one of the allowed values. When [ChargeCategory](#chargecategory) is "Purchase", ChargeFrequency MUST NOT be "Usage-Based".
The ChargeFrequency column is RECOMMENDED be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset) and MUST NOT be null. This column is of type String and MUST be one of the allowed values. When [ChargeCategory](#chargecategory) is "Purchase", ChargeFrequency MUST NOT be "Usage-Based".

## Column ID

Expand Down
2 changes: 1 addition & 1 deletion specification/columns/chargeperiodend.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Charge Period End represents the [*exclusive*](#glossary:exclusivebound) end date and time of a [*charge period*](#glossary:chargeperiod). For example, a time period where [ChargePeriodStart](#chargeperiodstart) is '2024-01-01T00:00:00Z' and ChargePeriodEnd is '2024-01-02T00:00:00Z' includes charges for January 1, since ChargePeriodStart is [*inclusive*](#glossary:inclusivebound), but does not include charges for January 2 since ChargePeriodEnd is *exclusive*.

ChargePeriodEnd MUST be present in a FOCUS dataset, MUST be of type Date/Time, MUST be an *exclusive* value, and MUST NOT contain null values. ChargePeriodEnd MUST match the ending date and time boundary of the effective period of the charge.
ChargePeriodEnd MUST be present in a [*FOCUS dataset*](#glossary:FOCUS-dataset), MUST be of type Date/Time, MUST be an *exclusive* value, and MUST NOT contain null values. ChargePeriodEnd MUST match the ending date and time boundary of the effective period of the charge.

## Column ID

Expand Down
Loading
Loading