Skip to content

Add and Manage Bills

Bills are recurring definitions used by Tracker, Calendar, Summary, Analytics, Snowball, and transaction matching.

This page is the reference for everything the Bills page exposes: the fields on a bill, how to override a single month without breaking the recurring definition, how debt and autopay are tracked, and how transactions get matched to bills.

What fields does a bill have?

Field Purpose
Name, category, notes Identification and organization
Expected amount Normal amount due
Due day Day of month used for due-date and bucket calculations
Billing cycle Monthly, weekly, biweekly, quarterly, or annual recurrence
Active state Controls whether a bill appears in current planning
History visibility Controls historical display for inactive bills
Autopay Tracks pending, assumed-paid, and confirmed autopay state, plus a autopay_verified_at timestamp
Subscription Marks recurring services, links the bill to a known subscription_catalog entry
Website, username, account info, 2FA Optional account-reference fields

How do I override a bill for one month?

Tracker can store a month-specific amount, skip state, snooze date, and notes without changing the recurring bill. These values live in monthly_bill_state.

How do I track a debt bill?

Add a current balance, APR, minimum payment, Snowball inclusion, and ordering when a bill represents debt. Those fields feed Snowball projections and amortization views. Interest accrues once per calendar month, not once per payment.

What does autopay trust mean?

Autopay is no longer a binary flag. The AP badge on each tracker row shows a confidence score derived from the last 12 months of payment history. A healthy bill renders ✓ 12/12 successful; a single recorded autopay failure flips the badge to amber with a count like ⚠ 11/12. A clock nudge appears when autopay has not been manually confirmed in over 90 days.

A dedicated autopay trust panel inside BillModal shows:

  • The full success rate
  • The most recent failure date and notes
  • The verification status
  • A Mark verified button that calls POST /api/bills/:id/verify-autopay and updates bills.autopay_verified_at in place

When editing a payment for an autopay-enabled bill, the PaymentModal exposes an "Autopay failed — paid manually" checkbox so past failures can be retroactively flagged.

How do I match a bank transaction to a bill?

SimpleFIN and imported transactions may be matched to bills. Merchant rules can persist a merchant-to-bill relationship and support payment backfill from matching transactions. Each rule has an Auto-fix toggle that reattributes late bank payments to the correct month without a popup.

The Data → Bank Sync page now includes an Auto-matched — review panel that lists every merchant-rule auto-match in the last 7 days. Each entry shows the payee, date, amount, and the bill it was matched to; an Undo button reverses the match, restores the bill balance, and reverts the transaction to unmatched. The panel appears only when there are reviewable items and refreshes automatically after each Sync Now or Backfill.

The unmatch flow on a linked transaction in BillModal opens a two-option dialog instead of removing the match immediately. The first option unmatch that payment only; the second opens a checklist of all linked transactions for the bill whose payee normalizes to the same prefix, with All/None quick-selects and an optional "Remove merchant rule" checkbox.

What happens when a manual and a bank payment overlap?

Manual payments entered from Tracker count immediately. When a matching bank-backed payment clears for the same bill cycle, the bank payment becomes the accounting source of truth. The manual payment is preserved as history with override metadata and a BillModal badge. Overridden manual payments are excluded from Tracker, Summary, Calendar, Analytics, Categories, starting amount summaries, drift checks, notifications, status counts, bank pending deductions, trends, overdue checks, and debt balance deltas. If the bank match is undone, the provisional manual payment is reactivated.

How do I deactivate or cancel a bill?

When deactivating a bill from the Bills page, the confirmation dialog includes an optional reason dropdown: Moved to spouse, Switched providers, Paid off, Cancelled, or Other. The selected reason is stored in bills.inactive_reason alongside bills.inactivated_at for later reporting.

How do I delete a bill?

Bills and categories support deletion and restore flows in the current app. Review linked payments and transaction matches before removing a bill.

Next steps