Performance Management Improvement and Attainment Report
Shared Explore API patternThis report is exposed through the same shared Explore API report-job pattern used by other report types (WFM, QM, CSAT, etc.). It is not a dedicated new endpoint.
Overview
The Performance Management (PM) Improvement and Attainment report is available through the existing Explore API report-job workflow. This lets customers extract PM trend data into their own data warehouse or BI tooling instead of manually exporting the report from the product UI.
This report belongs to Talkdesk Performance Management and is exposed through the same shared Explore API pattern used by other report types.
Use this report when you need recurring, programmatic access to month-over-month improvement and goal-attainment data for analytics, dashboards, or downstream performance review workflows.
First month is excludedThis report compares the current month against the previous month. Because of that, the first tracked month for a measure has no prior month to compare against and is not returned in the output.
Typical use cases include:
- Syncing month-over-month goal-attainment data into an external data warehouse on a schedule.
- Building custom dashboards that combine PM improvement trends with operational or business data.
- Automating monthly or quarterly performance review inputs without manually downloading report files.
Business Problem-Solving Context
What can I achieve with this API?
- Pull month-over-month improvement and attainment statistics — Request the Improvement and Attainment report for a given period using the report-job API.
- Track report generation status — Poll the job by ID until processing finishes, then download the generated file.
What business problems does this API solve?
- Manual export elimination — Removes the need to log in, run the report, and manually send exported files to a data team.
- Data warehouse integration — Supports scheduled ingestion of PM data alongside other Explore exports.
- Consistency with existing tooling — Reuses the same Explore job pattern customers may already use for WFM, QM, CSAT, and other report types.
What does this API support, and what are its limitations?
- A maximum of 15 simultaneous report jobs per account is allowed across all report types.
- Supported output formats are
csv,json, andjson_bulk. - Time filtering is defined with
timespan.fromandtimespan.tousing ISO 8601 date-time values. - There is no additional dimension-level filtering in the request body for specific agents, teams, or queues.
- Only rows with a valid current-versus-previous-month comparison are returned.
- This report uses the shared Explore API job model rather than a custom PM-specific execution flow.
- The simultaneous job quota is shared at the account level across Explore report types, not reserved specifically for
pm_improvement_and_attainment.
Use Case: Pulling the Improvement and Attainment Report into a Data Warehouse
A workforce analytics team wants to track monthly agent improvement trends outside of Talkdesk:
- Create a report job with
POST /data/reports/pm_improvement_and_attainment/jobs, providing a timespan and optional output format such ascsv. For meaningful month-over-month analysis, use a reporting window that covers at least two months. - Poll the job status using
GET /data/reports/pm_improvement_and_attainment/jobs/{id}until the report reaches a final state. - When the job is complete, call
GET /data/reports/pm_improvement_and_attainment/files/{id}to retrieve the generated file through a redirect to a pre-signed download URL.
Usage
The pm_improvement_and_attainment report is retrieved through the shared Explore API job endpoints:
POST /data/reports/pm_improvement_and_attainment/jobs— Creates a new report jobGET /data/reports/pm_improvement_and_attainment/jobs/{id}— Retrieves job execution statusGET /data/reports/pm_improvement_and_attainment/files/{id}— Retrieves the generated report file
Create a Report Job
POST /data/reports/pm_improvement_and_attainment/jobs
POST https://api.talkdeskapp.com/data/reports/pm_improvement_and_attainment/jobs
Content-Type: application/json
Creates a new report job for the authenticated account.
Request Body
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | csv | Label for the report job. Does not affect report contents. |
| format | string | No | csv | Output format: csv, json, or json_bulk. |
| timezone | string | No | Account default | IANA timezone applied to the provided timespan. |
| timespan.from | string (date-time) | No | Report default | Start of the reporting period. |
| timespan.to | string (date-time) | No | Report default | End of the reporting period. |
Response: 202 Accepted
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "created"
}Error Responses
| HTTP Status | Description |
|---|---|
| 400 | Bad Request — invalid input, invalid timespan, or invalid timezone |
| 401 | Unauthorized |
| 403 | Inputs Misconfiguration, such as a missing required scope |
| 429 | Too Many Requests — the account-level simultaneous job quota has been reached |
| 503 | Unable to audit operation |
Retrieve Job Status
GET /data/reports/pm_improvement_and_attainment/jobs/{id}
GET https://api.talkdeskapp.com/data/reports/pm_improvement_and_attainment/jobs/{id}
Retrieves the current execution state of a report job.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | The unique identifier of the report job returned by the create-job request. |
| report type | string | Yes | Fixed as pm_improvement_and_attainment in this endpoint path. |
Response
Returns 200 OK while the job is in progress, or may return a redirect when the report is already available.
Job Status Lifecycle
| Status | Description |
|---|---|
| created | The job was accepted and created. |
| processing | The report is being generated. |
| uploading | The generated file is being prepared for retrieval. |
| done | The report is complete and available for download. |
| failed | The report job ended unsuccessfully. |
| canceled | The report job was canceled. |
| deleted | The report job was deleted. |
Error Responses
400, 401, 403, 404 (job not found), 503
Retrieve the Report File
GET /data/reports/pm_improvement_and_attainment/files/{id}
GET https://api.talkdeskapp.com/data/reports/pm_improvement_and_attainment/files/{id}
Retrieves the generated report file for a completed job.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string (UUID) | Yes | The identifier of the completed report job whose output file should be downloaded. |
| file type | string | Yes | Determined by the report format selected when the job was created. |
Response: 302 Found
The response redirects to a pre-signed download URL in the Location header.
Error Responses
400, 401, 403, 404 (file not found), 503
Report Field Schema
The CSV column headers use the report's current display labels. Most are in Title Case, but one known field is currently returned using its raw internal reference (see the callout below).
Month Comparison - Current vs Previous Month,Measure Name,Interval Type,Queue Type,Count Agent Positive Result - Current vs Previous Month,Count Agent NON Positive Result - Current vs Previous Month,Improvement,Count Agent Positive Attainment - Improvement and Goal,Count Agent NON Positive Attainment - Improvement and Goal,leaderboard_pm_trend.attainment_1,Count Distinct Agent
January-2026 - February-2026,SCHEDULE ADHERENCE,Monthly,All,4,10,0.2857142857142857,0,14,0.0,14| Column Header | Description |
|---|---|
| Month Comparison - Current vs Previous Month | The two months being compared, for example January-2026 - February-2026. |
| Measure Name | Name of the measure the trend was calculated for. |
| Interval Type | Aggregation interval of the entry. |
| Queue Type | Indicates whether the entry applies to All queues or a Specific queue scope. |
| Count Agent Positive Result - Current vs Previous Month | Number of agents whose result improved versus the previous month. |
| Count Agent NON Positive Result - Current vs Previous Month | Number of agents whose result did not improve versus the previous month. |
| Improvement | Fraction from 0 to 1 representing the share of agents whose result improved versus the previous month. |
| Count Agent Positive Attainment - Improvement and Goal | Number of agents who both improved and reached the goal in the current month. |
| Count Agent NON Positive Attainment - Improvement and Goal | Number of agents who did not both improve and reach the goal. |
| leaderboard_pm_trend.attainment_1 | Fraction from 0 to 1 representing the share of agents who improved and also reached the goal. |
| Count Distinct Agent | Total number of distinct agents included in the comparison. |
Known issue: unlabeled fieldThe attainment column is currently returned as
leaderboard_pm_trend.attainment_1instead of a cleaner label such asAttainment. This documentation reflects current live behavior until the upstream label is corrected.
Only rows with a non-blank month-over-month comparison are returned.
Authentication & Authorization
This API requires OAuth 2.0 authentication using a Bearer token with the client credentials grant.
| Scope | Required for |
|---|---|
data-reports:write | POST requests that create report jobs |
data-reports:read | GET requests that retrieve job status or files |
Subscription Limits
- Maximum of 15 simultaneous report jobs per account, shared across all Explore report types.
- Rate limit of 25 requests per second per account on the
/data/reports/**route. - Pre-signed download URLs remain valid until expiration, according to the shared Explore file delivery behavior.
Updated about 7 hours ago