Vorlage an JC · STEUER#03 · Register #4066 · 11.10.2026 · entschieden: JE-216 · JE-217

Steuerrelevant — eine eigene Achse neben „buchhaltungsrelevant“

Deine Brillen-Rechnung gehört buchhalterisch niemandem: sie ist privat. Für deine private Steuererklärung kann sie trotzdem zählen. Heute kann TGV genau diesen Satz nicht festhalten. Das Werkzeug zum Erkennen gibt es schon, aber es läuft nur, wenn der Planer es zufällig wählt. Die Felder zum Ablegen gibt es auch, aber sie sind leer. Und es gibt keinen Ort, an dem sich daraus eine Mappe für die Steuerberaterin bildet.

Anlass: JC 11.10. „Wir haben Buchhaltungsrelevant aber AUCH STEUERRELEVANT. … Neue Achse: Wie gehen wir damit um?“Live gemessen 11.10.: documents · txn_master · tax_filings · md_tax_tags · md_persons · information_schema (nur lesend)Code-Stand: master 92c1b9a66Nichts geschrieben

Entschieden am 11.10.

JCs Entscheid — JE-216 und JE-217

„Ja B“ — „Mit allen 4 Empfehlungen unter ‚Deine Entscheidungen — vier Fragen‘ einverstanden.“

  • ① Datenform B: Zuordnung + Mappe.
  • ② Vorschlag: ORCH schlägt mit EU-Modell vor, gültig erst nach Bestätigung.
  • ③ Stufe: Eine Zuordnung hebt auf mindestens „vertraulich“, bei Gesundheit auf „streng vertraulich“, und senkt nie.
  • ④ Erste Mappe: ESt 2025 · DE. Die Checkliste schickt JC an den Belegeingang.

Dazu JE-217: Der Steuer-Agent beherrscht drei Prozesse: ① Eingang prüfen und einordnen, ② vor dem Senden fehlende Belege nach JCs Situation finden, ③ neue Regelungen melden. KAI hilft beim Zusammentragen. Die vier roten Punkte der Lage-Tabelle werden gelöst.

Erster Echtfall: die Brillen-Rechnungen #8527 und #8528. Rechnungsdatum 02.10.2026, aber Leistung und Zahlung 2025 — du hast entschieden: Erklärung 2025. Daraus die Regel: die Mappe richtet sich nach dem Leistungszeitraum, nicht nach dem Rechnungsdatum. Das Feld dafür gibt es (period_from/period_to), an den Brillen ist es leer. Die Checkliste deiner Steuerberaterin ist angekommen (#8563, streng vertraulich).

Bau: STEUER#04 Bau-Blatt (05_SCHEMA/319_steuer04_steuer_zuordnung_und_mappe.sql) · STEUER#05 Vorschlag · STEUER#06 Mappe + Übergabe.

Empfehlung (vor dem Entscheid)

Meine Empfehlung, in drei Sätzen

① Steuerrelevanz ist eine Zuordnung, kein Häkchen. Ein Beleg (oder eine Buchung) kann keiner, einer oder mehreren Steuererklärungen zugeordnet werden. Jede Zuordnung nennt Jahr, Person, Land und Kategorie. Eine Firmen-Gehaltsabrechnung gehört der C3 und ist Arbeitsmaterial für deine private Erklärung.

② TGV schlägt vor, du bestätigst. ORCH prüft jeden Privatbeleg und jeden Lohnbeleg der Firmen, nur mit einem EU-Modell. Der Vorschlag landet in der Mappe „Steuererklärung 2025 · JC · DE“. Erst dein Klick macht ihn gültig.

③ Die Mappe ist das Arbeitsmaterial. Sie ist nach der Checkliste deiner Steuerberaterin gegliedert: was da ist, was vorgeschlagen ist, was fehlt. Am Ende geht sie mit deiner Freigabe als ein Paket an die Beraterin. Steuerrelevante Privatbelege sind dabei mindestens vertraulich, Gesundheitsbelege streng vertraulich.

⛔ TGV rechnet keine Steuer und sagt nicht, was absetzbar ist. Es findet, ordnet und liefert. Ob und wie viel zählt, entscheidet die Steuerberaterin. Diese Grenze steht schon im Brief STEUER#01 (21.06.).

Lage · heute gemessen

Was TGV heute mit „steuerrelevant“ tut

