Skip to main content
Glama

NCUA credit union data

metric_series

Time series of one metric or reported field. Give cu_number for one credit union. Otherwise it aggregates all federally insured credit unions matching the optional state (2-letter code) / peer_group (1-6) / min_assets filters: aggregate='median' (default for ratios), 'mean', 'sum' (default for dollar and count fields; not allowed on ratios), 'count' (how many credit unions report the field), 'ratio_of_sums' (sum of field / sum of the denominator field, e.g. shares_certificates over total_shares_and_deposits), or 'pooled' (the system-wide version of a ratio metric: total numerators over total denominators, not a median of credit unions; available for efficiency_ratio, delinquency_rate, loan_to_share, loans_to_assets, net_worth_to_assets, net_worth_ratio_ex_cecl, allowance_to_loans, mix_auto, net_chargeoff_rate, roa_year_end_assets, nim_year_end_assets, loan_yield, cost_of_shares, opex_to_assets, the NCUA-basis ratios (roa_ncua_ytd, nim_ncua_ytd, loan_yield_ncua_ytd, cost_of_funds_ncua_ytd, net_chargeoff_rate_ncua_ytd; pooled values reproduce NCUA's published ROA, NIM and net charge-off ratio), the single-quarter ratios (roa_quarterly and the like) and the growth metrics asset/loan/share/member_growth_yoy, which compare the same credit unions a year apart). Median and mean treat every credit union equally, tiny ones included. Year-to-date fields (basis year_to_date in list_fields: income, expenses, charge-offs, loans granted) are returned per quarter by default (quarterly=true: this quarter minus the prior quarter of the same year); quarterly=false returns the raw year-to-date figure, which resets each January. Each row carries basis (and unit for percent-x100 fields); rows with no data explain why. group_by='peer_group' or 'state' returns one row per group (defaults to the latest quarter). Series that cross the 2023 CECL accounting change carry a break_note. Range in quarters like 2021-12; the data runs 2018-03 to the latest quarter. Metrics: asset_growth_yoy (Total assets versus the same quarter one year earlier); loan_growth_yoy (Total loans versus the same quarter one year earlier); share_growth_yoy (Total shares and deposits versus one year earlier); member_growth_yoy (Members versus one year earlier); auto_loan_growth_yoy (New plus used vehicle loans versus one year earlier); first_lien_growth_yoy (First-lien 1-4 family loans versus one year earlier); loan_to_share (Loans divided by total shares and deposits); loans_to_assets (Loans divided by total assets); net_worth_to_assets (Net worth divided by total assets (1.0 = 100%)); allowance_to_loans (Allowance for credit losses divided by total loans); net_worth_ratio_ex_cecl (Net worth minus the CECL transition provision, over assets); deposit_mix_share_drafts (Share draft (checking) accounts as a share of total shares and deposits); deposit_mix_regular (Regular shares as a share of total shares and deposits); deposit_mix_money_market (Money market shares as a share of total shares and deposits); deposit_mix_certificates (Share certificates as a share of total shares and deposits); deposit_mix_ira_keogh (IRA and Keogh accounts as a share of total shares and deposits); deposit_mix_non_member (Non-member deposits as a share of total shares and deposits); avg_balance_per_listed_account (Total shares and deposits over the count of share draft, certificate, money market, IRA a…); employees_fte_estimate (Full-time employees plus half of part-time employees); members_per_fte (Members per estimated full-time-equivalent employee); assets_per_fte (Assets per estimated full-time-equivalent employee); compensation_per_fte (Annualized employee compensation and benefits per estimated FTE); operating_expense_per_fte (Annualized non-interest expense per estimated FTE); assets_per_branch (Assets per branch); members_per_branch (Members per branch); compensation_share_of_opex (Employee compensation and benefits as a share of non-interest expense); loans_per_member (Average loan dollars per member); shares_per_member (Average shares and deposits per member); mix_auto (New plus used vehicle loans as a share of total loans); mix_residential_real_estate (First lien, junior lien and other real estate loans as a share of total loans); mix_credit_card (Credit card loans as a share of total loans); mix_commercial (Commercial loans as a share of total loans); delinquency_rate (Loans delinquent two or more months divided by total loans); auto_delinquency_rate (Reportable delinquent vehicle loans divided by vehicle loans); credit_card_delinquency_rate (Delinquent credit card loans divided by credit card loans); net_chargeoff_rate ((Charge-offs minus recoveries), annualized from year to date, over year-end loans); net_chargeoff_rate_avg_loans_4q (Net charge-offs annualized from year to date, over the average of the last four quarter-e…); provision_to_loans (Provision (credit loss expense) annualized over year-end loans); roa_year_end_assets (Return on assets: net income annualized from year to date, over year-end assets); roa_avg_assets_4q (Return on assets: net income annualized from year to date, over the average of the last f…); nim_year_end_assets (Net interest margin: (interest income minus interest expense) annualized from year to dat…); nim_avg_assets_4q (Net interest margin (NIM): same, over the four-quarter average of assets); loan_yield (Yield on loans: interest on loans annualized from year to date, over year-end loans); cost_of_shares (Cost of shares: total interest expense annualized from year to date, over shares and depo…); efficiency_ratio (Non-interest expense divided by (net interest income plus non-interest income)); opex_to_assets (Non-interest expense annualized over assets); fee_share_of_non_interest_income (Fee income divided by non-interest income); net_income_quarter (Net income for the single quarter (year-to-date minus prior quarter)); interest_income_quarter (Interest income for the single quarter); interest_expense_quarter (Interest expense for the single quarter); non_interest_expense_quarter (Non-interest expense for the single quarter); provision_quarter (Provision for loan losses for the single quarter); roa_ncua_ytd (Return on average assets on NCUA's basis: year-to-date net income annualized, over the av…); nim_ncua_ytd (Net interest margin (NIM) on NCUA's basis: (interest income minus interest expense) annua…); loan_yield_ncua_ytd (Yield on loans on NCUA's basis: interest on loans annualized from year to date, over the …); cost_of_funds_ncua_ytd (Cost of funds on NCUA's basis: total interest expense annualized from year to date, over …); net_chargeoff_rate_ncua_ytd (Net charge-off rate on NCUA's basis: (charge-offs minus recoveries) annualized from year …); roa_quarterly (Return on assets for the single quarter: the quarter's net income times 4, over the avera…); nim_quarterly (Net interest margin (NIM) for the single quarter: (interest income minus expense) for the…); loan_yield_quarterly (Yield on loans for the single quarter: the quarter's interest on loans times 4, over the …); cost_of_funds_quarterly (Cost of funds for the single quarter: the quarter's interest expense times 4, over the av…); net_chargeoff_rate_quarterly (Net charge-off rate for the single quarter: the quarter's (charge-offs minus recoveries) …); interest_on_loans_quarter (Interest on loans for the single quarter (year-to-date minus prior quarter)); net_chargeoffs_quarter (Charge-offs minus recoveries for the single quarter)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endNo
fieldYes
startNo
stateNo
group_byNo
aggregateNo
cu_numberNo
quarterlyNo
min_assetsNo
peer_groupNo
denominatorNo
year_end_onlyNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / peer_group / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed2 schema fields changed
    • addedInput schema / properties / min_assets
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Min Assets"
      +}
    • addedInput schema / properties / quarterly
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Quarterly"
      +}
  3. Changed2 schema fields changed
    • addedInput schema / properties / denominator
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Denominator"
      +}
    • addedInput schema / properties / group_by
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Group By"
      +}
  4. First observed

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses the data range (2018-03 to latest quarter), the default aggregate per field type, the restriction that sum is disallowed on ratios, the pooled availability list, the CECL break_note, and that rows with no data explain why. Auth, rate limits, and pagination remain undisclosed, keeping it short of a 5.

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

