A fully local, browser-only simulator for estimating IMI savings when submitting Modelo 1 do IMI, using a Caderneta Predial Urbana (PDF). No backend, no telemetry, and no external APIs.
- 100% client-side (HTML/CSS/Vanilla JS)
- PDF parsing with a local PDF.js build (no CDN)
- Best-effort extraction + manual overrides
- Implements CIMI rules for VPT (round-up to next €10)
- Scenarios for baseline vs. Modelo 1 in current/next year
python -m http.serverThen open: http://localhost:8000
Upload your Caderneta Predial Urbana PDF and review the parsed values.
- VPT formula:
Vt = Vc × A × Ca × Cl × Cq × Cv - VPT rounding: always round up to the next €10
- Vc (2025/2026):
valor médio de construção × 1.25 - Cv: based on building age at submission year
- Cq:
1 + majoratives − minoratives(Art. 43.º CIMI, Tabela I), clamped to[0.5, 1.7] - A: computed from Aa/Ab with Caj tiers per CIMI
Use SIGIMI to confirm Cl: https://zonamentopf.portaldasfinancas.gov.pt/simulador/default.jsp
- The PDF never leaves the browser
- No network calls once loaded
- No analytics or tracking
- Do not commit personal PDFs to the repo
index.htmlstyle.cssapp.jslibs/pdf.min.mjslibs/pdf.worker.min.mjs
- No backend, no data persistence
- Runs fully offline after first load
- All dependencies are bundled locally
MIT License (see LICENSE).
- PDF.js (Apache-2.0) — bundled locally in
libs/