Analytics and reporting
The console gives you two places (both under Records) to review what your agents did:
- Activity: Lists every action and transaction. Everyone on your team can open it.
- Reports: Summarizes agent payments and the ones that need attention, and exports them as CSV. Only admins can open Reports.
Activity
To open Activity, go to Records in the console sidebar. Activity has two tabs:
| Tab | Shows | Filters |
|---|---|---|
| All activity | What was requested or changed, by whom, and why | Outcome, Agent |
| Transactions | Money that moved into and out of your accounts | Status, Agent, To/From, Account, Method, Direction |
Both tabs can also be filtered by date: Today, Last 7 days, Last 30 days, Last 90 days, This month, Last month, or All time.
By default, we hide small deposits from Transactions. If you turn on Show hidden under Small deposits, Transactions will show them. Note that Activity has no export, so we recommend Reports when you need a file.
Reports
Admins can open Reports under Records. Reports has two tabs, Agent money activity and Operational exceptions, and each one covers a period: Last 7 days, Last 30 days (the default), Last 90 days, or a custom range of up to 366 days.
Days in Reports are in UTC (Coordinated Universal Time). This means, for example, that a payment made late in the evening in a US time zone may fall on the next day in a report.
Agent money activity
The Agent money activity report lists each send, transfer, x402 payment, and MPP payment an agent requested, along with its outcome. Above the table, the report counts requests with missing evidence and requests by execution status, and it totals the requested amount per asset.
You can narrow the report with the following filters:
| Filter | Values |
|---|---|
| Action | Send, Transfer, x402 payment, MPP payment |
| Disposition | Pending, Approved, Blocked, Denied, Expired, Cancelled, Executing, Completed, Failed |
| Execution | Completed, In flight, Exceptions, No execution |
| Provider | Each payment provider, or None |
| Evidence | Missing evidence only |
| Other | Agent, Account, Policy |
The Evidence column opens the request's evidence packet.
Operational exceptions
The Operational exceptions report lists agent payments that need a person to look at them. Below are the categories an exception may fall into:
| Category | Meaning |
|---|---|
| Manual review | The payment is being held for manual review. |
| Stale provider create | The payment provider has not confirmed that it accepted the payment. |
| Stale wallet lifecycle | A wallet payment has not been confirmed on-chain. |
| Failed or reversed | The payment has failed or has been reversed. |
| Blocked, denied, or expired | The request has ended without a payment. |
Each exception has a handling status: Unreviewed, Open, In review, Resolved, or Dismissed. You can use Manage exception on a row to assign an admin, and to start a review, resolve, dismiss, or reopen the exception. An exception's outcome records how it was handled, and it is one of Action completed, Reviewed, no action, Duplicate, Not actionable, or Superseded.
Above the table, the report counts the exceptions that need handling and totals the affected amount.
Download a report
When you click Download report, Catena will export the current tab, with its period and filters, as CSV. A download holds up to 200 rows, so if a report has more, you'll need to narrow the period or add filters. We record each download, along with who ran it and the filters used.
| Report | File name |
|---|---|
| Agent money activity | agent_money_activity_<from>_<to>.csv |
| Operational exceptions | operational_exceptions_<from>_<to>.csv |
<to> is the day after the last day in the report. For example, a report that
ends on October 31 will have November 1 as its <to> date.
Agent money activity columns
Each row of the Agent money activity file is one request:
| Column | Meaning |
|---|---|
intent_id |
The agent's request. |
created_at, resolved_at |
When the agent made the request, and when it reached a final state. The report period filters on created_at. |
agent_id, agent_name |
The agent that made the request. |
account_id |
The source account. |
policy_id |
The policy that evaluated the request. |
action |
send, transfer, x402, or mpp. |
disposition |
The request's outcome, as in the Disposition filter. |
execution_status |
no_execution, initiated, provider_pending, processing, completed, failed, reversed, or manual_review. |
custody_provider |
The provider that moved the money. |
linkage_status |
linked when a transaction record exists, unlinked when the payment ran but no transaction was found, not_applicable when it never ran. |
amount, asset_id, asset_decimals |
The amount as a decimal, its asset, and the asset's number of decimals. |
counterparty_name |
Who was paid. |
required_approvals, approvals_count |
Approvals the request needed, and approvals it received. |
manifest_status, manifest_id, payload_hash, evidence_lookup_key, evidence_lookup_id, missing_evidence_codes |
The evidence packet. manifest_status is present or not_generated. missing_evidence_codes is separated by |. |
The Operational exceptions file has one row per exception. It carries the same
request, agent, account, amount, and evidence columns, plus category,
opened_at, open, source_type, source_status, the handling columns
(handling_status, handling_disposition, owner_member_id), and who reviewed
and resolved the exception and when.
Read activity from an agent
An agent can't open Reports. However, it can read the transactions of the accounts its policy lets it read, as well as its own intents:
catena accounts transactions acct_... --start 2026-10-01T00:00:00Z --end 2026-11-01T00:00:00Z --limit 200
catena intents list --status completed --start 2026-10-01T00:00:00ZBoth commands return up to 200 items per call, and you can use --offset to
fetch the next page. --end is inclusive, so the first command also returns a
transaction made at exactly 2026-11-01T00:00:00.000Z. Leave that one out of an
October report, since it belongs to November. See
List transactions and
List intents for details.