Docs/Skills/Treasury Yields Skill

Treasury Yields Skill

US Treasury Securities Rates

OperationalCredits 2 per callp50 196msFinance

Overview

Treasury Yields sources daily constant-maturity market yields from the Federal Reserve (FRED), the same rates used to construct the Treasury yield curve. Nominal yields span 1-month to 30-year maturities and TIPS real yields span 5-year to 30-year. Historical month-end snapshots go back to January 2010. Paid plans also get the standard curve spreads (10yr-2yr, 10yr-3mo, 30yr-5yr, 5yr-2yr), inversion flags, the curve's shape, and breakeven inflation at each TIPS maturity (the nominal yield minus the real yield, the market's implied inflation rate).

Live Test Treasury Yields Skill Skill →

The tool

Once your client is connected to the VerveKit server, this appears in its tool list as TreasuryYieldsSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.

Tool call
{
  "name": "TreasuryYieldsSkill",
  "arguments": {}
}

Connecting

One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.

{
  "mcpServers": {
    "vervekit": {
      "url": "https://api.vervekit.com/v1/mcp"
    }
  }
}

Per-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.

Arguments

These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.

ArgumentTypeDescription
dateOptionalPremiumstringOptional month in YYYY-MM format, back to 2010-01; returns that month's closing curve. Omit for the latest daily curve.
typeOptionalstringOptional filter for a single point. Legacy security types: bills, notes, bonds, tips, frn. Or a maturity: 1mo, 3mo, 6mo, 1yr, 2yr, 3yr, 5yr, 7yr, 10yr, 20yr, 30yr

What the model gets back

The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.

Result
{
  "status": "ok",
  "error": null,
  "data": {
    "date": "2026-10-23",
    "yields": {
      "1mo": 4.11,
      "3mo": 4.22,
      "6mo": 4.3,
      "1yr": 4.44,
      "2yr": 4.69,
      "3yr": 4.75,
      "5yr": 4.82,
      "7yr": 4.89,
      "10yr": 5,
      "20yr": 5.37,
      "30yr": 5.33
    },
    "realYields": {
      "5yr": 2.34,
      "7yr": 2.49,
      "10yr": 2.66,
      "20yr": 2.94,
      "30yr": 3.08
    },
    "bills": 4.22,
    "notes": 5,
    "bonds": 5.33,
    "tips": 2.66,
    "frn": 4.22,
    "changes": {
      "bills": {
        "change1d": 0,
        "direction": "unchanged"
      },
      "notes": {
        "change1d": 0.04,
        "direction": "up"
      },
      "bonds": {
        "change1d": 0.04,
        "direction": "up"
      },
      "tips": {
        "change1d": 0.02,
        "direction": "up"
      },
      "frn": {
        "change1d": 0,
        "direction": "unchanged"
      },
      "1mo": {
        "change1d": 0,
        "direction": "unchanged"
      },
      "3mo": {
        "change1d": 0,
        "direction": "unchanged"
      },
      "6mo": {
        "change1d": 0.01,
        "direction": "up"
      },
      "1yr": {
        "change1d": 0.03,
        "direction": "up"
      },
      "2yr": {
        "change1d": 0.04,
        "direction": "up"
      },
      "3yr": {
        "change1d": 0.03,
        "direction": "up"
      },
      "5yr": {
        "change1d": 0.04,
        "direction": "up"
      },
      "7yr": {
        "change1d": 0.03,
        "direction": "up"
      },
      "10yr": {
        "change1d": 0.04,
        "direction": "up"
      },
      "20yr": {
        "change1d": 0.05,
        "direction": "up"
      },
      "30yr": {
        "change1d": 0.04,
        "direction": "up"
      }
    },
    "spread10yr2yr": 0.31,
    "spread10yr3mo": 0.78,
    "spread30yr5yr": 0.51,
    "spread5yr2yr": 0.13,
    "inverted10yr2yr": false,
    "inverted10yr3mo": false,
    "curveShape": "normal",
    "breakevenInflation": {
      "5yr": 2.48,
      "7yr": 2.4,
      "10yr": 2.34,
      "20yr": 2.43,
      "30yr": 2.25
    }
  }
}

Response fields

Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.

