Capabilities
VAT Calculator
Add, remove or isolate VAT using a rate you enter rather than a stale preset.
How this capability is exposed
- Stable ID
ursy.io:vat-calculator- Owning service
- URSY.io
- Runtime
- @ursy/runtime · 1.0.0
- Execution modes
- browser, node, mcp-local, remote_transient
- Remote execution
- Available at the owning service
- Remote endpoint
https://api.ursy.io/v1/run
Capability declarations describe what the service exposes. They are not a guarantee of availability or permission to execute an operation.
Accepted contract
{
"schema": "ursy.io/capability/v1",
"id": "ursy.io:vat-calculator",
"slug": "vat-calculator",
"name": "VAT Calculator",
"version": "1.0.0",
"summary": "Add, remove or isolate VAT using a rate you enter rather than a stale preset.",
"intents": [
"VAT calculator",
"add vat",
"remove vat",
"vat calculator uk",
"tax calculator",
"20 percent vat"
],
"aliases": [],
"keywords": [
"add vat",
"remove vat",
"vat calculator uk",
"tax calculator",
"20 percent vat"
],
"category": "business-tools",
"deterministic": true,
"side_effects": false,
"network_required": false,
"execution": {
"preferred": "local",
"supported": [
"browser",
"node",
"mcp-local",
"remote_transient"
],
"local_executable": true,
"remote_safe": true,
"remote_enabled": true,
"remote_endpoint": "https://api.ursy.io/v1/run"
},
"privacy": {
"input_leaves_device_by_default": false,
"payload_logged": false
},
"input_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"amount": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000000,
"description": "User-selected currency or monetary unit."
},
"rate": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000000,
"description": "Percent."
},
"direction": {
"type": "string",
"enum": [
"net",
"gross"
],
"default": "net"
},
"locale": {
"type": "string",
"minLength": 2,
"maxLength": 35,
"pattern": "^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$",
"default": "en-US",
"description": "Locale for display text; numerical result fields are locale independent."
}
},
"required": [
"amount",
"rate"
],
"additionalProperties": false
},
"output_schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 26214400
},
"metrics": {
"type": "array",
"items": {
"type": "object",
"required": [
"label",
"value"
],
"properties": {
"label": {
"type": "string",
"maxLength": 100
},
"value": {
"type": [
"string",
"number"
],
"maxLength": 1000
}
},
"additionalProperties": false
},
"maxItems": 10
},
"net": {
"type": "number",
"minimum": 0,
"maximum": 1.0e+300,
"description": "Same currency as amount."
},
"vat": {
"type": "number",
"minimum": 0,
"maximum": 1.0e+300,
"description": "Same currency as amount."
},
"gross": {
"type": "number",
"minimum": 0,
"maximum": 1.0e+300,
"description": "Same currency as amount."
}
},
"required": [
"text",
"metrics",
"net",
"vat",
"gross"
],
"additionalProperties": false
},
"examples": [
{
"input": {
"amount": 120,
"rate": 20,
"direction": "gross"
},
"output": {
"text": "Formula: gross = net \u00d7 (1 + rate / 100)\nNet: 100\nVAT: 20\nGross: 120",
"metrics": [
{
"label": "Net",
"value": "100"
},
{
"label": "VAT",
"value": "20"
},
{
"label": "Gross",
"value": "120"
}
],
"net": 100,
"vat": 20,
"gross": 120
}
}
],
"limits": {
"max_input_bytes": 5308416,
"max_output_bytes": 26214400,
"max_json_depth": 100,
"max_csv_cells": 1000000
},
"canonical_url": "https://ursy.io/business-tools/vat-calculator/",
"descriptor_url": "https://ursy.io/wp-json/ursy-tools/v2/capabilities/vat-calculator",
"runtime": {
"package": "@ursy/runtime",
"version": "1.0.0",
"module": "@ursy/runtime",
"entry": "run",
"slug": "vat-calculator"
},
"health": {
"status": "ok",
"last_tested": "2026-09-11T17:24:33.220Z",
"runtime_version": "1.0.0",
"golden_fixtures": 2,
"node_contract_tests": 2,
"browser_verified": true,
"tests_passed": 7,
"tests_total": 7,
"test_suite": "tests/runtime-canary.test.mjs",
"browser_suite": "tests/runtime-browser.py"
},
"audit": {
"classification": "A",
"engine": "calculator",
"mode": "vat",
"headless_possible": true,
"notes": "Deterministic calculation/text core can be separated from the existing DOM workbench; schemas and regression fixtures remain required."
},
"assumptions": [],
"formulae": [],
"input_schema_id": "ursy.io:vat-calculator:input_schema",
"output_schema_id": "ursy.io:vat-calculator:output_schema",
"service_id": "ursy-io",
"parent_id": "",
"source_url": "https://ursy.io/wp-json/ursy-tools/v2/catalog",
"source_type": "capability_manifest",
"verified_at": "2026-10-14 07:01:38",
"revision": "5ab6974dda5b3df56c1e602089d01d6bf2a18b006b58809089878934fb958722",
"type": "capabilities",
"source": {
"url": "https://ursy.io/wp-json/ursy-tools/v2/catalog",
"type": "capability_manifest"
},
"last_verified_at": "2026-10-14 07:01:38",
"stale": false
}