Skip to main content
Glama

Get average monthly burn

well_get_burn
Read-only

Get the workspace's average monthly burn — the trailing average of actual outflows, the exact same computation and number the Well app's avg-burn KPI tile shows. Use this instead of summing transactions yourself.

Returns amount (a positive magnitude, not a signed figure) and currency, plus the window it was measured over: trailing_months is the window length, months_in_window and months_with_data say how much of it actually carried outflow.

per_month is the outflow of each month in that window, oldest first — the numbers the average is the mean of. A month with no recorded outflow is present with 0, not omitted, so the series and the average always agree; do not drop those months when you describe the trend. Use it to say whether burn is rising or falling. amount is the figure the app shows, so it is the one you lead with and the one you call the burn — never put a figure computed from the series in its place. If a dark month looks like a data gap rather than a real month of no spend, say it may be a gap; amount stays the headline either way.

change is a percentage against baseline, not against anything in per_month. baseline.period names the months it was measured over. That window anchors earlier than amount, so it normally covers a month this payload does not carry, and you usually cannot recompute change from the series. The two windows normally SHARE months, so this is a comparison between two overlapping averages rather than between two independent periods — a small change says less about a real shift than the same figure across separate periods would. When you quote change, say what it compares: baseline.period against the window in per_month. To describe movement WITHIN the displayed window, compute it from per_month and say so.

trend is whether the change is GOOD, not which way the number went. trend_polarity is lower_is_better for burn, so trend: "up" means burn FELL (the app renders it green) and "down" means burn ROSE. Never narrate trend: "up" as burn rising — read the sign of change for direction.

State the window whenever you present the number. The average always divides by months_in_window, so when months_with_data is lower the figure is a real average over a window containing dark months, NOT an average of only the months that had spend — say so rather than presenting it as the typical monthly outflow.

unavailable: true means amount is a placeholder rather than a measurement (e.g. nothing has synced yet) — a burn of zero standing on nothing measured is not a reading, so say that instead of reporting a €0 burn. partial: true means individual transactions were excluded from an otherwise real figure (e.g. a missing FX rate); disclose the exclusion count and any hints.

Pass year + month to measure a past period instead of the live window, and months_back to change the window length (default 3).

For months of cash left, call well_get_runway — it composes this burn with the cash position. For what the spend is made of, call well_get_cost_structure. Neither is a decomposition of the other: cost structure covers a single closed month and will not sum to a trailing average.

When the token authorizes one workspace, call this directly — no other tool call is needed first. When it authorizes several, this read will not guess which one you mean: pass workspace_id on the call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoCalendar year of the reporting period, e.g. 2026. Must be given together with `month`.
monthNoCalendar month of the reporting period, 1 = January … 12 = December. Must be given together with `year`. Omit both to read the live/current figure.
months_backNoHow many closed months to average the burn over. Defaults to 3 — the same trailing window the app's KPI tile uses. Raise it to smooth a lumpy month, lower it to react faster.
workspace_idNoTarget workspace. Omit when the token authorizes one workspace. Required when it authorizes several: this read reports one workspace's own figures and will not choose which.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
as_ofNo
errorNo
hintsNo
trendNoWhether the change is GOOD for this KPI, not the direction the number moved. Burn is lower-is-better, so "up" means burn FELL and "down" means it ROSE. Read the sign of `change` for direction.
amountYes
changeNoSigned percentage change of `amount` against `baseline.value` (e.g. -20.7 for a 20.7% fall). Measured over `baseline.period`, never over the months in `per_month` — the baseline is a different window, so a delta computed from the series is a different number.
partialNo
successYes
baselineNoWhat `change` was measured against. It arrives with `change`, `trend` and `trend_polarity` as one group; when the baseline has no named period all four are withheld rather than sending a percentage with no referent.
currencyNo
excludedNo
per_monthNo
unavailableNo
connectors_urlNo
trend_polarityNoWhich direction counts as good. Burn is lower-is-better, which is why a fall reads as `trend: "up"`.
trailing_monthsNo
months_in_windowNo
months_with_dataNo
resolved_workspaceNoThe workspace that answered, when the caller named none and the token authorizes several.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark the call read-only, and the description goes well beyond that: zero months are included as 0 rather than omitted, unavailable is placeholder not measurement, partial excludes transactions with disclosure, change compares overlapping baselines, and trend means good/bad rather than direction. This materially prevents misreading the result.

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

Conciseness5/5

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

The description is long but every paragraph earns its place: first sentence front-loads purpose, then each paragraph handles one output concept (amount/window, change/baseline, trend polarity, unavailable/partial, parameters, alternatives). The repetition of key warnings is deliberate reinforcement, not filler.

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 tool with subtle output semantics, output schema, and optional parameters, the description is complete: it covers window measurement, average divisor, placeholders, partial data, trend direction vs polarity, year/month override, alternatives, and single- vs multi-workspace auth. An agent has everything needed to call and interpret this correctly.

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?

Input schema already covers 100% of parameters with detailed descriptions, so the baseline is 3; the tool description adds practical guidance by linking year/month to past-period measurement, months_back to window length default 3, and workspace_id to the multi-workspace authorization context. This is a modest addition above an already-rich schema, not a full transformation.

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?

Description opens with a specific verb and resource ('Get the workspace's average monthly burn') and pins the exact definition to the app's avg-burn KPI tile. It explicitly contrasts with sibling tools at the end, so an agent can distinguish it from well_get_runway and well_get_cost_structure.

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?

Gives explicit when-to-use ('Use this instead of summing transactions yourself'), names alternatives for other questions (runway for months of cash left, cost structure for spend composition), and explains the multi-workspace condition requiring workspace_id. No exclusion is left to inference.

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.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: CRUD for companies, people, and invoices; financial analytics (cash, cost, runway, holdings); connector management and invocation; schema discovery; querying; reconciliation; and contact channel management. No two tools could be confused for the same action.

Naming Consistency5/5

All tools follow the `well_verb_noun` pattern with consistent verb choices (create, get, list, update, delete, add, remove, run, resolve, query, invoke). The naming is predictable and makes the tool's purpose immediately clear.

Tool Count4/5

With 26 tools, the set is slightly above the ideal 3-15 range, but every tool earns its place given the breadth of the domain (CRM, invoicing, financial analytics, reconciliation, connector management). The count is well-scoped and not excessive.

Completeness4/5

The tool surface covers core CRUD, financial KPIs, reconciliation, and connector management. Minor gaps exist (e.g., no direct tool to update contact channels or manage accounts), but the query and schema tools allow agents to work around them, and the primary workflows are fully supported.

Resources