> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# analyticsReportEditPlan

> See how a report would change for an edit described in plain English, without changing it. Show the plan to the user, then pass its `planId` to `analyticsReportEditFromPlan` to save it. Takes 10 to 30 seconds. Null when the report does not exist. Throws REPORT_NOT_READY (409) while the report is PREPARING, and ANALYTICS_REPORT_EDIT_PLAN_UNSUPPORTED (400) for an older report that can't be planned.

**Required scopes:** [`analytics_write`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-analytics_write)

## Arguments

**id** `ID!` *required*

The id of the report.

**instruction** `String!` *required*

The change, in plain English, such as `add a column for refund amount`.

## Returns

**analyticsReportEditPlan** `[AnalyticsReportPlan](/docs/api-reference/v3/reference/analytics/analytics-report-plan)`

What Redo would build for a question or an edit, without saving anything. Pass `planId` to `analyticsReportCreateFromPlan`, or for an edit to `analyticsReportEditFromPlan`, to save it.

**fields**

**columns** `[\[AnalyticsReportPlanColumn!\]!](/docs/api-reference/v3/reference/analytics/analytics-report-plan-column)` *required*

The columns the report would have, in order. Show them to the user before saving the plan.

**fields**

**calculation** `String`

How the column would be calculated, such as `count of distinct returns`. Null for a column read as stored.

**description** `String`

What the column means.

**label** `String!` *required*

The column's header.

**explanation** `String!` *required*

What the report would show, or why it can't be made.

**limitations** `[String!]!` *required*

Ways the report would differ from what was asked.

**missingConcepts** `[String!]!` *required*

What Redo's analytics has no data for.

**planId** `ID`

The plan to save. Null when the report is UNAVAILABLE.

**status** `[AnalyticsReportPlanStatus!](/docs/api-reference/v3/reference/analytics/analytics-report-plan-status)` *required*

Whether the report can be made as asked.

**title** `String`

The title the report would have.

## Example

```graphql theme={null}
mutation {
  analyticsReportEditPlan(id: "...", instruction: "...") {
    explanation
    limitations
    missingConcepts
    planId
    status
    title
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.