{
  "id": "cd-ladder",
  "version": "c135ca55fc9f",
  "status": "published",
  "name": "CD Ladder Calculator",
  "question": "How much will my CD ladder earn?",
  "summary": "Splits a sum equally across CDs with different terms and APYs, a CD ladder, and works out what each rung is worth at maturity, the total interest and when the money frees up.",
  "category": "finance",
  "subcategory": "investing",
  "url": "https://www.acalculator.org/finance/cd-ladder-calculator",
  "markdown": "https://www.acalculator.org/finance/cd-ladder-calculator.md",
  "kind": "function",
  "method": "D = total ÷ number of CDs; each CD at maturity = D × (1 + APY)^term; interest = Σ balances − total; average APY = Σ APY ÷ number of CDs.",
  "assumptions": [
    "The total is split equally, and each CD is held to its maturity with interest left in the CD.",
    "The interest is for the first round only. Rolling each maturing CD into a new CD, which keeps a ladder going, is not modelled.",
    "No early withdrawal penalties or tax."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "amount": {
        "title": "Total to invest",
        "description": "The sum split equally across the CDs.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 1,
        "maximum": 10000000000
      },
      "rungs": {
        "title": "CDs in the ladder",
        "description": "Each CD’s term in years and its APY, 1 to 10 CDs.",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "t": {
              "title": "Term (years)",
              "description": "How long this CD lasts, in years. 0.5 is 6 months.",
              "type": "number",
              "minimum": 0.08,
              "maximum": 10
            },
            "a": {
              "title": "APY",
              "description": "This CD’s annual percentage yield.",
              "type": "number",
              "x-unit": "percent",
              "minimum": 0,
              "maximum": 20
            }
          }
        }
      }
    }
  },
  "outputs": {
    "interest": {
      "label": "Interest from the ladder",
      "description": "Every CD’s balance at its maturity, added up, minus the total invested.",
      "format": "money"
    },
    "invested": {
      "label": "Total invested",
      "description": "The sum split across the CDs.",
      "format": "money"
    },
    "perRung": {
      "label": "In each CD",
      "description": "The total ÷ the number of CDs.",
      "format": "money"
    },
    "total": {
      "label": "Balances at maturity",
      "description": "Each CD’s deposit × (1 + APY)^term, added up.",
      "format": "money"
    },
    "average": {
      "label": "Average APY",
      "description": "The CDs’ APYs added up ÷ the number of CDs (each holds the same amount).",
      "format": "percent"
    },
    "first": {
      "label": "First CD matures in",
      "description": "The shortest term, in years.",
      "format": "number"
    },
    "last": {
      "label": "Last CD matures in",
      "description": "The longest term, in years.",
      "format": "number"
    },
    "rungs": {
      "label": "Each CD at maturity",
      "description": "Each CD’s term, APY and balance at maturity, shortest first.",
      "format": "text"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "amount": 25000,
      "rungs": [
        {
          "term": 1,
          "apy": 4
        },
        {
          "term": 2,
          "apy": 3.9
        },
        {
          "term": 3,
          "apy": 3.8
        },
        {
          "term": 4,
          "apy": 3.75
        },
        {
          "term": 5,
          "apy": 3.7
        }
      ]
    },
    "outputs": {
      "interest": 2978.8212859400955,
      "invested": 25000,
      "perRung": 5000,
      "total": 27978.821285940096,
      "average": 3.83,
      "first": 1,
      "last": 5,
      "rungs": "1 yr at 4%: $5,200.00; 2 yr at 3.9%: $5,397.61; 3 yr at 3.8%: $5,591.93; 4 yr at 3.75%: $5,793.25; 5 yr at 3.7%: $5,996.03"
    },
    "text": "$25,000.00 in a CD ladder earns $2,978.82 of interest by the time the last CD matures."
  },
  "examples": [
    {
      "given": {
        "amount": 25000,
        "rungs": [
          {
            "term": 1,
            "apy": 4
          },
          {
            "term": 2,
            "apy": 3.9
          },
          {
            "term": 3,
            "apy": 3.8
          },
          {
            "term": 4,
            "apy": 3.75
          },
          {
            "term": 5,
            "apy": 3.7
          }
        ]
      },
      "expect": {
        "perRung": 5000,
        "total": 27978.821285940096,
        "interest": 2978.8212859400955,
        "average": 3.83,
        "first": 1,
        "last": 5
      },
      "source": "hand calculation in content.mdx: Σ 5,000 × (1 + APY)^term; Consumer Financial Protection Bureau, Regulation DD (Truth in Savings), 12 CFR 1030, Appendix A: annual percentage yield calculation, https://www.consumerfinance.gov/rules-policy/regulations/1030/a/ (retrieved 2026-10-03)"
    },
    {
      "given": {
        "amount": 10000,
        "rungs": [
          {
            "term": 0.5,
            "apy": 5
          },
          {
            "term": 1,
            "apy": 4.5
          }
        ]
      },
      "expect": {
        "perRung": 5000,
        "total": 10348.4753829798,
        "average": 4.75,
        "first": 0.5
      },
      "source": "hand calculation in content.mdx: 5,000 × 1.05^0.5 + 5,000 × 1.045; Consumer Financial Protection Bureau, Regulation DD (Truth in Savings), 12 CFR 1030, Appendix A: annual percentage yield calculation, https://www.consumerfinance.gov/rules-policy/regulations/1030/a/ (retrieved 2026-10-03)"
    },
    {
      "given": {
        "amount": 30000,
        "rungs": [
          {
            "term": 1,
            "apy": 0
          },
          {
            "term": 2,
            "apy": 0
          },
          {
            "term": 3,
            "apy": 0
          }
        ]
      },
      "expect": {
        "perRung": 10000,
        "total": 30000,
        "interest": 0,
        "average": 0
      },
      "source": "hand calculation in content.mdx: at 0% each CD returns its deposit; Office of the Comptroller of the Currency, HelpWithMyBank, Certificates of Deposit (CDs), https://www.helpwithmybank.gov/help-topics/bank-accounts/certificates-of-deposit/index-certificates-of-deposit.html (retrieved 2026-10-03)"
    }
  ],
  "sources": [
    "Consumer Financial Protection Bureau, Regulation DD (Truth in Savings), 12 CFR 1030, Appendix A: annual percentage yield calculation. https://www.consumerfinance.gov/rules-policy/regulations/1030/a/ (retrieved 2026-10-03)",
    "Office of the Comptroller of the Currency, HelpWithMyBank: What are the penalties for withdrawing money early from a CD? https://www.helpwithmybank.gov/help-topics/bank-accounts/certificates-of-deposit/cd-penalties.html (retrieved 2026-10-03)"
  ],
  "related": [
    "cd",
    "cd-early-withdrawal-penalty",
    "savings"
  ],
  "changelog": []
}
