Zuschlagsregeln (Erweitert)
Kontextabhängige Zusatzgebühren mit dynamischer Berechnung
🆕 Maut (Ursprungs- und Zielland-basiert)
Prozentual
NEU - V5.0
Intelligente Berechnung: Straßenbenutzungsgebühr basierend auf Ursprungs- UND Zielland der Sendung
Inland (Deutschland): 5,92% des Frachtbetrags
Anwendbar: NUR wenn SOWOHL Ursprung ALS AUCH Ziel in Deutschland (DE→DE)

International: 3,0% des Frachtbetrags
Anwendbar: Bei ALLEN grenzüberschreitenden Sendungen (DE→AT, AT→DE, FR→BE, etc.)

Regellogik:
• Automatische Erkennung von Ursprungs- UND Zielland
• Parsing von Formaten: "DE 12345", "D-12345", "HU-1234"
• Inland-Rate (5,92%) nur bei reinem Inlandsverkehr DE→DE
• International-Rate (3,0%) bei jeder Grenzüberschreitung
📐 Berechnungsbeispiele:
Inland (DE→DE): €200,00 × 5,92% = €11,84
International (AT→DE): €200,00 × 3,0% = €6,00
International (DE→AT): €200,00 × 3,0% = €6,00
International (FR→BE): €200,00 × 3,0% = €6,00
🆕 Treibstoff Zuschlag (Quartalsbasiert mit Prozentsatz-Validierung)
Prozentual + Quartal
NEU - V5.0
Quartalsmäßige Berechnung: Kraftstoffzuschlag basierend auf Abholdatum gemäß JOST-Diesel-Floater-Tabelle (2025)
✨ NEU: Duale Validierung - Das System prüft sowohl den berechneten Betrag als auch den auf der Rechnung angezeigten Prozentsatz
📋 Position-Anzeige: In der Position-Spalte wird dieser Zuschlag als "DIESEL" angezeigt (die interne Validierungslogik bleibt unverändert)
Q1/2025 (01.01. - 31.03.2025): 7,0%
Q2/2025 (01.04. - 30.06.2025): 9,0%
Q3/2025 (01.07. - 30.09.2025): 8,0%
Q4/2025 (01.10. - 31.12.2025): 7,0%
Standard (Fallback außerhalb 2025): 8,0%

Regellogik:
• Verwendet Abholdatum (pickup_date) wenn vorhanden
• Fallback auf Rechnungsdatum
• Automatische Zuordnung zum korrekten Quartal
• Basiert auf JOST Diesel-Floater-Tabelle (vierteljährlich aktualisiert)

🔍 Neue Prozentsatz-Validierung:
• Extrahiert Prozentsatz aus Rechnungstext (z.B. "TREIBSTOFF ZUSCHLAG (8,00 %)")
• Vergleicht mit erwartetem Quartalssatz
• Zeigt ✓ grüne Bestätigung bei korrektem Prozentsatz
• Zeigt ⚠️ rote Warnung bei falschem Prozentsatz, auch wenn Betrag zufällig stimmt
• Verhindert Abrechnungsfehler durch fehlerhafte Quartalszuordnung

📌 WICHTIG - Position-Anzeige:
• In der Position-Spalte wird "TREIBSTOFF ZUSCHLAG" als "DIESEL" angezeigt
• Die interne Validierungslogik sucht weiterhin nach "TREIBSTOFF ZUSCHLAG"
• Nur die Anzeige im Frontend wird angepasst
📐 Berechnungsbeispiele (2025):
Fracht: €200,00
Datum: 15.02.2025 (Q1) → 7,0% → €14,00
Datum: 15.05.2025 (Q2) → 9,0% → €18,00
Datum: 15.08.2025 (Q3) → 8,0% → €16,00
Datum: 15.11.2025 (Q4) → 7,0% → €14,00

✨ Validierungsbeispiel:
Rechnung vom 14.07.2025 (Q3):
• Erwarteter Satz: 8,0% (Q3/2025)
• Rechnung zeigt: "TREIBSTOFF ZUSCHLAG (8,00 %)" ✅
Position-Spalte zeigt: "DIESEL" (Display-Name)
✓ Prozentsatz korrekt: 8.0% (Q3/2025)

