debt_optimizer.core.balance_updater module
Balance updater for syncing Quicken database balances with Excel workbook.
Reads account balances from Quicken SQLite database and updates corresponding entries in the Excel template using fuzzy matching.
- exception debt_optimizer.core.balance_updater.BalanceUpdaterError[source]
Bases:
ExceptionBase exception for balance updater errors.
- class debt_optimizer.core.balance_updater.BalanceUpdater(db_path, fuzzy_threshold=80, bank_account_name='PECU Checking', auto_backup=True)[source]
Bases:
objectUpdates Excel workbook balances from Quicken database.
- __init__(db_path, fuzzy_threshold=80, bank_account_name='PECU Checking', auto_backup=True)[source]
Initialize balance updater.
- connect_db()[source]
Connect to Quicken database in read-only mode.
- Return type:
- Returns:
SQLite connection
- load_quicken_balances()[source]
Load account balances from Quicken database.
Calculates balance as Quicken register shows it: - Prioritizes register balance (sum of all transactions dated today or earlier) - Falls back to ZONLINEBANKINGLEDGERBALANCEAMOUNT if no transactions exist - Includes ALL transactions (reconciled, cleared, and uncleared) dated today or earlier - Excludes only future-dated transactions
This matches Quicken’s register balance which includes all transaction statuses dated on or before today. Uses Apple Cocoa timestamp format (seconds since 2001-01-01).
- Returns:
E501
- Return type:
Tuple of (accounts_by_name, credit_card_names, checking_names, savings_names) # noqa
- update_debts_sheet(ws, accounts_by_name, credit_card_names)[source]
Update debt balances in Debts sheet.
- update_settings_sheet(ws, accounts_by_name, checking_names)[source]
Update current bank balance in Settings sheet.
- update_workbook(xlsx_path, interactive=True)[source]
Update Excel workbook with balances from Quicken database.
- Parameters:
- Return type:
- Returns:
Dictionary with update summary
- Raises:
FileNotFoundError – If workbook doesn’t exist
BalanceUpdaterError – If update fails