# Reports

> Daily contact-center reports - agent performance and queue performance with service level, wait times and dispositions, for up to 92 days.

Source: https://edesy.in/docs/contact-center/supervisors/reports

Contact-center reports in *Analytics* give daily agent and queue performance for any date range up to 92 days, defaulting to the last 7 days. Agent rows show inbound calls handled, outbound calls placed, talk time, average handle time, missed offers, wrap-up time and occupancy. Queue rows show calls offered, answered and abandoned, average and maximum wait, and service level.

## Agent performance

| Column | API field |
|---|---|
| Inbound handled | `calls_handled` |
| Outbound placed | `calls_outbound` |
| Talk time | `talk_time_seconds` |
| Avg handle time | `avg_handle_time_seconds` |
| Missed | `calls_missed` |
| Wrap-up | `wrap_up_time_seconds` |
| Occupancy | `occupancy_percent` |

## Queue performance

| Column | API field |
|---|---|
| Offered | `calls_offered` |
| Answered | `calls_answered` |
| Abandoned | `calls_abandoned` |
| Avg wait | `avg_wait_time_seconds` |
| Max wait | `max_wait_time_seconds` |
| Service level | `service_level_percent` (answered within 20 s / answered) |

## How reports are built

1. **Calls and status changes are logged** as they happen.
2. **A daily rollup** turns them into one row per agent per day and one row per queue per day.
3. **You pick a range** in *Analytics*, or pass `from` and `to` (YYYY-MM-DD, inclusive) to the API.
4. **Metrics we cannot measure are labelled.** Transfers, hold time and first-call resolution are returned as "not recorded" rather than zero.

## API

| Method | Path | Returns |
|---|---|---|
| `GET` | `/ccaas/reports/agents?from=&to=` | Daily rows for every agent |
| `GET` | `/ccaas/reports/agents/{id}?from=&to=` | One agent's daily trend plus disposition breakdown |
| `GET` | `/ccaas/reports/queues?from=&to=` | Daily rows for every queue |

Each response has `data` (rows) and `meta` with `from`, `to`, `state_history_since` and an `unmeasured` map. A range over 92 days, or `from` after `to`, returns `400`.

## FAQ

### What is the longest range I can request?
92 days per request.

### Why do older rows show "not recorded" for wrap-up and occupancy?
Time-in-state metrics come from agent state history, which starts on 18 September 2026.

### Are transfers counted?
Not yet. They are listed in `meta.unmeasured`.

### Can I export reports?
Call the API and save the JSON, or copy from the *Analytics* tables.

### Does today's data appear?
Today's live numbers are on the [real-time dashboard](https://edesy.in/docs/contact-center/supervisors/realtime-dashboard). Reports show completed days from the daily rollup.

### How is occupancy defined?
Working time (on call, busy and wrap-up) divided by working time plus available time. Break and offline time are left out.