Fehlerfall:
• Rechnung zeigt: "TREIBSTOFF ZUSCHLAG (7,00 %)" ❌
Position-Spalte zeigt: "DIESEL" (Display-Name)
⚠️ PROZENTSATZ-FEHLER: Rechnung zeigt 7.0%, aber Q3/2025 erfordert 8.0%
🆕 Avisierung der Zustellung (Standortbasiert)
Festtarif
Standortabhängig
Intelligente Berechnung: Benachrichtigungsdienst für Empfänger vor Zustellung mit standortabhängiger Tarifierung
Neu-Isenburg (PLZ 63263): €5,00
Alle anderen Standorte: €10,00

Regellogik:
• Automatische Erkennung der Ziel-Postleitzahl
• Reduzierter Tarif für Anlieferungen nach Neu-Isenburg
• Standardtarif für alle anderen Lieferadressen
📐 Berechnungsbeispiele:
Nach Neu-Isenburg (63263): €5,00 (Sondertarif)
Nach Berlin (10115): €10,00 (Standard)
Nach München (80331): €10,00 (Standard)
🆕 Gitterboxtausch (Einheiten-basiert)
Pro Einheit
NEU - V5.0
Intelligente Berechnung: Austausch von Gitterboxpaletten basierend auf Anzahl
Preis pro Einheit: €12,50
Einheitencode: SK (Gitterbox)

Regellogik:
• Parsing von "MIXED = 1SK, 4PLE, 2CO"
• Extraktion der SK-Anzahl
• Berechnung: Anzahl × €12,50
📐 Berechnungsbeispiele:
1 SK → 1 × €12,50 = €12,50
3 SK → 3 × €12,50 = €37,50
🆕 JOST EF Tariff-Validierung
Automatischer Abgleich gegen JOST EF DHL Tarifmatrix mit 531 Routen
Vollständige Tarifprüfung aktiviert
Alle Frachtkosten werden automatisch gegen die JOST EF DHL Tarifmatrix validiert. Das System erkennt automatisch Inbound/Outbound-Routen und wendet intelligente Fallback-Logik an.
Tarifmatrix-Struktur:
📦 176 Inbound-Routen (zu Erfurt 99xxx)
🚚 354 Outbound-Routen (von Erfurt 99xxx)
⚖️ 24 Gewichtsklassen (100 kg bis 20.000 kg)
🚛 FTL-Tarife (> 20.000 kg Pauschalpreis)
💶 Mindestpreise pro Route
🔍 Routen-Matching-Logik (mit Fallback):
1. Exakte PLZ-Zuordnung: DE91-DE99 (Ansbach → Erfurt)
2. Ziel-Wildcard: DE91-DE99 (alle Erfurt-PLZ)
3. Ursprungs-Wildcard: DE99-DE99 (alle → spezifisch)
4. Doppel-Wildcard: DE99-DE99 (alle → alle)
5. Nachbarregionen: DE97/98-DE99 (±1, ±2 PLZ-Bereiche)

💡 Fallback zu Nachbarregionen wenn keine exakte Route existiert
Tarifberechnung:
Gewichtsklasse finden:
  → Frachtpflichtiges Gewicht in Bracket einordnen
  → Beispiel: 1.172 kg → Bracket "1250 kg"

Tarif berechnen:
  → Gewicht × Rate/kg = Berechneter Preis
  → MAX(Berechnet, Mindestpreis) = Endpreis

FTL-Sonderfall (> 20.000 kg):
  → Direkter Pauschalpreis (keine Rate/kg)
📐 Berechnungsbeispiel (Route DE94-DE99):
Gewicht: 1.172 kg
Bracket: ≤1250 kg
Rate: 0,130 €/kg
Berechnet: 1.172 × 0,130 = 152,36 EUR
Minimum: 89,00 EUR
Endpreis: MAX(152,36, 89,00) = 152,36 EUR
Richtungs-Erkennung:
Inbound (zu Erfurt):
  ✓ Ziel-PLZ beginnt mit 990 oder 991
  ✓ Beispiel: Aldersbach (94501) → Erfurt (99098)

Outbound (von Erfurt):
  ✓ Ursprungs-PLZ beginnt mit 990 oder 991
  ✓ UND Ziel-PLZ ist NICHT 990/991
  ✓ Beispiel: Erfurt (99098) → München (80331)
Abweichungen interpretieren
Frachtkosten-Abweichungen sind KEINE Systemfehler, sondern echte Preisunterschiede zwischen:
  • DHL-Rechnungsbeträgen
  • JOST EF Vertragskonditionen
