---
title: "Try a change: what goes with supposing claims do not hold, or numbers take values"
method: POST
path: "/workspaces/{id}/questions/{questionId}/suppose"
tags: ["model"]
---

# Try a change: what goes with supposing claims do not hold, or numbers take values

`POST /workspaces/{id}/questions/{questionId}/suppose`

## Request

- Base URL: `https://api.swingfactor.ai/v1`
- URL: `https://api.swingfactor.ai/v1/workspaces/{id}/questions/{questionId}/suppose`
- Auth: HTTP bearer

Read-only, and kept nowhere: for each accepted claim supposed not to hold, what rests on it and each option’s answer that loses its footing; for each number at a value, which side of each threshold on it the value falls, beside where the accepted ranges are now. It reads no view, and compares no option with another.

## Path parameters

- `id` string, uuid, required
- `questionId` string, uuid, required

## Request body

- SuppositionBody
  - `notHolding` string[]: Accepted claims supposed not to hold.
  - `values` object[]: Uncertain numbers, each at a value to try.
    - `variableId` string, uuid, required
    - `value` number, required

## Response `200`

What goes with it.

- Supposed
  - `claims` object[], required
    - `claimId` string, uuid, required
    - `reaches` object[], required: The accepted claims resting on it, each with the chain that explains it.
      - `claimId` string, uuid, required
      - `depth` integer, required
      - `path` string[], required
  - `answers` object[], required: Each option’s answer on each factor that loses its footing. Nothing is compared.
    - `optionId` string, uuid, required
    - `factorId` string, uuid, required
    - `answerId` string, uuid: The option’s accepted answer, where it has one.
    - `because` object[], required: The claims establishing it that a supposition reaches, and from which.
      - `claimId` string, uuid, required
      - `from` string, uuid, required
      - `path` string[], required
      - `common` boolean, required
  - `numbers` object[], required
    - `variableId` string, uuid, required
    - `value` number, required
    - `thresholds` object[], required
      - `breakEvenId` string, uuid, required
      - `variableId` string, uuid, required
      - `threshold` number, required
      - `horizon` 'transition' | 'early' | 'medium' | 'long' | 'every' | 'null', nullable: The matched horizon: transition (Day One), early adjustment, medium term, long run, or every horizon. None: not stated — never every.
      - `consequence` string, required: What changes at the threshold.
      - `basis` 'derived' | 'published' | 'criterion' | 'asserted', required: How it is known: derived (its arithmetic shown), published, a published criterion, or asserted by a named party — which records that they say so, not that they are right.
      - `derivation` string, nullable: For a derived one: the arithmetic.
      - `source` string, nullable: Where it is published, or asserted.
      - `assertedBy` string, nullable: For an asserted one: who draws the line.
      - `belowOutcome` string, nullable: What occurs below the threshold.
      - `aboveOutcome` string, nullable: What occurs above it.
      - `compares` object[], required: The two options it compares, each perhaps one configuration, in no order; or none. Never which is ahead: which way a consequence counts is a judgement, not the model’s.
        - `optionId` string, uuid, required
        - `configurationId` string, uuid, nullable
      - `configurationId` string, uuid, nullable: For a break-even comparing no options: the configuration it holds under.
      - `scenarioId` string, uuid, nullable
      - `everyScenario` boolean
      - `measuredAgainst` string, nullable: What it is measured against: compared with a range’s baseline, never bridged.
      - `evidential` boolean, required
      - `side` 'below' | 'at' | 'above', required
      - `now` object, required
        - `belowEstimateIds` string[], required
        - `aboveEstimateIds` string[], required
        - `acrossEstimateIds` string[], required

## Other responses

- `401`: No token, or not a valid one: `unauthorized`.
- `404`: No such question, or a claim or number it does not accept.
- `422`: Not a supposition it can read.

---

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