Skip to main content
Glama

Calculate.co.nz NZ Calculators

Server Details

Search and run New Zealand tax, KiwiSaver, mortgage and property calculators

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

36 tools
bmi_calculatorAInspect

Calculate Body Mass Index (BMI) from metric measurements.

Returns BMI value, category classification (Underweight, Healthy weight,
Overweight, Obese, Morbidly obese), and the healthy weight range for the
person's height.

Use for any BMI question including 'what is my BMI', 'am I a healthy
weight', 'what should I weigh for my height'.

Inputs are metric only. If the user provides imperial units (feet,
inches, pounds, stone), convert them first: 1 foot = 0.3048m,
1 inch = 0.0254m, 1 pound = 0.453592kg, 1 stone = 6.35029kg.

Note: BMI is a screening tool, not a diagnosis. It doesn't distinguish
muscle from fat, so very athletic people often show as 'overweight'
despite being healthy. Always caveat with this when relevant.

Args:
    weight_kg: Weight in kilograms (e.g. 75 for 75kg).
    height_m: Height in metres (e.g. 1.75 for 175cm).
ParametersJSON Schema
NameRequiredDescriptionDefault
height_mYes
weight_kgYes

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It goes well beyond a typical calculator description by noting that BMI is a screening tool, not a diagnosis, does not distinguish muscle from fat, and can misclassify athletic people—instructing the agent to caveat when relevant.

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 well-structured and front-loaded: core purpose first, then outputs, usage guidance, unit conversion, and caveats. Every sentence earns its place, and the only overlap with the schema is the Args block, which still adds value through units and examples.

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?

Since there is no output schema, the description appropriately details return values (BMI value, category classification, healthy weight range) and the exact category names. Combined with conversion constants and the clinical caveat, an agent has everything needed to invoke the tool and interpret its result 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 description coverage is 0%, but the Args section fully compensates by adding units and concrete examples: weight in kilograms (e.g., 75 for 75kg) and height in metres (e.g., 1.75 for 175cm). This removes all ambiguity about parameter meaning and units.

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 opens with a specific verb and resource: 'Calculate Body Mass Index (BMI) from metric measurements.' It then names the exact outputs (BMI value, category classification, healthy weight range), making the tool's purpose unmistakable and clearly distinct from the sibling calculators.

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 states 'Use for any BMI question' and provides realistic example prompts like 'what is my BMI' and 'am I a healthy weight.' It also anticipates the main alternative input scenario by explaining exactly how to convert imperial units to metric, so an agent knows when and how to invoke the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

depreciation_calculatorAInspect

Depreciate an asset by straight line or diminishing value, with a year by year schedule.

Use for: 'how is depreciation calculated', 'straight line vs diminishing
value', 'depreciation schedule', 'book value after 3 years', 'work out
depreciation on equipment'.

THE TWO METHODS DIVERGE SHARPLY ON THE SAME ASSET. Straight line spreads the
deduction evenly across the useful life. Diminishing value applies the rate
to the REDUCING book value, so it front-loads the deduction heavily and never
reaches zero on its own. Which is better depends entirely on when the owner
wants the deduction, so the year by year schedule is the useful part of this
answer rather than the first year figure. Show the schedule.

additional_costs are capitalised into the cost base, which is where delivery
and installation belong. salvage_value acts as a floor under both methods,
and the last year of a straight line life takes only what is left, so
rounding cannot push the book value below it.

ONE IMPORTANT LIMIT, AND IT MATTERS. This is the ARITHMETIC of the two
methods on a rate you supply. It is NOT a lookup of Inland Revenue's
prescribed rates, which vary by asset class and are published in the IRD
depreciation rate finder. If someone needs to know the right RATE for a
particular asset, send them to that finder. DO NOT INVENT A RATE to feed this
tool and present the output as their tax position.

Args:
    initial_cost: Purchase price of the asset.
    method: straight_line or diminishing_value.
    additional_costs: Costs capitalised in, such as delivery or installation.
    salvage_value: Expected residual value. A floor under both methods.
    useful_life_years: Years of life. Required for straight line.
    annual_rate_pct: Rate per year. Required for diminishing value.
    years_to_schedule: Years to show. Defaults to the life, or ten.

Returns:
    The cost base, the depreciable amount, the first year charge, the total
    charged, the closing book value and the full year by year schedule.
ParametersJSON Schema
NameRequiredDescriptionDefault
methodNostraight_line
initial_costYes
salvage_valueNo
annual_rate_pctNo
additional_costsNo
useful_life_yearsNo
years_to_scheduleNo

TDQS

A4.9/5.0
Behavior5/5

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

With zero annotations, the description carries the full burden and exceeds it: it discloses that diminishing value front-loads the deduction and never reaches zero by itself, that additional_costs capitalize into the cost base, and that salvage_value floors both methods while the last straight-line year takes only what remains so rounding cannot breach the floor. The 'ONE IMPORTANT LIMIT' paragraph adds a critical caveat that the tool is pure arithmetic, not a tax-rate authority, and warns against presenting invented rates as tax positions. No contradiction with annotations exists because no annotations were provided.

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 definition is long but tightly packed — purpose, routing, method divergence, edge-case behavior, the compliance limit, then Args/Returns — with the critical warning capitalized so a scanning agent cannot miss it. Every block earns its place given 0% schema coverage and no annotations, though the allcaps warning and the partial redundancy between the opening sentence and the 'Use for' list mean it could be trimmed slightly without losing value.

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 7-parameter, two-method calculator with no annotations and no output schema, the description covers all grounds: every parameter, conditional requirements, edge-case rounding behavior, the return payload (cost base, depreciable amount, firstyear charge, total charged, closing book value, full schedule), and the compliance boundary. No material gap remains for an agent to call this tool correctly or route users away from it when they need an IRD prescribed rate.

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 description coverage is 0%, so the Args block fully compensates: it documents all seven parameters with behavioral meanings — additional_costs as capitalised delivery/installation, salvage_value as a floor, and the two method enum values spelled out. It also adds conditional semantics the schema lacks, namely that useful_life_years is required for straight_line, annual_rate_pct is required for diminishing_value, and years_to_schedule defaults to the life or ten. This is complete compensation for the schema's silence.

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?

Opens with a specific verb-plus-resource statement — 'Depreciate an asset by straight line or diminishing value, with a year by year schedule' — naming both methods and the output. The 'Use for' examples ('how is depreciation calculated', 'book value after 3 years') remove any ambiguity about which of the sibling calculators is meant. Nothing is a tautology; the tool is immediately distinguishable from all 35 siblings.

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?

Provides an explicit list of query phrasings to match, then an equally explicit exclusion: the tool is 'the ARITHMETIC of the two methods on a rate you supply' and 'NOT a lookup of Inland Revenue's prescribed rates.' It routes the rate-lookup case to the IRD depreciation rate finder and instructs the agent not to invent a rate — model-level when-to-use / when-not-to-use guidance with a named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

energy_expenditure_calculatorAInspect

Work out maintenance calories (TDEE), BMR, and a target for a goal.

Use for: 'how many calories should I eat', 'what is my TDEE', 'calorie
deficit to lose weight', 'how many calories to lose 5kg', 'what are my
macros'.

NAME THE FORMULA. Mifflin-St Jeor and the revised Harris-Benedict differ by
5 to 10% for the same person, which is often more than the entire deficit
they are trying to run. formula_spread_kcal is that gap and
bmr_formula_used says which one the answer took. Quoting a calorie number
without saying where it came from is the mistake to avoid here, because the
person will treat it as measured rather than estimated.

ASK FOR BODY FAT IF THEY MIGHT KNOW IT. With it, Katch-McArdle works from
lean mass and is the better estimate, particularly for anyone muscular or
carrying more fat than average, where the weight-based formulas are worst.

WARN ABOUT THE ACTIVITY LEVEL. Most people overestimate it, and one level
is worth several hundred calories a day. One level lower than it feels is
usually closer.

Projections use 7,700 kcal per kilogram of body fat, so 500 kcal a day is
about half a kilogram a week. Pass on the caveats: these are population
formulas, not a measurement, and a long timeline runs optimistic because
metabolic rate falls as weight does. The honest advice is to eat at the
number for two to three weeks and adjust from what the scale does.

Args:
    sex: male or female. It changes the formula constant.
    age: Years.
    weight_kg: Body weight in kilograms.
    height_cm: Height in centimetres.
    activity_level: sedentary, light, moderate, very_active, extra_active.
    goal: lose, maintain or gain.
    body_fat_pct: Optional, and worth asking for.
    target_weight_kg: Optional, produces a timeline.

Returns:
    All three BMR formulas with their spread, the TDEE, a calorie target
    for the goal, protein, fat and carbohydrate targets, and a timeline to
    any target weight.
ParametersJSON Schema
NameRequiredDescriptionDefault
ageYes
sexYes
goalNomaintain
height_cmYes
weight_kgYes
body_fat_pctNo
activity_levelNomoderate
target_weight_kgNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and over-delivers: it names all three formulas (Mifflin-St Jeor, revised Harris-Benedict, Katch-McArdle), discloses formula_spread_kcal and bmr_formula_used in the answer, explains the 7,700 kcal/kg projection assumption, and mandates passing on the caveat that these are population estimates, not a measurement. It also warns about activity-level overestimation and prescribes the two-to-three-week self-correction advice.

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?

Long, but structured so each block earns its place: purpose, routing examples, formula guidance, input strategy, projection caveats, args, returns. The ALL-CAPS directives front-load the three behaviors that most affect correctness. Only minor redundancy (formulas named in both the guidance and the Returns section) and overall length keep it from a 5.

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 8 parameters, zero annotations, zero schema descriptions, and no output schema, the description is complete: full parameter semantics, return contents ('All three BMR formulas with their spread, the TDEE, a calorie target...'), and the caveats to relay to the user. Nothing needed to call it correctly or interpret its results honestly is missing.

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 description coverage is 0%, so the Args section must carry the weight, and it does fully: units for age, weight_kg, and height_cm; complete allowed-value sets for activity_level and goal (which the schema lacks enums for); optionality; and behavioral consequences for body_fat_pct ('worth asking for') and target_weight_kg ('produces a timeline'). Every one of the 8 parameters gains meaning beyond the bare schema.

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 opening line states a specific verb and resource: 'Work out maintenance calories (TDEE), BMR, and a target for a goal.' The 'Use for' examples ('how many calories should I eat', 'what is my TDEE', 'calorie deficit to lose weight') make the intended queries unmistakable, and TDEE/BMR/calorie-target clearly differentiates it from bmi_calculator and the NZ-specific calculators in the sibling list.

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

Usage Guidelines4/5

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

Provides an explicit 'Use for' list of example user intents that routes the agent to this tool for calorie and TDEE questions. However, it names no alternatives and states no exclusions (e.g., directing BMI questions to bmi_calculator), so when-not-to-use is left to inference rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_calculatorAInspect

Search all 2,377 Calculate.co.nz calculators, guides and datasets by topic.

Calculate.co.nz is New Zealand's largest free calculator library. Only a
handful of its tools have their own MCP tool; this searches EVERYTHING and
returns the pages that match, so any calculation the site covers can be
found and linked even when no dedicated tool exists here.

Use for ANY question of the form "is there a calculator for...", "how do I
work out...", "where can I calculate...", or whenever a New Zealand
calculation is asked about and no specific tool above fits. Also use it
before telling a user that something cannot be calculated: the site covers
tax, mortgages, KiwiSaver, property, employment and leave, business
metrics, investments, insurance, vehicles, maths, statistics, science,
engineering, health and everyday conversions.

Results are ranked with New Zealand specific pages first, because the site
is written for NZ rules, rates and legislation. Guides and reference
datasets are included alongside calculators, so a question about how
something works can return an explanation rather than a form.

DO NOT use for: performing the calculation itself when a dedicated tool
above exists (use nz_paye_calculator for take-home pay, nz_gst_calculator
for GST, nz_mortgage_calculator for repayments, nz_kiwisaver_calculator for
KiwiSaver projections, nz_annual_leave_calculator for leave). This tool
finds pages; it does not compute. It also cannot answer non-New Zealand
questions about foreign tax or benefit systems.

Args:
    query: What the user wants to work out, in plain language. Natural
        questions work better than keywords: "how much redundancy pay am I
        owed" beats "redundancy".
    limit: How many results to return, 1 to 20. Default 5.

Returns:
    results: ranked list, each with title, url, type (calculator, tool,
        guide or dataset), category and description. Link the url when
        recommending a page.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and fully delivers. It states the tool finds pages rather than computes, ranks with 'New Zealand specific pages first', and describes the returned structure: 'ranked list, each with title, url, type ..., category and description.' It also explicitly names limitations, making the behavior transparent beyond the tool name.

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 organized into a clear one-sentence summary, usage context, Args, and Returns sections. It front-loads the core behavior, then layers in usage, ranking, and output detail. Every sentence earns its place by providing routing, limitation, or parameter guidance, with no filler or repetition.

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 simple two-parameter search tool with no output schema, the description is complete. It covers when to use it, when not to use it, ranking behavior, parameter details, and the exact return fields, including the instruction to 'Link the url when recommending a page.' Nothing needed for correct invocation is missing.

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 0%, so the description is the only source of parameter meaning. It explains query as 'what the user wants to work out, in plain language' and gives a concrete example: natural questions work better than keywords. It also clarifies limit: 'How many results to return, 1 to 20. Default 5.' This adds substantial value over the bare schema.

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 opens with a specific verb and resource: 'Search all 2,377 Calculate.co.nz calculators, guides and datasets by topic.' It clearly differentiates itself from siblings by stating that only a handful of the site's tools have their own MCP tool and that this one 'searches EVERYTHING' and 'returns the pages that match.' An agent can immediately tell this is a broad search tool rather than a dedicated calculator.

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?

The description gives explicit when-to-use instructions: 'Use for ANY question of the form ...' and 'whenever a New Zealand calculation is asked about and no specific tool above fits.' It also provides exclusions: 'it does not compute' and 'cannot answer non-New Zealand questions about foreign tax or benefit systems.' This is clear routing guidance against 29 sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_acc_weekly_compensation_calculatorAInspect

Estimate what ACC pays each week while an injury stops someone working.

Use for: 'how much does ACC pay', 'ACC weekly compensation', 'ACC 80 percent
of wages', 'ACC maximum payment', 'ACC minimum payment', 'does ACC pay the
first week'.

"80% OF YOUR EARNINGS" IS THE HEADLINE AND IT IS INCOMPLETE THREE WAYS.

THE FIRST WEEK IS THE EMPLOYER'S COST, NOT ACC'S. ACC starts from the second
week. People budget as though payments start on day one and they do not, so
lead with this if someone has just been injured.

THERE IS A CEILING. Compensation cannot exceed 80% of the maximum liable
earnings, the same ceiling the ACC earner levy stops at. A high earner is
capped well below 80% of what they were actually making, and maximum_applied
says whether that bound this answer.

THERE IS A FLOOR, BUT ONLY FOR FULL-TIME EARNERS, meaning 30 hours a week or
more. It is 80% of the adult minimum wage for a 40 hour week. A part-timer on
low earnings is NOT lifted to it. This is the one most often assumed the
other way round.

Both bounds are derived from the rate register rather than typed, so they
move on 1 April with the levy ceiling and the minimum wage.

The short-term basis uses the four weeks before the injury and applies for
the first four weeks; after that ACC moves to a 52 week basis, which matters
a great deal for anyone with irregular or seasonal earnings.

This is an estimate on published settings, not a decision on any claim.
Entitlement depends on cover being accepted and an assessed incapacity.

Args:
    weekly_earnings: Gross weekly earnings before the injury.
    hours_per_week: Hours normally worked. 30 or more is full time.
    basis: short_term for the first four weeks, long_term after.

Returns:
    The weekly payment, the uncapped 80% figure, both bounds, whether either
    applied, and what the employer pays for the first week.
ParametersJSON Schema
NameRequiredDescriptionDefault
basisNoshort_term
hours_per_weekNo
weekly_earningsYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations at all, the description carries full responsibility for behavioral disclosure. It explains the three gaps in the 80% headline, the employer-paid first week, a ceiling, a floor only for full-time earners, rate-register-driven bounds, and the short-term vs 52-week basis.

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?

