Skip to main content
Glama

groTAX by Grovisor

groTAX: Small Business Relief, elected vs not

grotax_compare_sbr
Read-onlyIdempotent

Compute the same facts with and without Small Business Relief (revenue ≤ AED 3m, periods ending by 31 Dec 2029). Shows tax payable and what carries forward each way: in an SBR year a tax loss and disallowed interest are forfeited. Takes the same inputs as grotax_compute_ct (sbrElect is ignored).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ftcNoForeign tax credit, AED
mneNoMember of a multinational group (blocks SBR)
whtNoWithholding tax credit, AED
qfzpNoTreat as a Qualifying Free Zone Person (simplified: 0% on qualifying income)
finesNoFines and penalties (non-compensatory), AED
ebitdaNoTax-EBITDA, AED, for the 30% interest cap. Leave out to have it calculated from taxable income + net interest + depreciation
revenueNoRevenue for the tax period, AED (drives Small Business Relief and audit checks)
lossesBFNoTax losses brought forward, AED
sbrElectNoElect Small Business Relief if eligible
donationsNoDonations to non-qualifying bodies, AED
periodEndNoTax period end date, YYYY-MM-DD (default 2025-12-31)
interestBFNoNet interest disallowed in earlier periods and carried forward, AED (deducted within this period's cap)
netInterestNoNet interest expense, AED
depreciationNoDepreciation and amortisation, AED (used to calculate tax-EBITDA when ebitda is not given)
entertainmentNoTotal client entertainment expense, AED (50% is added back)
naturalPersonNoThe business is owned by an individual (sole establishment or civil company of a natural person)
otherAddBacksNoOther non-deductible expenses, AED
ownerDrawingsNoOwner's drawings or salary booked as expenses, AED (added back only when naturalPerson is true)
associateShareNoEquity-accounted share of profit (+) or loss (-) of associates and joint ventures, AED (taken out)
connectedExcessNoPayments to connected persons above market value, AED
exemptDividendsNoExempt dividends from UAE/free zone companies, AED
otherDeductionsNoOther allowable deductions, AED
unrealisedGainsNoNet unrealised gain (+) or loss (-) in the accounts, AED (adjusted only when realisationElect is true)
accountingProfitYesNet profit (or loss, negative) per the financial statements, AED
qualifyingIncomeNoQFZP qualifying income taxed at 0%, AED
realisationElectNoElected to tax gains and losses on realisation rather than as booked
connectedPaymentsNoTotal paid to connected persons in the period, AED (raises the transfer pricing disclosure warning above AED 500,000)
dividendsExpensedNoDividends or profit distributions booked as expenses, AED (always added back)
foreignTaxExpensedNoForeign and withholding taxes booked as expenses, AED (added back)
participationIncomeNoParticipation exemption income, AED
exemptIncomeExpensesNoExpenses relating to exempt income, AED
revenueExceededBeforeNoRevenue exceeded AED 3m in an earlier CT period (blocks SBR permanently)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • addedInput schema / properties / associateShare
      Added value: +{
      +  "description": "Equity-accounted share of profit (+) or loss (-) of associates and joint ventures, AED (taken out)",
      +  "type": "number"
      +}
    • addedInput schema / properties / connectedPayments
      Added value: +{
      +  "description": "Total paid to connected persons in the period, AED (raises the transfer pricing disclosure warning above AED 500,000)",
      +  "type": "number"
      +}
    • addedInput schema / properties / depreciation
      Added value: +{
      +  "description": "Depreciation and amortisation, AED (used to calculate tax-EBITDA when ebitda is not given)",
      +  "type": "number"
      +}
    • addedInput schema / properties / dividendsExpensed
      Added value: +{
      +  "description": "Dividends or profit distributions booked as expenses, AED (always added back)",
      +  "type": "number"
      +}
    • changedInput schema / properties / ebitda / description
      Previous value: -"Adjusted (tax) EBITDA, AED — used for the 30% interest cap"New value: +"Tax-EBITDA, AED, for the 30% interest cap. Leave out to have it calculated from taxable income + net interest + depreciation"
    • addedInput schema / properties / foreignTaxExpensed
      Added value: +{
      +  "description": "Foreign and withholding taxes booked as expenses, AED (added back)",
      +  "type": "number"
      +}
    • addedInput schema / properties / interestBF
      Added value: +{
      +  "description": "Net interest disallowed in earlier periods and carried forward, AED (deducted within this period's cap)",
      +  "type": "number"
      +}
    • addedInput schema / properties / naturalPerson
      Added value: +{
      +  "description": "The business is owned by an individual (sole establishment or civil company of a natural person)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / ownerDrawings
      Added value: +{
      +  "description": "Owner's drawings or salary booked as expenses, AED (added back only when naturalPerson is true)",
      +  "type": "number"
      +}
    • addedInput schema / properties / realisationElect
      Added value: +{
      +  "description": "Elected to tax gains and losses on realisation rather than as booked",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / unrealisedGains
      Added value: +{
      +  "description": "Net unrealised gain (+) or loss (-) in the accounts, AED (adjusted only when realisationElect is true)",
      +  "type": "number"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive for this pure computation, so the safety profile is covered. The description adds genuine domain behavior beyond that: the SBR eligibility boundaries (revenue ≤ AED 3m, periods ending by 31 Dec 2029) and the material consequence that a tax loss and disallowed interest are forfeited in an SBR year.

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?

Three sentences, front-loaded with purpose, then the carry-forward consequence, then the input contract. No filler; each sentence carries distinct information.

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 32-parameter comparison tool with full schema coverage and no output schema, the description tells the agent what it computes and what it returns (tax payable and carry-forward each way). The absence of output schema is compensated by naming the outputs, though edge behaviors (e.g. what happens if ineligible for SBR) are left implicit.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents all 32 parameters (baseline 3). The description adds one important semantic that the schema does not: sbrElect is ignored by this tool, which an agent would otherwise reasonably set given the SBR framing.

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 (Compute) and resource (the same facts with and without Small Business Relief), and explicitly frames the tool as a two-way comparison of tax payable and carry-forwards. This distinguishes it cleanly from sibling grotax_compute_ct, which it names.

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?

Establishes the context by tying itself to grotax_compute_ct ('takes the same inputs'), implying it is the tool to use when a side-by-side SBR comparison is wanted rather than a single computation. It does not spell out an explicit 'use this instead when...' rule, but the routing is inferable.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources