Copilot Studio’s GitHub harness starts metering Copilot Credits when you build and test, not only after you publish. At the same time, GitHub moved Copilot to usage based AI Credits on June 1, 2026. If you enable both without policy design, one initiative can drive two independent meters.

The argument here is simple: double metering is an organizational problem. Separate the scopes, set budgets with hard stops, and reconcile both meters from one activity model. If you don’t, spend will spike in ways that are hard to forecast and harder to defend.

Contents

Billing starts at build for the GitHub harness—and it splits your costs across two meters

For agents powered by the GitHub Copilot harness, usage based billing applies to building, testing, evaluating, and using. Copilot Credits are charged for tokens and tools, including knowledge and Model Context Protocol tools, and for the harness runtime. This is different from the standard harness where billing begins after publish.

This usage isn’t covered by a Microsoft 365 Copilot user license. The meter is Copilot Credits at the environment and agent level. Per user attribution isn’t available in Copilot Studio reporting, so the scope for control is the agent and its environment, not the individual maker.

In parallel, GitHub Copilot now uses AI Credits as the billing unit. As of June 1, 2026, 1 AI Credit equals 0.01 USD, and the billed surfaces include Copilot Chat, CLI, cloud agents, Spaces, Spark, and third party coding agents. Code completions and Next Edit suggestions remain included in plans and don’t consume AI Credits.

Double metering happens at the program level when the same initiative turns on GitHub harness agents in Copilot Studio and also enables GitHub Copilot features like Chat or code review. The same individual action isn’t billed twice by both vendors. The point is that the work now has two places where usage accrues and two separate budgeting systems.

You can already see this split in the admin surfaces. PPAC attributes consumption to environments and agents and shows daily usage for the current month to date, the last two full months, and a twelve month monthly history. GitHub reports AI Credits and budgets at enterprise and organization scope by user and cost center.

As of 2026-08-30, Microsoft documentation keeps the GitHub harness behavior explicit: building and testing are metered. If you need to inventory where this applies, the PPAC agent list exposes a Harness column you can filter to GitHub Copilot.

Preventing double metering is an org design problem: separate policies, budgets, and tools

Enforce scope boundaries you can control; prompt tuning will not prevent double metering.

Use PPAC data policy controls to constrain what GitHub harness agents can do. Implement allowlists for actions, connectors, HTTP calls, and publication channels. Pair this with DLP so the agent can’t reach tools that would drive unexpected cost.

Set per agent monthly limits in PPAC with a hard stop. The feature lets you specify a ceiling, get notifications as it approaches, and automatically turn off the agent when it hits the limit. As of 2026-08-30, per agent limits and the hard stop are GA in the Power Platform admin center.

On the GitHub side, budgets and paid usage policies decide whether metered charges can occur beyond any included pool. Additional paid usage is allowed by default. Enterprises should set user level budgets as hard stops, and enable organization or cost center budgets that reflect the pilot scope. GitHub budgets and the AI credit paid usage policy are GA for organizations and enterprises.

Code review needs special handling. It is billed in AI Credits for tokens and also consumes GitHub Actions minutes for the agentic infrastructure. If you enable code review on a pilot, budget both meters.

Identify which Copilot Studio agents are on the GitHub harness and keep them in their own environments. PPAC exposes a Harness column in the agent inventory that can be filtered to GitHub Copilot. Treat it as an administrative list and enforce policy on that set.

Pick capacity with intent: prepaid packs, PAYG, and P3—how rollover, auto‑renew, and hard stops actually behave

There are three financing motions in play for Microsoft meters. Capacity packs, pay-as-you-go, and pre-purchase via P3. Each behaves differently under stress.

Capacity packs apply to Microsoft Copilot Chat and can be paired with pay-as-you-go so that overage continues. The pack replenishes monthly. Unused credits don’t roll over. SharePoint agents are still pay-as-you-go only. Currently, Copilot Studio capacity packs for Microsoft Copilot Chat are GA; SharePoint agents remain pay-as-you-go only.

Pay-as-you-go is continuous and flexible. It doesn’t stop on its own. Azure budgets and alerts will notify when thresholds are crossed on the Power Platform account resource, but they won’t block consumption. If you need an enforcement boundary, use per agent limits with hard stop in PPAC.

