> ## Documentation Index
> Fetch the complete documentation index at: https://phidatainc-agui.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Team Metrics

> Access RunMetrics, MessageMetrics, and SessionMetrics from team runs.

The **TeamRunOutput** from a team run includes detailed metrics about token usage, cost, timing, and per-model breakdowns for the team leader. Member metrics are stored separately on each member's `RunOutput`.

```python theme={null}
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIResponses
from agno.team import Team
from agno.tools.yfinance import YFinanceTools
from rich.pretty import pprint

stock_agent = Agent(
    name="Stock Agent",
    model=OpenAIResponses(id="gpt-5.2"),
    role="Get stock prices and financial data.",
    tools=[YFinanceTools()],
)

team = Team(
    name="Finance Team",
    model=OpenAIResponses(id="gpt-5.2"),
    members=[stock_agent],
    db=SqliteDb(db_file="tmp/teams.db"),
    markdown=True,
    store_member_responses=True,
)

run_response = team.run("What is the stock price of NVDA?")

# Team leader message metrics (MessageMetrics)
for message in run_response.messages:
    if message.role == "assistant":
        pprint(message.metrics.to_dict())

# Team leader run metrics (RunMetrics)
pprint(run_response.metrics.to_dict())

# Per-model breakdown (leader only)
if run_response.metrics.details:
    for model_type, model_metrics_list in run_response.metrics.details.items():
        for m in model_metrics_list:
            print(f"{model_type}: {m.provider}/{m.id} - {m.total_tokens} tokens")

# Member run metrics (RunMetrics per member)
if run_response.member_responses:
    for member_response in run_response.member_responses:
        print(f"Member: {member_response.agent_name}")
        pprint(member_response.metrics.to_dict())

# Session metrics (SessionMetrics) - aggregates leader + all members
pprint(team.get_session_metrics().to_dict())
```

Metrics are available at multiple levels:

* **Per message**: Each assistant message has `MessageMetrics` with per-API-call token counts and timing.
* **Per member run**: Each team member run has its own `RunMetrics`. Set `store_member_responses=True` to access them.
* **Team leader run**: `TeamRunOutput.metrics` has `RunMetrics` for the team leader's model calls only.
* **Per session**: `team.get_session_metrics()` returns `SessionMetrics` aggregated across leader and all members.

| Level           | Type             | Access                                                             |
| --------------- | ---------------- | ------------------------------------------------------------------ |
| Per message     | `MessageMetrics` | `message.metrics`                                                  |
| Per member run  | `RunMetrics`     | `member_response.metrics` (requires `store_member_responses=True`) |
| Team leader run | `RunMetrics`     | `run_response.metrics`                                             |
| Per session     | `SessionMetrics` | `team.get_session_metrics()`                                       |

### Run fields (`RunMetrics`)

<Snippet file="run-metrics-fields.mdx" />

### Message fields (`MessageMetrics`)

<Snippet file="message-metrics-fields.mdx" />

## Developer Resources

* [TeamRunOutput schema](/reference/teams/team-response)
* [Metrics reference](/reference/run/metrics)
* [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/03_teams/22_metrics/01_team_metrics.py)
