diff --git a/assets/images/help/billing/cost-center-example-1.png b/assets/images/help/billing/cost-center-example-1.png new file mode 100644 index 0000000000..e2ac836574 Binary files /dev/null and b/assets/images/help/billing/cost-center-example-1.png differ diff --git a/assets/images/help/billing/cost-center-example-2.png b/assets/images/help/billing/cost-center-example-2.png new file mode 100644 index 0000000000..815f39ec03 Binary files /dev/null and b/assets/images/help/billing/cost-center-example-2.png differ diff --git a/content/billing/reference/cost-center-allocation.md b/content/billing/reference/cost-center-allocation.md index b3bc711c50..15191e8f33 100644 --- a/content/billing/reference/cost-center-allocation.md +++ b/content/billing/reference/cost-center-allocation.md @@ -24,31 +24,39 @@ This article contains reference information for how spending is assigned to cost | ------- | ----------------------------------------------------- | | {% data variables.product.prodname_actions %} | The repository or organization where the workflow runs. | | {% data variables.product.prodname_github_codespaces %} | The repository or organization where the codespace is created. | -| {% data variables.product.prodname_copilot %} | The user who receives the license (priority), or the organization that is billed for the {% data variables.product.prodname_copilot_short %} license. | -| Git Large File Storage | The repository or organization where Git LFS is used. | -| {% data variables.product.prodname_GH_cs_and_sp %} | The user who receives the license. | +| {% data variables.product.prodname_copilot %} license | The user who receives the license (priority), or the organization that is billed for the {% data variables.product.prodname_copilot_short %} license. | | {% data variables.product.prodname_enterprise %} | The user who receives the license (priority), or the organization that is billed for the license. | +| Git Large File Storage | The repository or organization where Git LFS is used. | | {% data variables.product.prodname_registry %} | The repository or organization that owns the package. | +| {% data variables.product.prodname_prus_caps %} | The user who triggered the use of the {% data variables.product.prodname_pru %} (priority), or the organization they belong to. | +| {% data variables.product.prodname_GH_cs_and_sp %} | A user who uses a license. | ## Details for license-based products -To ensure your cost centers reflect spending as intended, it's important to understand how spending is allocated to cost centers for license-based products like {% data variables.product.prodname_copilot %}, and how changes are reflected in your bill. - -### {% data variables.product.prodname_copilot %} - -* If a user belongs to a cost center, all usage associated with the user is charged to the cost center. -* If a user does not belong to any cost center but the organization that is billed for the {% data variables.product.prodname_copilot_short %} license does, all usage associated with the user is charged to that cost center. -* If the user receives access to {% data variables.product.prodname_copilot_short %} through **multiple organizations**, only one of the organizations is billed, and any cost center containing that organization is charged accordingly. See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise/about-billing-for-github-copilot-in-your-enterprise#about-seat-assignment-for-copilot-in-your-enterprise). +To ensure your cost centers reflect spending as intended, it's important to understand how the cost of licenses is allocated to cost centers, and how changes are reflected in your bill. ### {% data variables.product.prodname_GH_cs_and_sp %} -* If a user belongs to a cost center, licenses consumed by the user are charged to the cost center. -* If a user does not belong to any cost center, licenses consumed by the user are charged to the enterprise. +| User associated with a cost center | License usage charged | +|--|--| +| Direct assignment | To the cost center the user is assigned to | +| By organization membership only | To the enterprise | -### {% data variables.product.prodname_enterprise %} +### {% data variables.product.prodname_enterprise %} and {% data variables.product.prodname_copilot %} -* If a user belongs to a cost center, the license consumed by the user is charged to the cost center. -* If a user does not belong to any cost center, the license consumed by the user is charged to the enterprise. +Cost center allocation is slightly different for {% data variables.product.prodname_enterprise %} licenses and {% data variables.product.prodname_copilot %} licenses and usage. + +| User associated with a cost center | {% data variables.product.prodname_copilot_short %} license granted | License and product costs charged | +|--|--|--| +| Direct assignment | By any organization | To the cost center the user is assigned to | +| By organization membership only | By an organization assigned to a cost center | To the **cost center** the organization belongs to. If the organization does not belong to a cost center, to the **enterprise** | + +Users who belong to multiple organizations in an enterprise or who receive a {% data variables.product.prodname_copilot_short %} license from multiple organizations: + +* **{% data variables.product.prodname_enterprise %}** license usage is allocated to the oldest organization and charges are allocated to the cost center containing that organization. +* **{% data variables.product.prodname_copilot_short %}** license and product usage is allocated to one of the organizations and charges are allocated to the cost center containing that organization. + +See [AUTOTITLE](/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise/about-billing-for-github-copilot-in-your-enterprise#about-seat-assignment-for-copilot-in-your-enterprise). ## Understanding cost center usage and attribution @@ -86,6 +94,8 @@ The following example illustrates how usage is assigned to cost centers for lice ### The users +![Diagram illustrating the description of four users and their organization membership.](/assets/images/help/billing/cost-center-example-1.png) + There are four users, each a member of one or more organizations in the enterprise. | User | Organization membership | @@ -114,12 +124,14 @@ There are two cost centers in the enterprise, each with different users or organ The following table illustrates how spending for each user is allocated to a cost center based on their membership of an organization or cost center. Any usage not assigned to a cost center is categorized as "Enterprise Only" spending. +![Diagram illustrating the assignment of users and organizations to cost centers, with the allocation of costs for the four users.](/assets/images/help/billing/cost-center-example-2.png) + {% rowheaders %} | | Copilot charges | GHSP charges | GHE charges | Explanation | | ----------- | --------------- | ------------ | ----------- | ----------- | | Cost Center A | `user-1`, `user-3` | `user-1`, `user-3` | `user-1`, `user-3` | These users are assigned directly to the cost center. | -| Cost Center B | `user-2`, `user-4` | {% octicon "dash" aria-label="Not applicable" %} | {% octicon "dash" aria-label="Not applicable" %} | These users aren't directly assigned to a cost center, so Copilot charges are assigned based on organization membership, whereas GHSP and GHE default to enterprise spending. | -| Enterprise Only (default) | {% octicon "dash" aria-label="Not applicable" %} | `user-2`, `user-4` | `user-2`, `user-4` | These users aren't directly assigned to a cost center, so GHSP and GHE default to enterprise spending. | +| Cost Center B | `user-2`, `user-4` | {% octicon "dash" aria-label="Not applicable" %} | `user-2`, `user-4` | These users aren't directly assigned to a cost center, so Copilot and GHE charges are assigned based on organization membership, whereas GHSP defaults to enterprise spending. | +| Enterprise Only (default) | {% octicon "dash" aria-label="Not applicable" %} | `user-2`, `user-4` | {% octicon "dash" aria-label="Not applicable" %} | These users aren't directly assigned to a cost center, so GHSP defaults to enterprise spending. | {% endrowheaders %} diff --git a/data/reusables/billing/cost-center-allocation.md b/data/reusables/billing/cost-center-allocation.md index 863a21ba41..09e2be726c 100644 --- a/data/reusables/billing/cost-center-allocation.md +++ b/data/reusables/billing/cost-center-allocation.md @@ -1,6 +1,7 @@ To allocate metered spending to a cost center, you add repositories, organizations, or users to the cost center. -* For **metered** products like {% data variables.product.prodname_actions %}, cost centers are charged based on the **repositories or organizations** in the cost center, as this is where the usage takes place. -* For **metered license-based** products like {% data variables.product.prodname_copilot %}, cost centers are charged based on the **users** in the cost center. +* For **usage-based** products, like {% data variables.product.prodname_actions %}, cost centers are charged based on the **repositories or organizations** in the cost center, as this is where the usage takes place. +* For **license-based** products, like {% data variables.product.prodname_copilot %}, cost centers are charged based on the **users** in the cost center. +* For products billed by **{% data variables.product.prodname_pru %}** usage, like {% data variables.copilot.copilot_coding_agent %}, cost centers are also charged based on the **users** in the cost center. Cost centers only apply to metered usage, and do not work with volume or subscription billing. diff --git a/data/variables/copilot.yml b/data/variables/copilot.yml index 1414344e6f..45fa31e10c 100644 --- a/data/variables/copilot.yml +++ b/data/variables/copilot.yml @@ -17,7 +17,7 @@ copilot_free_short: 'Copilot Free' ## Copilot billing # Price per additional premium request -additional_premium_requests: '$0.04 USD' +additional_premium_requests: '$0.04 USD' # Note that these are also used to bill other products # Price per month for Copilot Pro cfi_price_per_month: '$10 USD' # Price per year for Copilot Pro diff --git a/data/variables/product.yml b/data/variables/product.yml index 5ef8fcd003..315fb05ca7 100644 --- a/data/variables/product.yml +++ b/data/variables/product.yml @@ -308,6 +308,11 @@ prodname_arctic_vault: 'Arctic Code Vault' prodname_copilot: 'GitHub Copilot' prodname_copilot_short: 'Copilot' +# Premium requests (used to bill products like Copilot, Spark) +prodname_pru: 'premium request' +prodname_prus: 'premium requests' +prodname_prus_caps: 'Premium requests' + # GitHub Spark prodname_spark: 'GitHub Spark' prodname_spark_short: 'Spark'