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

# Calculate Macaulay Duration

> Calculate the Macaulay duration of a bond - the weighted average time to receive all cash flows. Duration measures a bond's sensitivity to interest rate changes and is expressed in years. Higher duration means greater price sensitivity to rate changes. Essential for immunization strategies, duration matching, and interest rate risk management. [Tier: STANDARD, Credits: 2]



## OpenAPI

````yaml api-specs/solver.json post /quantlib/solver/finance/duration
openapi: 3.1.0
info:
  title: FinceptQuantLib API - Solver
  description: >-
    Solver module endpoints for FinceptQuantLib API. The Solver module (Basic
    Tier, 1 credit per request) provides advanced financial solvers including
    bond analytics (yield, duration, convexity), implied volatility
    calculations, spread computations (Z-spread, ASW, OAS), curve bootstrapping,
    interest rate conversions, and model calibration (Vasicek, CIR). Essential
    for fixed income analysis, derivatives pricing, and risk management.
  version: 3.0.0
  contact:
    name: Fincept API Support
    url: https://fincept.in
servers:
  - url: https://api.fincept.in
    description: Fincept API Production Server
security:
  - APIKeyHeader: []
tags:
  - name: quantlib-solver
    description: >-
      Advanced financial solvers for bond analytics, implied volatility, spread
      calculations, and model calibration
    x-displayName: Solver
paths:
  /quantlib/solver/finance/duration:
    post:
      tags:
        - quantlib-solver
      summary: Calculate Macaulay Duration
      description: >-
        Calculate the Macaulay duration of a bond - the weighted average time to
        receive all cash flows. Duration measures a bond's sensitivity to
        interest rate changes and is expressed in years. Higher duration means
        greater price sensitivity to rate changes. Essential for immunization
        strategies, duration matching, and interest rate risk management. [Tier:
        STANDARD, Credits: 2]
      operationId: duration
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - coupon
                - maturity
                - ytm
              properties:
                face:
                  type: number
                  description: Face value of the bond
                  default: 100
                  example: 100
                coupon:
                  type: number
                  description: Annual coupon rate as a decimal
                  example: 0.06
                maturity:
                  type: number
                  description: Time to maturity in years
                  example: 10
                ytm:
                  type: number
                  description: Yield to maturity as a decimal
                  example: 0.05
                frequency:
                  type: integer
                  description: Coupon payment frequency per year
                  default: 2
                  enum:
                    - 1
                    - 2
                    - 4
                    - 12
                  example: 2
            example:
              face: 100
              coupon: 0.06
              maturity: 10
              ytm: 0.05
              frequency: 2
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      macaulay_duration:
                        type: number
                        description: Macaulay duration in years
                        example: 7.85
              example:
                success: true
                data:
                  macaulay_duration: 7.85
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '402':
          $ref: '#/components/responses/InsufficientTierError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: array
                    items:
                      type: object
      security:
        - APIKeyHeader: []
components:
  responses:
    UnauthorizedError:
      description: Authentication information is missing or invalid
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
                example: Invalid API key
    InsufficientTierError:
      description: API tier insufficient for this endpoint
      content:
        application/json:
          schema:
            type: object
            properties:
              detail:
                type: string
                example: Endpoint requires Basic tier or higher
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        API key for authentication. Get your key at
        https://api.fincept.in/auth/register

````