Diese Abweichungen sollten mit DHL geklärt werden (Sonderleistungen, Volumen-basierte Preise, andere Service-Level, etc.)
🆕 Stückgut-Validierung (EC)
Produktcodes: ECI, ECD
Automatische Prüfung
Alle Sendungen mit EC-Produktcodes werden automatisch auf Vollständigkeit geprüft.
Prüfkriterien:
KEP-Nummer vorhanden (numerisch, 6+ Stellen)
   → Kurier-Express-Paket Referenznummer
   → Format-Prüfung: nur Zahlen erlaubt

ℹ️ Lieferschein wird NICHT geprüft
   → Kann alphanumerisch sein (z.B. "LS14777")
   → Wird nur zur Information angezeigt

Gewichtsprüfung
   → Ist-Gewicht = Frachtpflichtiges Gewicht
   → Ausnahme: Preisminimum (Fracht < €40)
🔍 Validierungslogik:
Normal: KEP (numerisch) ✓ UND Gewicht ✓
Preisminimum: KEP (numerisch) ✓
(Gewichtsabweichung wird ignoriert)
(Lieferschein wird nicht geprüft)
🆕 LTL/FTL-Validierung (EL)
Produktcodes: ELI, ELD, ELE
Intelligente Schwellenwert-Prüfung
Lademeter-Anforderungen werden nur ab bestimmten Gewichts- ODER Lademeter-Schwellen geprüft.
Produktspezifische Schwellenwerte:
ELD/ELE (LTL Deutschland):
  ≥ 3000 kg ODER ≥ 3,2 ldm

ELI (LTL Europa):
  ≥ 2500 kg ODER ≥ 2,0 ldm

FTL-Schwelle:
  ≥ 13,0 ldm = Kompletter LKW
📐 Frachtpflichtiges Gewicht:
MAX(Ist-Gewicht, LDM × 1500 kg)

Beispiel:
3500 kg ist, 9,6 ldm
→ MAX(3500, 14.400) = 14.400 kg
⚠️ KRITISCHE GESCHÄFTSREGEL: Gewichtsverwendung für Frachtberechnung
DHL verwendet IMMER das frachtpflichtige Gewicht (chargeable weight) für die Frachtberechnung - sowohl bei LTL als auch bei FTL Sendungen.

Die 13,0 ldm Schwelle bestimmt NUR die Preisstruktur:
  • LTL (< 13 ldm): Preis pro kg (Rate × Frachtpflichtiges Gewicht)
  • FTL (≥ 13 ldm): Pauschalpreis (Flat Rate)
FALSCH: "LTL verwendet Ist-Gewicht, FTL verwendet frachtpflichtiges Gewicht"
RICHTIG: "BEIDE verwenden frachtpflichtiges Gewicht. LTL = Rate/kg, FTL = Pauschalpreis"

