Skip to main content
Glama

Fixed deposit maturity

fd
Read-onlyIdempotent

Calculate Bank and Corporate Fixed Deposit (FD) maturity amount and interest returns. Computes quarterly, monthly, half-yearly, and cumulative compounding with Section 194A TDS threshold analysis (₹40,000 general / ₹50,000 senior citizens).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
principalYesDeposit amount in INR. At least 1,000 (statutory minimum FD principal, RBI Master Direction 2016).
as_of_dateYesCivil date YYYY-MM-DD. Selects the rule pack in force on that date. Required: the engine will not assume a date.
interest_rateYesAnnual interest rate in percent, as a decimal string (e.g. 7.00).
tenure_monthsYesDeposit tenure in months (3 to 120, as the fixed deposit rule pack allows).
compounding_conventionNoRead-only. Compounding is fixed by the statutory rule pack in force, not chosen by the caller: Indian bank fixed deposits compound quarterly by RBI convention. Supplying any other value does not change the computation, so only the supported convention is listed. The value actually applied is returned in the response as compounding_convention.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
traceNo
statusNo
currencyNo
principalNo
as_of_dateNo
disclaimerNo
minor_unitsNo
payout_typeNo
tenure_yearsNo
rule_ids_usedNo
tds_thresholdNo
gross_interestNo
tds_applicableNo
maturity_amountNo
yearly_scheduleNo
is_senior_citizenNo
section_referenceNo
base_interest_rateNo
total_tds_deductedNo
net_maturity_amountNo
compounding_conventionNo
effective_interest_rateNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "as_of_date": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "base_interest_rate": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "compounding_convention": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "currency": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "disclaimer": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "effective_interest_rate": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "gross_interest": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "is_senior_citizen": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "maturity_amount": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "minor_units": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "net_maturity_amount": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "payout_type": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "principal": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "rule_ids_used": {
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "section_reference": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "tds_applicable": {
      +      "type": [
      +        "boolean",
      +        "null"
      +      ]
      +    },
      +    "tds_threshold": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "tenure_years": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "total_tds_deducted": {
      +      "type": [
      +        "string",
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "trace": {
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "yearly_schedule": {
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed6 schema fields changed
    • addedInput schema / properties / as_of_date
      Added value: +{
      +  "description": "Civil date YYYY-MM-DD. Selects the rule pack in force on that date. Required: the engine will not assume a date.",
      +  "example": "2026-09-26",
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": "string"
      +}
    • changedInput schema / properties / tenure_months / description
      Previous value: -"Deposit tenure in months."New value: +"Deposit tenure in months (3 to 120, as the fixed deposit rule pack allows)."
    • addedInput schema / properties / tenure_months / example
      Added value: +12
    • addedInput schema / properties / tenure_months / maximum
      Added value: +120
    • addedInput schema / properties / tenure_months / minimum
      Added value: +3
    • changedInput schema / required
      Previous value: -[
      -  "principal",
      -  "interest_rate",
      -  "tenure_months"
      -]New value: +[
      +  "principal",
      +  "interest_rate",
      +  "tenure_months",
      +  "as_of_date"
      +]
  3. Changed7 schema fields changed
    • changedInput schema / properties / interest_rate / description
      Previous value: -"Annual interest rate in percent (e.g. 7.25 for 7.25%)."New value: +"Annual interest rate in percent, as a decimal string (e.g. 7.00)."
    • addedInput schema / properties / interest_rate / example
      Added value: +"7.00"
    • addedInput schema / properties / interest_rate / pattern
      Added value: +"^\\d+(\\.\\d+)?$"
    • changedInput schema / properties / interest_rate / type
      Previous value: -"number"New value: +"string"
    • changedInput schema / properties / principal / description
      Previous value: -"Deposit principal amount in INR (₹)."New value: +"Deposit amount in INR. At least 1,000 (statutory minimum FD principal, RBI Master Direction 2016)."
    • addedInput schema / properties / principal / example
      Added value: +250000
    • addedInput schema / properties / principal / minimum
      Added value: +1000
  4. Changed2 schema fields changed
    • addedInput schema / properties / compounding_convention
      Added value: +{
      +  "description": "Read-only. Compounding is fixed by the statutory rule pack in force, not chosen by the caller: Indian bank fixed deposits compound quarterly by RBI convention. Supplying any other value does not change the computation, so only the supported convention is listed. The value actually applied is returned in the response as compounding_convention.",
      +  "enum": [
      +    "quarterly_compounding"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / compounding_frequency
      Removed value: -{
      -  "default": "quarterly",
      -  "description": "Interest compounding frequency.",
      -  "enum": [
      -    "quarterly",
      -    "monthly",
      -    "half_yearly",
      -    "annual",
      -    "simple"
      -  ],
      -  "type": "string"
      -}
  5. Added

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful domain behavior (statutory rule-pack analysis, Section 194A TDS thresholds of 40,000/50,000), but says nothing about rate limits, output shape, or precision/rounding behavior — a moderate but not rich addition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose before the TDS detail. Efficient overall, though the compounding-convention enumeration adds a claim that the schema does not support and could mislead.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers purpose plus the TDS threshold behavior. The only gap is that it does not resolve the apparent mismatch between the listed compounding options and the schema's fixed quarterly enum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already carries parameter meaning and the baseline is 3. The description adds no per-parameter detail beyond what the schema states, and its claim of 'quarterly, monthly, half-yearly, and cumulative compounding' is not reconciled with the single-value enum in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (calculate FD maturity amount and interest returns) and names the compounding and TDS computations performed. It is clearly distinguishable from siblings like ppf, sukanya, or sip_investment, though it never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use / when-not-to-use guidance and no mention of alternatives among the many deposit/investment siblings. The agent must infer that this tool is the one for bank/corporate FDs rather than ppf or sukanya.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources