Skip to main content
Glama

calcular_bdi

Calculate BDI from admin, insurance, risk, finance, profit and tax rates using TCU Ruling 2622/2013, comparing components against official ranges.

Instructions

BDI pela fórmula do Acórdão 2622/2013-TCU, comparando cada componente com as faixas do acórdão.

Valores em %: ac (administração central), sg (seguro + garantia), r (risco), df (despesas financeiras), lucro, iss (alíquota efetiva sobre o faturamento), pis, cofins, cprb (4,5 no regime desonerado; senão 0). tipo_obra: edificacoes, rodovias_ferrovias, saneamento, energia, portuarias ou fornecimento.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rYes
acYes
dfYes
sgYes
issNo
pisNo
cprbNo
lucroYes
cofinsNo
tipo_obraNoedificacoes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description bears the full disclosure burden. It usefully discloses that the tool compares each component against the acórdão's faixas and that cprb is regime-dependent (4.5 desonerado, else 0), but it does not state that this is a pure read-only computation, that no auth/writes occur, or how out-of-range components are reported.

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?

Front-loads the formula/source, then gives a compact parameter glossary and the tipo_obra enumeration. Dense but every line earns its place; no filler sentences.

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 an output schema present, return values need not be explained, and the description supplies the otherwise-absent parameter semantics for a 10-parameter tool. The main gaps are usage guidance and the percent-vs-fraction convention, but it is substantially complete for a calculator with no annotation coverage.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate, and it does: it expands all ten parameter abbreviations (ac, sg, r, df, lucro, iss, pis, cofins, cprb) and lists the valid tipo_obra values. It also clarifies the unit ('Valores em %'), though it leaves ambiguity about whether values are percentages or fractions and omits the schema 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?

States a specific verb and resource ('calcular BDI') and names the exact formula source (Acórdão 2622/2013-TCU), plus the extra behavior of comparing components against the acórdão's faixas. This clearly distinguishes it from siblings like orcar, buscar_precos, and comparar_ufs, which deal with pricing rather than BDI computation.

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

Usage Guidelines3/5

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

The description implies this is the tool for computing BDI once indirect-rate components are known, but it never states when to use it versus siblings like orcar, nor any prerequisites (e.g., needing a base loaded via atualizar_base). Usage is inferable from the parameter context but not spelled out.

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