Berechnungsbeispiele:
LTL (7 ldm): MAX(6.500 kg, 10.500 kg) = 10.500 kg × 0,040 €/kg = 420 EUR
FTL (13,6 ldm): MAX(20.000 kg, 20.400 kg) = 20.400 kg → FTL Pauschalpreis 639 EUR
🆕 Erweiterte Daten-Extraktion
10+ neue Datenfelder für kontextabhängige Validierung
Datenfeld Verwendung Parsing-Muster
origin_country MAUT-Berechnung (Ursprungsland für DE→DE Check) DE, AT, CZ, HU, etc.
destination_country MAUT-Berechnung (Zielland für DE→DE Check) DE, AT, CZ, HU, etc.
pickup_date Zeitbasierte Zuschläge (Treibstoff) DD/MM/YYYY Format
product_code Validierungstyp (EC vs EL) ECI, ECD, ELI, ELD, ELE
kep_nummer Stückgut-Validierung (EC) 6+ stellige Referenznummer
lieferschein Stückgut-Validierung (EC) 6+ stellige Lieferscheinnr.
loading_meters_ldm LTL/FTL Frachtgewicht-Berechnung ldm, km, Idm (OCR-Varianten)
transport_order LTL/FTL-Validierung (EL) (Transport-Auftrag optional) 6+ stellige Transportnummer
chargeable_weight_kg Frachtpflichtiges Gewicht Berechnet: MAX(ist, ldm×1500)
packaging_info Einheiten-Zuschläge (Gitterbox) MIXED = 1SK, 4PLE, 2CO
weight_kg Ist-Gewicht der Sendung kg-Format mit Dezimalstellen
Validierungsprozess-Ablauf (Erweitert)
Vollständige Schritt-für-Schritt Rechnungsverifizierung
Schritt Validierungsprüfung Geschäftsregel Status
1.1 Zeilensummierung Summe aller Detailpositionen = Rechnungs-Nettobetrag (Cent-Arithmetik) Kritisch
1.2 Gesamtbetrag-Verifizierung Nettobetrag + MwSt. = Rechnungs-Gesamtbetrag (Cent-Arithmetik) Kritisch
2.1 MwSt.-Satz-Verifizierung MwSt.-Berechnung mit 19,0% Satz (nur TAX-Basis, Cent-Arithmetik) Kritisch
2.5 JOST EF Tarif-Validierung Automatischer Abgleich gegen Tarifmatrix (531 Routen, 24 Gewichtsklassen) NEU - V5.0
3.1 Frachtkosten-Referenz OCR-Betrag als Basis für Zuschlagsberechnungen Referenz
3.2 MAUT (Ursprungs- & Zielland) 5,92% (DE→DE) oder 3,0% (grenzüberschreitend) × Fracht NEU
3.3 Treibstoff (Quartalsbasiert) 7,0%-9,0% × Fracht (Q1:7%, Q2:9%, Q3:8%, Q4:7% für 2025) NEU
3.4 Gitterbox (Einheiten) Anzahl SK × €12,50 NEU
3.5 Avisierung (Standortbasiert) €5,00 (Neu-Isenburg 63263) oder €10,00 (Standard) NEU
4.1 Stückgut-Prüfung (EC) KEP (numerisch) + Gewicht (außer Preisminimum) - Lieferschein nur Info AKTUALISIERT
4.2 LTL/FTL-Prüfung (EL) Schwellenwert → Lademeter erforderlich (Transport-Auftrag optional) NEU
4.3 Frachtpfl. Gewicht (EL) MAX(Ist-Gewicht, Lademeter × 1500 kg/ldm) NEU
🚦 Validierungsstatus-Kategorien (Ampel-System)
4-stufiges Klassifikationssystem für Validierungsergebnisse
Intelligente Abweichungsanalyse
Das System kategorisiert automatisch jede Rechnungsposition in eine von vier Status-Kategorien, basierend auf der Richtung und dem Kontext der Abweichung. Dies ermöglicht eine präzise Priorisierung der erforderlichen Maßnahmen.
Status Bedeutung Beispiel (DHL-spezifisch) Erforderliche Maßnahme
OK Keine Abweichung
Berechneter = Ausgewiesener Betrag
MAUT Inland:
Ausgewiesen: €11,84
Berechnet: €11,84
→ Abweichung: €0,00
Keine Aktion erforderlich
Position ist korrekt abgerechnet
VORTEIL Vorteilhafte Abweichung
Sie zahlen WENIGER als erwartet
Treibstoff-Zuschlag:
Ausgewiesen: €14,00
Berechnet: €16,00
→ Abweichung: -€2,00 (zu Ihren Gunsten)
ℹ️ Optional dokumentieren
Vorteilhafte Differenz, keine Reklamation nötig
ABWEICHUNG Nachteilige Abweichung
Sie zahlen MEHR als erwartet
JOST EF Tarif:
Ausgewiesen: €160,00
JOST EF Vertrag: €152,36
→ Abweichung: +€7,64 (zu Ihren Lasten)
⚠️ REKLAMATION ERFORDERLICH
1. Differenz mit DHL klären
2. Gutschrift anfordern
3. Vertragskonditionen prüfen
PRÜFEN Manuelle Prüfung erforderlich
Kontext-abhängige Validierung
Beispiel 1 - EXPRESSZUSTELLUNG:
Zuschlag: €35,00
→ Betrag korrekt, aber war Express-Service vereinbart?

Beispiel 2 - Fehlende Route:
AT1020 → DE99098
→ Keine Tarifmatrix-Regel, könnte Sonderfahrt sein

Beispiel 3 - Stückgut (EC):
KEP-Nummer fehlt oder Gewichtsabweichung
→ Sendungsdaten unvollständig
🔍 MANUELLE ÜBERPRÜFUNG
1. Buchung/PO gegen Rechnung abgleichen
2. Service-Level verifizieren
3. Sondervereinbarungen prüfen
4. Fehlende Daten ergänzen
📊 Dashboard-Statistiken Interpretation:
Beispiel Dashboard-Anzeige:
• Positionen: 28
• Abweichung: €15,47

Detail-Aufschlüsselung (möglich):
• 20 × OK (71%)
• 3 × VORTEIL (-€12,30)
• 4 × ABWEICHUNG (+€27,77)
• 1 × PRÜFEN (Express-Service)

