Refi Calculator Package.
Project description
Refi-Calculator
Refi-Calculator helps borrowers analyze whether refinancing makes sense by comparing current and proposed loan terms through breakeven, NPV, amortization, and holding-period views inside a Tkinter GUI.
Features
- Side-by-side analysis of current vs. proposed mortgage payments (nominal and after-tax)
- Breakeven and holding-period tables with clear recommendations
- Accelerated payoff planning for maintaining current payment levels
- Visual amortization comparisons plus cumulative savings (nominal/NPV) chart
- Exportable CSV data for every tab
Getting Started
Requirements
- Python 3.13+
- Poetry for dependency management (the virtual environment lives in
.venv/)
Installation
poetry install
This command creates the virtual environment, installs dependencies, and prepares the hooks defined
in .pre-commit-config.yaml.
Running the GUI
poetry run python bin/refi-calculator.py
The script boots the Tkinter application (src/refi_calculator/ui/app.py) that ties together all the
analysis helpers.
Testing & Quality
poetry run pre-commit run --all-files(runs formatting, linting, safety hooks, etc.)poetry run pytest(not yet populated, but ready for future tests)
Add new tests under tests/ following the test_*.py pattern whenever you enhance functionality.
Code Structure
src/refi_calculator/models.py: Dataclasses forLoanParamsandRefinanceAnalysis.src/refi_calculator/calculations.py: All refinance math helpers (NPV, amortization, sensitivity, etc.).src/refi_calculator/ui/: Tkinter GUI composed of:app.py: The main application wiring.chart.py: Custom savings chart canvas.builders/: Tab-specific builders and helpers for clean separation of UI concerns.
bin/refi-calculator.py: Entry point that runs the GUI.
Contributing
- Keep imports grouped by functionality (allow isort to do the heavy lifting through pre-commit).
- Update or add tests in
tests/before opening a pull request. - Run
poetry run pre-commit run --all-filesto catch formatting/lint issues early.
License
See LICENSE.txt for licensing details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file refi_calculator-0.1.0.tar.gz.
File metadata
- Download URL: refi_calculator-0.1.0.tar.gz
- Upload date:
- Size: 31.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
790b6bb490a5fb674f0fef770330bbcd71dff15ccddb208f676ee06fe0192095
|
|
| MD5 |
3e8d7988db6a034ded178dfb8b8a6b97
|
|
| BLAKE2b-256 |
a8f105ac0d65365efd64f31a1d0922160019355665998cb8b1b9a1eaa22fc0c4
|
File details
Details for the file refi_calculator-0.1.0-py3-none-any.whl.
File metadata
- Download URL: refi_calculator-0.1.0-py3-none-any.whl
- Upload date:
- Size: 35.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1678724f6dc4d4d26a4854dac3803cf6e6a0555f127d8d4da775fa8f3221c49
|
|
| MD5 |
b1d66aef295ecccf8c3d6c6e48dcbdf3
|
|
| BLAKE2b-256 |
e9375c2a5b724a851e024895cfff46d644fcb522649ff1ab87ea5d502b93e7ff
|