Skip to main content
Glama

IUSTORIA – průvodci a právní kalkulačky

DPH: výpočet a kdy se stanete plátcem

dph
Read-onlyIdempotent

Spočítá DPH podle českého zákona o DPH: ucel=vypocet ze základu (součin se sazbou) nebo z ceny včetně daně (cena minus cena dělená 1,21 nebo 1,12, § 37), bez dne plnění se sazbami 21 % a 12 % platnými od 1. 1. 2024 (první řádek výsledku to říká). S nepovinným den_plneni použije sazby a způsob výpočtu platné k tomu dni od 1. 1. 1993 (zákon č. 588/1992 Sb. do 30. 4. 2004, pak zákon č. 235/2004 Sb.; v letech 2015 až 2023 i druhá snížená sazba 10 %; z ceny včetně daně do 31. 3. 2019 koeficientem na čtyři desetinná místa, do 31. 7. 1993 vůbec). ucel=registrace spočítá, odkdy je osoba se sídlem v tuzemsku plátcem a do kdy podat přihlášku: po překročení obratu od 1. 1. 2025 do 31. 12. 2030 práh 2 000 000 Kč (od 1. ledna dalšího roku) nebo 2 536 500 Kč (dnem po překročení) s přihláškou do 10 pracovních dnů (§ 6 a 94); po překročení v letech 2013 až 2024 podle tehdejšího znění (obrat za nejvýše 12 měsíců nad 1 000 000 Kč, od 2023 nad 2 000 000 Kč, plátcem od prvního dne druhého měsíce po měsíci překročení, přihláška do 15 dnů po jeho skončení). Neurčuje, zda plnění podléhá snížené sazbě nebo je osvobozené. EN: Calculates Czech VAT from the net amount or from a VAT-inclusive price (21 % or 12 %, or the rates in force on an optional supply date since 1993) and when a business becomes a VAT payer after exceeding the turnover threshold (from 2025 CZK 2,000,000 or 2,536,500; 2013–2024 the old 12-month rule), with the registration deadline.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ucelNovypocet = DPH z částky; registrace = odkdy jsem plátcem. Bez zadání vypocet. EN: VAT calculation or registration.
sazbaNoJen u vypocet: zakladni = 21 %, snizena = 12 % (u den_plneni sazby platné k tomu dni); druha_snizena = 10 %, jen s den_plneni od 1. 1. 2015 do 31. 12. 2023. Bez zadání zakladni. EN: Standard, reduced or (2015–2023) second reduced rate.
castkaNoJen u vypocet: částka v Kč. EN: Amount in CZK.
zadanoNoJen u vypocet: bez_dane = castka je základ daně; s_dani = castka je cena včetně DPH. Bez zadání bez_dane. EN: Amount is net or VAT-inclusive.
den_plneniNoJen u vypocet, nepovinné: den uskutečnění plnění, nebo přijetí úplaty, k němuž vznikla povinnost přiznat daň; nástroj použije sazby platné k tomu dni (od 1. 1. 1993 do 31. 12. 2030). Bez zadání dnešní sazby. EN: Supply date for the rates then in force.
prekroceni_rocniNoJen u registrace: den, kdy obrat v tuzemsku za kalendářní rok překročil 2 000 000 Kč; u překročení v letech 2013 až 2024 den, kdy obrat za nejvýše 12 po sobě jdoucích kalendářních měsíců překročil tehdejší práh (1 000 000 Kč, od 2023 2 000 000 Kč). EN: Date turnover exceeded CZK 2,000,000 (2013–2024: the threshold then in force over 12 months).
prekroceni_okamzityNoJen u registrace: den, kdy obrat v témže roce překročil 2 536 500 Kč (jen od 1. 1. 2025). EN: Date turnover exceeded CZK 2,536,500.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / den_plneni
      Added value: +{
      +  "description": "Jen u vypocet, nepovinné: den uskutečnění plnění, nebo přijetí úplaty, k němuž vznikla povinnost přiznat daň; nástroj použije sazby platné k tomu dni (od 1. 1. 1993 do 31. 12. 2030). Bez zadání dnešní sazby. EN: Supply date for the rates then in force.",
      +  "format": "date",
      +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +  "type": "string"
      +}
    • changedInput schema / properties / prekroceni_okamzity / description
      Previous value: -"Jen u registrace: den, kdy obrat v témže roce překročil 2 536 500 Kč. EN: Date turnover exceeded CZK 2,536,500."New value: +"Jen u registrace: den, kdy obrat v témže roce překročil 2 536 500 Kč (jen od 1. 1. 2025). EN: Date turnover exceeded CZK 2,536,500."
    • changedInput schema / properties / prekroceni_rocni / description
      Previous value: -"Jen u registrace: den, kdy obrat v tuzemsku za kalendářní rok překročil 2 000 000 Kč. EN: Date turnover exceeded CZK 2,000,000."New value: +"Jen u registrace: den, kdy obrat v tuzemsku za kalendářní rok překročil 2 000 000 Kč; u překročení v letech 2013 až 2024 den, kdy obrat za nejvýše 12 po sobě jdoucích kalendářních měsíců překročil tehdejší práh (1 000 000 Kč, od 2023 2 000 000 Kč). EN: Date turnover exceeded CZK 2,000,000 (2013–2024: the threshold then in force over 12 months)."
    • changedInput schema / properties / sazba / description
      Previous value: -"Jen u vypocet: zakladni = 21 %, snizena = 12 %. Bez zadání zakladni. EN: Standard or reduced rate."New value: +"Jen u vypocet: zakladni = 21 %, snizena = 12 % (u den_plneni sazby platné k tomu dni); druha_snizena = 10 %, jen s den_plneni od 1. 1. 2015 do 31. 12. 2023. Bez zadání zakladni. EN: Standard, reduced or (2015–2023) second reduced rate."
    • changedInput schema / properties / sazba / enum
      Previous value: -[
      -  "zakladni",
      -  "snizena"
      -]New value: +[
      +  "zakladni",
      +  "snizena",
      +  "druha_snizena"
      +]
  2. Added

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description goes well beyond that, disclosing date-dependent rate regimes (21/12% from 2024, historical 10% in 2015–2023, older statutes since 1993), threshold rules, filing deadlines, and that the first result line states the applicable rates.

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

Conciseness3/5

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

The main purpose is front-loaded, which is good, but the body is one extremely dense paragraph replete with historical legal detail (coefficients to four decimals, 1993 rules, 2013–2024 thresholds) that is hard to parse and arguably beyond what an agent needs to select the 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 7-parameter, no-output-schema tool this covers both operating modes, all defaults, the date-driven behavior, and an explicit non-coverage caveat, plus a hint about the result's first line. It is close to complete, with only the result shape left somewhat implicit.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The schema already marks each parameter as 'Jen u vypocet' or 'Jen u registrace' with defaults, and the prose largely restates those same mode/rate/date relationships rather than adding syntax or format detail beyond them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb+resource ('Spočítá DPH podle českého zákona o DPH') and then separates the tool's two concrete modes (vypocet vs. registrace) with exact semantics for each. The purpose is unmistakable, though it never names or contrasts a sibling tool, so it clears 4 but not the sibling-differentiation bar for 5.

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 clearly signals when each mode applies ('ucel=vypocet ze základu... nebo z ceny včetně daně', 'ucel=registrace spočítá, odkdy je osoba... plátcem') and adds an explicit scope exclusion: it does not determine whether a supply falls under a reduced rate or is exempt. What is missing is routing to any alternative tool, so it stops 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources