stbvv-rechner
Status: beta — automatisierte Tests laufen grün in CI (tests/).
Noch nicht händisch abgenommen — status: getestet vergibt erst der
Maintainer nach eigener Prüfung (siehe
CONVENTIONS.md,
Reifegrad-Leiter).
Zweck
Berechnet StBVV-Gebühren deterministisch über den Executor
core/calc/stbvv/ — mit vollständiger,
nachvollziehbarer Rechenkette: Wertstufen-Suche in der einschlägigen
Tabelle (A-C), volle Gebühr (10/10) × Zehntelsatz im gesetzlichen Rahmen,
Zeitgebühr (angefangene Viertelstunden × Satz), Betragsrahmen je Einheit
(Lohnbuchführung, § 34 StBVV), Auslagenpauschale (§ 16 StBVV) und
Umsatzsteuer (§ 15 StBVV).
Positionierung: strikt Zweitkontrolle. Das Modell rechnet nie selbst —
kein Kopfrechnen, kein Schätzen von Sätzen. Jeder Geldbetrag in der Antwort
stammt unverändert aus dem Executor-Report. Der Rechner trifft keine
Ermessensentscheidung nach § 11 StBVV — der Satz im Zehntel-/Betragsrahmen
ist entweder ein expliziter Wert des Steuerberaters oder einer der
Referenzpunkte untergrenze/mittelgebuehr/obergrenze; eine fehlende
Angabe ist ein Eingabefehler, nie eine automatische Annahme.
Ein Berechnungsblock je Anfrage (v1, KISS): wertgebuehr,
zeitgebuehr oder betragsrahmen — genau einer. Mehrere Tätigkeiten in
einer Kostennote ruft Claude als mehrere Executor-Aufrufe auf und summiert
selbst; der Executor kennt keine Angelegenheits-Gruppierung.
Eingaben (Datei-Kontrakt, P2)
| Eingabe |
Pflicht |
Format |
Beschreibung |
| StBVV-Anfrage |
ja |
.json |
genau ein Block wertgebuehr, zeitgebuehr oder betragsrahmen, siehe schema/README.md und die Beispiele darin. |
Kurzfassung:
wertgebuehr: tatbestand_id (aus katalog.json:
§§ 21, 24, 33, 35 StBVV), gegenstandswert (Dezimalstring), dazu
entweder satz (expliziter Zehntelsatz im Rahmen) oder
referenzpunkt (untergrenze/mittelgebuehr/obergrenze) — nicht
beides. Optional erstberatung_verbraucher: true (nur für
21-1-rat-auskunft: Kappung auf 190 Euro, § 21 Abs. 1 Satz 2 StBVV).
zeitgebuehr: stichtag (ISO-Datum, ab 2025-07-01 — ältere
Stichtage sind eine Lücke, kein primärquellig geprüfter Altsatz),
minuten (ganze Zahl), dazu satz oder referenzpunkt (Rahmen
16,50-41 Euro je angefangene Viertelstunde, § 13 StBVV).
betragsrahmen: tatbestand_id (§ 34 StBVV, Lohnbuchführung),
einheiten (ganze Zahl, z. B. Anzahl Arbeitnehmer), dazu
satz_je_einheit oder referenzpunkt.
auslagenpauschale (Default true): § 16 StBVV, 20 % der Gebühr,
höchstens 20 Euro.
umsatzsteuer (Default true) und optional umsatzsteuersatz
(Dezimalstring, Default "0.19"): § 15 StBVV.
Ein nicht vorgesehener Key (Tippfehler) führt zu Exit 1 mit Nennung des
Keys — nie stilles Ignorieren. Geldbeträge und Sätze immer als
JSON-String (z. B. "5000.00"), nie als float (Rundungsfehler wie
0,1+0,2 sind bei Geldbeträgen ein Haftungsrisiko).
Ablauf
Claude schreibt die Anfrage als JSON-Datei (nach
schema/README.md). Fehlende Pflichtangaben
(Gegenstandswert, Tatbestands-Id, Satz/Referenzpunkt) werden beim
Nutzer erfragt, nie ergänzt oder geschätzt.
Claude ruft den Executor auf:
python3 ${CLAUDE_PLUGIN_ROOT}/core/calc/stbvv/executor.py \
--input <anfrage.json> \
--output <report.json>
Der Executor entscheidet jeden Betrag deterministisch (P3). Claude
liest ausschließlich den JSON-Report und übernimmt volle Gebühr, Satz,
Zwischenbetrag, Auslagenpauschale, USt und Bruttobetrag unverändert.
Claude stellt den Report als Rechenkette dar: jeder Schritt mit Norm
und Zwischenergebnis. Dabei immer ausweisen:
- welche Tabelle/Wertstufe angewendet wurde (bzw. die
Fortschreibungsformel oberhalb der letzten Stufe),
- Mindestgegenstandswert, wenn er gegriffen hat
(
mindestwert_gegriffen),
- den gewählten Satz und die drei Referenzpunkte (Untergrenze/
Mittelgebühr/Obergrenze) zur Einordnung,
- Erstberatungs-Kappung (190 Euro), wenn angefordert und gegriffen,
- Netto/Brutto mit Auslagenpauschale und USt getrennt ausgewiesen,
- den Zweitkontroll-Hinweis aus
haftung (immer, bei jeder Antwort).
Bei Exit-Code 1 (fachlicher Fehler, u. a. unbekannte Tatbestands-Id,
Gegenstandswert außerhalb einer hinterlegten Tabelle ohne
Fortschreibungsformel, Zeitgebühr-Stichtag vor 2025-07-01, Satz
außerhalb des Rahmens, unbekannter Key) gibt Claude die Fehlermeldung
wieder und korrigiert die Eingabe bzw. fragt nach — er rät kein
Ergebnis.
Output-Format
JSON-Report nach schema/README.md, Beispiel:
schema/beispiel-report.json. Kernfelder:
berechnung (Art, Bezeichnung, Norm, Details), rechenkette, ergebnis
(gebuehr, auslagenpauschale, netto, umsatzsteuer, brutto, je
quelle: "executor").
Beispiele
Beispiel 1 — Wertgebühr: Einkommensteuererklärung, Mittelgebühr
Gegenstandswert 50.000 Euro (Summe der positiven Einkünfte), § 24 Abs. 1
Nr. 1 StBVV, Zehntelrahmen 1/10-6/10, Mittelgebühr:
| Schritt |
Norm |
Ergebnis |
| Volle Gebühr (Tabelle A, Wertstufe bis 50.000 Euro) |
Anlage 1 StBVV |
1.304,00 € |
| Zehntelrahmen 1/10-6/10, Mittelgebühr |
§ 24 Abs. 1 Nr. 1 StBVV |
Satz 0,35 |
| Gebühr: 0,35 × 1.304,00 € |
Hausregel (Rundung) |
456,40 € |
| Auslagenpauschale (20 %, gedeckelt) |
§ 16 StBVV |
20,00 € |
| Netto |
|
476,40 € |
| USt (19 %) |
§ 15 StBVV |
90,52 € |
| Brutto |
|
566,92 € |
Beispiel 2 — Zeitgebühr: 100 Minuten, Obergrenze
Stichtag 01.09.2025 (nach dem 01.07.2025, aktuelle Fassung), 100 Minuten,
Obergrenze 41,00 Euro je angefangene Viertelstunde:
| Schritt |
Norm |
Ergebnis |
| 100 Minuten -> angefangene Viertelstunden |
§ 13 StBVV |
7 |
| Satz (Obergrenze) |
§ 13 StBVV |
41,00 € |
| Gebühr: 41,00 € × 7 |
Hausregel (Rundung) |
287,00 € |
| Netto/Brutto (ohne Auslagen/USt angefordert) |
|
287,00 € |
Beispiel 3 — Scope-Ablehnung: Zeitgebühr vor dem Stichtag
Anfrage mit "stichtag": "2024-01-01" liefert Exit 1: „Zeitgebühr § 13
StBVV: Stichtag 2024-01-01 liegt vor 2025-07-01 (aktuelle Fassung, BGBl.
2025 I Nr. 105) — für frühere Stichtage ist kein Satz primärquellig
geprüft, keine automatische Berechnung möglich." Claude gibt diese Meldung
wieder und schätzt keinen Altsatz.
Quellenstand
- StBVV-Text (§§ 10, 11, 13, 15, 16, 21, 24, 33, 34, 35 sowie Anlagen
1-4) über gesetze-im-internet.de, abgerufen am 2026-09-08. Anlagen
1-3 tragen die Fundstelle „BGBl. 2025 I Nr. 105" (Anlage 4: „BGBl. 2025
Nr. 105" — so auf der Quellseite, ohne „I"), laut Primärquellen-Dossier
(siehe unten, Abschnitt 9) in Kraft seit 2025-07-01; das Inkrafttretensdatum wurde
nur für § 13 StBVV primärquellig separat verifiziert (Dossier), nicht für
jede Anlage einzeln — siehe
stand-Feld je Tabelle in
tabellen.json.
- Primärquellen-Dossier:
Steuer-Ops DE/dossier-ao-fristen-stbvv-2026-09-08.md
Abschnitt 9 (Vault, außerhalb dieses Repos) — nur die dort als „belegt"
markierten Zeilen sind in den Rechner eingeflossen.
- Katalog:
katalog.json enthält jede Zeile mit quelle_url
(gesetze-im-internet.de, Einzelnorm).
Nicht abgedeckt
- § 40 StBVV (Rechtsbehelfsverfahren u. a.): verweist auf das RVG
("sinngemäße Anwendung") und dessen eigene Wertgebührentabelle (Anlage 2
RVG) — eine im StBVV-Text selbst als „Tabelle E" bezeichnete Tabelle
existiert nicht (verifiziert: die StBVV kennt nur die Anlagen 1-4,
Tabellen A-D). Eine RVG-Berechnung leistet der Skill
rvg-gkg-rechner
aus legal-ops-germany — hier nicht vendort (Scope-Grenze, KISS).
- Tabelle D (Anlage 4, Land-/Forstwirtschaft, § 39 StBVV): Wertstufen
vollständig in
tabellen.json hinterlegt (Teil a: Betriebsfläche, 59
Stufen; Teil b: Jahresumsatz, 85 Stufen), aber kein Katalogeintrag —
§ 39 StBVV ist nicht Teil dieses Skill-Scopes. Teil a hat oberhalb der
letzten Stufe (1.000 ha) zudem ein abweichendes Fortschreibungsschema
(gestaffelter Betrag je vollem Hektar statt „je angefangene X Euro") —
nicht implementiert, der Rechner lehnt eine Anfrage in diesem Bereich ab.
- § 22 (Gutachten/verbindliche Auskunft), § 23 (sonstige
Einzeltätigkeiten), §§ 25-27, 30, 37 StBVV: nicht im Katalog — diese
Normen wurden für v1 nicht primärquellig aufgearbeitet.
- Pauschalvergütung (§ 4 StBVV): Vereinbarungssache zwischen
Steuerberater und Auftraggeber, kein gesetzlicher Rahmen — kein
Rechenfall für diesen Skill.
- Vergütungsvereinbarung (§ 4a, § 4b StBVV): individuelle Vereinbarung,
nicht rechenbar.
- Zeitgebühr vor dem 01.07.2025: kein primärquellig geprüfter Altsatz
hinterlegt — der Executor lehnt einen früheren Stichtag ab.
- Mehrere Tätigkeiten/Angelegenheiten in einer Anfrage: v1 rechnet
genau einen Block je Aufruf (siehe „Ein Berechnungsblock je Anfrage"
oben) — keine automatische Summierung mehrerer Tatbestände oder
Angelegenheits-Gruppierung wie beim RVG-Rechner.
1---2name: stbvv-rechner3description: Berechnet StBVV-Gebühren (Wertgebühr, Zeitgebühr, Betragsrahmen je Einheit) deterministisch mit nachvollziehbarer Rechenkette — Wertstufen-Tabellen A-C, Zehntelrahmen, Zeitgebühr ab 01.07.2025, Auslagenpauschale, USt. Triggert bei StBVV berechnen, Steuerberatergebühr, Honorar/Vergütung Steuerberater, Gegenstandswert zu Gebühr, Kostennote Steuerberater.4---56# stbvv-rechner78> **Status: `beta`** — automatisierte Tests laufen grün in CI (`tests/`).9> Noch **nicht** händisch abgenommen — `status: getestet` vergibt erst der10> Maintainer nach eigener Prüfung (siehe11> [CONVENTIONS.md](https://github.com/eliasreiche/tax-ops-germany/blob/main/CONVENTIONS.md),12> Reifegrad-Leiter).1314## Zweck1516Berechnet StBVV-Gebühren deterministisch über den Executor17[`core/calc/stbvv/`](../../core/calc/stbvv/) — mit vollständiger,18nachvollziehbarer **Rechenkette**: Wertstufen-Suche in der einschlägigen19Tabelle (A-C), volle Gebühr (10/10) × Zehntelsatz im gesetzlichen Rahmen,20Zeitgebühr (angefangene Viertelstunden × Satz), Betragsrahmen je Einheit21(Lohnbuchführung, § 34 StBVV), Auslagenpauschale (§ 16 StBVV) und22Umsatzsteuer (§ 15 StBVV).2324**Positionierung: strikt Zweitkontrolle.** Das Modell rechnet nie selbst —25kein Kopfrechnen, kein Schätzen von Sätzen. Jeder Geldbetrag in der Antwort26stammt unverändert aus dem Executor-Report. Der Rechner trifft keine27Ermessensentscheidung nach § 11 StBVV — der Satz im Zehntel-/Betragsrahmen28ist entweder ein expliziter Wert des Steuerberaters oder einer der29Referenzpunkte `untergrenze`/`mittelgebuehr`/`obergrenze`; eine fehlende30Angabe ist ein Eingabefehler, nie eine automatische Annahme.3132**Ein Berechnungsblock je Anfrage (v1, KISS):** `wertgebuehr`,33`zeitgebuehr` oder `betragsrahmen` — genau einer. Mehrere Tätigkeiten in34einer Kostennote ruft Claude als mehrere Executor-Aufrufe auf und summiert35selbst; der Executor kennt keine Angelegenheits-Gruppierung.3637## Eingaben (Datei-Kontrakt, P2)3839| Eingabe | Pflicht | Format | Beschreibung |40|---|---|---|---|41| StBVV-Anfrage | ja | `.json` | genau ein Block `wertgebuehr`, `zeitgebuehr` oder `betragsrahmen`, siehe [`schema/README.md`](schema/README.md) und die Beispiele darin. |4243Kurzfassung:4445- **`wertgebuehr`**: `tatbestand_id` (aus [`katalog.json`](../../core/calc/stbvv/katalog.json):46 §§ 21, 24, 33, 35 StBVV), `gegenstandswert` (Dezimalstring), dazu47 **entweder** `satz` (expliziter Zehntelsatz im Rahmen) **oder**48 `referenzpunkt` (`untergrenze`/`mittelgebuehr`/`obergrenze`) — nicht49 beides. Optional `erstberatung_verbraucher: true` (nur für50 `21-1-rat-auskunft`: Kappung auf 190 Euro, § 21 Abs. 1 Satz 2 StBVV).51- **`zeitgebuehr`**: `stichtag` (ISO-Datum, ab `2025-07-01` — ältere52 Stichtage sind eine Lücke, kein primärquellig geprüfter Altsatz),53 `minuten` (ganze Zahl), dazu `satz` oder `referenzpunkt` (Rahmen54 16,50-41 Euro je angefangene Viertelstunde, § 13 StBVV).55- **`betragsrahmen`**: `tatbestand_id` (§ 34 StBVV, Lohnbuchführung),56 `einheiten` (ganze Zahl, z. B. Anzahl Arbeitnehmer), dazu57 `satz_je_einheit` oder `referenzpunkt`.58- **`auslagenpauschale`** (Default `true`): § 16 StBVV, 20 % der Gebühr,59 höchstens 20 Euro.60- **`umsatzsteuer`** (Default `true`) und optional `umsatzsteuersatz`61 (Dezimalstring, Default `"0.19"`): § 15 StBVV.6263Ein nicht vorgesehener Key (Tippfehler) führt zu Exit 1 mit Nennung des64Keys — nie stilles Ignorieren. Geldbeträge und Sätze immer als65JSON-**String** (z. B. `"5000.00"`), nie als `float` (Rundungsfehler wie660,1+0,2 sind bei Geldbeträgen ein Haftungsrisiko).6768## Ablauf69701. **Claude schreibt die Anfrage als JSON-Datei** (nach71 [`schema/README.md`](schema/README.md)). Fehlende Pflichtangaben72 (Gegenstandswert, Tatbestands-Id, Satz/Referenzpunkt) werden beim73 Nutzer erfragt, nie ergänzt oder geschätzt.742. **Claude ruft den Executor auf**:7576 ```bash77 python3 ${CLAUDE_PLUGIN_ROOT}/core/calc/stbvv/executor.py \78 --input <anfrage.json> \79 --output <report.json>80 ```81823. **Der Executor entscheidet jeden Betrag deterministisch** (P3). Claude83 liest ausschließlich den JSON-Report und übernimmt volle Gebühr, Satz,84 Zwischenbetrag, Auslagenpauschale, USt und Bruttobetrag unverändert.854. **Claude stellt den Report als Rechenkette dar**: jeder Schritt mit Norm86 und Zwischenergebnis. Dabei immer ausweisen:87 - **welche Tabelle/Wertstufe** angewendet wurde (bzw. die88 Fortschreibungsformel oberhalb der letzten Stufe),89 - **Mindestgegenstandswert**, wenn er gegriffen hat90 (`mindestwert_gegriffen`),91 - **den gewählten Satz** und die drei Referenzpunkte (Untergrenze/92 Mittelgebühr/Obergrenze) zur Einordnung,93 - **Erstberatungs-Kappung** (190 Euro), wenn angefordert und gegriffen,94 - **Netto/Brutto** mit Auslagenpauschale und USt getrennt ausgewiesen,95 - den Zweitkontroll-Hinweis aus `haftung` (immer, bei jeder Antwort).965. Bei Exit-Code 1 (fachlicher Fehler, u. a. unbekannte Tatbestands-Id,97 Gegenstandswert außerhalb einer hinterlegten Tabelle ohne98 Fortschreibungsformel, Zeitgebühr-Stichtag vor 2025-07-01, Satz99 außerhalb des Rahmens, unbekannter Key) gibt Claude die Fehlermeldung100 wieder und korrigiert die Eingabe bzw. fragt nach — er rät kein101 Ergebnis.102103## Output-Format104105JSON-Report nach [`schema/README.md`](schema/README.md), Beispiel:106[`schema/beispiel-report.json`](schema/beispiel-report.json). Kernfelder:107`berechnung` (Art, Bezeichnung, Norm, Details), `rechenkette`, `ergebnis`108(`gebuehr`, `auslagenpauschale`, `netto`, `umsatzsteuer`, `brutto`, je109`quelle: "executor"`).110111## Beispiele112113### Beispiel 1 — Wertgebühr: Einkommensteuererklärung, Mittelgebühr114115Gegenstandswert 50.000 Euro (Summe der positiven Einkünfte), § 24 Abs. 1116Nr. 1 StBVV, Zehntelrahmen 1/10-6/10, Mittelgebühr:117118| Schritt | Norm | Ergebnis |119|---|---|---|120| Volle Gebühr (Tabelle A, Wertstufe bis 50.000 Euro) | Anlage 1 StBVV | 1.304,00 € |121| Zehntelrahmen 1/10-6/10, Mittelgebühr | § 24 Abs. 1 Nr. 1 StBVV | Satz 0,35 |122| Gebühr: 0,35 × 1.304,00 € | Hausregel (Rundung) | 456,40 € |123| Auslagenpauschale (20 %, gedeckelt) | § 16 StBVV | 20,00 € |124| Netto | | 476,40 € |125| USt (19 %) | § 15 StBVV | 90,52 € |126| **Brutto** | | **566,92 €** |127128### Beispiel 2 — Zeitgebühr: 100 Minuten, Obergrenze129130Stichtag 01.09.2025 (nach dem 01.07.2025, aktuelle Fassung), 100 Minuten,131Obergrenze 41,00 Euro je angefangene Viertelstunde:132133| Schritt | Norm | Ergebnis |134|---|---|---|135| 100 Minuten -> angefangene Viertelstunden | § 13 StBVV | 7 |136| Satz (Obergrenze) | § 13 StBVV | 41,00 € |137| Gebühr: 41,00 € × 7 | Hausregel (Rundung) | 287,00 € |138| **Netto/Brutto (ohne Auslagen/USt angefordert)** | | **287,00 €** |139140### Beispiel 3 — Scope-Ablehnung: Zeitgebühr vor dem Stichtag141142Anfrage mit `"stichtag": "2024-01-01"` liefert Exit 1: „Zeitgebühr § 13143StBVV: Stichtag 2024-01-01 liegt vor 2025-07-01 (aktuelle Fassung, BGBl.1442025 I Nr. 105) — für frühere Stichtage ist kein Satz primärquellig145geprüft, keine automatische Berechnung möglich." Claude gibt diese Meldung146wieder und schätzt keinen Altsatz.147148## Quellenstand149150- **StBVV-Text** (§§ 10, 11, 13, 15, 16, 21, 24, 33, 34, 35 sowie Anlagen151 1-4) über gesetze-im-internet.de, abgerufen am **2026-09-08**. Anlagen152 1-3 tragen die Fundstelle „BGBl. 2025 I Nr. 105" (Anlage 4: „BGBl. 2025153 Nr. 105" — so auf der Quellseite, ohne „I"), laut Primärquellen-Dossier154 (siehe unten, Abschnitt 9) in Kraft seit **2025-07-01**; das Inkrafttretensdatum wurde155 nur für § 13 StBVV primärquellig separat verifiziert (Dossier), nicht für156 jede Anlage einzeln — siehe `stand`-Feld je Tabelle in157 [`tabellen.json`](../../core/calc/stbvv/tabellen.json).158- **Primärquellen-Dossier**: `Steuer-Ops DE/dossier-ao-fristen-stbvv-2026-09-08.md`159 Abschnitt 9 (Vault, außerhalb dieses Repos) — nur die dort als „belegt"160 markierten Zeilen sind in den Rechner eingeflossen.161- **Katalog**: `katalog.json` enthält jede Zeile mit `quelle_url`162 (gesetze-im-internet.de, Einzelnorm).163164## Nicht abgedeckt165166- **§ 40 StBVV (Rechtsbehelfsverfahren u. a.)**: verweist auf das RVG167 ("sinngemäße Anwendung") und dessen eigene Wertgebührentabelle (Anlage 2168 RVG) — eine im StBVV-Text selbst als „Tabelle E" bezeichnete Tabelle169 existiert **nicht** (verifiziert: die StBVV kennt nur die Anlagen 1-4,170 Tabellen A-D). Eine RVG-Berechnung leistet der Skill `rvg-gkg-rechner`171 aus `legal-ops-germany` — hier nicht vendort (Scope-Grenze, KISS).172- **Tabelle D (Anlage 4, Land-/Forstwirtschaft, § 39 StBVV)**: Wertstufen173 vollständig in `tabellen.json` hinterlegt (Teil a: Betriebsfläche, 59174 Stufen; Teil b: Jahresumsatz, 85 Stufen), aber **kein Katalogeintrag** —175 § 39 StBVV ist nicht Teil dieses Skill-Scopes. Teil a hat oberhalb der176 letzten Stufe (1.000 ha) zudem ein abweichendes Fortschreibungsschema177 (gestaffelter Betrag je vollem Hektar statt „je angefangene X Euro") —178 nicht implementiert, der Rechner lehnt eine Anfrage in diesem Bereich ab.179- **§ 22 (Gutachten/verbindliche Auskunft), § 23 (sonstige180 Einzeltätigkeiten), §§ 25-27, 30, 37 StBVV**: nicht im Katalog — diese181 Normen wurden für v1 nicht primärquellig aufgearbeitet.182- **Pauschalvergütung (§ 4 StBVV)**: Vereinbarungssache zwischen183 Steuerberater und Auftraggeber, kein gesetzlicher Rahmen — kein184 Rechenfall für diesen Skill.185- **Vergütungsvereinbarung (§ 4a, § 4b StBVV)**: individuelle Vereinbarung,186 nicht rechenbar.187- **Zeitgebühr vor dem 01.07.2025**: kein primärquellig geprüfter Altsatz188 hinterlegt — der Executor lehnt einen früheren Stichtag ab.189- **Mehrere Tätigkeiten/Angelegenheiten in einer Anfrage**: v1 rechnet190 genau einen Block je Aufruf (siehe „Ein Berechnungsblock je Anfrage"191 oben) — keine automatische Summierung mehrerer Tatbestände oder192 Angelegenheits-Gruppierung wie beim RVG-Rechner.