Skip to main content
Glama

Zovo Average Balance

Calculate average balance

calculate_average_balance
Read-onlyIdempotent

Use this when the user wants an average monthly balance calculator, a bank statement average balance, an average daily balance or proof of funds figures from their transactions. Put the statement rows into transactions (date, description, amount or credit/debit, running balance); convert pasted text or a screenshot into those fields, and use file or statement_text only as a fallback. Each calendar day is counted and the balance carries forward over days with no transactions. Returns the average per month and for the period, lowest and highest daily balance with dates, month-end balances, credits and debits per month, a running balance check that lists rows that differ, recurring salary-like credits, large one-off deposits, an Excel workbook and a 1-page PDF summary. Without an opening balance or a running balance it gives the relative change only. Does not connect to banks, read scans, or issue a bank certificate.

Input Schema

NameRequiredDescriptionDefault
fileNoFallback: the statement file the user attached (CSV, Excel .xlsx or a text PDF), e.g. statement.pdf. Prefer transactions when the rows are in the chat.
currencyNoOptional currency, e.g. "USD", "INR", "₱" or "EUR". Default: read from the amounts, else none shown.
bank_nameNoOptional bank name for the PDF, e.g. "HDFC Bank".
page_sizeNoPDF page: "A4" (default) or "Letter".
date_orderNoOptional order for dates like 03/09/2026: "dmy" (day first, India, UK, Philippines) or "mdy" (US). Default: decided from the dates; US when nothing decides it.
period_endNoOptional last day of the statement period, e.g. "2026-09-30". Days after the last transaction carry the last balance. Default: the last transaction date.
period_startNoOptional first day of the statement period, e.g. "2026-07-01". Days before the first transaction carry the opening balance. Default: the first transaction date.
prepared_forNoOptional purpose line for the PDF, e.g. "Schengen visa application" or "Home loan file".
transactionsNoThe statement rows as objects, oldest or newest first: [{"date":"2026-09-01","description":"Salary","amount":2500,"balance":3100}]. Convert a pasted statement or a screenshot into these fields. Copy the running balance column when there is one. Up to 5,000 rows.
account_labelNoOptional account label for the PDF, e.g. "Savings ****1234". Long numbers are masked to the last 4 digits.
balance_basisNoOptional: "computed" (default, opening balance plus transactions) or "printed" (use the statement's running balance wherever it is printed).
account_holderNoOptional name printed on the PDF summary, any script, e.g. "Nguyễn Văn An".
statement_textNoFallback only: statement rows pasted as text or CSV, one row per line, e.g. "2026-09-01, Salary, 2500.00, 3100.00". Prefer transactions.
statement_yearNoOptional year for dates written without one, e.g. 2026.
closing_balanceNoOptional balance at the end of the period, e.g. 3400.10. Used to check the rows, or to work out the opening balance when nothing else gives it.
minimum_balanceNoOptional minimum average monthly balance the bank requires, e.g. 10000. Each month is checked against it.
opening_balanceNoBalance at the start of the period (before the first transaction), e.g. 1250.00. Leave empty when the rows have a running balance: it is worked out from the first one.
large_deposit_thresholdNoOptional size of a credit to flag as a large one-off deposit: a percent of the average balance ("50%", the default) or an amount (5000).

Output Schema

NameRequiredDescriptionDefault
lowestYes
monthsYes
periodYes
sourceYes
highestYes
absoluteYes
currencyYes
warningsYes
downloadsYes
assumptionsYes
months_shownNo
total_debitsYes
transactionsYes
closing_checkYes
total_creditsYes
large_depositsYes
opening_sourceYes
average_balanceYes
closing_balanceYes
minimum_balanceYes
opening_balanceYes
average_formattedYes
recurring_creditsYes
large_deposit_ruleYes
large_deposits_countYes
printed_basis_averageYes
running_balance_checkYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, which already declare a safe read-only, idempotent operation, the description discloses important behavior: each calendar day is counted, balances carry forward over days without transactions, and results include a running-balance check, recurring credits, large deposits, Excel output, and a PDF summary. It also explains the relative-change fallback when no opening or running balance is available, which is valuable behavioral context not present in annotations or schema.

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?

The description is dense and front-loaded, leading with the use case before input rules and output details. It is somewhat long and reads as a single run-on paragraph, but nearly every sentence contributes actionable information, so the size is mostly justified for an 18-parameter tool.

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

Completeness5/5

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

For a complex 18-parameter tool with an output schema, the description covers the essential purpose, input fallback strategy, day-counting behavior, fallback results without opening/running balance, and explicit limitations. The output schema handles return structure, so the description is complete enough for an agent to call the tool correctly.

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

Parameters5/5

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

Schema coverage is already 100%, but the description adds meaningful usage semantics by prioritizing transactions over file and statement_text, explaining how screenshots and pasted text should be converted, and clarifying that opening/running balance affect whether relative change is returned. This goes beyond restating parameter names and helps an agent choose and populate the right inputs.

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

Purpose5/5

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

The description states a specific verb and resource: calculating average monthly balance, average daily balance, and proof-of-funds figures from transactions. It clearly distinguishes the tool from adjacent capabilities by saying it does not connect to banks, read scans, or issue a bank certificate.

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

Usage Guidelines5/5

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

It explicitly says when to use the tool ('when the user wants an average monthly balance calculator...') and gives a clear input preference: put statement rows into transactions, convert pasted text or screenshots into fields, and use file or statement_text only as a fallback. It also states negative boundaries, which helps an agent avoid misrouting unsupported requests.

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