# PGS 15:2025 Compliance Audit β€” PGS15 Scanner Webapp **Datum:** 15 mei 2026 **Auditor:** Kas (Director of Operations) **Referentie:** PGS_15_2025_versie_1.0_januari_2025.pdf --- ## Samenvatting | Status | Aantal | |--------|--------| | βœ… Correct | 28 | | ❌ Gevonden & gefixt | 4 | | πŸ”§ Aanbevolen | 0 | **Conclusie: Scanner is PGS 15:2025 compliant.** --- ## 1. Tabel 2 β€” Ondergrenzen | ADR-klasse | VG | Officieel (kg) | Scanner (v9) | Status | |------------|-----|----------------|--------------|--------| | Alle | I | 1 | 1 | βœ… | | CMR | n.v.t. | 25 | 25 | βœ… | | Acute Tox 1 | n.v.t. | 1 | 1 | βœ… | | 2 (spuitbussen) | n.v.t. | 50 | 50 | βœ… | | 2.1 (gasflessen) | n.v.t. | 125 l | 125 l | βœ… | | 2.3 (giftige gassen) | n.v.t. | 25 l | 25 l | βœ… | | 3 | I | 5 | 5 | βœ… | | 3 | II | **25** | **25** | βœ… (was 250) | | 3 | III | **50** | **50** | βœ… (was 1000) | | 4.1, 4.2, 4.3 | II | 50 | 50 | βœ… | | 4.1, 4.2, 4.3 | III | 50 | 50 | βœ… | | 5.1 | I | 5 | 5 | βœ… | | 5.1 | II | **50** | **50** | βœ… (was 250) | | 5.1 | III | **50** | **50** | βœ… (was 1000) | | 5.2 | n.v.t. | 30 | 30 | βœ… | | 6.1 | I | 5 | 5 | βœ… | | 6.1 | II | **50** | **50** | βœ… (was 250) | | 6.1 | III | **50** | **50** | βœ… (was 1000) | | 6.2 (I1/I2) | n.v.t. | 0 | 0 | βœ… | | 6.2 (overig) | n.v.t. | 50 | 50 | βœ… | | 8 | I | 250 | 250 | βœ… | | 8 | II | 250 | 250 | βœ… | | 8 | III | **250** | **250** | βœ… (was 1000) | | 9 | alle | 250 | 250 | βœ… | --- ## 2. Tabel 6 β€” Niveaudrempels Alle C, B, A drempels zijn correct geΓ―mplementeerd in ADR_TABLE_6 en NIVEAUS. ### Voetnoot c (onbrandbaar ADR 8/9) - **Correct:** Alleen ADR 8 en 9 VG II/III β†’ Basisveiligheid bij < 10.000 kg - **Bug gefixt:** ADR 6.1 was incorrect opgenomen in de voetnoot c check - **Impact:** Sodium metavanadate (ADR 6.1, 50 kg) werd als "Basis" geclassificeerd in plaats van "C" --- ## 3. Aggregatieregels - βœ… Stoffen worden per ADR-klasse geaggregeerd - βœ… Catch-all regel (>1.000 kg totaal) werkt correct - βœ… Strengste niveau wint - βœ… Per-klasse totalen worden correct berekend --- ## 4. CMR Route - βœ… Ondergrens: 25 kg (PGS 15:2025) - βœ… CMR 1A/1B vs CMR 2 onderscheid - βœ… CMR route is complementair aan ADR route --- ## 5. Gefixte Bugs ### Bug 1: ADR 3 VG II/III ondergrensen - **Bestanden:** rules_engine_v3.py, rules_engine.py, app.py - **Fix:** VG II: 250β†’25 kg, VG III: 1000β†’50 kg ### Bug 2: ADR 8 VG III ondergrens - **Bestanden:** rules_engine_v3.py, rules_engine.py, app.py - **Fix:** VG III: 1000β†’250 kg ### Bug 3: Voetnoot c op ADR 6.1 - **Bestand:** rules_engine_v3.py - **Fix:** `if adr in ("8", "9", "6.1")` β†’ `if adr in ("8", "9")` ### Bug 4: ADR 5.1 en 6.1 ondergrensen (eerder gefixt) - **Bestanden:** rules_engine_v3.py, rules_engine.py, app.py - **Fix:** ADR 5.1 VG II/III: 250/1000β†’50 kg, ADR 6.1 VG II/III: 250/1000β†’50 kg --- ## 6. Testresultaat **Phoenix Metals β€” 18 stoffen β€” 10/10 assertions PASS βœ…** | Stof | ADR | Hoeveelheid | Verwacht | Gemeten | Status | |------|-----|-------------|----------|---------|--------| | H2SO4 | 8 VG II | 6000 kg | Basis | Basis | βœ… | | HCl | 8 VG II | 3500 kg | Basis | Basis | βœ… | | H2O2 | 5.1 VG II | 150 kg | C | C | βœ… | | Na persulfate | 5.1 VG III | 150 kg | C | C | βœ… | | Na metavanadate | 6.1 VG III | 50 kg | C | C | βœ… | | V2O5 | 6.1 VG III | 12 kg | Buiten scope | Buiten scope | βœ… | | Na aluminate | 8 VG III | 20 kg | Buiten scope | Buiten scope | βœ… | | V electrolyte | 8 VG II | 200 kg | Buiten scope | Buiten scope | βœ… | --- ## 7. Aanbevelingen 1. **Periodieke toetsing:** Herhaal de PGS 15 toetsing bij wijzigingen in opslaghoeveelheden 2. **Frontend verificatie:** Controleer dat de webapp frontend de correcte waarden toont 3. **Documentatie:** Update de gebruikershandleiding met de nieuwe PGS 15:2025 waarden --- **Status: βœ… SCANNER IS PGS 15:2025 COMPLIANT**