---
title: "Create a scenario"
method: POST
path: "/v1/org/{orgId}/scenario"
tags: ["scenario"]
---

# Create a scenario

`POST /v1/org/{orgId}/scenario`

## Path parameters

- `orgId` string, required

## Query parameters

- `silent` boolean
- `skipChangeCreation` boolean

## Request body

- CreateScenario
  - `name` string, required — scenario name
  - `description` string — scenario description
  - `startDate` string, date — date that this scenario diverges from primary
  - `status` 'OPEN' | 'INACTIVE' | 'MERGED' | 'DRAFT' | 'ARCHIVED' — status of scenario
  - `shareAccess` ShareAccess[] — users who are specifically granted permission to this scenario
    - `access` 'NONE' | 'LIMITED_READ' | 'LIMITED_WRITE' | 'STANDARD_READ' | 'STANDARD_WRITE' | 'COMPENSATION_READ' | 'FULL_READ' | 'COMP_PLANNING_PARTICIPANT' | 'COMPENSATION_WRITE' | 'WRITE' | 'COMPENSATION_OWNER' | 'OWNER', required — access permission level
    - `userId` string — user id
    - `groupId` string — group id
    - `fields` string — fields
  - `type` 'GENERAL' | 'COMP' | 'PROMOTION' | 'TERMINATE' | 'CREATE_JOB' | 'UPDATE_JOB' | 'BUDGET' | 'BACKFILL' — Type of scenario to be created
  - `startDateFixed` 'FIXED' | 'TODAY', required — whether or not the start date should stay fixed in time, or update to today's date as time passes
  - `query` string — Query for selecting which people/jobs are initially included in the scenario (only applies to promotion scenarios)
  - `validJobIdSet` string[] — This scenario changes are restricted to the following jobIds
  - `entityId` string — The entity this scenario is associated with
  - `entityType` 'COMP_REVIEW' — The type of entity associated with this scenario
  - `sharedViewConfig` ScenarioSharedViewConfig[] — View configurations associated with this scenario
    - `customColumnNames` string[] — list of column names to display
    - `columnWidths` object — map of column names to widths
    - `type` 'ALL_CHANGES_GROUPED' | 'CREATE' | 'HIRE' | 'DELETE' | 'DEPART' | 'COMP' | 'UPDATE' | 'MOVE' — type of view
    - `updateId` string — update id
    - `updateAt` string — update at
  - `budget` Money
    - `amount` number, required
    - `currency` string, required
    - `places` integer

## Response `201`

scenario created

- Scenario
  - `id` string, required — globally unique id
  - `orgId` string, required — parent organization id
  - `name` string, required — scenario name
  - `description` string — scenario description
  - `startDate` string, date, required — date that this scenario diverges from primary
  - `status` 'OPEN' | 'INACTIVE' | 'MERGED' | 'DRAFT' | 'ARCHIVED', required — status of scenario
  - `shareAccess` ShareAccess[], required — users who are specifically granted permission to this scenario
    - `access` 'NONE' | 'LIMITED_READ' | 'LIMITED_WRITE' | 'STANDARD_READ' | 'STANDARD_WRITE' | 'COMPENSATION_READ' | 'FULL_READ' | 'COMP_PLANNING_PARTICIPANT' | 'COMPENSATION_WRITE' | 'WRITE' | 'COMPENSATION_OWNER' | 'OWNER', required — access permission level
    - `userId` string — user id
    - `groupId` string — group id
    - `fields` string — fields
  - `cost` CostImpact
    - `annual` number, required — total annual run-rate impact
    - `firstMonth` string, required — first month to be affected
    - `months` number[], required — impact to each month, starting at firstMonth
    - `basis` 'ANNUALIZED' | 'PERIOD_TOTAL', required — the basis this cost is measured on
  - `changeCount` integer — number of changes contained in scenario
  - `changeCounts` object — number of changes of each type contained in scenario
  - `createId` string, required — created by user id
  - `createBehalfId` string — created on behalf of user id
  - `createAttribution` Attribution
    - `principalUserId` string
    - `agentUserIds` string[]
    - `eventId` string
    - `aiChatId` string
    - `aiToolUseId` string
    - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
  - `createAt` string, required — created timestamp
  - `updateId` string, required — last updated by user id
  - `updateBehalfId` string — last updated on behalf of user id
  - `updateAttribution` Attribution
    - `principalUserId` string
    - `agentUserIds` string[]
    - `eventId` string
    - `aiChatId` string
    - `aiToolUseId` string
    - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
  - `updateAt` string, required — last updated timestamp
  - `deleteId` string — deleted by user id
  - `deleteBehalfId` string — deleted on behalf of user id
  - `deleteAttribution` Attribution
    - `principalUserId` string
    - `agentUserIds` string[]
    - `eventId` string
    - `aiChatId` string
    - `aiToolUseId` string
    - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
  - `deleteAt` string — deleted timestamp
  - `mergeId` string — merged by user id
  - `mergeAt` string — merged timestamp
  - `calcStartAt` string — most recent summary calculation started at timestamp
  - `calcEndAt` string — most recent summary calculation ended at timestamp
  - `changeAt` string — timestamp of most recent changes made to scenario
  - `changeId` string — user who made the most recent change to scenario
  - `type` 'GENERAL' | 'COMP' | 'PROMOTION' | 'TERMINATE' | 'CREATE_JOB' | 'UPDATE_JOB' | 'BUDGET' | 'BACKFILL' — Type of scenario to be created
  - `startDateFixed` 'FIXED' | 'TODAY', required — whether or not the start date should stay fixed in time, or update to today's date as time passes
  - `query` string — Query for selecting which people/jobs are initially included in the scenario (only applies to promotion scenarios)
  - `validJobIdSet` string[] — This scenario changes are restricted to the following jobIds
  - `approvalRequestId` string — Approval request id, if the scenario has been submitted for approval
  - `entityId` string — The entity this scenario is associated with
  - `entityType` 'COMP_REVIEW' — The type of entity associated with this scenario
  - `sharedViewConfig` ScenarioSharedViewConfig[] — View configurations associated with this scenario
    - `customColumnNames` string[] — list of column names to display
    - `columnWidths` object — map of column names to widths
    - `type` 'ALL_CHANGES_GROUPED' | 'CREATE' | 'HIRE' | 'DELETE' | 'DEPART' | 'COMP' | 'UPDATE' | 'MOVE' — type of view
    - `updateId` string — update id
    - `updateAt` string — update at
  - `budget` Money
    - `amount` number, required
    - `currency` string, required
    - `places` integer

## Other responses

- `400` — invalid data
- `401` — not authorized
- `403` — permission denied
- `404` — org not found

---

[API](https://skmtc.net/charthop/apis/charthop-api.md) · [All operations](https://skmtc.net/charthop/apis/charthop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/charthop/charthop-api/versions/50a1edd6b27e/schema)
