Skip to main content

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 for LoanParams and RefinanceAnalysis.
  • 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-files to catch formatting/lint issues early.

License

See LICENSE.txt for licensing details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

refi_calculator-0.1.0.tar.gz (31.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

refi_calculator-0.1.0-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

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

Hashes for refi_calculator-0.1.0.tar.gz
Algorithm Hash digest
SHA256 790b6bb490a5fb674f0fef770330bbcd71dff15ccddb208f676ee06fe0192095
MD5 3e8d7988db6a034ded178dfb8b8a6b97
BLAKE2b-256 a8f105ac0d65365efd64f31a1d0922160019355665998cb8b1b9a1eaa22fc0c4

See more details on using hashes here.

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

Hashes for refi_calculator-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c1678724f6dc4d4d26a4854dac3803cf6e6a0555f127d8d4da775fa8f3221c49
MD5 b1d66aef295ecccf8c3d6c6e48dcbdf3
BLAKE2b-256 e9375c2a5b724a851e024895cfff46d644fcb522649ff1ab87ea5d502b93e7ff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page