How can we calculate the actual cost per conversation for each Copilot Studio agent?

Atul kumar kashyap 0 Reputation points
2026-11-13T10:38:12.8566667+00:00

I am developing a cost monitoring dashboard for Copilot Studio.

I want to calculate the cost associated with each conversation, rather than only viewing the total monthly Copilot Credit consumption.

Required metrics:

Conversation ID.

Agent name and ID.

Total Copilot Credits consumed per conversation.

Actual monetary cost per conversation.

Model/token consumption, where applicable.

Tool and agent-flow consumption.

Environment and date.

Historical cost trends.

Does Microsoft expose conversation-level billing information through an API, Dataverse, Power Platform Admin Center, or Azure Cost Management?

Is there a supported way to map Copilot Credit consumption to individual conversations and calculate their monetary cost?

Please share the relevant APIs, data sources, and calculation methodology.

Microsoft Copilot | Microsoft Security Copilot
0 comments No comments

1 answer

Sort by: Oldest
  1. AI answer

    2026-11-13T10:39:31.7666667+00:00

    Copilot Studio does not currently expose one supported API or Dataverse billing table that maps every Conversation ID to Copilot Credits, tokens, tools, and currency cost; the closest supported capability is session-level credit visibility in Monitor for Microsoft Copilot harness agents, while tenant-wide exports remain aggregated by agent, environment, feature, and date.

    What is available

    Requirement Supported source Granularity / limitation
    Conversation/session ID Copilot Studio session export or Dataverse ConversationTranscript Session/conversation level, but not a billing ledger
    Credits per conversation Monitor → Sessions, for Microsoft Copilot harness agents UI session list can show Credits used; recent sessions are limited to 28 days
    Agent and environment credit usage Power Platform admin center consumption reports Agent/environment/feature level; explicitly not individual conversation or message
    Model, tool, channel, feature Detailed environment consumption report Includes model and tool, but not Conversation ID
    Token count Not exported Reasoning-model billed tokens can only be estimated from premium credits
    Currency cost Azure Cost Management for pay-as-you-go Billing-policy/resource/meter level, not conversation level
    Programmatic consumption Power Platform entitlement-insight operations Aggregate entitlement consumption; not conversation-level and not a substitute for per-agent limits
    Microsoft 365 Cost Management API Microsoft Graph Reports credit usage but excludes pricing, invoices, and currency cost

    The Power Platform admin center reports explicitly omit single-conversation/message usage and input, output, or cached token counts. Their detailed export contains Agent name, Product / AI feature, Channel, LLM model, Knowledge sources / Tool used, and billed/non-billed credits.^1^

    1. Collect authoritative agent-level consumption

    In the Power Platform admin center:

    1. Go to Licensing → Copilot Studio → Environments.
    2. Select an environment.
    3. Open Copilot Credits capacity.
    4. In Copilot credit consumption details, select Download.
    5. Load the report into the dashboard and retain:
      • environment
      • agent name
      • product/AI feature
      • channel
      • LLM model
      • knowledge source/tool
      • billed and non-billed credits
      • reporting period

    Use the Summary → Download report exports for historical environment-, agent-, and user-level trends. Built-in monitoring provides daily current-month and previous-month data, plus monthly data for the past 12 months.^1^

    2. Collect session telemetry separately

    For Microsoft Copilot harness agents:

    1. Open the agent in Copilot Studio.
    2. Select Monitor.
    3. Set the reporting date range.
    4. Review Sessions and Credits used.
    5. Download session data before the retention window expires.

    Monitor exposes individual sessions and their consumed credits, while transcripts can be downloaded for periods within the last 29 days.^2^

    For agents whose transcripts are stored in Dataverse, export ConversationTranscript. It provides the conversation identifier, agent ID/name, timestamps, channel, and transcript content, but no documented Copilot Credit or currency-cost field.^3^

    Important exceptions:

    • Transcripts aren't written for Dataverse for Teams environments.
    • The general Copilot Studio transcript export documentation also states that transcripts aren't written for Microsoft Copilot agents.
    • Copilot Studio session storage is limited to approximately 28 days.^4^

    For longer retention where Dataverse transcripts exist, Microsoft recommends exporting ConversationTranscript incrementally through Azure Synapse Link to Data Lake Storage Gen2 and using append-only storage or snapshots.^5^

    3. Calculate monetary cost only where a valid rate exists

    For pay-as-you-go, the current documented example rate is USD $0.01 per Copilot Credit.^6^

    conversation_cost =
        billed_credits_for_conversation
        × contracted_payg_price_per_credit
    

    For example, 141 billed credits at $0.01 per credit produces an attributed cost of $1.41.

    Do not apply that formula as an “actual” cost for every licensing arrangement:

    • Prepaid credits are pooled across the tenant.
    • Microsoft 365 Copilot-licensed, authenticated employee usage can be non-billed under specified conditions.
    • Pre-purchase discounts and negotiated pricing change the effective rate.
    • Azure Cost Management shows actual pay-as-you-go charges by subscription/resource/meter, not Conversation ID.^7^

    For prepaid capacity, label the result allocated cost, using an accounting rate such as:

    effective_credit_rate =
        prepaid_period_cost / credits_available_or_consumed
    
    allocated_conversation_cost =
        conversation_credits × effective_credit_rate
    

    That is an internal allocation, not a Microsoft-provided conversation-level invoice amount.

    Tokens, tools, and flows

    Reasoning-model premium usage is billed at 10 Copilot Credits per 1,000 billed tokens. Therefore:

    estimated_billed_tokens = premium_credits × 100
    

    This is approximate when the same report line also includes prompt-tool usage. Cached input read from the prompt cache isn't billed; input written to cache, output, and reasoning tokens are billed.^8^

    Tool and flow costs should be retained as separate feature rows. Current standard-harness rates include 5 credits per agent action and 13 credits per 100 agent-flow actions; AI-tool rates vary by model tier.^8^

    API conclusion

    There is no documented supported API that returns the requested complete record keyed by Conversation ID. The Microsoft 365 Copilot Cost Management API reports AI-credit usage but explicitly excludes prices, invoices, currency costs, and forecasts.^9^

    Consequently, exact per-conversation cost is supported only where the applicable agent’s Monitor experience exposes final session credits. Otherwise, the defensible dashboard granularity is environment + agent + date + billing feature, with conversation metrics maintained as a separate telemetry dataset rather than joined as exact billing records.


    References

    1. Manage Copilot Credits and capacity for Copilot Studio
    2. Monitor agent performance overview (Microsoft Copilot)
    3. Understand downloaded conversation transcripts from Power Apps
    4. Understand downloaded session data from Copilot Studio
    5. Develop a custom analytics strategy
    6. Optimize Copilot Credit costs with a pre-purchase plan
    7. Usage-based billing: What you see in the Microsoft 365 admin center vs. your Azure bill
    8. Billing rates and management
    9. Understand usage-based billing and cost management for Copilot Credits
    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.