⚓ v2.0.0 — Audit & Legal-Accuracy Edition
The entire legal engine was independently audited (Aug 2026) against current Greek
legislation and corrected. The app now reproduces the official e-EFKA circular's
worked example exactly and follows the letter of ν. 4670/2020.
🔧 Legal corrections
- Days → years: default now ÷300 insurance days (e-EFKA circular Φ80000/οικ.10572/223/2018: 5,700 synthetic days = 19 years) for the pension amount and general requirements; ÷360 NAT year for the special-regime vesting. (was 365.25 — understated time by ~18%)
- Replacement rates: official marginal bands of ν. 4670/2020 Table 2 (0.77/0.84/0.90/0.96/1.03/1.21/1.98/2.50/2.55/0.50 %/yr → 11.55% @15Y … 50.01% @40y) (wrong anchors 16.09/21.06 and straight-line interpolation removed)
- Fictional path removed: "full pension at 55 with 40 sea-years" does not exist → replaced with the real full at 62 + 40 years (12,000 days)
- Added the no-age-limit path: ≥ 7,920 weighted real days (π.δ. 913/1978 art. 14 divisors ÷1 / ÷1.05 / ÷1.10 / ÷1.20)
- Leave credit now counts for vesting (π.δ. 913/1978) at the official per-era rates (8 d/m ≤2001, 4.83/4.91 for 2002/03, 5 d/m from 2004)
- Projection uses the user's actual average vessel coefficient; national-pension reduction clamped at the 15-year floor
- Tax 2026: 9/20/26/34/39/44 brackets with the €777 art.16-KFE reduction tapered above €12,000
✨ Ease of use
- 🧪 Demo button — one click loads a full example seafarer and calculates
- Per-era automatic leave credit (no manual rate lookups)
- Overlap guard — warns when contract periods overlap another vessel
- Enter adds a contract; Calculate button directly on the Contracts tab
🛠 Bug fixes
- Selecting a contract no longer silently overwrites its stored leave days
- Settings values no longer go stale after New/Open profile (silent re-save fixed)
- Language toggle no longer blocks on an invalid date dialog
✅ Validation
- 30 automated tests passing (was 20)
- Official circular example reproduced exactly (5,700 days → 19.00 yrs → 14.97%)
- Full GUI end-to-end run verified under Xvfb (dummy 3-contract career → €1,383.68 gross / €1,191.94 net)
⚠ Results are indicative. Official recognition of service and pension awards rest exclusively with e-EFKA / NAT.
📖 Full audit: AUDIT_REPORT.pdf/.md attached below, and in the repo at docs/AUDIT_REPORT.md.
🌐 New in v2.0.0: the whole app as ONE HTML file
SeaPensionPro.html (attached below) — a complete, parity-tested JavaScript port of the audited engine (same numbers to the cent as the Python version). Open it in any browser — no install, no Python, no .exe; works offline and on mobile. Also hosted at https://mylittlestories.github.io/SeaPensionPro/app.html
ℹ️ The experimental cross-compiled Windows
.exewas withdrawn after error reports on real Windows machines. For a native desktop build useBuild_EXE.batin the repo (one double-click, needs Python once) — or simply use the HTML app.
⚠ The
SeaPensionPro.exein the old v1.0.0 release contains the superseded legal engine — use v2.0.0+.