OrtWas es kannWas heute damit passiert
Triage (agent_orch01/taxonomy.py) Belegart Steuer und Strom STEUER. Das bezeichnet aber nur, was ein Papier ist (Bescheid, Bescheinigung), nicht wofür es zählt. Eine Brillen-Rechnung wird zur Rechnung · privat. Ein Steuer-Merkmal bekommt sie nicht. Der Strom STEUER läuft durch dieselbe Kette wie Rechnungen.
tax-extract (02_SKILLS/tgv-skill-tax-extract) Ordnet 12 Steuer-Kategorien zu, darunter Anlage N, KAP, Vorsorge, Spende, Handwerker/haushaltsnah, Krankheitskosten, außergewöhnliche Belastungen und Werbungskosten. Dazu Jahr, Betrag und Konfidenz. Steht in keinem Worker-Set, nur auf der Erlaubt-Liste (taxonomy.py:177). Der LLM-Planer darf es trotzdem wählen, und er tut es manchmal: bis 11.10. 15 Belege, zuletzt deine Checkliste #8563 (korrigiert; vorher stand hier „ruft niemand auf“), Ergebnis nur im Rohfeld ai_suggestion. Ruft ein US-Modell direkt (claude-haiku) und überschreibt documents.status (skill.py:406–427). Und er liest nur die Vorschau extracted_text_snippet (skill.py:332), die bei 2.000 Zeichen abgeschnitten ist. Bei Privatbelegen stoßen 33 von 170 an diese Grenze, und 52 haben ein längeres extracted_markdown. Eine mehrseitige Jahresbescheinigung wird so nur halb gelesen. (Befund RAG#09, von mir nachgemessen.) Für einen Breitenlauf taugt er so nicht.
Buchungen (txn_master) Spalten tax_flag und tax_tag → Katalog md_tax_tags (9 Einträge aus dem V3-Schema: ESt-VA/NZ, Spende, Rente-AV, KFZ, Werbung, USt-VA, 2× Grundsteuer) tax_tag ist an 0 von 1.640 Buchungen gesetzt, tax_flag an 4. Kein Code im Dienst liest oder schreibt sie.
Steuer-Mappe (tax_filings, Mig 027) Je (Jahr, Entität, Eigner) ein Bündel mit Status collecting → ready_to_send → sent. Dazu der Zeiger documents.tax_filing_id. Genau eine Mappe: privat 2026, „ready_to_send“, Belegliste leer. Trotzdem zeigt #7321 auf sie. Kein Mandant, keine Person, kein Land. Nur für Admins (Mig 157). Der Versand-Skill ist eine n8n-Vorschau.
Verträge (prf_contracts.tax_flags) Freitext-Liste je Vertrag, z. B. „Rentenbezugsmitteilung §22a EStG“ Lebt, aber nur am Vertrag. Kein Beleg erbt es.
Personen (md_persons) steuerlicher_kontext, haushaltsbezug, user_id 8 Personen, 4 mit Steuer-Kontext. Das ist die fertige Antwort auf „wessen Erklärung?“.
USt-Liste (fes_ap3/ustva_prep.py) · Buchhalter-Paket (WF-E) Umsatzsteuer je Firma × Monat · Versand je Entität Firmen-Achse, kein Privatbeleg. Bleibt, wie es ist.
KAI (chat_engine/executors_steuer.py) Pendlerpauschale und Fahrtenbuch-Summe, nur lesend Die Steuer-Persona gibt es. Eine Frage wie „welche Belege fehlen für meine Steuer?“ beantwortet sie nicht.

Privater Bestand (11.10.): 198 Belege, davon 74 Rechnung · 54 Sonstiges · 25 Kontoauszug · 20 Vertrag · 9 Quittung · 8 Steuer · 4 Zahlungsbeleg · 1 Gutschrift. Korrigiert am Abend des 11.10.: Die Brillen-Rechnungen sind darunter, als #8527 und #8528 (Sichtwechsel Berlin, seit 02.10.). Meine Suche nach Brille, Optik, Fielmann und Augen in Lieferant, Betreff und Dateiname hat den Namen „Sichtwechsel“ nicht getroffen. Die Reichweite stand dabei, das Urteil „nicht darunter“ war trotzdem zu groß. Daraus folgt: Stichwörter reichen nicht, die Erkennung muss den Inhalt lesen (STEUER#05). Dazu kommt #7919, eine Apotheken-Rechnung aus Frankreich, Kategorie „Alltag“. Unter „vertraulich“ liegen 11 Privatbelege (Stufe „intern“). Korrigiert: Die 32 ohne Stufe zählen in der Rechtevergabe schon als „streng vertraulich“ (rag_conf_rank(NULL)=6, fail-closed); ich hatte sie fälschlich mitgezählt.