Netto-Abweichung: €27,77 - €12,30 = +€15,47 (zu Ihren Lasten)

💡 Die Gesamt-Abweichung zeigt die Differenz zwischen allen vorteilhaften und nachteiligen Abweichungen.
Implementierungsreferenz (Code)
Die Status-Logik ist in der Dashboard-Datei [`JOST_invoice_validator_DHL.html`](JOST_invoice_validator_DHL.html:2940-2956) in der Funktion [`createValidationRow()`](JOST_invoice_validator_DHL.html:2940) implementiert. Die Kategorisierung erfolgt automatisch basierend auf:

1. Manuelle Prüfung erforderlich:
  • EXPRESSZUSTELLUNG-Zuschläge (immer PRÜFEN)
  • Fehlende Tarif-Routen (könnte Sonderfahrt sein)
  • Unvollständige Sendungsdaten (EC/EL-Validierung)

2. Abweichungsrichtung (Cent-Präzision):
  • deviationCents = 0 → OK
  • deviationCents < 0 → VORTEIL (Sie zahlen weniger)
  • deviationCents > 0 → ABWEICHUNG (Sie zahlen mehr)

Die Dashboard-Statistiken werden in [`performValidation()`](JOST_invoice_validator_DHL.html:2764) berechnet und kategorisieren alle Positionen entsprechend.
Globale Richtlinien
Systemweite Validierungseinstellungen
19,0%
MwSt.-Satz
4
Zuschlagsarten
2
Produkttypen
10+
Datenfelder
🆕 Präzise Finanzmathematik V5.0
Das System verwendet cent-basierte Ganzzahlarithmetik für alle Berechnungen, um Rundungsfehler vollständig zu eliminieren. Alle Beträge werden in Cent umgerechnet (Integer), berechnet und erst am Ende wieder in Euro konvertiert.
Berechnungsmethoden
Präzise Finanzmathematik-Funktionen
// Euro zu Cent Konvertierung (Integer) function eurosToCents(euros) { return Math.round(euros * 100); } // Prozentuale Berechnung in Cent function calculatePercentageInCents(baseCents, pct) { return Math.round(baseCents * pct); } // Beispiel: 5,92% MAUT Inland const freightCents = eurosToCents(200.00); // 20000 const mautCents = calculatePercentageInCents( freightCents, 0.0592 ); // 1184 const maut = centsToEuros(mautCents); // 11.84€
Leistungskennzahlen
Echtzeit-Validierungsstatistiken
< 15s
Verarbeitungszeit
100%
Genauigkeit
0,00€
Rundungsfehler
.pdf, .txt
Eingabeformate
Qualitätssicherung V5.0
Alle Validierungsregeln basieren auf den offiziellen DHL-Tarifen und JOST-Geschäftslogik. Die cent-basierte Arithmetik eliminiert Rundungsfehler vollständig. Alle Produkttypen (Stückgut EC, LTL/FTL EL) werden automatisch erkannt und validiert.
Erweiteter Datenfluss
Von der Rechnungseingabe bis zur vollständigen Validierung
Schritt Komponente Funktion Ausgabe
1 Datei-Upload Benutzer lädt .pdf oder .txt Datei hoch Rohe Textdaten (Originalstruktur via LLM/KI erhalten)
2 parseDHLInvoice() Regex-basierte Extraktion (10+ Felder) Strukturiertes Invoice-Objekt
3a Ursprungs- & Zielland-Erkennung Multi-Pattern Parsing (DE, AT, CZ, etc.) origin_country, destination_country
3b Produktcode-Erkennung ECI, ECD, ELI, ELD, ELE Extraktion product_code
3c LDM-Extraktion Lademeter (ldm/Idm/1dm) mit OCR-Varianten loading_meters_ldm
4 performValidation() Summierung & MwSt. mit Cent-Arithmetik Audit-Log Einträge
5a calculateSurcharge() Kontextabhängige Zuschlagsberechnung Erwartete vs. tatsächliche Beträge
5b Stückgut-Validierung EC-Code: KEP + Lieferschein + Gewicht Validierungsstatus
5c LTL/FTL-Validierung EL-Code: Schwelle → LDM + Transport-Nr. Validierungsstatus + Gewicht
6 createValidationRow() Vergleich & Abweichungsberechnung HTML-Tabellenzeile mit Status
7 Dashboard-Update Visualisierung der Ergebnisse Interaktives Dashboard mit Charts