Look up US banks and run rate-shock, margin, maturity-wall and reserve calculators. Free, no key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Price holding, matching, or beating the market rate on a bank's deposits: annual cost, balances at risk, breakeven retention, and sensitivity. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.
FDIC certificate number of the bank.
Which filed deposit category the pricing decision applies to. Balances and current cost come from the bank's Call Report.
How far above the market rate the Lead option prices, in basis points. A starting value to replace with your own.
The rate competitors pay for this product. Leave empty to use the FDIC national average for the product as a reference; that average is usually well below competitive offers, so enter your own market rate when you have one.
What it costs, above the Fed funds rate, to replace balances that leave, in basis points.
The part of the category balance whose rate changes under Match or Lead. For time deposits, use the share maturing soon (see the maturity wall calculator).
The share of the repriced balances that leaves within a year even when your rate matches the market. Your assumption, not a filed figure; a starting value to replace.
The additional share of balances lost for every 100 basis points your rate sits below the market, and recovered for every 100bp above it. This is the elasticity assumption that drives the decision; the sensitivity table shows how the answer changes with it.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http bank-tools https://www.optimayield.com/api/mcp
Price holding, matching, or beating the market rate on a bank's deposits: annual cost, balances at risk, breakeven retention, and sensitivity. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.
| Argument | Type | Description |
|---|---|---|
| category | string | Which filed deposit category the pricing decision applies to. Balances and current cost come from the bank's Call Report. |
| certificate* | integer | FDIC certificate number of the bank. |
| leadPremiumBp | number | How far above the market rate the Lead option prices, in basis points. A starting value to replace with your own. |
| marketRatePercent | number | null | The rate competitors pay for this product. Leave empty to use the FDIC national average for the product as a reference; that average is usually well below competitive offers, so enter your own market rate when you have one. |
| replacementSpreadBp | number | What it costs, above the Fed funds rate, to replace balances that leave, in basis points. |
| repricedSharePercent | number | The part of the category balance whose rate changes under Match or Lead. For time deposits, use the share maturing soon (see the maturity wall calculator). |
| baselineRunoffPercent | number | The share of the repriced balances that leaves within a year even when your rate matches the market. Your assumption, not a filed figure; a starting value to replace. |
| runoffPerPointPercent | number | The additional share of balances lost for every 100 basis points your rate sits below the market, and recovered for every 100bp above it. This is the elasticity assumption that drives the decision; the sensitivity table shows how the answer changes with it. |
{
"type": "object",
"required": [
"certificate"
],
"properties": {
"category": {
"enum": [
"transaction",
"savings",
"time_small",
"time_large"
],
"type": "string",
"default": "savings",
"description": "Which filed deposit category the pricing decision applies to. Balances and current cost come from the bank's Call Report."
},
"certificate": {
"type": "integer",
"minimum": 1,
"description": "FDIC certificate number of the bank."
},
"leadPremiumBp": {
"type": "number",
"x-step": 5,
"x-unit": "basis_points",
"default": 25,
"maximum": 200,
"minimum": 0,
"description": "How far above the market rate the Lead option prices, in basis points. A starting value to replace with your own."
},
"marketRatePercent": {
"type": [
"number",
"null"
],
"x-step": 0.05,
"x-unit": "percent",
"default": null,
"maximum": 15,
"minimum": 0,
"description": "The rate competitors pay for this product. Leave empty to use the FDIC national average for the product as a reference; that average is usually well below competitive offers, so enter your own market rate when you have one."
},
"replacementSpreadBp": {
"type": "number",
"x-step": 5,
"x-unit": "basis_points",
"default": 25,
"maximum": 300,
"minimum": 0,
"description": "What it costs, above the Fed funds rate, to replace balances that leave, in basis points."
},
"repricedSharePercent": {
"type": "number",
"x-step": 1,
"x-unit": "percent",
"default": 100,
"maximum": 100,
"minimum": 1,
"description": "The part of the category balance whose rate changes under Match or Lead. For time deposits, use the share maturing soon (see the maturity wall calculator)."
},
"baselineRunoffPercent": {
"type": "number",
"x-step": 1,
"x-unit": "percent",
"default": 5,
"maximum": 50,
"minimum": 0,
"description": "The share of the repriced balances that leaves within a year even when your rate matches the market. Your assumption, not a filed figure; a starting value to replace."
},
"runoffPerPointPercent": {
"type": "number",
"x-step": 1,
"x-unit": "percent",
"default": 10,
"maximum": 100,
"minimum": 0,
"description": "The additional share of balances lost for every 100 basis points your rate sits below the market, and recovered for every 100bp above it. This is the elasticity assumption that drives the decision; the sensitivity table shows how the answer changes with it."
}
},
"additionalProperties": false
}Headline profile for one bank from its latest Call Report data: identity, total assets, deposits, loans, ROA, ROE, net interest margin, capital, liquidity and credit ratios, with the reporting period and source. Units are stated on every value.
| Argument | Type | Description |
|---|---|---|
| certificate* | integer | FDIC certificate number of the bank (from search_banks). |
{
"type": "object",
"required": [
"certificate"
],
"properties": {
"certificate": {
"type": "integer",
"minimum": 1,
"description": "FDIC certificate number of the bank (from search_banks)."
}
},
"additionalProperties": false
}Stress a bank's net charge-offs: provision needed to hold its allowance ratio and the after-tax hit to CET1 or leverage capital, with peers. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.
| Argument | Type | Description |
|---|---|---|
| certificate* | integer | FDIC certificate number of the bank. |
| reserveBuildBp | number | How much the bank lets its allowance ratio change, in basis points of loans. Zero holds today's allowance-to-loans ratio, which is the base case; a positive number models a reserve build as conditions deteriorate. |
| taxRatePercent | number | The tax shield on the provision. 21% is the U.S. federal statutory corporate rate, used as a starting reference; add state tax or set to zero if the bank cannot use the shield. |
| loanGrowthPercent | number | Growth in loans over the stress year. Growth raises the allowance needed to hold the ratio; it does not change the charge-off dollars, which are based on today's loans. |
| capitalFloorPercent | number | null | The capital ratio to measure headroom against. Leave empty to use 7.0% for a CET1 ratio (the 4.5% minimum plus the 2.5% conservation buffer) or 5.0% for a Tier 1 leverage ratio (well capitalized). Community banks that elected the leverage framework may use 9%. |
Compare a bank's loan beta with its deposit beta and rank the spread against its asset-band peers, from FFIEC filings. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.
| Argument | Type | Description |
|---|---|---|
| cycle | string | Which past rate cycle the loan and deposit betas are measured over. Both betas use the same cycle so they are comparable. |
| certificate* | integer | FDIC certificate number of the bank. |
{
"type": "object",
"required": [
"certificate"
],
"properties": {
"cycle": {
"enum": [
"hike_2022_23",
"ease_2019_20",
"ease_2024_26",
"hike_2017_19",
"interval_up",
"interval_down",
"interval_full"
],
"type": "string",
"default": "hike_2022_23",
"description": "Which past rate cycle the loan and deposit betas are measured over. Both betas use the same cycle so they are comparable."
},
"certificate": {
"type": "integer",
"minimum": 1,
"description": "FDIC certificate number of the bank."
}
},
"additionalProperties": false
}Measure time deposits maturing or repricing within a year, then test explicit renewal and replacement assumptions against tier-specific costs. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.
| Argument | Type | Description |
|---|---|---|
| certificate* | integer | FDIC certificate number of the bank. |
| retentionPercent | number | How much of the time deposits maturing within 12 months stay with the bank. The rest runs off and is replaced with other funding. |
| wholesaleSpreadBp | number | What you would pay above the Fed funds rate to replace deposits that run off, in basis points. |
| renewalRatePercent | number | null | The rate you expect to pay on renewing time deposits. Leave empty to use the current Fed funds rate as a reference; the scenario table shows other reference rates. |
{
"type": "object",
"required": [
"certificate"
],
"properties": {
"certificate": {
"type": "integer",
"minimum": 1,
"description": "FDIC certificate number of the bank."
},
"retentionPercent": {
"type": "number",
"x-step": 5,
"x-unit": "percent",
"default": 80,
"maximum": 100,
"minimum": 0,
"description": "How much of the time deposits maturing within 12 months stay with the bank. The rest runs off and is replaced with other funding."
},
"wholesaleSpreadBp": {
"type": "number",
"x-step": 5,
"x-unit": "basis_points",
"default": 25,
"maximum": 300,
"minimum": 0,
"description": "What you would pay above the Fed funds rate to replace deposits that run off, in basis points."
},
"renewalRatePercent": {
"type": [
"number",
"null"
],
"x-step": 0.05,
"x-unit": "percent",
"default": null,
"maximum": 15,
"minimum": 0,
"description": "The rate you expect to pay on renewing time deposits. Leave empty to use the current Fed funds rate as a reference; the scenario table shows other reference rates."
}
},
"additionalProperties": false
}Estimate how a Fed funds move changes a bank's loan yield, deposit cost, and net interest income, using its own filed pass-through history. Free; computed from FFIEC filings; results state whether each number is filed, derived, or assumed.
| Argument | Type | Description |
|---|---|---|
| regime | string | Which past rate cycle supplies the loan and deposit betas. Automatic is right for most uses. |
| fedMoveBp | number | Parallel change in the Fed funds rate, in basis points. Negative is a cut. |
| certificate* | integer | FDIC certificate number of the bank. |
| loanBetaOverride | number | null | Replace the derived loan beta with your own assumption. Leave empty to use the filed history. |
| depositBetaOverride | number | null | Replace the derived deposit beta with your own assumption. Leave empty to use the filed history. |
{
"type": "object",
"required": [
"certificate"
],
"properties": {
"regime": {
"enum": [
"auto",
"hike_2022_23",
"hike_2017_19",
"ease_2019_20",
"ease_2024_26",
"intervals"
],
"type": "string",
"default": "auto",
"description": "Which past rate cycle supplies the loan and deposit betas. Automatic is right for most uses."
},
"fedMoveBp": {
"type": "number",
"x-step": 25,
"x-unit": "basis_points",
"default": -100,
"maximum": 400,
"minimum": -400,
"description": "Parallel change in the Fed funds rate, in basis points. Negative is a cut."
},
"certificate": {
"type": "integer",
"minimum": 1,
"description": "FDIC certificate number of the bank."
},
"loanBetaOverride": {
"type": [
"number",
"null"
],
"x-step": 0.05,
"x-unit": "ratio",
"default": null,
"maximum": 1.5,
"minimum": -0.25,
"description": "Replace the derived loan beta with your own assumption. Leave empty to use the filed history."
},
"depositBetaOverride": {
"type": [
"number",
"null"
],
"x-step": 0.05,
"x-unit": "ratio",
"default": null,
"maximum": 1.5,
"minimum": -0.25,
"description": "Replace the derived deposit beta with your own assumption. Leave empty to use the filed history."
}
},
"additionalProperties": false
}Look up a US bank by name (legal or common, e.g. "Chase", "state street") and return its FDIC certificate number, city, state and total assets. Use this first: every other tool needs the certificate. Optionally narrow by two-letter state.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum results. |
| query* | string | Bank name, or words from it; a city name also matches. |
| state | string | Two-letter state code to narrow the search, e.g. MA. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1,
"description": "Maximum results."
},
"query": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Bank name, or words from it; a city name also matches."
},
"state": {
"type": "string",
"description": "Two-letter state code to narrow the search, e.g. MA."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 5, 2026.
| stressNcoRatePercent |
| number | null |
| The annual net charge-off rate to stress, as a share of loans. Leave empty to use the 90th percentile rate among banks in the same asset band as a labelled reference; enter your own for a specific scenario. |
| earningsOffsetPercent | number | The part of the provision covered by pre-provision earnings before it reaches capital. Zero is the conservative case: every dollar of provision reduces capital. |
{
"type": "object",
"required": [
"certificate"
],
"properties": {
"certificate": {
"type": "integer",
"minimum": 1,
"description": "FDIC certificate number of the bank."
},
"reserveBuildBp": {
"type": "number",
"x-step": 5,
"x-unit": "basis_points",
"default": 0,
"maximum": 300,
"minimum": -100,
"description": "How much the bank lets its allowance ratio change, in basis points of loans. Zero holds today's allowance-to-loans ratio, which is the base case; a positive number models a reserve build as conditions deteriorate."
},
"taxRatePercent": {
"type": "number",
"x-step": 1,
"x-unit": "percent",
"default": 21,
"maximum": 50,
"minimum": 0,
"description": "The tax shield on the provision. 21% is the U.S. federal statutory corporate rate, used as a starting reference; add state tax or set to zero if the bank cannot use the shield."
},
"loanGrowthPercent": {
"type": "number",
"x-step": 1,
"x-unit": "percent",
"default": 0,
"maximum": 50,
"minimum": -20,
"description": "Growth in loans over the stress year. Growth raises the allowance needed to hold the ratio; it does not change the charge-off dollars, which are based on today's loans."
},
"capitalFloorPercent": {
"type": [
"number",
"null"
],
"x-step": 0.5,
"x-unit": "percent",
"default": null,
"maximum": 30,
"minimum": 0,
"description": "The capital ratio to measure headroom against. Leave empty to use 7.0% for a CET1 ratio (the 4.5% minimum plus the 2.5% conservation buffer) or 5.0% for a Tier 1 leverage ratio (well capitalized). Community banks that elected the leverage framework may use 9%."
},
"stressNcoRatePercent": {
"type": [
"number",
"null"
],
"x-step": 0.05,
"x-unit": "percent",
"default": null,
"maximum": 15,
"minimum": 0,
"description": "The annual net charge-off rate to stress, as a share of loans. Leave empty to use the 90th percentile rate among banks in the same asset band as a labelled reference; enter your own for a specific scenario."
},
"earningsOffsetPercent": {
"type": "number",
"x-step": 5,
"x-unit": "percent",
"default": 0,
"maximum": 100,
"minimum": 0,
"description": "The part of the provision covered by pre-provision earnings before it reaches capital. Zero is the conservative case: every dollar of provision reduces capital."
}
},
"additionalProperties": false
}