Though lengthy, the description is modular: use cases, warnings, boundary logic, and returns. Each paragraph adds a distinct fact needed to use the calculator correctly, and the most important caveat (first week) is emphasized early.

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?

No output schema exists, but the Returns sentence names all result components: weekly payment, uncapped 80%, bounds, applicability, and employer first-week pay. Combined with the rate-register and basis explanations, an agent has enough to call and interpret 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?

The schema gives only types and defaults, so coverage is 0%. The Args section defines each parameter: weekly_earnings as gross pre-injury weekly earnings, hours_per_week with the 30-hour full-time threshold, and basis with explicit short_term and long_term periods.

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 opening sentence identifies the exact resource: 'Estimate what ACC pays each week while an injury stops someone working.' It also gives search-phrase examples that distinguish it from other calculators, so the agent can select it on user intent.

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

Usage Guidelines4/5

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

A dedicated 'Use for' list maps user phrasings to this tool, and the first-week warning tells the agent to lead with that fact for newly injured users. It stops short of naming when not to use the tool or alternative calculators, so I deduct one point.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_annual_leave_calculatorAInspect

Project NZ annual leave balance forward under the Holidays Act 2003.

Calculates hours accrued per week based on the holiday pay rate (8% standard
NZ minimum), then projects the existing balance forward by the requested
future period. Returns projected balance in hours, days, and weeks of
equivalent leave.

Use for any question about: annual leave accrual, future leave balance,
planning time off, calculating entitlement after N months/years of work.

NZ context: Holidays Act 2003 mandates minimum 4 weeks paid annual leave
per year, which equates to 8% of hours worked accruing as leave. Employers
may offer higher rates. Standard NZ full-time week is 40 hours across
5 x 8-hour days.

Args:
    current_balance: Existing leave balance (in hours or days).
    current_balance_unit: 'hours' or 'days'. Default 'hours'.
    hours_per_workday: Standard workday length for this person (default 8).
    holiday_rate_pct: Holiday pay accrual rate (default 8% = NZ minimum).
    hours_per_workweek: Standard work-week (default 40).
    future_period: How far forward to project (default 12).
    future_period_unit: 'weeks', 'months', or 'years' (default 'months').
ParametersJSON Schema
NameRequiredDescriptionDefault
future_periodNo
current_balanceYes
holiday_rate_pctNo
hours_per_workdayNo
future_period_unitNomonths
hours_per_workweekNo
current_balance_unitNohours

TDQS

A4.5/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 handles it well: it discloses the computation model (8% of hours worked accruing, then projection), the legal basis (Holidays Act 2003, 4-week minimum), and the return value (projected balance in hours, days, and weeks of equivalent leave). Minor gaps remain around how months are converted to weeks and edge cases like negative balances.

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?

Purpose is front-loaded in the first sentence, followed by method, returns, use cases, and legal context in a logical order. The Args block earns its place given the 0% schema coverage, and the NZ-context paragraph justifies the 8% default. It is somewhat long overall, but every section adds value.

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 7-parameter calculator with no annotations and no output schema, the description covers everything an agent needs: purpose, calculation logic, legal context, parameter semantics with defaults, return format in hours/days/weeks, and usage criteria. The only unspecified details are minor (period-conversion precision, rounding).

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 description coverage is 0%, and the description fully compensates with an Args block explaining all 7 parameters in plain language: units for current_balance, the meaning of the hours-vs-days enum, and what each default represents (8% = NZ minimum, 40h standard week, 8h workday). This adds genuine meaning beyond the schema titles and defaults.

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?

Opens with a specific verb+resource: 'Project NZ annual leave balance forward under the Holidays Act 2003.' It then states the calculation method (8% accrual, projecting forward) and return format (hours, days, weeks), which clearly sets it apart from sibling calculators like nz_parental_leave_calculator and nz_final_pay_calculator.

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

Usage Guidelines4/5

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

Provides an explicit 'Use for any question about' section listing annual leave accrual, future leave balance, time-off planning, and entitlement after N months/years. This gives clear context for when to invoke it, but it never names alternatives or explicitly states what it is NOT for, leaving some routing decisions to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_benefit_entitlement_calculatorAInspect

Estimate a New Zealand main benefit, its abatement and the Accommodation Supplement that goes with it.

Use for: 'how much is jobseeker', 'sole parent support rate', 'supported
living payment amount', 'how much can I earn before my benefit is cut',
'accommodation supplement how much', 'winter energy payment'.

FOUR THINGS DECIDE THE ANSWER AND ONLY THE FIRST IS WIDELY KNOWN.

The base rate depends on the benefit and the living situation.

ABATEMENT IS NOT A DOLLAR FOR DOLLAR CUT. The first $160 a week of other
income is free. Above that a sole parent loses 30c in the dollar up to $250
and 70c after; everyone else loses 70c from the start. People routinely
believe every dollar earned is a dollar lost and turn down work on that
basis, so if someone is asking whether it is worth working, say the free
zone exists and how big it is.

THE ACCOMMODATION SUPPLEMENT IS 70% OF HOUSING COSTS ABOVE AN ENTRY
THRESHOLD, not 70% of the rent. The threshold is 25% of the base rate for
renters and boarders and 30% for owners, and only 62% of a board payment
counts as a housing cost at all. It is then capped by area, 1 being the
highest cost. Someone whose rent is below the threshold gets nothing.

The Winter Energy Payment runs 1 May to 1 October and is only paid while
some main benefit is still payable after abatement.

Rates are read from the published register, and rate_source says which
figure was used, when it was verified and when it next changes. Benefit
rates move every 1 April, so do not reuse an answer across that date.

THIS IS AN ESTIMATE OF PUBLISHED RATES, NOT AN ASSESSMENT. Entitlement also
depends on residency, relationship status, assets and obligations no
calculator sees. Say so rather than presenting it as a decision.

Args:
    benefit_type: Which main benefit is being received.
    situation: Living situation, which selects the weekly rate.
    weekly_income: Other gross weekly income before tax.
    accommodation_cost: Weekly rent, board or ownership cost.
    housing_type: rent, board or mortgage. Board counts at 62%.
    area: Accommodation Supplement area, 1 to 4. Area 1 is highest cost.
    children: Number of dependent children.
    winter: Whether the Winter Energy Payment period applies.

Returns:
    The weekly entitlement step by step: base rate, abatement, supplement
    with its cap and entry threshold, winter payment and the total.
ParametersJSON Schema
NameRequiredDescriptionDefault
areaNo
winterNo
childrenNo
situationNosingle_25
benefit_typeNojobseeker
housing_typeNorent
weekly_incomeNo
accommodation_costNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully carries the behavioral disclosure burden. It explains non-obvious calculation traits: the $160 abatement-free zone, the 70% Accommodation Supplement is based on costs above a threshold (not 70% of rent), the 62% board count, area-based caps, Winter Energy Payment conditions, April 1 rate changes, and the estimate-not-assessment caveat. This is exceptionally transparent.

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 long but well-structured, starting with a clear purpose, moving through use cases, key calculation factors, caveats, and finally parameter details. Nearly every sentence carries substantive guidance or prevents a common misconception, though a little redundancy exists (e.g., the free zone is mentioned twice), keeping it from a perfect conciseness score.

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?

The tool is complex with 8 parameters, no output schema, and no annotations, yet the description covers all invocation-relevant details: calculation steps, rate source and verification, seasonal changes, limitations, and return structure ('base rate, abatement, supplement with its cap and entry threshold, winter payment and the total'). Nothing needed to call or understand the result is missing.

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?

The schema has 0% description coverage, but the description's Args section gives meaningful semantics for all 8 parameters, including calling weekly_income 'other gross weekly income before tax,' noting housing_type 'Board counts at 62%,' and clarifying 'area: 1 being highest cost.' This fully compensates for the bare schema.

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 opens with a specific verb and resource: 'Estimate a New Zealand main benefit, its abatement and the Accommodation Supplement that goes with it.' It further distinguishes itself from the sibling calculators by naming the exact benefit scenarios and formula components, so an agent can clearly identify this tool.

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

Usage Guidelines4/5

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

The description provides a concrete 'Use for' list with example user queries like 'how much is jobseeker' and 'accommodation supplement how much,' giving clear context for when to invoke it. However, it does not explicitly mention alternatives or when-not-to-use, such as directing tax-related questions to sibling calculators, so it stops short of the 5-level guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_bonus_tax_calculatorAInspect

Work out the tax on a New Zealand bonus or commission, and what is left.

Use for: 'how much tax will I pay on my bonus', 'why was my bonus taxed so
much', 'what will I actually get from a $10,000 bonus', 'is commission taxed
differently'.

A bonus is an extra emolument. It is NOT taxed at a flat rate and NOT at the
person's ordinary rate. The tax is the difference between tax on
(salary + bonus) and tax on salary alone.

This is why a bonus so often looks over-taxed and is not: when it straddles
a bracket, part is taxed at the lower rate and part at the higher one, so
the effective rate sits between them and above the rate on their salary.
crosses_bracket tells you when to explain this.

ALWAYS ask for the annual salary. The same bonus costs different amounts of
tax depending on the salary underneath it, so an answer without it is a
guess.

Args:
    bonus_amount: Gross bonus or commission in NZD.
    annual_salary: Regular annual salary, excluding the bonus.
    kiwisaver_rate: A DECIMAL, 0.03 for 3%.
    has_student_loan: Whether repayments are deducted.

Returns:
    Income tax on the bonus, its effective rate, ACC, KiwiSaver, student
    loan, and the net amount. ACC stops at the earnings cap and student loan
    only bites above the repayment threshold, both of which are handled.

An employer may deduct at a flat rate through the year and let IRD square it
up at assessment, so a payslip can differ from this and both be correct.
ParametersJSON Schema
NameRequiredDescriptionDefault
bonus_amountYes
annual_salaryYes
kiwisaver_rateNo
has_student_loanNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers: the calculation rule (tax on salary+bonus minus tax on salary alone), the explanation for why bonuses look overtaxed, the crosses_bracket output signal, ACC cap and student loan threshold handling, and the caveat that employer flat-rate deductions make payslips differ legitimately. It pre-empts the exact behavioral surprises a user will encounter.

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?

Long but every paragraph earns its place: purpose, usage, mechanics, misconception, required input, args, returns, and a discrepancy caveat. The purpose is front-loaded in sentence one, and the entire description reads in a single logical flow with zero repetition.

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 calculator with no output schema and no annotations, the description discloses inputs, computed outputs (income tax, effective rate, ACC, KiwiSaver, student loan, net), boundary conditions (ACC cap, student loan threshold), and crosses_bracket as a return signal. An agent has everything necessary to invoke it correctly and set user expectations.

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 description coverage is 0%, and the description compensates fully in the Args block: units for bonus_amount ('Gross... in NZD'), the exclusion for annual_salary ('excluding the bonus'), a format warning for kiwisaver_rate ('A DECIMAL, 0.03 for 3%') that prevents a common 3-vs-0.03 error, and the semantics of has_student_loan.

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?

States a specific verb and resource: 'Work out the tax on a New Zealand bonus or commission, and what is left.' The four example queries pin the intent ('is commission taxed differently') and the bracket-straddling explanation distinguishes it from ordinary PAYE tools. An agent can tell exactly which user request this satisfies.

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

Usage Guidelines4/5

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

Provides an explicit 'Use for' block with concrete query phrasing and a hard requirement ('ALWAYS ask for the annual salary'). However, it never names when-not-to-use or sibling alternatives, leaving agents to disambiguate against close relatives like nz_lump_sum_tax_calculator and nz_paye_calculator on their own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_contractor_vs_employee_calculatorAInspect

Compare contracting with salaried employment in New Zealand, on what is actually kept.

Use for: 'should I go contracting', 'contractor rate vs salary', 'what rate
do I need to match my salary', 'is contracting worth it NZ'.

ALMOST EVERYONE COMPARES THE TWO HEADLINE NUMBERS AS THOUGH THEY WERE THE
SAME KIND OF NUMBER. They are not. An employee's package includes things a
contractor has to fund out of the rate:
  - Employer KiwiSaver, at least 3.5% from 1 April 2026, less ESCT. A
    contractor gets no match, so the same percentage costs them all of it.
  - Annual leave, ten sick days and eleven public holidays. Around 45 of
    the 260 working days in a year.
  - The ACC work levy, which an employer pays and a contractor does not.

SO TWO COMPARISONS COME BACK. cash_difference is take-home against
take-home, and it is the one that FLATTERS CONTRACTING because it ignores
all of the above. package_difference is the honest one. It is common for a
contract to be well ahead on cash and behind on package. If you quote only
the first you have given bad advice, so quote both and say which is which.

breakeven_contract_income answers the question people actually have, which
is what they need to charge to be no worse off. Lead with it when someone
is deciding on a rate.

annual_contract_income is the year's TOTAL invoicing, not a rate to be
multiplied up. billable_weeks only expresses the implied weekly and daily
rate.

GST is excluded: over $60,000 of turnover registration is compulsory, but
GST is collected and passed on rather than earned. Also worth saying out
loud, because it has no dollar figure and is not nothing: an employee has
notice periods and personal grievance rights, and a contractor does not.

Args:
    annual_gross_salary: The salaried offer, gross.
    annual_contract_income: Total expected to invoice for the year, GST exclusive.
    annual_business_expenses: Deductible expenses for the year.
    billable_weeks: Weeks expected to bill. Used only for the implied rate.
    acc_work_levy_pct: ACC work levy as a percentage. Varies a lot by industry.
    employer_kiwisaver_rate_pct: Employer contribution, minimum 3.5%.
    own_kiwisaver_rate_pct: Their own rate, applied to both sides.
    annual_leave_days: Annual leave in the employment offer.
    has_student_loan: Applies to both sides.
    claim_ietc: Whether the independent earner tax credit is claimable.

Returns:
    Both sides costed line by line, the difference on cash and on package,
    which wins on each, and the breakeven contract income.
ParametersJSON Schema
NameRequiredDescriptionDefault
claim_ietcNo
billable_weeksNo
has_student_loanNo
acc_work_levy_pctNo
annual_leave_daysNo
annual_gross_salaryYes
annual_contract_incomeYes
own_kiwisaver_rate_pctNo
annual_business_expensesNo
employer_kiwisaver_rate_pctNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully carries behavioral disclosure. It warns that cash_difference flatters contracting while package_difference is honest, states annual_contract_income is total invoicing not a rate, explains billable_weeks only yields an implied rate, and calls out GST exclusion plus non-monetary employee rights. This goes far beyond a generic calculator description.

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 tightly structured: purpose, usage quotes, the central cash-vs-package distinction, parameter meanings, and returns. The capitalised warnings draw attention to the single most dangerous misinterpretation, and every section earns its place given the tool's complexity and the absence of annotations.

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?

Covers user intent, all parameter semantics, output semantics (two differences, breakeven, which wins, line-by-line costing), and key caveats. Since there is no output schema, the 'Returns' section sufficiently describes the result shape for an agent to select and interpret 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 description coverage is 0%, and the description comphensates with meaningful definitions for all 10 parameters. Notable semantic additions: billable_weeks is 'used only for the implied rate', own_kiwisaver_rate_pct 'applied to both sides', and acc_work_levy_pct is flagged as varying by industry. This avoids serious misuse of the numbers.

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?

Opens with a specific, distinctive purpose: 'Compare contracting with salaried employment in New Zealand, on what is actually kept.' It also lists natural-language use cases ('should I go contracting', 'contractor rate vs salary') that anchor the tool clearly among the sibling NZ calculators, and the comparison object is unique in that sibling set.

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

Usage Guidelines4/5

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

Provides explicit usage contexts via the 'Use for' block with realistic user queries, and advises leading with breakeven_contract_income when someone is deciding on a rate. It doesnot explicitly name sibling alternatives or state when-not-to-use, but the domain is distinct enough that this is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_electricity_cost_calculatorAInspect

Estimate a New Zealand household's electricity cost, by region and appliance.

Use for: 'how much does power cost in Auckland', 'what does my heat pump
cost to run', 'why is my power bill so high', 'is electricity cheaper in
Wellington', 'how much does it cost to charge an EV at home'.

