---
title: "Generate a PI Progress deck (SAFe-grade quarterly progress report)"
method: POST
path: "/v1/workflows/agile/pi-progress"
tags: ["workflows"]
---

# Generate a PI Progress deck (SAFe-grade quarterly progress report)

`POST /v1/workflows/agile/pi-progress`

## Request

- Base URL: `https://api.slideforge.dev`
- URL: `https://api.slideforge.dev/v1/workflows/agile/pi-progress`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

SAFe Program Increment / quarterly progress. 4 slides:
1. Executive Dashboard (6 KPIs)
2. PI Predictability (achievement % per sprint, 80-100% target band)
3. Feature Burnup (per-epic progress)
4. Highlights & Risks

**Audience:** RTE, Product Mgmt, executives.
**Cadence:** per PI (8-12 weeks) or quarterly.

**Deferred** until source data exists: PI Objectives (BV scoring), Program Board (team-per-feature), Next-PI Preview (PI plan).

## Request body

- AgileWorkflowRequest: Shared request body for /v1/workflows/agile/* endpoints. Three input modes (mutually exclusive): Mode A (stored OAuth): connection_id [+ project_id for single-project, omit for workspace-wide] Mode B-staging: staging_data dict — NOT YET IMPLEMENTED in Phase A Mode B-prepared: prepared_data dict (a SprintMetrics-shaped dict) → render only
  - `connection_id` string, nullable: OAuth connection (from /v1/oauth/{vendor}/authorize flow). Workspace-wide aggregation when project_id is omitted.
  - `project_id` string, nullable: Project ID (single-project mode); omit for workspace-wide aggregation.
  - `sprint_history` integer: Number of past sprints for trending
  - `staging_data` object, nullable: Caller-supplied canonical entities (SprintData, etc). NOT YET implemented.
  - `prepared_data` object, nullable: Pre-computed SprintMetrics-shaped dict — render only. Keys match SprintMetrics dataclass fields.
  - `theme_id` string
  - `options` object: Workflow-specific options, e.g. {exclude_slides: [...]}

## Response `202`

Report queued

- unknown

## Other responses

- `400`: Invalid input
- `401`: Authentication required
- `422`: Validation Error

---

[API](https://skmtc.dev/slideforge/apis/slideforge-api.md) · [All operations](https://skmtc.dev/slideforge/apis/slideforge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/slideforge/apis/slideforge-api/revisions/ae698e3d3c00?raw)