The Copilot Credit pre-purchase (P3) plan is different. It is a one year commitment with Copilot Credit Commit Units that automatically pay down eligible usage. Plans auto-renew by default. Cancellations and exchanges aren’t supported. You also can’t split or merge a pre-purchase plan into smaller units. Copilot Credit pre-purchase (P3) plan is GA under Azure Reservations.

When prepaid capacity is exhausted, new agent flow runs are blocked while the parent agent can continue for non flow interactions. Authors see a design time warning. Administrators can resolve by reallocating capacity, buying more credits, or enabling pay-as-you-go. This is where PPAC limits and notifications earn their keep.

Important: P3 auto-renews and can’t be cancelled or exchanged under the current policy. If you commit early and then downsize, you carry that cost for the term.

Warning: Azure budgets notify but don’t stop Copilot Studio consumption in pay-as-you-go environments. Use PPAC agent level hard stops to enforce ceilings.

Note: Monthly consumption resets. Unused Copilot Credits don’t roll over.

Comparison at a glance:

Option Rollover Auto renew Enforcement boundary Overage handling Predictability Primary risk
Capacity packs (Copilot Chat) No Monthly replenishment PPAC per agent hard stop Can pair with pay-as-you-go for automatic overage High for steady usage Stranded value if over allocated
Pay-as-you-go N/A N/A PPAC per agent hard stop; Azure budgets notify only Continuous until stopped Medium Uncontrolled overrun without hard stops
Pre-purchase (P3) N/A Auto-renews by default Commit pays down eligible usage; still use PPAC hard stops Separate policies apply for excess usage High for stable workloads Lock-in and no cancellation or exchange

A forecasting model that maps one workload to both meters

Finance needs one spreadsheet that estimates both Copilot Credits and GitHub AI Credits from the same activity table. Build that first.

Structure the sheet by workload and activity. Capture the harness, the tool tier, estimated tokens in and out, pages or images if content processing is involved, and the expected GitHub model with its per token prices. Then compute the two meters side by side.

Copilot Studio publishes rates by tool tier. Based on the current pricing guide, basic text and generative tools are 0.1 credits per 1K tokens or chars or per image or per page. Standard is 1.5. Premium is 10. Content processing is 8 per image or page. Map each activity to a tier and calculate Copilot Credits accordingly.

GitHub Copilot lists per token model pricing and converts the total to AI Credits at 0.01 USD per credit. Code completions and Next Edit suggestions aren’t billed in AI Credits. That exclusion needs to be explicit in your sheet so you don’t overstate GitHub spend.

AI Builder has its own rules. In Copilot Studio, AI Builder features always consume Copilot Credits. In Power Apps and Power Automate, AI Builder features consume any AI Builder credits first, then fall back to Copilot Credits. Agents and agent flows consume Copilot Credits only. Reflect that path in your activity taxonomy so you don’t double count across product lines.

Suggested columns and formulas:

Activity | Environment | Harness | ToolTier | TokensIn | TokensOut | Pages | Images | CopilotRate | CopilotCredits | GHModel | PriceInPer1M | PriceOutPer1M | AICredits

CopilotCredits = ROUNDUP(((TokensIn + TokensOut) / 1000) * CopilotRate, 2)
AICredits = ROUNDUP((((TokensIn * PriceInPer1M) + (TokensOut * PriceOutPer1M)) / 1_000_000) / 0.01, 0)

Add owner and budget policy columns so each workload traces to a PPAC agent limit and a GitHub budget. Bake in lookups for rate cards and model prices that you validate monthly. Document the assumptions inline on the sheet. Use the same tab as the reconciliation input each week.

Make scenarios comparable using the same units so finance can choose a limit and understand the effect when activity doubles.

Run a weekly reconciliation loop: PPAC limits and exports + GitHub budgets and APIs

A weekly loop keeps the plan honest without building a platform.

On the Microsoft side, use PPAC to cap agents and export usage. The capacity experience reports daily usage for the current month to date, the last two full months, and monthly data for the past twelve months. Set per agent limits with a hard stop and configure notifications. Export the consumption details grid for the month into your spreadsheet and reconcile against the plan.

The Microsoft 365 admin center also exposes a Copilot Credits report. It shows credit usage per user, agent, billing policy, and agent user pairs. You can view usage within about an hour of interaction during preview, as of 2026-08-30. Alerts appear when users consume more than the thresholds you specify. Treat this as near real time monitoring for Copilot Chat and environments where that report applies.