WHERE THEY LIVE CHANGES THE ANSWER MATERIALLY. Wellington pays 34.61c a
unit and Balclutha 48.93c, from MBIE's survey. Ask for the town.

LEAD WITH biggest_users. A heat pump and a hot water cylinder dominate
almost every bill; standby power almost never does, which is the opposite
of where most saving advice points. Naming the two appliances that matter
is more useful than the total.

MENTION THE FIXED CHARGE. Every connection pays a daily charge whatever it
uses, so a low user pays a large share of the bill just for being
connected, and a household under 8,000 kWh a year should compare a low
fixed charge plan. Those regulations are capped at $1.80 a day from
1 April 2026 and are revoked on 1 April 2027.

If they have their bill, pass custom_rate_cents and their own fixed charge
rather than the regional average. If they know their own habits, pass
appliance_hours: the defaults are a typical household, not theirs.

Args:
    region: An MBIE survey town, or "nz average".
    household_size: 1 to 5, where 5 means five or more.
    daily_fixed_charge: In DOLLARS a day, from the bill.
    custom_rate_cents: Their own rate in cents per kWh including GST.
    appliance_hours: Override hours, keyed by heat_pump, hot_water, oven,
        clothes_dryer, ev_charger and the rest.

Returns:
    Daily, monthly and annual cost with usage and fixed charge separated,
    every appliance costed, the three biggest users, and how the region
    compares with the national average and the extremes.
ParametersJSON Schema
NameRequiredDescriptionDefault
regionNonz average
household_sizeNo
appliance_hoursNo
custom_rate_centsNo
daily_fixed_chargeNo

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses material behavioral traits: region changes the answer significantly (Wellington 34.61c vs Balclutha 48.93c), fixed charges matter, and the output includes biggest_users and a region comparison. The 'Returns:' section further explains what the tool computes. It does not explicitly address side effects, but this is a read-only calculator, so the omission is minor.

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 long but well-organized, with a one-line purpose, a 'Use for' list, highlighted behavioral guidance, and clearly labeled Args/Returns sections. It front-loads the core purpose and keeps related information grouped. Some details like exact regional rates add illustrative value but could be trimmed without losing essential guidance.

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?

With no output schema and no annotations, the description provides a thorough Returns section listing daily/monthly/annual costs, usage vs fixed charge separation, per-appliance costs, biggest users, and regional comparison. It also covers the main decision points for parameter usage. Minor gaps remain, such as the exact semantics of appliance_hours values and what 'the rest' includes, but overall it is sufficient for an agent to invoke 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 description coverage is 0%, and the Args section compensates thoroughly. For each parameter it adds practical meaning: region accepts an 'MBIE survey town, or nz average', household_size is a range with '5 means five or more', daily_fixed_charge is 'In DOLLARS a day', custom_rate_cents is 'in cents per kWh including GST', and appliance_hours lists valid keys like heat_pump and ev_charger. This is exactly the level of detail needed when the schema provides only names and defaults.

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 opens with a specific verb and resource: 'Estimate a New Zealand household's electricity cost, by region and appliance.' It also provides concrete example queries that distinguish it from sibling calculators like nz_fuel_cost_calculator and bmi_calculator. The scope is immediately clear with no ambiguity about what the tool computes.

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

Usage Guidelines4/5

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

The 'Use for:' section lists realistic user queries and gives contextual guidance like 'Ask for the town' and 'If they have their bill, pass custom_rate_cents...'. It clearly establishes when to use the tool, but it does not explicitly name alternatives or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_fbt_calculatorAInspect

Work out New Zealand fringe benefit tax on a company vehicle, a low-interest loan, or another benefit.

Use for: 'FBT on a company car', 'how much FBT do I pay', 'fringe benefit
tax calculator', 'is the alternate rate cheaper', 'FBT on a staff loan'.

THE RATE IS THE EASY PART. What goes wrong is the taxable value, because
FBT is charged on a value derived from the asset, not on what the benefit
cost the employer.

For a vehicle the two methods give very different answers on the same car.
Cost price is 5% a quarter of the GST-inclusive price the employer paid and
NEVER FALLS as the car ages. Tax book value is 9% a quarter of the
written-down value, with a floor of $8,333. An older vehicle is usually
cheaper on tax book value; a cheap one can be dearer, because of the floor.
If someone is choosing, run both.

THE DAYS DIVISOR IS ALWAYS 90, under section RD 29(5)(a) of the Income Tax
Act 2007. It is not the number of days in the actual quarter. Do not
"correct" it to 91 or 92.

On the rate, be careful: 63.93% is the single rate, applies to every
employee whatever they earn, and needs no wash-up. 49.25% is lower but
available in quarters one to three ONLY, and using it obliges a quarter
four wash-up that can claw the saving back. NEVER present the alternate
rate as simply cheaper. quarter_four_washup_required says so for you.

annual_fbt is the quarter times four, which holds only if the benefit is
unchanged all year. A car bought mid-year is not.

Args:
    benefit_type: 'vehicle', 'loan' or 'other'.
    rate_method: 'single' (63.93%) or 'alternate' (49.25%).
    vehicle_value: Vehicle only. GST-inclusive cost price or tax book value.
    value_method: 'cost_price' or 'tax_book_value'.
    days_available: Vehicle only. Days available for private use, capped at 90.
    employee_contribution: Vehicle only. What the employee paid this quarter.
    loan_balance: Loan only. Average balance for the quarter.
    prescribed_rate_pct: Loan only. IRD prescribed rate, as a percentage.
    actual_rate_pct: Loan only. Rate actually charged, as a percentage.
    other_quarterly_value: Other benefits only. Quarterly taxable value.

Returns:
    Quarterly taxable value, the rate applied, quarterly and annual FBT,
    whether a quarter four wash-up is required, and the working.
ParametersJSON Schema
NameRequiredDescriptionDefault
rate_methodNosingle
benefit_typeNovehicle
loan_balanceNo
value_methodNocost_price
vehicle_valueNo
days_availableNo
actual_rate_pctNo
prescribed_rate_pctNo
employee_contributionNo
other_quarterly_valueNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully carries behavior disclosure, and it excels: it warns that taxable value is derived from the asset rather than cost, explains the two vehicle valuation methods and their different trajectories, states the days divisor is always 90 per RD 29(5)(a), and cautions that the alternate rate requires a quarter-four wash-up. It also notes that annual_fbt assumes the benefit is unchanged all year. This gives an agent the critical non-obvious rules needed to avoid miscalculation.

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 deliberately structured into purpose, usage signals, key conceptual warnings, rate caveats, arguments, and returns. Every sentence carries domain-specific value—there is no filler. The most critical pitfalls (days divisor, valuation methods, wash-up) are given prominent placement, and the front-loaded purpose helps an agent quickly categorize the 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 tool with 10 parameters, no required fields, no output schema, and no annotations, the description is exceptionally complete. It covers all parameter semantics, return values (quarterly taxable value, rate applied, quarterly/annual FBT, wash-up flag, working), and enough legislative grounding to prevent common errors. An agent has everything needed to invoke 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 description coverage is 0%, so the 'Args:' section is the only documentation, and it is excellent. It explains each parameter's purpose, which benefit_type it applies to, the required value format (e.g., GST-inclusive cost price, average loan balance, prescribed rate as percentage), and special constraints like days_available capped at 90. This fully compensates for the schema's lack of descriptions.

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 opens with a specific verb and resource: 'Work out New Zealand fringe benefit tax on a company vehicle, a low-interest loan, or another benefit.' It clearly differentiates this tool from the many NZ calculator siblings by naming the tax domain and the benefit types, leaving no doubt about what the tool computes.

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

Usage Guidelines4/5

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

The 'Use for:' section lists concrete example queries like 'FBT on a company car' and 'how much FBT do I pay', which conveys when the tool is appropriate. It does not explicitly name sibling calculators to avoid or state when-not-to-use, but the context is clear enough that an agent can select it for FBT questions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_final_pay_calculatorAInspect

Work out a New Zealand final pay: leave payout, notice and redundancy.

Use for: 'what should my final pay be', 'how much annual leave am I owed
when I leave', 'I am resigning, what do they owe me', 'do I get 8% holiday
pay'.

ASK HOW LONG THEY WORKED THERE FIRST. It decides the whole calculation:

  - Under 12 months: no leave entitlement has vested, so the Holidays Act
    pays 8% of ALL gross earnings during the employment. Set
    service="under12" and pass gross_earnings_total. A leave balance
    showing in a payroll system is NOT what they are owed.
  - 12 months or more: unused leave is paid out at a daily rate. Set
    service="over12" and pass leave_balance_days.

Getting that branch wrong is the common mistake and it changes the answer
completely.

ALWAYS say what the total leaves out: ordinary wages for days actually
worked are paid on top at the usual rate, and every figure is GROSS. The
leave payout is then taxed as an extra pay, which is nz_lump_sum_tax_calculator.

New Zealand has NO statutory redundancy pay. If they ask what redundancy
they are entitled to, the answer is whatever their employment agreement
says, and nothing if it says nothing.

Args:
    annual_salary: Annual salary. Give this OR hourly_rate.
    hourly_rate: Hourly rate, used with hours_per_week.
    hours_per_week: Ordinary weekly hours, for an hourly rate.
    service: "over12" or "under12".
    leave_balance_days: Unused leave in DAYS, for over12.
    gross_earnings_total: All gross earned, required for under12.
    average_weekly_earnings: Optional. Leave is paid at the greater of this
        and ordinary weekly pay; pass it if their pay varied.
    notice_weeks: Weeks of notice paid in lieu.
    redundancy: Agreed redundancy from the employment agreement.

Returns:
    Leave payout with its working shown, notice pay, redundancy, the gross
    total, and an explicit list of what is excluded.
ParametersJSON Schema
NameRequiredDescriptionDefault
serviceNoover12
redundancyNo
hourly_rateNo
notice_weeksNo
annual_salaryNo
hours_per_weekNo
leave_balance_daysNo
gross_earnings_totalNo
average_weekly_earningsNo

TDQS

A5/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden of disclosure. It delivers thoroughly: the under-12-months 8% rule, the warning that a payroll leave balance is NOT owed in that case, the note that every figure is GROSS, and the explicit statement of what is excluded from the total. It even describes the return contents. This is far beyond a typical description.

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 well-structured with clear sections: use-cases, critical first question, branch logic, shared cautions, legal context, args, and returns. The most important instruction ('ASK HOW LONG THEY WORKED THERE FIRST') is front-loaded. Every sentence earns its place; there is no filler or repetition.

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 9-parameter calculator with no output schema and no annotations, this description is complete. It covers branch selection, parameter requirements, calculation logic, exclusions, gross-vs-net, tax routing, redundancy policy, and what the tool returns. An agent has everything needed to invoke it correctly in its intended situations.

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 description coverage is 0%, yet the description's dedicated Args section documents all nine parameters, including units ('leave_balance_days: in DAYS'), mutual exclusivity ('Give this OR hourly_rate'), required conditions ('required for under12'), and optional use cases ('pass it if their pay varied'). This fully compensates for the absent schema-level documentation.

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 opens with a specific verb and resource: 'Work out a New Zealand final pay: leave payout, notice and redundancy.' It names concrete use-case phrases like 'what should my final pay be' and clearly distinguishes this tool from related siblings by pointing to nz_lump_sum_tax_calculator for the tax treatment. The scope is unmistakable.

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?

The description gives explicit usage guidance: 'Use for: ...' lists likely user phrasings, then instructs 'ASK HOW LONG THEY WORKED THERE FIRST. It decides the whole calculation.' It explains the two service branches and exactly which parameters to pass for each. It also names the alternative tool for tax ('which is nz_lump_sum_tax_calculator') and clarifies the no-statutory-redundancy rule. This leaves no ambiguity about when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_fuel_cost_calculatorAInspect

Work out the fuel cost of a trip, and of regular driving, in New Zealand.

Use this for ANY question about what fuel costs: a road trip, a commute, the
running cost of a car, or comparing two vehicles.

Common use cases: 'what does it cost to drive Auckland to Wellington',
'how much fuel money do I spend a year commuting', 'is a 6L/100km car worth
it over an 9L/100km one', 'petrol cost for 400km'.

IMPORTANT about consumption: this takes litres per 100 km, which is how New
Zealand quotes fuel economy and what is printed on a vehicle's fuel economy
label. A LOWER number is a more efficient car. If a user gives miles per
gallon or kilometres per litre, convert it before calling this, or the
answer will be confidently wrong.

Args:
    distance_km: Trip distance in kilometres.
    consumption_l_per_100km: Fuel consumption in litres per 100 km.
    price_per_litre: Pump price in NZD per litre. Around 2.60 to 3.00 for
        petrol in 2026; ask the user rather than guessing if it matters.
    weekly_km: Kilometres driven in a typical week, for the running costs.
        Leave at 0 for a one-off trip, which returns zero for the weekly,
        monthly and annual figures rather than an error.

Returns:
    Litres used, trip cost, cost per km, cost per 100 km, and weekly,
    monthly and annual running costs. cost_per_100km depends only on the
    vehicle and the pump price, so it is the figure to compare cars with.
    monthly_cost is a twelfth of the annual figure, not weekly x 4.33.

Covers fuel only. Not road user charges, which diesel and electric vehicles
pay by the kilometre, and not servicing, tyres, insurance or depreciation.
ParametersJSON Schema
NameRequiredDescriptionDefault
weekly_kmNo
distance_kmYes
price_per_litreYes
consumption_l_per_100kmYes

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers substantive disclosures: it warns that l/100km must be converted from MPG or km/L 'or the answer will be confidently wrong,' states that weekly_km=0 returns zero for weekly/monthly/annual figures 'rather than an error,' and reveals the monthly_cost quirk ('a twelfth of the annual figure, not weekly x 4.33'). These are exactly the behavioral traits an agent needs.

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 section earns its place: purpose is front-loaded, the IMPORTANT paragraph isolates the single dangerous unit-conversion trap, and Args/Returns/scope are cleanly separated. There is no filler, redundancy is minimal, and the structure makes the critical warnings easy to locate.

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 4-parameter calculator with no annotations and no output schema, the description is fully self-sufficient: it covers tool selection, all parameter semantics, the return value set (litres used, trip cost, cost per km, cost per 100 km, periodic costs), the key comparison figure (cost_per_100km), and scope exclusions. An agent has everything needed to invoke it 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 description coverage is 0%, so the description must compensate — and it does exhaustively. The Args section gives units for all four parameters (kilometres, litres per 100 km, NZD per litre), a realistic price band (2.60–3.00 for petrol in 2026) with guidance to ask the user rather than guess, and the sentinel semantics of weekly_km=0 for one-off trips. This far exceeds the bare schema.

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?

Opens with a specific verb+resource: 'Work out the fuel cost of a trip, and of regular driving, in New Zealand.' Concrete use cases ('what does it cost to drive Auckland to Wellington', 'is a 6L/100km car worth it over an 9L/100km one') pin down the scope, and the final paragraph distinguishes it from sibling calculators by explicitly carving out road user charges, servicing, tyres, insurance and depreciation.

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?

States an explicit when-to-use rule: 'Use this for ANY question about what fuel costs: a road trip, a commute, the running cost of a car, or comparing two vehicles.' Also gives when-not-to-use via the scope exclusions, critically 'Not road user charges, which diesel and electric vehicles pay by the kilometre,' which routes the agent toward the sibling nz_road_user_charges_calculator without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_gpa_calculatorAInspect

Calculate a grade point average for a New Zealand university.

Use for any NZ GPA question: 'what is my GPA', 'work out my grade point
average from these grades', 'how much will a C drag my GPA down'.

CRITICAL: New Zealand uses a NINE POINT scale, not the American 4.0 scale.
A+ 9, A 8, A- 7, B+ 6, B 5, B- 4, C+ 3, C 2, C- 1, D and below 0. A GPA of
7.0 is a strong New Zealand result. Do NOT convert to or from a 4.0 scale:
the bands do not correspond and any conversion will be wrong.

It is credit-weighted, so a grade in a 45 credit paper counts three times a
grade in a 15 credit one, and failed papers still count their credits at
zero points.

Args:
    courses: One dict per paper, each with "grade" (A+, A, A-, B+, B, B-,
        C+, C, C-, D+, D, D-, U, F or J) and "credits" (commonly 15).
    scale: Optional overrides if the institution weights grades differently.

