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
  • Live market tab (when FRED_API_KEY is configured) surfaces historical 30-year fixed rates and pre-fills the refinance rate so you start with a realistic benchmark.
  • Interactive history chart in the Market tab plus the value table below it with 30Y/15Y toggles for quick comparisons.

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)

Market Data Tab

  • Set the FRED_API_KEY environment variable to pull historical 30-year fixed-rate data when you launch the app. The Market tab will populate a refreshable table and update the default refinance rate using the latest observation. If the key is missing or the FRED request fails, the tab keeps working but reports the reason for the skip.
  • Use the selectors inside the Market section to start with one year of history or extend the view to two years, five years, or all available data. The chart overlays both tenors with a legend, and the table below shows one column per tenor for the selected time window.

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.2.0.tar.gz (37.2 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.2.0-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

File details

Details for the file refi_calculator-0.2.0.tar.gz.

File metadata

  • Download URL: refi_calculator-0.2.0.tar.gz
  • Upload date:
  • Size: 37.2 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.2.0.tar.gz
Algorithm Hash digest
SHA256 203b91621a35bcf0419f7585d8f8935029dc9ecb841a3b2c69b4161ec77a7f07
MD5 30b5ed44b8515800b0051fad8b1ebd1a
BLAKE2b-256 9e89e93ee6d8a5763121e7e58d879a4d9b42cb815472fbc4ef6b7e27198c5d3f

See more details on using hashes here.

File details

Details for the file refi_calculator-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: refi_calculator-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 42.9 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83e9bffcf2ddc36f0b357e97c00cf9d496b760646c6bc40d0b8739f8154c4f49
MD5 842f94b98a92b79c062c1e3e2acbbf18
BLAKE2b-256 00ff277791627ccc2081df935db9d1991e6192b867460905a9ecf7c206c7eaee

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