Reichweite der Suche nach einem „steuerrelevant“-Feld: alle Spalten des Schemas public mit tax · steuer · deduct · abzug · categor · kategor im Namen, dazu 05_SCHEMA/*.sql, 02_SKILLS, 08_OPS und das Kompendium. Gefunden habe ich nur, was in der Tabelle steht.

Grafik · die neue Achse

Fünf Achsen, ein Beleg: die Gehaltsabrechnung #8373

#8373 Lohn-/Gehaltsabrechnung 2026 Mandantwer darf es sehen · Wand Entität C3 GmbHwem gehört es buchhalterisch Stufe vertraulichwie geheim Belegart Steuerwas für ein Papier NEU · Steuer-Zuordnung (0 … n) Buchhaltung C3 2026 über die Entität — wie heute (keine eigene Zuordnung) ESt 2026 · JC · DE Kategorie: Anlage N (Vorschlag) Quelle: ORCH (tax-extract) bestätigt: — wartet auf dich Entität sagt, WEM der Beleg gehört. Die Zuordnung sagt, in WESSEN Erklärung er zählt. Das sind zwei verschiedene Fragen.

Vorschau · Frage ①

Drei Bauweisen, dieselbe Brillen-Rechnung

A · Felder am Beleg nicht empfohlen

Brille · Optiker · 2026 · privat steuerrel.: ja Jahr: 2026 Person: JC Land: DE Kategorie: Krankheitskosten zweite Person / zweites Land? kein Platz 1 Beleg = höchstens 1 Erklärung
  • Am einfachsten zu bauen: fünf Spalten an documents und noch einmal an txn_master.
  • Hält nur eine Erklärung je Beleg. Eine Krankenversicherungs-Bescheinigung für zwei Personen oder die C3-Gehaltsabrechnung, die auch privat zählt, passen nicht hinein.
  • Vorschlag und Bestätigung stehen im selben Feld. Wer hat es gesetzt?

B · Zuordnung + Mappe Empfehlung

Brilleprivat · 2026 KrankheitskostenVorschlag ORCH MappeESt 2026 · JC · DEtax_filings, ausgebaut 1 Beleg → 0…n Zuordnungen → je 1 Mappe
  • Eine Zeile je „Beleg zählt in dieser Erklärung, unter dieser Kategorie“. Sie trägt Status (Vorschlag, bestätigt, verworfen), Quelle und den Namen, wer bestätigt hat.
  • Die Mappe trägt Jahr, Person, Land und Mandant. Sie ist tax_filings, um diese vier Felder ergänzt; eine zweite Mappen-Tabelle entsteht nicht.
  • Kann auch an einer Buchung hängen, z. B. an einer Spende per Überweisung ohne Quittung.
  • Katalog: md_tax_tags wird um Land und Gruppe erweitert, keine neue Liste.

C · nur Etikett + Suche nicht empfohlen

Brilleprivat · 2026 steuer:krankheit „Mappe“ = KAI-Suchejedes Mal neu kein Bestand · keine Lückenliste · kein Ja
  • Kein Schema, kein Bau: es gibt nur ein Etikett in documents.tags, und KAI sucht bei Bedarf.
  • Für eine Steuererklärung ist Vollständigkeit das ganze Versprechen. Eine Suche kann keine Lücken melden und nichts festhalten, was du bestätigt hast.
  • Wer das Etikett gesetzt hat, ob Maschine oder du, bleibt unsichtbar.

Vorschau · Arbeitsmaterial

Was du in der Mappe siehst

Steuererklärung 2025 · JC · DEsammelt

Gegliedert nach der Checkliste deiner Steuerberaterin. 3 bestätigt · 2 Vorschläge · 2 fehlen.

KategorieBelegeStand
Einkünfte nichtselbständigLohnsteuerbescheinigung 2025fehlt
Kapitalerträge#8057 · #8061bestätigt
Vorsorge#8054bestätigt
Krankheitskosten#7919 ApothekeVorschlag
unklar#8052Vorschlag
Spenden—fehlt?
streng vertraulichnur du + wem du es gibstEU-Modell

Die Zahlen sind Beispiele. Die Belegnummern sind echt: tax-extract hat sie für das Steuerjahr 2025 so eingestuft. Die Einstufung von #7919 ist ein angenommener Vorschlag. Bauform: Ergebnis-Karte und Bestätigungs-Karte der Klärung. Die Übergabe nutzt die Freigabe-Karte wie beim Buchhalter-Versand. Keine neue Komponente.

Zum Abhaken

Deine Entscheidungen — vier Fragen

NrWas ist darinKonkrete FrageEmpfehlung
1 Datenform. Heute gibt es drei halbe Ansätze nebeneinander (tax_tag, tax_filings, ai_suggestion.tax_extract), und keiner ist im Einsatz. Variante A (Felder am Beleg), B (Zuordnung + Mappe) oder C (nur Etikett)? B. Sie baut auf dem Vorhandenen auf: tax_filings wird die Mappe, md_tax_tags der Katalog, md_persons die Person. Neu ist nur die Zuordnungszeile. Die DDL legt dir das Bau-Blatt vor.
2 Erkennung. tax-extract kann es, läuft aber nicht. In der heutigen Form würde er Belegstatus überschreiben und Daten in die USA schicken. ORCH macht für jeden Privatbeleg und jeden Lohnbeleg der Firmen einen Steuer-Vorschlag, nur mit EU-Modell. Gültig wird er erst mit deinem Klick in der Mappe. Einverstanden? Ja. tax-extract kommt als Schritt in die bestehende Kaskade, kein neuer Agent. Er schreibt die Vorschlag-Zeile statt status. Zuerst ein Probelauf über die 198 Privatbelege; die Liste siehst du, bevor etwas gilt.
3 Datenschutz. 11 Privatbelege liegen unter „vertraulich“ (korrigiert von 43: Belege ohne Stufe gelten schon als streng). Gesundheitsbelege (Brille, Apotheke) sind nach DSGVO eine besondere Kategorie. Regel: eine Steuer-Zuordnung hebt den Beleg auf mindestens „vertraulich“ und senkt ihn nie; die Kategorie Krankheitskosten hebt auf „streng vertraulich“. Die Mappe sieht nur, wer im Mandanten berechtigt ist, und die Person selbst. Einverstanden? Ja. Das entspricht dem Ablage-Baum (Dokumentmanagement §5: „(Privat) Gesundheit · streng vertraulich“). Der Bau zeigt den Gegenbeweis: ein Viewer im Mandanten sieht die Mappe nicht, auch nicht über KAI.
4 Erste Mappe und Katalog. Die Checkliste deiner Steuerberaterin (STEUER#01: Checkliste Steuererklärung.xlsx) liegt nicht im Repo; gesucht im ganzen Repo-Baum nach dem Dateinamen. (a) Mit welcher Erklärung fangen wir an: ESt 2025 · DE (falls noch offen) oder 2026? Und braucht es FR von Anfang an? (b) Schickst du die Checkliste, falls vorhanden auch das französische Gegenstück? Deine Antwort. Mein Vorschlag: 2025 DE zuerst, weil mindestens vier Privatbelege dafür schon eingestuft sind (#8052, #8054, #8057, #8061). FR als zweites Land, sobald die Liste da ist. Bis dahin dienen die 12 Kategorien von tax-extract als Startliste.

Danach

Was passiert, sobald du antwortest

  1. Deine Antworten werden Hausregel in Dokumentmanagement §5f und ein JE-Eintrag.
  2. STEUER#04 · Bau-Blatt: DDL für Zuordnung, Katalog-Ergänzung und Mappen-Felder (Mandant, Person, Land) als PROPOSED_-Datei. Die DDL fährst du. Dazu die Daten-Korrektur der Leiche #7321 / Mappe 1.
  3. STEUER#05 · Vorschlag: tax-extract auf EU-Modell, Text aus dem vollen extracted_markdown statt der 2.000-Zeichen-Vorschau, Ausgabe als Vorschlag-Zeile, Aufnahme ins Worker-Set; Probelauf über den Privatbestand.
  4. STEUER#06 · Mappe: Ansicht mit Lückenliste nach Checkliste (STEUER#01, Phase P3), KAI-Werkzeug „welche Belege fehlen?“, Übergabe an die Steuerberaterin mit Freigabe-Karte.

Hintergrund

Was wir schon haben — und deshalb nicht neu bauen

Lern-Box · Buchhaltungsrelevant und steuerrelevant Buchhaltungsrelevant heißt: der Beleg gehört in die Bücher einer Firma. Das entscheidet die Entität. Steuerrelevant heißt: der Beleg zählt in einer Steuererklärung. Das ist bei einer Firma fast immer dieselbe Firma, bei einer Person aber eine eigene Frage. Eine private Brille hat keine Buchhaltung, kann aber in deiner Einkommensteuer zählen. Und eine Firmen-Gehaltsabrechnung gehört in die Bücher der Firma und gleichzeitig in deine Erklärung.

Wo das im Haus steht

Wo das im Haus steht