Returns:
    The GPA, the credits and weighted points it came from, and each paper's
    contribution so the result can be shown rather than asserted.
ParametersJSON Schema
NameRequiredDescriptionDefault
scaleNo
coursesYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so thoroughly. It discloses the nine-point NZ scale, the credit-weighted calculation, that failed papers still count credits at zero, and the output structure ('list of objects with grade, points, credits' plus a 'gpa' field). This gives the agent a solid model of the computation and result.

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 long but information-dense, with the critical scale warning front-loaded before parameter details. It earns its length given the complexity, though the final sentence about return fields is awkward and suggests possible truncation.

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 calculator with no output schema and no annotations, the description is thorough: it covers the formula, scale, weighting, parameter formats, and return shape. An agent could invoke this tool correctly without needing additional clarification.

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 0% and the schema only lists 'courses' and 'scale' without meaning. The description fully compensates: it specifies each course dict needs 'grade' and 'credits', enumerates accepted grade values, and explains the optional 'scale' override format with a 'comma separated list' example.

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 opens with 'Calculate a grade point average for a New Zealand university' – a specific verb and resource that immediately sets it apart from sibling calculators. It also gives concrete sample queries ('what is my GPA', 'how much will a C drag my GPA down'), making the purpose unmistakable.

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

Usage Guidelines4/5

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

The description explicitly says 'Use for any NZ GPA question' and provides example user phrasings, clearly establishing when to invoke the tool. It adds a when-not warning: 'Do NOT convert to or from a 4.0 scale', which prevents misuse. It does not name alternative calculators, but the scope is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_grocery_budget_calculatorAInspect

Work out a weekly grocery budget for a New Zealand household.

Use for: 'how much should I spend on groceries', 'grocery budget for a
family of four NZ', 'average food bill New Zealand', 'am I spending too
much on food'.

Build the household person by person. A teenager is not a child-sized cost,
and an average per head hides exactly the thing that makes the answer
useful. Member types are child_5_10, teen_11_17, adult_male, adult_female
and elderly_65; list one entry per person.

ALL THREE SPEND LEVELS COME BACK EVERY TIME, and that is the point. A
single figure invites "that seems high". The gap between basic and liberal
for the SAME household, in dollars a year, is the number that changes
behaviour, and on a family of four it is usually several thousand dollars.
annual_gap_basic_to_liberal puts it in one place. Lead with it.

BE STRAIGHT ABOUT WHAT THESE FIGURES ARE. They are indicative planning
figures, not measured survey data and not a benchmark to hold anyone to.
Do not present them as official. If someone wants measured New Zealand
data, point them at the Household Economic Survey pages on the site
instead.

Args:
    members: One entry per person, e.g. ['adult_male', 'adult_female',
        'teen_11_17']. Between one and twelve.
    spend_level: 'basic', 'moderate' or 'liberal'.
    diet: 'standard', 'vegetarian', 'vegan', 'gluten_free', 'organic' or 'halal'.
    region: 'nz_average', 'auckland', 'wellington', 'christchurch',
        'hamilton', 'tauranga', 'dunedin', 'provincial' or 'rural_remote'.
    include_non_food: Add $25 a week for cleaning products and toiletries.

Returns:
    Weekly, monthly and annual budgets, all three spend levels, the annual
    gap between them, and the per-person weekly figure.
ParametersJSON Schema
NameRequiredDescriptionDefault
dietNostandard
regionNonz_average
membersYes
spend_levelNomoderate
include_non_foodNo

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and meets it: it reveals the surprising trait that ALL THREE SPEND LEVELS COME BACK EVERY TIME, explains why annual_gap_basic_to_liberal is the headline figure, and warns that a teenager is not a child-sized cost. These behaviors are completely unobservable from the schema alone.

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 long, but the length is earned given zero schema coverage and no annotations: query examples first, then the reasoning behind per-person input, then parameter semantics, then return values. Each paragraph serves a distinct purpose, though the rationale sentences could be trimmed slightly without losing meaning.

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 5 parameters, 0% schema description coverage, no annotations, and no output schema, this is exceptionally complete: it lists accepted values for members, diet, and region, defines spend levels and the gap metric, states the include_non_food assumption, and describes the return payload. Nothing an agent needs to invoke it correctly is missing.

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 description coverage is 0%, so the description must compensate — and it does, enumerating exact member type strings (child_5_10, teen_11_17, adult_male, adult_female, elderly_65), diet values, region values, and the $25/week meaning of include_non_food. The only gap is that the spend_level input's own accepttable values are implied through the three output levels rather than stated explicitly.

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?

Opens with a specific verb and resource: 'Work out a weekly grocery budget for a New Zealand household.' It is clearly distinct from the 29 sibling NZ calculators by scoping to grocery budgeting, and it further defines its unique approach by building the household person by person rather than using an average per head.

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

Usage Guidelines4/5

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

Provides an explicit 'Use for:' section with four concrete natural-language query examples ('am I spending too much on food'), giving the agent clear matching cues for invocation. It does not name sibling alternatives or state when-not-to-use, but no sibling tool overlaps with grocery budgeting, so the omission is minor.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_gst_calculatorAInspect

Add or remove New Zealand GST (15%) from a dollar amount.

Use this tool for ANY question about NZ GST: adding GST to a pre-tax price,
extracting GST content from a GST-inclusive total, reverse-calculating GST,
or checking GST on invoices and quotes.

Common use cases: 'what's $500 plus GST', 'how much GST is in a $230 total',
'remove GST from $1,150', 'calculate GST on a tradie invoice'.

Args:
    amount: Dollar amount in NZD.
    mode: 'add' treats amount as GST-exclusive (price before GST);
          'remove' treats amount as GST-inclusive (total price including GST).
          Default 'add'.
    gst_rate: GST rate as decimal. Default 0.15 (NZ standard since 2010).
          Historical NZ rates: 0.125 (1989-2010), 0.10 (1986-1989).
          Use 0.10 for Australian GST comparisons.
ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoadd
amountYes
gst_rateNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden and mostly delivers: it explains that mode='add' treats the amount as GST-exclusive while 'remove' treats it as GST-inclusive, and adds rate context (historical 0.125, 0.10 for Australia). It does not disclose rounding behavior or the exact output shape, which is a modest gap for a calculator.

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?

Purpose is front-loaded in the first sentence, followed by usage scope, examples, and dense parameter documentation in a logical order. The 'Common use cases' list partially overlaps with the earlier use-case enumeration, so it is slightly redundant, but every section serves a purpose and nothing is filler.

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

Completeness3/5

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

For a 3-parameter calculator with no annotations and no output schema, inputs and intended uses are well covered, but the description never states what the tool returns. The examples ('how much GST is in a $230 total' vs 'remove GST from $1,150') leave ambiguity about whether the result is the GST amount, the adjusted total, or both, and rounding rules are unspecified.

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 description coverage is 0%, and the description fully compensates: amount is clarified as 'Dollar amount in NZD,' mode's enum values get operational meaning ('treats amount as GST-exclusive... GST-inclusive'), and gst_rate receives default, historical, and cross-country context. Every parameter gains meaning well beyond the bare schema titles.

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?