Conciseness2/5

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

The prose is a single dense wall with a very long run-on metric catalog (dozens of metrics separated by semicolons, some truncated mid-word such as "IRA a…"), and it duplicates cataloging that the sibling list_fields already performs. Key behaviors like the default-aggregate rule are buried mid-paragraph rather than front-loaded, hurting scanability.

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?

For a 12-parameter aggregation tool with an output schema (so return values need not be described), the description is nearly complete: modes, filters, aggregation semantics, quarterly handling, and metric definitions are all present. The unexplained year_end_only parameter is the only notable gap.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate across 12 parameters, and it largely does: cu_number, state (2-letter code), peer_group (1-6), min_assets, the full aggregate enum with defaults, group_by, quarterly semantics, start/end quarter format, and denominator via the ratio_of_sums example are all explained. The only uncovered parameter is year_end_only, which is never mentioned.

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?

The opening sentence gives a specific verb and resource ("Time series of one metric or reported field") and immediately splits the two operating modes: single CU via cu_number versus aggregation across federally insured credit unions. This is clear enough to distinguish from peers, though it never names query_metrics or peer_compare, which an agent must infer.

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

Usage Guidelines3/5

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

It effectively states the conditions that select behavior: give cu_number for one credit union, otherwise it aggregates with optional state/peer_group/min_assets filters, and group_by returns one row per group. However, it offers no explicit when-to-use-this-versus-alternatives routing against siblings like query_metrics or peer_compare, so usage is implied rather than guided.

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.