FieldTypeExampleDescription
datestring2026-10-23The date of the treasury yields data in YYYY-MM-DD format
yieldsobject{…}Nominal constant-maturity market yields (percent) keyed by maturity: 1mo, 3mo, 6mo, 1yr, 2yr, 3yr, 5yr, 7yr, 10yr, 20yr, 30yr
yields.1monumber4.11
yields.3monumber4.22
yields.6monumber4.3
yields.1yrnumber4.44
yields.2yrnumber4.69
yields.3yrnumber4.75
yields.5yrnumber4.82
yields.7yrnumber4.89
yields.10yrnumber5
yields.20yrnumber5.37
yields.30yrnumber5.33
realYieldsPremiumobject{…}TIPS real (inflation-indexed) constant-maturity yields (percent) keyed by maturity: 5yr, 7yr, 10yr, 20yr, 30yr
realYields.5yrPremiumnumber2.34
realYields.7yrPremiumnumber2.49
realYields.10yrPremiumnumber2.66
realYields.20yrPremiumnumber2.94
realYields.30yrPremiumnumber3.08
billsnumber4.22Benchmark short-term yield (3-month) as percentage
notesnumber5Benchmark note yield (10-year) as percentage
bondsnumber5.33Benchmark long bond yield (30-year) as percentage
tipsPremiumnumber2.66Benchmark TIPS real yield (10-year) as percentage
frnPremiumnumber4.22Floating Rate Note reference yield (3-month bill) as percentage
changesPremiumobject{…}Day-over-day change statistics, keyed by legacy type and by maturity
changes.billsPremiumobject{…}Change data for the 3-month benchmark including change1d and direction
changes.bills.change1dPremiumnumber0One-day percentage point change for the 3-month benchmark
changes.bills.directionPremiumstringunchangedDirection of change: up, down, or unchanged
changes.notesPremiumobject{…}Change data for the 10-year benchmark including change1d and direction
changes.notes.change1dPremiumnumber0.04One-day percentage point change for the 10-year benchmark
changes.notes.directionPremiumstringupDirection of change: up, down, or unchanged
changes.bondsPremiumobject{…}Change data for the 30-year benchmark including change1d and direction
changes.bonds.change1dPremiumnumber0.04One-day percentage point change for the 30-year benchmark
changes.bonds.directionPremiumstringupDirection of change: up, down, or unchanged
changes.tipsPremiumobject{…}Change data for the 10-year TIPS benchmark including change1d and direction
changes.tips.change1dPremiumnumber0.02One-day percentage point change for the 10-year TIPS benchmark
changes.tips.directionPremiumstringupDirection of change: up, down, or unchanged
changes.frnPremiumobject{…}Change data for the FRN reference (3-month) including change1d and direction
changes.frn.change1dPremiumnumber0One-day percentage point change for the FRN reference
changes.frn.directionPremiumstringunchangedDirection of change: up, down, or unchanged
changes.1moPremiumobject{…}
changes.1mo.change1dPremiumnumber0One-day percentage point change for the requested type, when available
changes.1mo.directionPremiumstringunchanged
changes.3moPremiumobject{…}
changes.3mo.change1dPremiumnumber0One-day percentage point change for the requested type, when available
changes.3mo.directionPremiumstringunchanged
changes.6moPremiumobject{…}
changes.6mo.change1dPremiumnumber0.01One-day percentage point change for the requested type, when available
changes.6mo.directionPremiumstringup
changes.1yrPremiumobject{…}
changes.1yr.change1dPremiumnumber0.03One-day percentage point change for the requested type, when available
changes.1yr.directionPremiumstringup
changes.2yrPremiumobject{…}
changes.2yr.change1dPremiumnumber0.04One-day percentage point change for the requested type, when available
changes.2yr.directionPremiumstringup
changes.3yrPremiumobject{…}
changes.3yr.change1dPremiumnumber0.03One-day percentage point change for the requested type, when available
changes.3yr.directionPremiumstringup
changes.5yrPremiumobject{…}
changes.5yr.change1dPremiumnumber0.04One-day percentage point change for the requested type, when available
changes.5yr.directionPremiumstringup
changes.7yrPremiumobject{…}
changes.7yr.change1dPremiumnumber0.03One-day percentage point change for the requested type, when available
changes.7yr.directionPremiumstringup
changes.10yrPremiumobject{…}
changes.10yr.change1dPremiumnumber0.04One-day percentage point change for the requested type, when available
changes.10yr.directionPremiumstringup
changes.20yrPremiumobject{…}
changes.20yr.change1dPremiumnumber0.05One-day percentage point change for the requested type, when available
changes.20yr.directionPremiumstringup
changes.30yrPremiumobject{…}
changes.30yr.change1dPremiumnumber0.04One-day percentage point change for the requested type, when available
changes.30yr.directionPremiumstringup
spread10yr2yrPremiumnumber0.3110-year minus 2-year yield, in percentage points; negative means that part of the curve is inverted; returned with the full curve, not with type
spread10yr3moPremiumnumber0.7810-year minus 3-month yield, in percentage points (the Fed's preferred recession indicator); returned with the full curve, not with type
spread30yr5yrPremiumnumber0.5130-year minus 5-year yield, in percentage points; returned with the full curve, not with type
spread5yr2yrPremiumnumber0.135-year minus 2-year yield, in percentage points; returned with the full curve, not with type
inverted10yr2yrPremiumbooleanfalseTrue when the 10-year yield is below the 2-year; returned with the full curve, not with type
inverted10yr3moPremiumbooleanfalseTrue when the 10-year yield is below the 3-month; returned with the full curve, not with type
curveShapePremiumstringnormalnormal, flat (10yr-3mo spread within 0.25 points) or inverted (10yr below 3mo); returned with the full curve, not with type

Failure modes

Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.

StatusWhat it means
400 / 422The arguments did not validate. The message names the offending one.
401The OAuth session is invalid or expired — reconnect the server.
403Blocked by a key restriction or an IP allow-list. Never a bad identity.
404This skill is not part of VerveKit. Check the catalog.
429Out of credits, or a brief rate limit. The message tells them apart.

A call costs 2 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.

Use cases

Yield Curve Analysis
Build yield curves using Treasury rates across different maturities
Fixed Income Research
Analyze treasury securities for investment research and portfolio management
Financial Modeling
Use risk-free rates for DCF models and derivatives pricing
Economic Indicators
Track treasury yields as indicators of economic conditions and Fed policy

Other ways to use Treasury Yields Skill

Set up Treasury Yields Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.

Call it as a REST APIOne HTTPS endpoint and an x-api-key header, with SDKs for Node, Python and .NET.APIVerve →Reference →
Google Sheets or ExcelA =VERVE() formula fills a column — no script, no export, recalculates in place.VerveSheets →Reference →
Ground an agent on itA cited, machine-checkable fact your model can't produce on its own.VerveContext →Reference →

More in Finance:

Was this page helpful?