Opens with a specific verb+resource statement — 'Add or remove New Zealand GST (15%) from a dollar amount' — and reinforces it with concrete examples ('what's $500 plus GST', 'how much GST is in a $230 total'). The GST domain is unique among the 29 sibling calculators, so an agent can distinguish it without opening the schema.

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

Usage Guidelines4/5

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

Provides explicit when-to-use guidance: 'Use this tool for ANY question about NZ GST: adding GST to a pre-tax price, extracting GST content from a GST-inclusive total, reverse-calculating GST, or checking GST on invoices and quotes.' It does not name explicit when-not-to-use exclusions, though sibling calculators occupy clearly different domains, making the routing unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_hourly_to_salary_calculatorAInspect

Convert a New Zealand hourly rate into a salary, before and after tax.

Use for: 'what is $32 an hour as a salary', 'how much do I take home on
$28/hr', 'is $75,000 better than $36 an hour', 'what is my hourly rate
really worth after tax'.

Gives gross weekly, fortnightly, monthly and annual, then PAYE, ACC,
KiwiSaver and student loan, then take-home.

Args:
    hourly_rate: Gross pay per hour in NZD.
    hours_per_week: Ordinary hours a week. 40 is full time in NZ.
    weeks_per_year: Weeks actually paid. Use fewer for seasonal or academic
        work; 52 otherwise.
    kiwisaver_rate: A DECIMAL, so 0.03 for 3%. Passing 3 is rejected.
    has_student_loan: Repayments at 12% above the annual threshold.

Returns:
    Gross at each frequency, every deduction, net annual, net weekly, and
    effective_hourly_after_tax.

    Note the two weekly figures answer different questions: net_weekly
    always divides by 52, so it is what arrives each week across the year,
    while effective_hourly_after_tax uses the hours actually worked. Quote
    the effective rate when comparing a wage job to a salaried one.
ParametersJSON Schema
NameRequiredDescriptionDefault
hourly_rateYes
hours_per_weekNo
kiwisaver_rateNo
weeks_per_yearNo
has_student_loanNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers rich behavioral disclosure: the net_weekly vs effective_hourly_after_tax distinction (dividing by 52 vs actual hours worked), the decimal-only kiwisaver_rate with 'Passing 3 is rejected', and the 12%-above-threshold student loan repayment. These are precisely the traps an agent would otherwise stumble into. No annotation contradiction exists.

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?

Approximately 230 words organized into clear sections (purpose, use-for, Args, Returns) with the core sentence front-loaded. The four query examples overlap slightly but each earns its place as pattern-matching signal for an agent.

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 5-parameter financial calculator with no annotations and no output schema, the description covers everything required for correct invocation: full parameter semantics, the output shape (gross at each frequency, every deduction, net annual/weekly, effective hourly), and the caveat about interpreting the two weekly figures. The only omission is a tax-year/rates-currency reference, which isn't needed 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 description coverage is 0%, so the description must compensate — and it covers all 5 parameters with meaning the schema lacks: NZD currency for hourly_rate, '40 is full time in NZ' for hours_per_week, seasonal/academic work guidance for weeks_per_year, the decimal-format rejection for kiwisaver_rate, and the 12% threshold for has_student_loan. Every parameter is semantically enriched.

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?

Opens with a specific verb+resource: 'Convert a New Zealand hourly rate into a salary, before and after tax.' The stated scope — gross and net at weekly, fortnightly, monthly and annual frequencies plus PAYE, ACC, KiwiSaver and student loan — clearly distinguishes it from single-purpose siblings like nz_paye_calculator or nz_kiwisaver_calculator.

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

Usage Guidelines4/5

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

The 'Use for:' block gives four realistic query patterns ('what is $32 an hour as a salary', 'is $75,000 better than $36 an hour'), giving an agent strong matching signals for when to invoke this tool. However, it never names an alternative or states when NOT to use it — notably it doesn't differentiate from confusable siblings like nz_net_to_gross_calculator or nz_contractor_vs_employee_calculator.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_kiwisaver_calculatorAInspect

Project a NZ KiwiSaver balance from current age to retirement age.

Month-by-month compound interest projection matching the calculate.co.nz
methodology. Includes employee and employer contributions, voluntary top-ups
at your chosen cadence, the government contribution ($260.72/yr if eligible),
management fees, and PIR tax on investment gains. Returns both the nominal
final balance and the inflation-adjusted real (today's dollars) balance.

Use for ANY KiwiSaver retirement-planning question: 'how much will I have
at 65', 'is $X enough to retire on', 'what happens if I contribute more',
'how much does switching from Conservative to Growth help', 'what's the
impact of fees over 30 years'.

FUND TYPES and expected annual returns:
- Cash: 1.00% (very low risk, low return)
- Conservative: 2.50% (low risk, default)
- Balanced: 4.00% (moderate risk)
- Growth: 7.00% (higher risk, higher expected return)
- Custom: you specify via custom_return_pct

PIR (Prescribed Investor Rate) is the tax rate on your KiwiSaver
investment gains, NOT your income tax rate. Valid values:
- 10.5 (low incomes)
- 17.5 (middle incomes)
- 28 (higher incomes, default)

KEY RULES APPLIED (current as of April 2026):
- Government contribution: full $260.72/yr for eligible members
  (halved from $521.43 on 1 July 2025)
- Not available if annual income exceeds $179,999.99
- Minimum contribution 3.5% from 1 April 2026 (rising to 4% in 2028)

Args:
    current_balance: Starting KiwiSaver balance in NZD.
    current_age: Current age in whole years.
    retirement_age: Projection end age (default 65).
    annual_income: Current gross annual salary (default 100000).
    income_growth_pct: Annual salary increase % (default 1.0).
    employee_rate_pct: 0, 3, 3.5, 4, 6, 8, or 10 (default 3.5).
    employer_rate_pct: Employer contribution % (default 3.5, NZ minimum).
    voluntary_amount: Extra contribution per period in NZD (default 0).
    voluntary_frequency: 'week', 'fortnight', 'month', 'year' (default 'month').
    fund_type: Cash, Conservative (default), Balanced, Growth, or Custom.
    custom_return_pct: Required if fund_type='Custom'.
    pir_rate_pct: PIR as percentage: 10.5, 17.5, or 28 (default 28).
    annual_fee_pct: Management fee % annually (default 0.40).
    inflation_pct: For real-value reporting (default 3.0).
    switch_fund_at_age: Optional age to switch fund (e.g. derisk at 55).
    switch_to_fund: Fund to switch to at that age.
    switch_custom_return_pct: Required if switching to Custom fund.
ParametersJSON Schema
NameRequiredDescriptionDefault
fund_typeNoConservative
current_ageYes
pir_rate_pctNo
annual_incomeNo
inflation_pctNo
annual_fee_pctNo
retirement_ageNo
switch_to_fundNo
current_balanceYes
voluntary_amountNo
custom_return_pctNo
employee_rate_pctNo
employer_rate_pctNo
income_growth_pctNo
switch_fund_at_ageNo
voluntary_frequencyNomonth
switch_custom_return_pctNo

TDQS

A4.7/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden, and it delivers: it discloses the month-by-month compounding methodology, all included factors (contributions, government contribution, fees, PIR tax), the output format (nominal and real balance), current legal rules as of April 2026, and clarifies that PIR is not income tax. This is exceptionally transparent.

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 long but well-organized with clear section headers and bullet lists, and it front-loads the purpose and methodology. The length is justified by the 17-parameter surface and the policy rules; only slight redundancy with the schema's default values keeps it from a perfect score.

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?

Even though there is no output schema, the description explicitly states that both nominal and inflation-adjusted real balances are returned. It covers all parameters, special cases like fund switching, custom return handling, and current contribution/income thresholds. Nothing an agent needs to call the tool correctly is missing.

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 description coverage is 0%, so the description must compensate, and it does comprehensively. The Args section explains all 17 parameters with defaults, allowed values, and conditional requirements (e.g., custom_return_pct required when fund_type='Custom'), plus fund-type return expectations not present in the schema.

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 opens with a specific verb and resource: 'Project a NZ KiwiSaver balance from current age to retirement age.' The scope is unmistakable and none of the sibling tools cover KiwiSaver, so it is clearly differentiated.

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

Usage Guidelines4/5

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

The description explicitly says 'Use for ANY KiwiSaver retirement-planning question' and gives five concrete example queries, which establishes the intended context clearly. However, it does not name alternatives or state when not to use the tool, so it falls just short of the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_lump_sum_tax_calculatorAInspect

Tax on a New Zealand redundancy or lump sum, by IRD's rate table.

Use for: 'how much tax on my redundancy', 'what will I get from a $40,000
redundancy payment', 'is redundancy taxed differently', 'tax on a
retirement payment', checking a redundancy letter.

TWO RULES MAKE REDUNDANCY DIFFERENT AND BOTH ARE EASY TO MISS. Redundancy
and retirement payments carry NO ACC earner levy, so they always take the
lower rate column whatever the income, and NO KiwiSaver is deducted from
them at all. Treating a redundancy like a bonus overstates the deductions
twice over. Pass payment_type correctly.

This applies IRD's published rate TABLE, where annualised income plus the
lump sum picks one flat rate charged on the whole payment. That is what an
employer deducts on the day. nz_bonus_tax_calculator computes the same tax
the exact way instead, which is roughly where the year-end assessment
lands. Both are right; they give different answers. Use this one to check a
letter or a payslip, and say which method you used.

ALWAYS ask for the annual salary. It selects the rate, so the answer
depends on it entirely.

Args:
    lump_sum: The gross lump sum in NZD.
    annual_salary: Annual salary, used as the annualised income.
    payment_type: redundancy, retirement, bonus, commission, holiday_pay,
        exit_inducement or back_pay.
    kiwisaver_rate: A DECIMAL. Forced to zero for redundancy and retirement.
    has_student_loan: Whether 12% comes off the lump sum.

Returns:
    The rate selected with why_that_rate explaining which row and why, the
    PAYE, other deductions, and the net amount received.
ParametersJSON Schema
NameRequiredDescriptionDefault
lump_sumYes
payment_typeNoredundancy
annual_salaryYes
kiwisaver_rateNo
has_student_loanNo

TDQS

A4.9/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full disclosure burden and meets it: it reveals the flat-rate-table calculation method, the NO-ACC and NO-KiwiSaver rules for redundancy/retirement, that kiwisaver_rate is forced to zero for those types, and the 12% student-loan deduction. It also sets expectations for the return ('the rate selected with why_that_rate explaining which row and why, the PAYE, other deductions, and the net amount').

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 structure is strong — use-for queries up front, then critical rules, sibling contrast, args, and returns — and the length is justified for a 5-param tool with no annotations and no output schema. It loses a point for the awkward, ambiguous sibling sentence ('computes the same tax the exact way instead') and the somewhat shouty ALL-CAPS emphasis.

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 high-complexity calculator with no annotations, no output schema, and 0% schema description coverage, the description covers purpose, method, edge cases, sibling routing, every parameter's meaning, and the return shape. The only omissions (rounding behavior, invalid payment_type handling) are minor and do not impede a correct invocation.

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 description coverage is 0%, so the description must carry parameter meaning, and it does for all five: lump_sum is 'the gross lump sum in NZD', payment_type gets its permitted values enumerated (redundancy, retirement, bonus, commission, holiday_pay, exit_inducement, back_pay — the schema has no enum), and kiwisaver_rate is flagged as 'A DECIMAL' with the forced-zero caveat. has_student_loan is tied to the 12% deduction, which the bare schema title does not convey.

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 first sentence names a specific resource and method — 'Tax on a New Zealand redundancy or lump sum, by IRD's rate table' — and the use-for query examples ('how much tax on my redundancy', 'tax on a retirement payment') pin down the intended cases. It further distinguishes itself from nz_bonus_tax_calculator by explaining the two different methods, so an agent can select the right sibling without opening either schema.

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?

Usage context is explicit: the use-for query patterns tell the agent when this tool applies, and the sibling contrast is unambiguous — 'nz_bonus_tax_calculator computes the same tax the exact way instead, which is roughly where the year-end assessment lands. Both are right; they give different answers. Use this one to check a letter or a payslip.' The 'ALWAYS ask for the annual salary' directive further tells the agent what input to elicit before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_mortgage_calculatorAInspect

Calculate NZ mortgage repayments and lifetime interest totals.

Uses the standard amortising-loan PMT formula with monthly compounding.
Returns monthly, fortnightly, and weekly repayment figures, total
repayments over the life of the loan, total interest paid, and the
principal/interest share as percentages.

Use for ANY mortgage or home loan question: repayment amounts,
affordability checks, comparing loan terms, estimating total interest,
or evaluating refinance scenarios.

For NZ context: typical NZ mortgage terms are 20-30 years, and rates
quoted are annual nominal rates compounded monthly. Most NZ borrowers
pay weekly or fortnightly even though rates are quoted monthly.

Args:
    loan_amount: Principal borrowed in NZD (e.g. 650000).
    annual_interest_rate_pct: Annual rate as a PERCENTAGE not decimal
        (e.g. 6.5 for 6.5%, NOT 0.065).
    term_years: Loan term in whole years (typical NZ: 25 or 30).
ParametersJSON Schema
NameRequiredDescriptionDefault
term_yearsYes
loan_amountYes
annual_interest_rate_pctYes

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers: it discloses the exact formula ('standard amortising-loan PMT formula with monthly compounding'), the complete return inventory (monthly/fortnightly/weekly figures, total repayments, total interest, principal/interest shares), and NZ-specific compounding and payment conventions. No contradictions with annotations (none provided).

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?

Well-structured and front-loaded: the core purpose leads, the Args section is clearly labeled, and the NZ context paragraph earns its place by explaining why weekly/fortnightly payments matter despite monthly compounding. Slightly redundant — the scenario list in paragraph two partially restates the opening purpose — but there is no wasted content.

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?

With no output schema and no annotations, the description supplies everything needed in one place: parameter semantics, return values, the underlying formula, and domain conventions. An agent can select and invoke this tool correctly without consulting anything else, and the NZ-specific notes make it safe against common misassumptions about rate and term conventions.

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 description coverage is 0%, and the description fully compensates: each of the three parameters is documented with units (NZD), format (annual rate as a percentage not decimal, with explicit warning 'NOT 0.065'), and typical values ('whole years', '25 or 30'). The percentage-vs-decimal distinction is exactly the kind of semantic trap that prevents invocation errors.

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?

States a specific verb and resource — 'Calculate NZ mortgage repayments and lifetime interest totals' — and further scopes to 'ANY mortgage or home loan question.' This clearly distinguishes it from sibling calculators like nz_vehicle_loan_calculator or bmi_calculator by tool name and stated domain.

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

Usage Guidelines4/5

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

Explicitly opens with 'Use for ANY mortgage or home loan question' and lists concrete scenarios (repayment amounts, affordability checks, comparing loan terms, refinance). It does not, however, name excluded cases or point to alternatives such as nz_vehicle_loan_calculator when the loan is not a mortgage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_ncea_rank_score_calculatorAInspect

Turn NCEA credits into a University Entrance rank score and a GPA.

Use for: 'convert my NCEA to GPA', 'what is my rank score', 'what rank
score do I need for medicine', 'how many credits do I need for university',
'NCEA to 4.0 GPA'.

ANSWER WITH THE RANK SCORE EVEN WHEN THEY ASKED FOR A GPA. NZQA issues no
GPA, so the 4-point figure is an unofficial convention and must be labelled
as one. The University Entrance rank score is the number every New Zealand
university actually uses to select for limited-entry programmes like
medicine, law and engineering, and almost nobody asks for it by name.

THE MOST USEFUL THING YOU CAN TELL THEM IS IN credits_ignored. The rank
score uses the BEST 80 credits at Level 3 or above, counted Excellence
first. A student with 80 Excellence and 40 Achieved scores exactly the same
as one with 80 Excellence alone. So collecting more Achieved credits is
worth nothing once they have 80, while lifting one existing subject from
Achieved to Merit is worth 80 points. next_step says which case they are
in; lead with it.

Not Achieved credits earn nothing towards the rank score but do pull the
indicative GPA down, which is why the two numbers can move apart.

Args:
    excellence_credits: Level 3 or above credits at Excellence.
    merit_credits: Level 3 or above credits at Merit.
    achieved_credits: Level 3 or above credits Achieved.
    not_achieved_credits: Credits attempted and not achieved.

Returns:
    The rank score out of 320 with its working shown, how many credits
    counted and how many were ignored, an unofficial 4-point GPA, and what
    would actually raise the score for this student.
ParametersJSON Schema
NameRequiredDescriptionDefault
merit_creditsNo
achieved_creditsNo
excellence_creditsNo
not_achieved_creditsNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses the calculator's behavior: it explains the best-80-credits rule, how credits_ignored works, why the GPA and rank score can diverge, and that the GPA is an unofficial convention. This is substantial behavioral context beyond what the schema or annotations could provide.

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 section earns its place: purpose, user-intent examples, operational guidance, algorithm note, args, and returns. The critical instruction to lead with next_step is front-and-center, and the structure is easy to scan.

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?

Despite no annotations and no output schema, the description explains what the tool returns, how the calculation works, which edge cases matter, and what the agent should tell the student first. This is a complete briefing for correct selection and invocation.

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 description coverage is 0%, but the description defines all four parameters in the Args section with meaningful distinctions: Level 3 or above credits at Excellence, Merit, Achieved, and attempted-but-not-achieved credits. This fully compensates for the schema's lack of descriptions.

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 names a specific verb and resource: turning NCEA credits into a University Entrance rank score and an unofficial GPA. It also provides concrete user-phrase triggers and explicitly clarifies that the rank score is the primary output, which sets it apart from sibling calculators like nz_gpa_calculator.

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

Usage Guidelines4/5

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

The description gives a clear 'Use for' list with actual user queries and instructs the agent to always answer with the rank score, even when a GPA is requested. It does not explicitly name alternative tools or state when not to use this calculator, but the intent and selection context are strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_net_to_gross_calculatorAInspect

Work out the GROSS New Zealand salary needed to take home a given amount.

Use for: 'what salary do I need to take home $1,200 a week', 'I want $70,000
in the hand, what do I ask for', 'what gross salary gives me $5,000 a month
after tax', negotiating a package to a net figure.

This cannot be done by scaling. Tax is progressive and the ACC levy is
capped, so the gap between gross and net widens as income rises: doubling
the take-home needs more than double the gross.

ALWAYS tell the person which deductions were counted. By default the target
is treated as after income tax and the ACC earner levy only, which is what
the website assumes. If they contribute to KiwiSaver or repay a student
loan, pass those, because the gross needed goes up materially.

Args:
    target_net: The take-home wanted, in the period given.
    period: annual, monthly, fortnightly or weekly.
    kiwisaver_rate: A DECIMAL, 0.035 for 3.5%. Zero by default.
    has_student_loan: Whether repayments come out before the target.

Returns:
    The gross needed, the deductions between it and the target, and
    deductions_included naming exactly what was counted.
ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoannual
target_netYes
kiwisaver_rateNo
has_student_loanNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and meets it thoroughly: it discloses the non-linear relationship caused by progressive tax and the capped ACC levy, states the default deduction assumption (income tax + ACC earner levy only), flags that KiwiSaver/student loan materially change the result, and specifies the return contract including the deductions_included field.

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?

Longer than average but every block earns its place: purpose, real-world use cases, a critical behavioral caveat, a standing directive, parameter docs, and return contract. The structure is scannable with clear section labels, and the core purpose is front-loaded in the first sentence.

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 financial tool with no annotations, no output schema, and 0% schema coverage, the description covers everything an agent needs to select and invoke it correctly: purpose, when-to-use, calculation caveats, default assumptions, all parameter meanings, and the output contract. Nothing critical is missing.

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 0%, so all meaning must come from the description — and all four parameters get substantive explanations. The kiwisaver_rate entry is especially valuable, warning that it is a DECIMAL ('0.035 for 3.5%') to prevent the classic percent-vs-decimal error, and period lists its valid values since the schema defines no enums.

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 first sentence states a specific, directional operation: work out the GROSS salary needed for a given net amount. The 'Use for' examples with realistic queries ('what salary do I need to take home $1,200 a week') make the inverse nature unambiguous, and the framing clearly distinguishes it from forward calculators like nz_paye_calculator and nz_kiwisaver_calculator.

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

Usage Guidelines4/5

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

The 'Use for' block gives explicit, concrete when-to-use context with four realistic query types, and the progressive-tax paragraph warns against the common wrong approach of scaling. However, it never names an alternative tool or states a when-not-to-use condition — sibling differentiation is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_parental_leave_calculatorAInspect

New Zealand paid parental leave: the payment, and the shortfall.

Use for: 'how much is paid parental leave', 'can I afford to take parental
leave', 'am I eligible for parental leave', 'how much less will I earn on
parental leave'.

LEAD YOUR ANSWER WITH THE GAP, not the payment. The payment is capped, so
anyone earning over roughly $42,000 receives exactly the cap and already
knows that number. What they do not know is weekly_gap and total_gap, how
much less arrives and what it adds up to over the leave. That is the figure
the decision actually turns on.

Eligibility is a gate, not a reduction: 26 weeks of work in the year before
the due date, at 10 or more hours a week. Fail either and the payment is
zero. ineligible_reason names which test failed and by how much, so say
that rather than only "not eligible".

Args:
    annual_income: Gross annual income before tax, in NZD.
    employment_type: "employee" or "self_employed". Only the self-employed
        get the statutory weekly minimum.
    hours_per_week: Average hours a week.
    weeks_worked: Weeks worked in the 52 before the due date.
    weeks_of_leave: Weeks of the 26 week entitlement this parent takes.
    kiwisaver_opt_in: Contributions during leave are OPT IN. Worth raising
        unprompted: someone who does nothing contributes nothing for the
        whole period, employer share included.
    kiwisaver_rate: Employee rate as a decimal.

Returns:
    Weekly and total payment, the weekly and total gap against usual pay,
    eligibility with a reason, weeks left for a partner, and what opting
    into KiwiSaver is worth over the leave.

IRD administers this and its assessment is the one that counts. Does not
cover preterm baby payments, keeping in touch hours, or partner transfers.
ParametersJSON Schema
NameRequiredDescriptionDefault
weeks_workedNo
annual_incomeYes
hours_per_weekNo
kiwisaver_rateNo
weeks_of_leaveNo
employment_typeNoemployee
kiwisaver_opt_inNo

TDQS

A5/5.0
Behavior5/5

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

With no annotations, the description carries the full transparency burden and succeeds. It discloses the payment cap, the strategic emphasis on the gap rather than the payment, the eligibility gate with zero payment on failure, the ineligible_reason field, and the KiwiSaver opt-in nuance. It also notes IRD's authority, giving an agent important context about the tool's limits.

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 well-structured and every section earns its place: purpose, decision-critical guidance, eligibility, args, returns, and exclusions. It is front-loaded with the key instruction to lead with the gap, and formatting makes it easy to scan. No fluff or repetition exists.

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 7-parameter calculator with no output schema and no annotations, the description is remarkably complete. It covers all inputs, output components, eligibility rules, edge cases, and exclusions. An agent can select the tool, populate parameters correctly, and interpret results including ineligibility and KiwiSaver implications.

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 description coverage is 0%, but the Args section comprehensively documents all seven parameters with units, formats, and special rules. For example, annual_income is defined as gross pre-tax NZD, employment_type has explicit values, and kiwisaver_rate is identified as a decimal. This fully compensates for the empty schema descriptions.

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 precisely identifies the resource and function: New Zealand paid parental leave, including both the payment and the shortfall. It lists concrete user queries, making it immediately clear what the tool does. Its domain is distinct from all sibling calculators, such as annual leave, PAYE, or redundancy, so there is no ambiguity about which tool to invoke.

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?

The description provides explicit 'Use for' scenarios, covering common questions like 'how much is paid parental leave' and 'can I afford to take parental leave'. It also states clear exclusions (preterm baby payments, keeping in touch hours, partner transfers) and advises how to handle ineligibility. This gives strong when-to-use and when-not-to-use guidance, even without naming a specific alternative sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_paye_calculatorAInspect

Calculate New Zealand take-home pay (PAYE) for the 2026/27 tax year (from 1 April 2026).

Returns full breakdown: income tax, ACC earner's levy (1.75%, capped at $156,641),
KiwiSaver employee contribution, student loan repayment, Independent Earner Tax
Credit (IETC), and net take-home pay annual/fortnightly/weekly.

Use for ANY NZ tax question about: salary, take-home pay, net income,
PAYE, KiwiSaver impact, student loan deductions, or IETC eligibility.

DO NOT use for: self-employed/contractor income, secondary tax codes,
non-NZ residents, redundancy lump sums, or pre-April-2026 income.

Args:
    annual_income: Gross annual salary in NZD (0 to 10,000,000).
    kiwisaver_rate: Employee rate. Valid: 0, 0.03, 0.035, 0.04, 0.06, 0.08, 0.10.
        Default 0.035 (3.5% minimum from 1 April 2026).
    has_student_loan: True if repaying a NZ student loan.
    claim_ietc: True if eligible for Independent Earner Tax Credit (default True).
ParametersJSON Schema
NameRequiredDescriptionDefault
claim_ietcNo
annual_incomeYes
kiwisaver_rateNo
has_student_loanNo

TDQS

A4.7/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly discloses that this is a calculation tool producing a breakdown (income tax, ACC, KiwiSaver, student loan, IETC, net pay) and specifies the ACC capped amount and KiwiSaver minimum rate. It also implicitly signals mutability through parameter defaults. It does not disclose whether it is synchronous or handles edge cases like zero income, but the calculation scope is well covered.

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 well-structured with a clear summary, a breakdown of what is returned, usage guidance, exclusions, and parameter documentation. Every sentence earns its place. The use of 'DO NOT use for' is front-loaded and effective.

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?

Given there is no output schema, the description compensates by listing the full breakdown returned (income tax, ACC, KiwiSaver, student loan, IETC, net take-home pay annual/fortnightly/weekly). It covers the main decision-relevant context: tax year, exclusions, and parameter ranges. It is complete enough for an agent to select and invoke the tool 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?

Schema description coverage is 0%, so the description must compensate for the schema's bare property titles. It does: it explains annual_income (gross annual salary in NZD, 0 to 10,000,000), kiwisaver_rate (valid values and default), has_student_loan (repaying a NZ student loan), and claim_ietc (eligible for IETC). It adds meaning that the schema lacks, though it could have been even more explicit about the default behavior of claim_ietc since it defaults to true.

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 opens with a specific verb and resource: 'Calculate New Zealand take-home pay (PAYE) for the 2026/27 tax year'. It clearly distinguishes itself from sibling calculators like nz_net_to_gross_calculator, nz_secondary_tax_calculator, and nz_kiwisaver_calculator by scoping to PAYE take-home pay for the 2026/27 tax year and listing what it returns.

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?

The description explicitly states 'Use for ANY NZ tax question about: salary, take-home pay, net income, PAYE, KiwiSaver impact, student loan deductions, or IETC eligibility' and explicitly lists exclusions: 'DO NOT use for: self-employed/contractor income, secondary tax codes, non-NZ residents, redundancy lump sums, or pre-April-2026 income.' This gives an agent clear routing guidance relative to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_paye_due_dates_calculatorAInspect

Work out when a New Zealand employer must pay PAYE and file the pay run.

Use for: 'when is PAYE due', 'PAYE payment dates', 'payday filing deadline',
'employer tax due date NZ', 'do I pay PAYE twice a month', 'PAYE due date
falls on a weekend'.

PAYING AND FILING ARE DIFFERENT DEADLINES and missing either has its own
consequences. Answer both, and say which is which.

Payday filing is due within TWO WORKING DAYS of the payday itself. The
payment is due on the 20th of the following month for a monthly payer, or on
the 20th and the 5th for a twice-monthly payer.

WHICH PAYER YOU ARE IS DECIDED BY PAYE PLUS ESCT SENT TO INLAND REVENUE OVER
THE PRIOR TWELVE MONTHS, not by the size of the payroll and not by headcount.
The threshold is $500,000 of DEDUCTIONS. A business paying $2m in wages is
usually still a monthly payer, so never infer the payer type from turnover or
staff numbers; ask for the deductions figure.

Both dates shift off weekends and national public holidays including
Mondayised ones. Where a shift happened, payment_due_shifted_from and
payday_filing_due_shifted_from show what it moved from, so the answer can be
checked rather than taken on trust. Regional anniversary days do NOT move a
PAYE date and are deliberately excluded.

paper_filing_due comes back every time because paper filers work to a
different rule, ten days from the end of the month.

Holiday dates are held for 2026 and 2027 only. Outside those years this
returns an error rather than guessing, because a due date computed against
holidays nobody checked is worse than no answer.

Args:
    pay_date: The date employees are PAID, ISO format YYYY-MM-DD. The
        payday, not the end of the pay period.
    annual_paye_and_esct: PAYE plus ESCT over the prior 12 months.
    electronic_filer: Whether payday filing is electronic.

Returns:
    Payer type and why, the payment due date, the payday filing due date,
    what either was shifted from, and the paper filing deadline.
ParametersJSON Schema
NameRequiredDescriptionDefault
pay_dateYes
electronic_filerNo
annual_paye_and_esctNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries full behavioral disclosure and does so richly. It explains payment vs filing deadlines, payer-frequency rules, weekend/holiday shifting, exclusion of regional anniversary days, the paper-filing fallback, and the deliberate error return outside 2026-2027 rather than guessing.

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 densely informative, with clear sectioning, bolded key warnings, and no filler. Every sentence carries operational value for a complex calculation involving two deadlines, a payer classification rule, holiday shifts, and error behavior.

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?

Given no output schema and no annotations, the description is remarkably complete. It specifies what will be returned, what fields indicate shifted dates, which years are supported, when an error is returned instead of a guess, and which edge cases are intentionally excluded. An agent has enough context to invoke the tool and interpret the result 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 description coverage is 0%, so the description must compensate, and it does. Each of the three arguments is explained with meaningful semantics: pay_date is the actual payday, annual_paye_and_esct is the threshold-relevant deductions figure, and electronic_filer indicates filing mode. It also explains the critical payer-type threshold rule that gives the annual figure its purpose.

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 opens with a clear verb and resource: 'Work out when a New Zealand employer must pay PAYE and file the pay run.' It also gives example queries that distinguish this date calculator from siblings like nz_paye_calculator, which is about PAYE amounts rather than due dates.

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

Usage Guidelines4/5

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

The description provides explicit use-for queries and explains when the tool should be invoked. It clarifies that paying and filing deadlines are distinct and that payer type must not be inferred from turnover. However, it does not explicitly name sibling tools that should be used instead for non-date PAYE calculations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_pro_rata_salary_calculatorAInspect

Scale a full-time New Zealand salary to part-time hours, gross and net.

Use for: 'what would $90,000 be for 3 days a week', 'pro rata salary for 25
hours', 'I am dropping to four days, what will I earn', 'is part time worth
it after tax'.

THE USEFUL PART IS THE TAKE-HOME, NOT THE GROSS. The gross scales with the
hours; the take-home does not, because dropping hours drops the salary out
of the higher brackets. Someone going from five days to three often keeps
more than 60% of their take-home, and that is what the decision turns on.
Lead with it.

The Independent Earner Tax Credit defaults on, because part-time earnings
are the band where it is worth the most. Turn it off for someone on a main
benefit, Working for Families or NZ Super.

Args:
    full_time_salary: The advertised full-time annual salary.
    full_time_hours: Hours a week full time is based on, usually 40.
    your_hours: Hours a week actually worked.
    kiwisaver_rate: A DECIMAL, 0.035 for 3.5%.
    has_student_loan: Whether repayments are deducted.
    claim_ietc: Whether the Independent Earner Tax Credit applies.

Returns:
    The pro rata salary gross by year, month, fortnight and week, the
    implied hourly rate, and the take-home after tax.
ParametersJSON Schema
NameRequiredDescriptionDefault
claim_ietcNo
your_hoursNo
kiwisaver_rateNo
full_time_hoursNo
full_time_salaryYes
has_student_loanNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it steps up meaningfully: it discloses the non-obvious behavior that gross scales linearly while take-home does not, and explains why the Independent Earner Tax Credit defaults on. It also flags the kiwisaver decimal gotcha. The main gaps are the absence of a tax-year basis or estimate caveat and no detail on how the student loan deduction is applied.

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 front-loaded with purpose, then usage examples, then a highlighted behavioral insight, so structure guides the agent well. It is slightly longer than strictly needed — the Returns section partly restates 'gross and net' from the opening line, and the use-case list is a bit redundant — but every section does earn its place for a 6-parameter tool.

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 6-param calculator with no output schema and no annotations, the description documents all inputs and the full output shape: gross by year, month, fortnight and week, implied hourly rate, and take-home after tax. The only notable absences are an explicit tax-year basis and an estimate disclaimer, but nothing an agent needs to select and invoke the tool correctly is missing.

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 0%, and the description fully compensates by documenting all six arguments with real semantics. The most valuable entry is 'kiwisaver_rate: A DECIMAL, 0.035 for 3.5%' — exactly the unit trap the schema's plain 'number' type cannot convey. Prose statements such as IETC defaulting on also match the schema defaults, reinforcing correct invocation.

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 opening line states a specific verb and resource: 'Scale a full-time New Zealand salary to part-time hours, gross and net.' The 'Use for' examples with concrete user phrasings like 'what would $90,000 be for 3 days a week' make the tool's job unmistakable. The pro-rata/part-time focus clearly differentiates it from sibling tax and salary calculators such as nz_paye_calculator and nz_net_to_gross_calculator.

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

Usage Guidelines4/5

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

Three concrete use-case phrasings tell an agent exactly which user queries should route here, which is strong context. It also gives explicit conditional advice for the IETC parameter: 'Turn it off for someone on a main benefit, Working for Families or NZ Super.' However, it never names sibling alternatives or says when not to use this tool versus a full-time PAYE or net-to-gross calculator, so it stops short of the top tier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_redundancy_entitlement_calculatorAInspect

Work out what is actually owed when a New Zealand role is made redundant.

Use for: 'what redundancy am I entitled to', 'redundancy pay NZ', 'made
redundant what do I get', 'is redundancy pay compulsory in New Zealand'.

START WITH THIS, BECAUSE IT IS THE MOST COMMON ERROR IN GENERAL ADVICE:
NEW ZEALAND HAS NO STATUTORY REDUNDANCY PAY. None. An employee is entitled
to redundancy compensation ONLY if their employment agreement provides for
it. This is the opposite of the UK and Australian position, and answers
written from overseas sources get it wrong. The default clause here is
"none" for that reason, and statutory_position says it in words.

What IS owed by law is the mandatory side: wages worked and unpaid, annual
leave not taken, alternative holidays not taken, and the notice period.

TWO TOTALS COME BACK AND THEY ANSWER DIFFERENT QUESTIONS.
  total_all_in   everything the person receives. The SAME figure whether
                 notice is worked or paid in lieu. Quote this when someone
                 asks what they will get.
  total_package  the final pay only. Quote this when they are asking about
                 the payslip.
They differ because notice worked arrives as ordinary salary over those
weeks rather than as a lump sum. Quoting only the final pay makes payment
in lieu look better off by a whole notice period, which it is not.

Every figure is GROSS. Redundancy compensation is an extra pay taxed at the
lump sum rate, so use nz_lump_sum_tax_calculator for the tax on it.

If they do not know whether they have a clause, tell them to check the
employment agreement, and any collective agreement or company policy it
refers to, before concluding they are owed nothing.

Args:
    annual_salary: Gross annual salary.
    years_of_service: Completed years. Part years are not counted.
    notice_weeks: Notice period in weeks.
    notice_worked: True if worked, False if paid in lieu.
    annual_leave_days: Days accrued and not taken.
    alternative_holiday_days: Days in lieu not taken.
    redundancy_clause: 'none', '2_weeks', '3_weeks', '4_weeks', 'fixed_4',
        'fixed_8', 'fixed_13' or 'custom'.
    custom_redundancy_amount: Used only with 'custom'.
    outstanding_wages: Wages worked and not yet paid.

Returns:
    Mandatory entitlements and contractual compensation kept apart, the
    final pay, and the all-in total.
ParametersJSON Schema
NameRequiredDescriptionDefault
notice_weeksNo
annual_salaryYes
notice_workedNo
years_of_serviceNo
annual_leave_daysNo
outstanding_wagesNo
redundancy_clauseNonone
alternative_holiday_daysNo
custom_redundancy_amountNo

TDQS

A5/5.0
Behavior5/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure — and it delivers. It reveals the critical default behavior ('The default clause here is "none"'), explains that all figures are gross, and clarifies a non-obvious behavioral nuance: total_all_in and total_package differ because notice worked arrives as ordinary salary. It even exposes the tool's deliberate stance against a common jurisdiction error, giving the agent meaningful context about how outputs are computed.

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 section earns its place: the legal warning is front-loaded in caps, the two-total distinction is formatted as a scannable list, the tax pointer is one line, and the Args list is compact. Given the 9-parameter complexity and the legal nuance, this length is appropriate rather than bloated. Strong structure with headers and bolded key terms.

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?

Despite having no output schema, the description summarizes what is returned ('Mandatory entitlements and contractual compensation kept apart, the final pay, and the all-in total') and defines the two headline outputs. It covers prerequisites (checking the employment agreement), edge cases (custom clause), and cross-tool handoffs. For a 9-parameter, legally sensitive calculator, nothing material is missing.

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 description coverage is 0% — the schema only has titles and defaults, no property descriptions. The description fully compensates with an Args section that defines each parameter, adds the rule 'Completed years. Part years are not counted' for years_of_service, enumerates all redundancy_clause options, and clarifies that custom_redundancy_amount is used only with 'custom'. This is far more than the schema provides.

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 opens with a specific verb and resource: 'Work out what is actually owed when a New Zealand role is made redundant.' It clearly differentiates from siblings like nz_final_pay_calculator and nz_lump_sum_tax_calculator by explaining the two totals (total_all_in vs total_package) and explicitly routing tax calculations elsewhere. An agent can immediately identify what this tool does and what it does not do.

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?

The description provides explicit use cases ('Use for: what redundancy am I entitled to, redundancy pay NZ') and gives a strong when-to-use directive: 'START WITH THIS' for the most common error in general advice. It also tells agents when to quote each total, when to check the employment agreement first, and when to delegate tax computation to nz_lump_sum_tax_calculator. Alternatives and exclusions are handled explicitly, not left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_road_user_charges_calculatorAInspect

Work out New Zealand road user charges for an EV, diesel or plug-in hybrid.

Use for: 'how much RUC will I pay', 'what does RUC cost for an EV', 'is a
diesel cheaper than petrol once you count RUC', 'do hybrids pay RUC',
'how much are road user charges a year'.

GET THE VEHICLE TYPE RIGHT, because it changes the rate:
  ev            $76 per 1,000 km
  diesel        $76
  phev_petrol   $38, roughly half, because petrol excise is already paid
  phev_diesel   $76, the FULL rate, since diesel carries no excise
  hybrid_petrol no RUC at all

An ordinary petrol hybrid paying nothing is not an exemption: it pays
through fuel excise at the pump. Say that rather than implying it escapes.

MENTION THE TRANSACTION FEES. RUC is bought in prepaid blocks and every
purchase carries a fee, so 20,000 km in 1,000 km blocks pays it twenty
times. Buying bigger blocks is the main saving available, and it is
invisible if you only multiply distance by rate.

petrol_equivalent_excise answers the question underneath most of these:
whether the RUC vehicle is really paying more than a petrol one.

Light vehicles 3,500 kg and under. Heavy vehicle rates differ and are not
covered.

Args:
    annual_km: Distance driven in a year.
    vehicle_type: ev, diesel, phev_petrol, phev_diesel or hybrid_petrol.
    block_size_km: Size of each RUC purchase.
    purchase_method: online or agent.
    fuel_efficiency_l_per_100km: For the petrol comparison only.

Returns:
    The rate, the charge, the transaction count and fees, the total, cents
    per kilometre, and the equivalent petrol excise.
ParametersJSON Schema
NameRequiredDescriptionDefault
annual_kmYes
vehicle_typeNodiesel
block_size_kmNo
purchase_methodNoonline
fuel_efficiency_l_per_100kmNo

TDQS

A4.6/5.0
Behavior5/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 thoroughly: it discloses fee dependency on block size and purchase method, vehicle-type rate differences, the petrol-hybrid excise distinction, and the heavy-vehicle limitation. It also states what the return includes, which is essential because there is no output 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 long but well-structured: purpose, use cases, rate table, fee warning, scope, args, and returns. It is front-loaded and most blocks earn their place. The sentence beginning 'Work out' appears truncated and the all-caps instructional phrases add some noise, so it is not maximally concise.

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?

Given 5 params, 0% schema coverage, no annotations, and no output schema, this is complete: it covers rates, fees, vehicle-type semantics, exceptions, excluded heavy vehicles, and the return contract. An agent has enough to call it correctly and frame the answer properly.

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 description coverage is 0%, but the Args section compensates by explaining each parameter beyond its name: annual_km is Distance driven in a year, vehicle_type lists all values, purchase_method is online or agent, and fuel_efficiency is explicitly 'For the petrol comparison only.' It could add constraints such as positive distances or fee amounts, but the core meaning is present.

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?

Opens with a specific verb and resource: 'Work out New Zealand road user charges for an EV, diesel or plug-in hybrid.' It enumerates exact vehicle types and rates, so an agent can distinguish it from sibling calculators like nz_fuel_cost_calculator and from generic calculators.

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

Usage Guidelines4/5

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

Provides a 'Use for:' list with common user phrasings such as 'how much RUC will I pay' and 'do hybrids pay RUC', and explicitly excludes heavy vehicles. It doesn't name sibling alternates such as nz_fuel_cost_calculator for when-not-to-use, but the use cases and scope make the routning decision clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_schedular_payment_calculatorAInspect

Work out the withholding tax on a New Zealand schedular payment to a contractor, and what the contractor is actually left with.

Use for: 'withholding tax on contractor payment', 'schedular payment tax
rate', 'IR330C rate', 'director fee tax NZ', 'what tax do I deduct from a
contractor', 'no IR330C what rate'.

TWO RULES CAUSE MOST OF THE TROUBLE.

WITHHOLDING TAX IS CHARGED ON THE PAYMENT EXCLUDING GST. A GST registered
contractor invoicing $1,000 plus GST bills $1,150, and the withholding is
charged on the $1,000. Charging it on the GST-inclusive figure over-deducts
by 15% of the tax every single time, and it is a common payroll error.

THE RATE DEPENDS ON THE ACTIVITY, NOT ON THE CONTRACTOR. Schedule 4 sets a
standard rate per listed activity. A contractor may elect anything between
10% and 40% on an IR330C. WITHOUT THAT FORM THE PAYER MUST DEDUCT AT 45%,
the no-notification rate, which is punitive by design and catches people who
simply never sent the paperwork back. If someone is being deducted 45%, the
fix is usually a form, not an argument.

THE DEDUCTION IS NOT A FINAL TAX. It is a credit against the contractor's
income tax for the year, so a contractor with deductible expenses usually
gets some back and one with a large profit usually owes more.
year_end_credit is the figure that goes in the return. Do not describe the
deduction as "the tax they paid on that job".

Args:
    payment_excluding_gst: The fee BEFORE GST.
    activity: Schedule 4 activity, which sets the standard rate.
    rate_option: standard, nominated (an IR330C election), or no_form.
    nominated_rate_pct: The elected rate, 10 to 40. Required for nominated.
    gst_registered: Whether the contractor is GST registered.

Returns:
    The invoice, the rate and why it applies, the tax deducted, the net to
    the contractor, and the credit claimable at year end.
ParametersJSON Schema
NameRequiredDescriptionDefault
activityNostandard_default
rate_optionNostandard
gst_registeredNo
nominated_rate_pctNo
payment_excluding_gstYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden, and it delivers: it discloses the GST-exclusive base rule, the activity-based vs. nominated vs. no-form rate logic, the punitive 45% no-notification rate, and the fact that withholding is a credit, not a final tax. It even warns against mislabeling the deduction.

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?

Though lengthy, every sentence carries critical tax logic that affects calculation results and agent behavior. The use cases are front-loaded, the 'TWO RULES' structure makes key pitfalls memorable, and the parameter definitions are compact. No filler exists.

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?

This is a complex calculator with no output schema, yet the description fully covers inputs, rate-determination behavior, a common error, and the return values (invoice, rate and why, tax deducted, net pay, year-end credit). It even clarifies how to describe the result, making the tool complete for correct invocation.

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 description coverage is 0%, so the description must compensate, and it does thoroughly. Each parameter is explained with operational meaning: payment_excluding_gst is explicitly 'fee BEFORE GST', rate_option gets its three enum semantics, nominated_rate_pct gets its range and requirement, and gst_registered gets its effect. This goes far beyond the schema's bare titles.

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 uses a specific verb phrase ('Work out the withholding tax... and what the contractor is actually left with') tied to a distinct NZ tax concept (schedular payment). It clearly distinguishes from sibling calculators like nz_paye_calculator or nz_gst_calculator by naming the exact tax domain and target user.

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

Usage Guidelines4/5

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

The 'Use for' block gives explicit search phrases and an unambiguous context: when calculating withholding tax on contractor payments. It does not explicitly state when NOT to use this tool or name alternatives (e.g., nz_paye_calculator for employees), so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_secondary_tax_calculatorAInspect

Find the right New Zealand secondary tax code and what it costs.

Use for: 'what tax code for my second job', 'is secondary tax a rip off',
'why am I taxed so much on my second job', 'what is SH SL', 'do I get that
money back', filling in an IR330.

CORRECT THE MISCONCEPTION. A secondary code is not a penalty. It
approximates the marginal rate the second income attracts on top of the
first, so roughly the right amount comes out through the year, and any
excess comes back in the year-end square-up. year_end_position says which
way it falls for this person, and a refund is common and normal.

The rates look brutal because they are not income tax rates: each carries
the 1.75% ACC earner levy, and the SL codes add 12% student loan on top. So
31.75% is 30 plus 1.75, not a 31.75% tax rate. The response breaks the rate
into its components; use them when explaining.

ALWAYS ask for the main job income. The code depends on the two incomes
combined, so an answer without it is a guess.

Args:
    main_income: Gross annual income from the main job.
    secondary_amount: The second income, in the frequency given.
    secondary_frequency: annual, monthly, fortnightly or weekly.
    has_student_loan: Changes the code to its SL variant.

Returns:
    The IR330 code, the flat rate broken into its parts, what is deducted
    and what is left, and the estimated year-end bill or refund from these
    two sources.
ParametersJSON Schema
NameRequiredDescriptionDefault
main_incomeYes
has_student_loanNo
secondary_amountYes
secondary_frequencyNoannual

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden, and it compensates by correcting the misconception that secondary tax is a penalty and explaining that rates include ACC and student loan components. It also tells the agent how to interpret and explain the output, which is behavioral context beyond the 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 longer than average, but the extra length earns its place by addressing a widespread misconception and giving agent-facing explanation guidance. The structure is clear: use cases, conceptual correction, parameter list, and return summary.

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?

With no annotations and no output schema, the description covers the key invocation context: when to use, what to ask for, what each parameter means, and what the response contains. It is not exhaustive, such as lacking an explicit when-not-to-use, but it is sufficient for an agent to select and call the tool 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?

Schema description coverage is 0%, but the Args section supplies meaningful descriptions for all four parameters, including the frequency options and student loan effect. It lacks input validations such as positivity or currency, but enough semantics are provided for correct invocation.

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?

States a specific verb and resource: finding the right New Zealand secondary tax code and what it costs. The 'Use for' examples with concrete user questions make the tool's scope unambiguous and distinguish it from generic tax calculators among siblings.

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

Usage Guidelines4/5

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

Provides explicit trigger phrases for when to use it and instructs the agent to always ask for main job income, since the code depends on both incomes. It does not explicitly list exclusions or alternatives, but the use cases and prerequisites give clear directional guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_sick_leave_calculatorAInspect

Work out a New Zealand sick leave entitlement and the balance left.

Use for: 'how much sick leave do I get NZ', 'sick leave entitlement', 'when
do I get sick leave', 'can I carry over sick leave', 'sick leave balance',
'ten days sick leave'.

THREE RULES, AND TWO OF THEM ARE CAPS PEOPLE FORGET UNTIL THEY COLLIDE.

ENTITLEMENT STARTS AFTER SIX MONTHS of continuous employment, then ten days
on each anniversary. Nothing accrues day by day before that, so an employee
at five months has no statutory entitlement at all. This surprises people who
assume leave builds up from day one the way annual leave does.

CARRY-OVER IS CAPPED AT TEN DAYS. An employee who took none last year carries
ten, not everything they were owed.

THE TOTAL IS CAPPED AT TWENTY DAYS. Ten current plus ten carried is the
statutory maximum.

capped_by_carry_over_limit and capped_by_total_limit say which cap, if
either, bound the answer, because "why is my balance not what I counted" is
almost always one of those two.

Give daily_pay to value the balance. Relevant daily pay is what the employee
would have earned on the day taken, which is not necessarily salary divided
by 260, so treat the valuation as indicative.

This is the statutory minimum under the Holidays Act 2003. An employment
agreement may be more generous, and extra_contractual_days is where that
goes.

Args:
    start_date: Employment start date, ISO format YYYY-MM-DD.
    as_at: Date to calculate at, ISO format. Defaults to today.
    days_taken: Days taken in the current entitlement year.
    carry_over_days: Unused days offered from last year, before the cap.
    extra_contractual_days: Days above the statutory ten in the agreement.
    daily_pay: Relevant daily pay, to value the balance. Optional.

Returns:
    Months employed, whether entitled yet, the entitlement, carry-over
    before and after the cap, days taken, the balance and which caps bound it.
ParametersJSON Schema
NameRequiredDescriptionDefault
as_atNo
daily_payNo
days_takenNo
start_dateYes
carry_over_daysNo
extra_contractual_daysNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and discharges it exceptionally. It discloses the six-month vesting period, the fact that nothing accrues day by day before that, the ten-day carry-over cap, the twenty-day total cap, and the meaning of capped_by_carry_over_limit / capped_by_total_limit in the output. It also explains that daily_pay valuation is indicative because relevant daily pay is not necessarily salary/260, and that the calculation is the statutory minimum under the Holidays Act 2003 which more generous agreements can exceed.

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 structure is logical and front-loaded: purpose, use cases, critical rules, output hints, then args. The all-caps rule announcement is memorable and the procedural explanation of the caps earns its space. It is long, and phrasings like 'This surprises people who assume leave builds up from day one' and 'because "why is my balance not what I counted" is almost always one of those two' are flavorful but not strictly necessary — minor trimming would tighten it without losing information.

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?

Given high complexity — six parameters, 0% schema coverage, no annotations, and no output schema — the description is remarkably complete. It covers the statutory rules, the two caps and the flags that report them, the valuation caveat, the contractual-days escape hatch, and a Returns summary listing all output components. The 'Returns:' paragraph is brief, but with no output schema the description still names the key result fields and their semantics.

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 description coverage is 0%, so the description must document all six parameters itself, and it does. Each arg gets a plain-language definition that adds meaning beyond type and title: start_date gets an ISO format requirement, as_at gets its default behavior ('Defaults to today'), carry_over_days is clarified as 'before the cap', and extra_contractual_days is tied back to the statutory-minimum explanation in the prose. daily_pay's optionality and purpose are both stated.

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 opening sentence, 'Work out a New Zealand sick leave entitlement and the balance left,' is a specific verb+resource statement that immediately establishes scope. The 'Use for:' query list ('how much sick leave do I get NZ', 'sick leave entitlement', 'can I carry over sick leave') further pins down intent and distinguishes it from calculators like nz_annual_leave_calculator or nz_parental_leave_calculator.

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

Usage Guidelines4/5

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

The 'Use for:' block provides six explicit query patterns that should route the agent to this tool, which is clear context. However, the description never names alternatives or gives exclusions — e.g., it doesn't say to use nz_annual_leave_calculator for annual leave or to use the ACC calculator for work-injury income. Clear context, but no explicit when-not or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_tax_code_calculatorAInspect

Pick the correct New Zealand tax code for an IR330, and explain why.

Use for: 'what tax code should I use', 'M or ME tax code', 'secondary tax
code NZ', 'SB S SH ST SA which one', 'tax code for second job', 'am I on the
wrong tax code'.

THE WRONG CODE IS ONE OF THE FEW PAYROLL MISTAKES THAT COSTS MONEY QUIETLY
ALL YEAR, and there are two ways to get it wrong.

A SECONDARY CODE IS CHOSEN ON TOTAL INCOME ACROSS ALL JOBS, NOT ON WHAT THE
SECOND JOB PAYS. Someone earning $60,000 in a main job and $8,000 in a second
is SH, not SB. Choosing on the smaller figure under-taxes and produces a bill
at year end. ALWAYS ASK FOR TOTAL INCOME before answering a secondary code
question. If total_income_all_jobs is omitted this falls back to this job's
income and returns a warning saying the band is very likely wrong; pass that
warning on rather than reporting the code as settled.

ME IS NOT SIMPLY "M PLUS A CREDIT". The Independent Earner Tax Credit, worth
up to $520 a year, is withdrawn by receiving Working for Families, a main
benefit or NZ Super, so someone inside the $24,000 to $70,000 band can still
correctly be an M.

Add SL when a student loan is being repaid. On a SECONDARY job the repayment
is 12% of the gross with no threshold at all, because the repayment threshold
belongs to the main job. That catches people who expect the threshold twice.

Special tax codes, non-resident status and multiple secondary jobs are out of
scope here; those need Inland Revenue.

Args:
    annual_income: Income from THIS job, before tax.
    job_type: primary for the main job, secondary for any other.
    total_income_all_jobs: Total across every job. Needed for secondary.
    has_student_loan: Whether a student loan is being repaid.
    receives_wff_benefit_or_super: Working for Families, a main benefit or
        NZ Super. Any of these removes IETC eligibility.

Returns:
    The code, what it means, why it applies rather than the alternative, the
    flat rate for a secondary code, and any warning about the inputs.
ParametersJSON Schema
NameRequiredDescriptionDefault
job_typeNoprimary
annual_incomeYes
has_student_loanNo
total_income_all_jobsNo
receives_wff_benefit_or_superNo

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations present, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It explains fallback behavior when total_income_all_jobs is omitted, the warning it returns, why ME is not simply 'M plus a credit,' and the student-loan repayment rule on secondary jobs. These are non-obvious behaviors an agent must know to use the tool correctly.

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 long, but the content is dense and almost all of it earns its place given the genuine complexity of NZ tax codes. It is structured with 'Use for,' key warnings, Args, and Returns sections, and the most important usage guidance is front-loaded. A slight deduction is warranted for ALL-CAPS prose and some motivational framing that goes beyond strictly necessary operational guidance.

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?

Despite having no output schema, the Returns section explicitly lists what the caller will receive: the code, its meaning, why it applies over alternatives, the flat rate for secondary codes, and input warnings. Combined with out-of-scope boundaries and per-parameter guidance, the description is complete enough for an agent to invoke the tool and interpret its result 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 description coverage is 0%, but the Args section fully compensates by explaining every parameter beyond its schema type. It clarifies annual_income as 'Income from THIS job, before tax,' total_income_all_jobs as 'Total across every job. Needed for secondary,' and receives_wff_benefit_or_super as removing IETC eligibility. This is precisely the domain context the input schema cannot convey.

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 opening sentence states a specific action and resource: 'Pick the correct New Zealand tax code for an IR330, and explain why.' The 'Use for' examples further clarify the exact user intents it serves, making it easy for an agent to distinguish this from the many other NZ calculator tools.

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?

The description gives explicit 'Use for' query patterns, tells the agent to always ask for total income, and clearly marks what is out of scope: 'Special tax codes, non-resident status and multiple secondary jobs are out of scope here; those need Inland Revenue.' This provides both when-to-use and when-not-to-use guidance with an alternative path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_tax_refund_calculatorAInspect

Estimate a New Zealand income tax refund, or tax owed, for a year.

Use this for ANY question about a NZ tax refund or an end of year tax bill.

Common use cases: 'am I owed a tax refund', 'I only worked part of the year,
do I get money back', 'I had a second job on an S code, was I overtaxed',
'how much tax should I have paid on 62k'.

A refund is what was deducted minus what was actually owed. PAYE comes out of
each pay as though that pay continued all year, so the two usual causes of a
refund are a part year and a second job on a flat secondary code. Both are
broken out in the result, and both are already inside refund_or_bill rather
than additional to it.

ASK FOR THE PAYE FIGURE if you can. paye_deducted from payslips or an IRD
summary gives a real answer; leaving it out estimates it from the tax code
and months worked, which is much rougher. Also ask whether that figure
includes ACC, because most payslips lump the earner levy in with PAYE and it
is not income tax.

Args:
    gross_income: Total gross income for the year, before tax, in NZD.
    tax_year: 2026-27, 2025-26, 2024-25 or 2023-24. 2024-25 is approximate
        because thresholds moved part way through it.
    paye_deducted: Total PAYE deducted for the year. None to estimate it.
    acc_included_in_paye: Whether ACC is inside that figure. Usually yes.
    tax_code: M, ME, MSL, or a secondary code. Only used when estimating.
    months_worked: Months actually worked. Often the whole reason for a refund.
    secondary_income: Income from a second job on a secondary code.
    secondary_tax_code: SB, S, SH or ST.
    donations: Donations to approved donee organisations.
    student_loan_deducted: Repayments deducted, or None for no loan.
    ietc_eligible: False for a main benefit, Working for Families or NZ Super.

Returns:
    refund_or_bill, POSITIVE for a refund owed to the person and NEGATIVE for
    tax they owe, with is_refund saying which. Also the correct tax, the
    IETC, ACC, and the part year and secondary components of the difference.
    The donations credit and student loan square up are returned but are NOT
    inside refund_or_bill, because IRD settles those separately.

Salary and wages only. IRD issues an automatic assessment for most people and
that figure is the one that counts.
ParametersJSON Schema
NameRequiredDescriptionDefault
tax_codeNoM
tax_yearNo2026-27
donationsNo
gross_incomeYes
ietc_eligibleNo
months_workedNo
paye_deductedNo
secondary_incomeNo
secondary_tax_codeNoS
acc_included_in_payeNo
student_loan_deductedNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations present, the description carries the full behavioral burden and does so thoroughly: it explains the refund logic, warns that omitting paye_deducted produces a rougher estimate, flags the ACC-in-PAYE issue, and documents that donations and student loan amounts are returned separately rather than included in refund_or_bill.

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 section earns its place: quick purpose, common use cases, calculation logic, the critical PAYE/ACC request, parameter explanations, and return semantics. Key information is front-loaded and the structured Args/Returns layout makes it easy to scan.

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?

Given 11 parameters, no output schema, and no annotations, the description is complete: it covers all parameters, return values and their sign convention, which components are included versus separate, approximation caveats, and the salary-and-wages scope.

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?

The schema has 0% description coverage, and the Args section compensates by adding meaning to all 11 parameters: why months_worked matters, when tax_code is only used, what 'None' means for paye_deducted, and which values are valid for tax_year and secondary_tax_code.

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 opening sentence names the exact verb and resource: 'Estimate a New Zealand income tax refund, or tax owed, for a year.' It clearly distinguishes this end-of-year reconciliation tool from sibling calculators through the refund/end-of-year tax bill framing and concrete use cases.

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

Usage Guidelines4/5

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

It explicitly says to use this for ANY question about a NZ tax refund or end-of-year tax bill and gives realistic common use cases, plus the exclusion 'Salary and wages only.' It does not name sibling alternatives for adjacent cases such as ongoing PAYE or bonus tax, so the guidance stops short of full when-not/alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_vehicle_loan_calculatorAInspect

Work out repayments on a New Zealand car loan, and what it really costs.

Use for: 'what would repayments be on a $35,000 car', 'car loan
calculator', 'is a 5 year car loan a bad idea', 'how much interest will I
pay on car finance'.

LEAD WITH interest_share_of_borrowing, NOT THE MONTHLY PAYMENT. Car finance
runs at rates a mortgage borrower would not recognise, so over five years
the interest often exceeds 30% of what was borrowed. That single figure
informs the decision more than the payment does, and it is the one nobody
is shown at the dealership.

The term is short, so stretching it barely moves the monthly payment and
moves the total interest a great deal. If they are considering a longer
term, run both and show the difference in total interest.

fortnightly_equivalent is the monthly payment converted, because that is
how most people are paid. It is NOT fortnightly amortisation, which would
clear the loan faster and is a different product. Say which you mean.

ALWAYS mention excludes before quoting a payment as what they will pay.
Establishment fees, PPSR registration, mechanical breakdown insurance and
dealer add-ons are usually financed too, so a real contract is higher. A
balloon payment cuts the monthly figure and leaves a lump sum at the end.

Args:
    vehicle_price: Price of the vehicle.
    deposit: Cash or trade-in up front.
    annual_interest_rate_pct: A PERCENTAGE, so 12.95 not 0.1295.
    term_years: Loan term in years.

Returns:
    Monthly, fortnightly and weekly figures, total repaid, total interest,
    and the interest as a share of the borrowing.
ParametersJSON Schema
NameRequiredDescriptionDefault
depositNo
term_yearsNo
vehicle_priceYes
annual_interest_rate_pctNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations at all, the description carries the full disclosure burden, and it over-delivers: it instructs the agent to lead with interest_share_of_borrowing over the monthly payment and explains why, warns that fortnighly_equivalent is a conversion NOT fortnighly amortisation, demands the excludes caveat before quoting payments, and explains how term-stretching distorts total interest. These are behavioral traits no annotation or schema could convey.

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?

Purpose is front-loaded, critical behavioral warnings are prioritized before the Args/Returns block, and every paragraph carries non-redundant operational guidance. Minor waste: the use-for list contains two near-synonymous examples ('$35,000 car' and 'car loan calculator'), and the ALL-CAPS emphasis style costs tokens without adding information. Long, but each section earns its place given zero annotations and zero schema coverage.

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 no annotations, no output schema, and 0% parameter coverage, this description is complete: it states purpose, routing phrasings, output emphasis, comparative-run behavior, fortnighly semantics, standard exclusions, balloon-payment behavior, every parameter's semantics, and the return figures. Nothing an agent needs to invoke it correctly or present its results responsibly is missing.

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 description coverage is 0%, so the description must compensate, and it does: annual_interest_rate_pct is disambiguated with 'A PERCENTAGE, so 12.95 not 0.1295' — precisely the format error agents make; deposit is expanded to 'Cash or trade-in up front'; term_years gets its unit made explicit. All four parameters receive meaning beyond the raw schema types and defaults.

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?

Opens with a specific verb+resource+'Work out repayments on a New Zealand car loan, and what it really costs' — and the 'what it really costs' extension differentiates it from a bare payment calculator. The use-for examples also pin the intended queries ('what would repayments be on a $35,000 car', 'how much interest will I pay on car finance'), which distinguishes it from sibling finance tools like nz_mortgage_calculator and nz_kiwisaver_calculator without opening their schemas.

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

Usage Guidelines4/5

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

Provides an explicit, quoted list of user phrasings that should route here ('car loan calculator', 'is a 5 year car loan a bad idea'), which is strong when-to-use guidance. However, it never names a sibling as the alternative or states when NOT to use it, so an agent facing ambiguous queries like 'loan repayments' has no exclusion signal. This matches 'clear context, no exclusions' exactly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_work_hours_calculatorAInspect

Add up a timesheet of work hours, and turn them into gross pay.

Use for: 'how many hours did I work this week', 'add up my shifts',
'what will I be paid for these hours', 'I worked 22:00 to 06:00, how long
is that'.

Handles overnight shifts: a finish time at or before the start is treated as
the next day, so 22:00 to 06:00 is eight hours rather than a negative.

Args:
    days: One dict per day worked, each with "start" and "finish" as "HH:MM"
        in 24 hour time, optional "break_minutes" of unpaid break, and an
        optional "label". Leave days off out of the list entirely.
    hourly_rate: Gross pay per hour. Zero returns hours only.

Returns:
    Hours for each day, the total, and GROSS pay weekly, fortnightly,
    monthly and annually. For take-home pay use nz_hourly_to_salary_calculator
    with the rate and the hours.

Does not apply overtime or penal rates, public holiday entitlements, or a
minimum wage check.
ParametersJSON Schema
NameRequiredDescriptionDefault
daysYes
hourly_rateNo

TDQS

A5/5.0
Behavior5/5

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

With no annotations to carry the burden, the description discloses the non-obvious overnight rule ('a finish time at or before the start is treated as the next day') with a worked example, and the zero-rate behavior. It also states upfront what the tool does NOT compute, which prevents the agent from overpromising results.

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 front-loaded with a one-sentence purpose, and every subsequent block earns its place: query examples, the critical overnight edge case, Args, Returns, and exclusions. Clear section headers make it skimmable with no 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?

This is a moderately complex tool — nested per-day objects, a tricky overnight rule, and multiple output figures — with no output schema and no annotations, yet the description covers inputs, edge-case behavior, and the full return breakdown (per-day hours, total, weekly/fortnightly/monthly/annual gross pay). Nothing an agent needs to call it correctly or set user expectations is missing.

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 description coverage is 0% and the schema only declares 'days' as an array with additionalProperties: true, so the Args section is the sole documentation. It fully compensates: per-day key formats ('start'/'finish' as HH:MM 24-hour), optional 'break_minutes' and 'label', the instruction to omit off days, and the semantic of a zero hourly_rate.

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?

Opens with a specific verb-plus-resource statement — 'Add up a timesheet of work hours, and turn them into gross pay' — and backs it with concrete user queries. Among the large sibling set of NZ calculators, it is clearly the timesheet-to-gross-pay tool, and the closing reference to nz_hourly_to_salary_calculator further draws the boundary.

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?

Provides an explicit 'Use for' block with four natural-language example queries an agent can match against. It names the alternative for take-home pay (nz_hourly_to_salary_calculator) with the condition that selects it, and the exclusions (overtime, penal rates, public holidays, minimum wage) signal when this tool will not satisfy the user's underlying request.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

nz_working_for_families_calculatorAInspect

Work out a New Zealand family's Working for Families entitlement.

Use for: 'how much Working for Families will I get', 'what is my family tax
credit', 'do I qualify for the in-work tax credit', 'how much Best Start
will I get', 'will I lose Working for Families if I earn more'.

CORRECT A COMMON AND EXPENSIVE MISTAKE. There is NO hours test for the
In-Work Tax Credit and has not been one since 1 July 2020. Anyone with some
income from paid work each week, who is not on an income-tested benefit or
student allowance, qualifies. Many sources, including our own website page,
still repeat the old 20 hours sole parent / 30 hours couple rule. A parent
working fifteen hours a week is entitled to $7,670 this year and is often
told they are not.

ASK FOR THE COMBINED FAMILY INCOME, not one partner's. Everything abates
against it, so an answer from one income is wrong.

ASK HOW MANY CHILDREN ARE UNDER 3, not under 1. Best Start runs to the
third birthday and is worth $4,041 a year per child.

The In-Work Tax Credit is temporarily $7,670 a year until 31 March 2027,
then reverts to $5,070, so an answer about next year differs from this one.
Say which you have given.

Args:
    children: Dependent children in the caregiver's care.
    family_income: Combined gross annual family income, all sources.
    children_under_3: How many are under 3, for Best Start.
    iwtc_eligible: Some paid work and no income-tested benefit.
    best_start_children_first_year_exempt: Under-3s in their first year
        born BEFORE 1 April 2026, which are exempt from the income test.
    iwtc_after_march_2027: Model the reverted $5,070 rate.

Returns:
    FTC, IWTC and Best Start with each abatement shown separately, the
    annual, weekly and fortnightly totals, an assumptions block naming
    every rate used, and what the calculation excludes.
ParametersJSON Schema
NameRequiredDescriptionDefault
childrenYes
family_incomeYes
iwtc_eligibleNo
children_under_3No
iwtc_after_march_2027No
best_start_children_first_year_exemptNo

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description fully carries the behavioral burden and does so impressively. It exposes the no-hours-test rule for IWTC, the need for combined family income, Best Start eligibility up to age 3, the temporary IWTC rate change in March 2027, and the requirement to state which year's answer is being given.

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?

Though long, every section earns its place: purpose, usage examples, critical corrections, parameter explanations, and return-value contract. The structure is logical and front-loaded with the core purpose and key warnings before the argument list.

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?

Despite having no output schema, the description's Returns section specifies exactly what the agent can expect: FTC, IWTC, Best Start with abatements, annual/weekly/fortnightly totals, assumptions, and exclusions. Combined with the detailed parameter semantics, an agent has enough context to call the tool correctly and interpret the result.

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 description coverage is 0%, so the description must compensate for all six parameters. It does: 'children', 'family_income' (combined gross annual), 'children_under_3' (for Best Start), 'iwtc_eligible' (paid work and no income-tested benefit), 'best_start_children_first_year_exempt' (born before 1 April 2026), and 'iwtc_after_march_2027' (reverted $5,070 rate). This adds essential meaning the schema lacks.

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 opens with a specific verb and resource: 'Work out a New Zealand family's Working for Families entitlement.' It goes further by naming sub-components (FTC, IWTC, Best Start) and example queries, which clearly distinguishes it from the many other NZ calculator siblings.

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

Usage Guidelines4/5

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

The description provides explicit 'Use for' example queries such as 'how much Working for Families will I get' and 'do I qualify for the in-work tax credit'. It does not explicitly mention when not to use it or name alternative tools, but the context is clear enough for an agent to route relevant queries here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updates
    • Addeddepreciation_calculator
    • Addednz_acc_weekly_compensation_calculator
    • Addednz_benefit_entitlement_calculator
    • Addednz_paye_due_dates_calculator
    • Addednz_schedular_payment_calculator
    • Addednz_sick_leave_calculator
    • Addednz_tax_code_calculator
  2. 29 tool updates
    • First observedbmi_calculator
    • First observedenergy_expenditure_calculator
    • First observedfind_calculator
    • First observednz_annual_leave_calculator
    • First observednz_bonus_tax_calculator
    • First observednz_contractor_vs_employee_calculator
    • First observednz_electricity_cost_calculator
    • First observednz_fbt_calculator
    • First observednz_final_pay_calculator
    • First observednz_fuel_cost_calculator
    • First observednz_gpa_calculator
    • First observednz_grocery_budget_calculator
    • First observednz_gst_calculator
    • First observednz_hourly_to_salary_calculator
    • First observednz_kiwisaver_calculator
    • First observednz_lump_sum_tax_calculator
    • First observednz_mortgage_calculator
    • First observednz_ncea_rank_score_calculator
    • First observednz_net_to_gross_calculator
    • First observednz_parental_leave_calculator
    • First observednz_paye_calculator
    • First observednz_pro_rata_salary_calculator
    • First observednz_redundancy_entitlement_calculator
    • First observednz_road_user_charges_calculator
    • First observednz_secondary_tax_calculator
    • First observednz_tax_refund_calculator
    • First observednz_vehicle_loan_calculator
    • First observednz_work_hours_calculator
    • First observednz_working_for_families_calculator

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Provides real tax calculations for US, Canada, Australia, and UK income, property, and dividend taxes using up-to-date local data with no API keys required.
    7
    45
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables Dutch income tax calculations: converts gross to net salary, net to gross, compares multiple salary scenarios, and provides tax bracket data for supported years. Every result includes a detailed breakdown and a thetax.nl permalink.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables basic math, investment analysis (ROI, average cost, portfolio value), and loan calculations (monthly payment, total cost, early payment savings) through natural language.
    -
  • A
    license
    B
    quality
    C
    maintenance
    39 tax tools for US individual taxpayers — federal/state tax calculations, credits, deductions, retirement strategies, audit risk, and tax planning. All calculations run locally, no data leaves the machine. Supports TY2024 and TY2025 (One Big Beautiful Bill Act).
    43
    454
    12
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes and the descriptions are unusually explicit about when to use them, including cross-references to avoid mis-selection. A few tax/employment pairs still have fuzzy boundaries—notably nz_tax_code_calculator vs nz_secondary_tax_calculator and nz_final_pay_calculator vs nz_redundancy_entitlement_calculator—but these are the exception rather than the rule.

Naming Consistency5/5

Every tool follows the same snake_case convention ending in _calculator, with a descriptive domain prefix and an nz_ prefix for jurisdiction-specific tools. The few generic tools (bmi_calculator, depreciation_calculator, find_calculator) are still consistent with the pattern, so there is no naming confusion.

Tool Count2/5

36 dedicated tools is well above the 25+ threshold for a single server, and while the NZ calculator domain is broad, many closely related tax/remuneration calculators could be consolidated. The find_calculator tool already provides a long-tail fallback, so this many dedicated tools feels heavier than necessary.

Completeness4/5

The set covers most major NZ calculation domains—PAYE, benefits, mortgages, KiwiSaver, leave, redundancy, fuel, electricity, education, and more—with strong lifecycle coverage for common user questions. Minor gaps such as sole-trader/self-employed income tax or some general-purpose maths/finance calculators are handled by find_calculator rather than a dedicated tool, so agents can still reach the needed page without a dead end.

Resources