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

# 몬테카를로

> 필요한 권한: `plans:read`



## OpenAPI

````yaml /openapi.json get /v1/plans/{id}/monte-carlo
openapi: 3.1.0
info:
  title: OpenAPI definition
  version: v0
servers:
  - url: https://api.morrowly.app
security:
  - token: []
paths:
  /v1/plans/{id}/monte-carlo:
    get:
      tags:
        - plans
      summary: 몬테카를로
      description: '필요한 권한: `plans:read`'
      operationId: monteCarlo
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: uuid
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ApiResponseMonteCarloResult'
          description: OK
        '401':
          description: 토큰이 없거나 틀리거나 만료됨(본문 없음)
        '403':
          description: 토큰의 권한이 모자람(본문 없음)
components:
  schemas:
    ApiResponseMonteCarloResult:
      properties:
        data:
          oneOf:
            - $ref: '#/components/schemas/MonteCarloResult'
            - type: 'null'
        error:
          oneOf:
            - $ref: '#/components/schemas/ErrorMessage'
            - type: 'null'
        result:
          $ref: '#/components/schemas/ResultType'
      required:
        - data
        - error
        - result
      type: object
    MonteCarloResult:
      properties:
        bands:
          items:
            $ref: '#/components/schemas/NetWorthBand'
          type: array
        fiAge:
          oneOf:
            - $ref: '#/components/schemas/AgeSpread'
            - type: 'null'
        fiReached:
          items:
            format: int32
            type: integer
          type: array
        finalNetWorth:
          $ref: '#/components/schemas/Stats'
        histograms:
          items:
            $ref: '#/components/schemas/Histogram'
          type: array
        liquidBands:
          items:
            $ref: '#/components/schemas/NetWorthBand'
          type: array
        liquidHistograms:
          items:
            $ref: '#/components/schemas/Histogram'
          type: array
        outcomes:
          $ref: '#/components/schemas/Outcomes'
        retirementAge:
          format: int32
          type:
            - integer
            - 'null'
        retirementNetWorth:
          oneOf:
            - $ref: '#/components/schemas/Stats'
            - type: 'null'
        runs:
          format: int32
          type: integer
        shortfallAge:
          oneOf:
            - $ref: '#/components/schemas/AgeSpread'
            - type: 'null'
        shortfallReached:
          items:
            format: int32
            type: integer
          type: array
        spendingAfter:
          oneOf:
            - $ref: '#/components/schemas/Stats'
            - type: 'null'
        spendingBefore:
          oneOf:
            - $ref: '#/components/schemas/Stats'
            - type: 'null'
        successRate:
          format: double
          type: number
        trials:
          items:
            $ref: '#/components/schemas/Trial'
          type: array
      required:
        - bands
        - fiAge
        - fiReached
        - finalNetWorth
        - histograms
        - liquidBands
        - liquidHistograms
        - outcomes
        - retirementAge
        - retirementNetWorth
        - runs
        - shortfallAge
        - shortfallReached
        - spendingAfter
        - spendingBefore
        - successRate
        - trials
      type: object
    ErrorMessage:
      properties:
        code:
          type: string
        data: {}
        message:
          type: string
      required:
        - code
        - data
        - message
      type: object
    ResultType:
      enum:
        - SUCCESS
        - ERROR
      type: string
    NetWorthBand:
      properties:
        age:
          format: int32
          type: integer
        p1:
          format: int64
          type: integer
        p10:
          format: int64
          type: integer
        p25:
          format: int64
          type: integer
        p50:
          format: int64
          type: integer
        p75:
          format: int64
          type: integer
        p90:
          format: int64
          type: integer
      required:
        - age
        - p1
        - p10
        - p25
        - p50
        - p75
        - p90
      type: object
    AgeSpread:
      properties:
        p10:
          format: int32
          type: integer
        p50:
          format: int32
          type: integer
        p90:
          format: int32
          type: integer
        runs:
          format: int32
          type: integer
      required:
        - p10
        - p50
        - p90
        - runs
      type: object
    Stats:
      properties:
        max:
          format: int64
          type: integer
        mean:
          format: int64
          type: integer
        median:
          format: int64
          type: integer
        min:
          format: int64
          type: integer
        sd:
          format: int64
          type: integer
      required:
        - max
        - mean
        - median
        - min
        - sd
      type: object
    Histogram:
      properties:
        age:
          format: int32
          type: integer
        counts:
          items:
            format: int32
            type: integer
          type: array
        from:
          format: int64
          type: integer
        short:
          format: int32
          type: integer
        width:
          format: int64
          type: integer
      required:
        - age
        - counts
        - from
        - short
        - width
      type: object
    Outcomes:
      properties:
        almost:
          format: int32
          type: integer
        closeCall:
          format: int32
          type: integer
        comfortable:
          format: int32
          type: integer
        largeSurplus:
          format: int32
          type: integer
        shortfall:
          format: int32
          type: integer
      required:
        - almost
        - closeCall
        - comfortable
        - largeSurplus
        - shortfall
      type: object
    Trial:
      properties:
        endNetWorth:
          format: int64
          type: integer
        outcome:
          $ref: '#/components/schemas/Outcome'
        retirementNetWorth:
          format: int64
          type:
            - integer
            - 'null'
        shortfallAge:
          format: int32
          type:
            - integer
            - 'null'
      required:
        - endNetWorth
        - outcome
        - retirementNetWorth
        - shortfallAge
      type: object
    Outcome:
      enum:
        - LARGE_SURPLUS
        - COMFORTABLE
        - CLOSE_CALL
        - ALMOST
        - SHORTFALL
      type: string
  securitySchemes:
    token:
      scheme: bearer
      type: http

````

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