On the GitHub side, budgets live at user, cost center, organization, and enterprise levels. User level budgets are always hard stops that count both the included pool and any metered usage. Additional paid usage is enabled by default unless you switch it off. Disable the AI credit paid usage policy for the enterprise and set user level and cost center budgets as hard stops for the pilot.

For reporting, the AI usage report fields reflect AI Credits consumption. The quantity field represents the credit quantity and gross_amount represents the dollar amount. Historical preview fields were zeroed from June 1, 2026 onward. The Copilot usage metrics API reports ai_credits_used per user per day at enterprise and organization scope. Copilot usage metrics API with ai_credits_used is GA for enterprises and organizations. Pull that data weekly and roll it up by budget.

Example API pull:

curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
  -H "Accept: application/vnd.github+json" \
  "https://api.github.com/enterprises/$GH_ENTERPRISE/copilot/usage/metrics?per_page=100&start_date=2026-08-01&end_date=2026-08-31" |
  jq -r '.users[] | [.date, .login, .ai_credits_used] | @csv'

Work the loop:

  • Review PPAC agent limits and notifications. Tighten limits if a pilot is trending over plan.
  • Export Copilot Studio consumption, paste into the reconciliation sheet, and compare to forecast by activity. Adjust the model if tool tier mix changed.
  • Pull GitHub ai_credits_used for the period, group by cost center, and check budget headroom. If a user level budget hit a hard stop, decide whether to increase or re scope the pilot.
  • Check Azure budgets for signals on pay-as-you-go environments and confirm PPAC hard stops exist on all agents.

What to watch carefully

Several defaults and preview behaviors can inflate spend or make it harder to see where the money is going.

  • Build time metering for the GitHub harness: usage starts when you build, test, or evaluate. Budget development and evaluation. Don’t fund only production.
  • No rollover of monthly Copilot Credits: unused capacity resets at the start of the month. Over allocation strands value, especially for capacity packs.
  • Dual billing for GitHub code review: AI Credits for tokens, plus GitHub Actions minutes for the agentic backbone. Plan both.
  • Default permissive paid usage in GitHub: additional metered usage is allowed unless you disable the policy. Without budgets, spend continues past the included pool without friction.
  • Environment and agent attribution in Copilot Studio: no per user breakdown in PPAC. If your internal chargeback needs users, approximate from Microsoft 365 admin center reports where available, or don’t charge back by user at all.
  • Azure budgets in pay-as-you-go: budgets notify but don’t stop usage. Enforcement comes from PPAC hard stops.
  • P3 is rigid by design: one year commit, auto renew, no cancellation or exchange, and no split or merge. Be certain before you buy.
  • Terminology nuance across docs: some Microsoft pages describe a Copilot credit as a message or interaction for pay-as-you-go meters, while the Copilot Studio rate cards express Copilot Credits as a currency across tokens, pages, and images. Anchor any rate explanation in the harness and meter context you are using.
  • Test panel behaviors: prompts in the agent test panel are generally free per message management guidance, but the GitHub harness documentation says build and test are billed. Treat this as harness dependent and verify in your tenant before you scale.

My take: run a constrained pilot first, then scale with policy by default

Start narrow. Create one environment for GitHub harness agents with PPAC limits on every agent, hard stops enabled, and a single budget owner. In GitHub, disable the AI credit paid usage policy for the enterprise, enable cost center budgets for the pilot team, and set user level budgets for every participant.

Prove the reconciliation model with finance before any broad rollout. Include the Microsoft rate tiers and the GitHub model prices you plan to use. Agree the error band that will trigger a budget change. When the weekly exports don’t match the model, fix the taxonomy or the rates in the sheet rather than lifting limits.

Sequence surfaces. Keep code review off until you have budgets for both AI Credits and Actions minutes and a runner policy you can support. Require a written request for any new surface, with a budget line, a stop condition, and a date to review. Pick one owner per meter and meet regularly to review the same spreadsheet and the same exports.

Shift scope by environment. If a team needs more freedom, put it in its own environment with its own limits and budgets. When a pilot finishes with predictable spend and no unplanned stops, clone that pattern for the next team rather than widening the first environment. Keep the harness agents in a single environment until finance signs off on the model and the caps. You don’t need to enable every surface to learn what you need for budgeting.

The point is simple. Meters multiply when scopes mix. Policy keeps them apart.

Sources