All docs

Budgeting Basics

Bill Reminders

Pay every bill on the optimal day — never early, never late — using an Overdue / Pay today / This week / Later queue, AI bill scanning, and auto-detected mark-paid.

Bills are the part of a budget that punishes you twice — late fees if you pay after the due date, and lost float if you pay too early. The Bills page borrows a corporate-finance idea (DPO — days payable outstanding) and applies it to your personal cash flow: pay every bill on the optimal day. Never early, never late.

What you'll see

The page puts every unpaid bill in the next 30 days into one of four groups:

  • Overdue (red) — the due date has passed and it isn't marked paid. The oldest is listed first, and each row says how late it is: "9 days overdue". An unpaid one-time bill stays here however old it gets. It only leaves the page when you mark it paid or delete it.
  • Pay today — not due yet, but the optimal send-payment day has arrived. Send the payment now so it clears by the due date.
  • This week — within the next seven days. Get ready.
  • Later — anything beyond seven days, up to 30. Plan ahead but don't act yet.

"Overdue" means one thing everywhere. The dashboard's Upcoming bills card and the Calendar's Unpaid bills tile use the same rule, so no screen can call a late bill "due today".

Each row shows the bill name, a source tag (Recurring / Annual / Debt / One-time), the actual due date, and the Pay on date — the due date minus your configured payment lead, weekend-shifted to the previous Friday so the payment clears by the due date.

Unpaid one-time bills also show up on the Calendar, on their due date, as a dashed chip with a small receipt mark. Tapping one opens the same editor you get here, so you can fix an amount or a date without leaving the month you're looking at — and the Calendar's forecast subtracts each of them from your projected balance on the day it's due, which is how an unpaid bill shows up as a dip rather than a surprise. A bill you've marked paid drops off the grid as a bill; it appears as the transaction it became.

Where the bills come from

The bucket view unifies four sources, so you don't have to maintain four separate lists:

  1. Recurring bills — anything that comes round every month on the same day.
  2. Annual Events with linked budget categories (see the Annual Events doc).
  3. Debt account minimums — every debt account with a minimum_payment and due_day shows up automatically.
  4. One-time bills you add manually for something that happens once — a medical bill, a contractor invoice, a one-time service charge.

A one-time bill never repeats. It has a single due date, appears once, and is gone once you mark it paid. If it comes round every month, you want a recurring bill instead. The one thing that can make a one-time bill look like it repeats: an unpaid one stays under Overdue indefinitely rather than ageing off the page, so it is the same bill waiting, not a new one each month.

Recurring bills

Tap Recurring bill at the top of the Bills page. A recurring bill needs a name, an amount and a day of the month; a category and a pay-on lead are optional. The ones you've added are listed in the Recurring bills section, which opens and closes, on the same page. Edit or delete one from there.

Several recurring bills can share one category, and that is the point. Keep a single Streaming category for your spending, and give Netflix, Spotify and Disney+ their own bills on the 5th, the 12th and the 20th. You get three nudges without splitting one budget bucket into three.

Two smaller things worth knowing:

  • Days past the 28th land on the last day of a shorter month. Pick 31 and February reminds you on the 28th or 29th. The form says so when you choose one.
  • Starts and Ends are optional. Set an end date when you cancel a subscription and the bill stops without erasing the months you already marked paid.

Editing a recurring bill changes every future occurrence and leaves settled months alone. Deleting one also clears the record of which months you marked it paid; your transactions are untouched.

A category's recurrence day is a different thing

Setting a recurrence day on a category schedules it for the cash-flow forecast — it tells the projection which day of the month that money moves. It does not create a bill reminder. Earlier versions of this page said it did, which was wrong. If you want a reminder, add a recurring bill.

Mark a bill paid

Tap Mark paid on any row once you've sent the payment. The row clears and won't show up again for that period.

A missed recurring bill drops off the list two weeks after its due date, because the next cycle replaces it. A one-time bill has no next cycle, so an unpaid one stays under Overdue until you deal with it — the same bill you see under Scheduled on its debt account's card.

You can also settle a cycle by linking the transaction that paid it, rather than marking it by hand — see Link a transaction to a bill below.

If you mark a bill paid by mistake, tap Undo (or Mark unpaid from the same row) — the bill returns to its bucket.

Recording the payment as a transaction

The mark-paid dialog offers Also record this as a transaction, with a category picker and the target budget month named in full. That month is the bill's due month, not the month you happen to be viewing — paying an August 1 mortgage on July 30 records to August.

Loan payments — mortgage, auto, RV, student, personal — are real spending, so they get this option and pre-select the category linked to that debt account. Credit-card payments don't: the purchases on the card are already tracked as individual transactions, so recording the statement payment too would double-count the same money. If you do want to move the money out of checking and drop the card's balance in one step, use Record a payment on the card in the Debt Tracker — it files the payment under a reserved excluded category, so it never double-counts. That form has a Bill reminder field: pick the reminder the payment goes toward and it's linked and marked paid once the payment covers it (a partial payment stays linked and leaves it open). And if you recorded the payment first, marking the reminder paid offers that payment to link — so the card counts it once whichever order you go in.

If a matching transaction already exists for that amount and month, BudgetLabs offers to link it instead of creating a duplicate. If the suggestion list doesn't have the right one, choose Just mark paid and link the correct transaction from the row's Payments panel instead (see below).

Link a transaction to a bill

Every bill row has a collapsed Payments section — open it to see, per due cycle, whether nothing's linked yet, the cycle is partially paid, or it's fully paid, along with any transactions already attached. Tap + Link a transaction to search your existing transactions by description or a wider date window and attach the right one — useful for a payment recorded before this feature existed, one that's a few dollars off from the plan, or a bill split across more than one payment. Link a second transaction toward the same cycle and the status updates against the running total instead of replacing the first link; unlinking one drops the status back down rather than staying stuck on "Fully paid."

This works the same way for annual events, debt-account minimums, and one-time bills — not just the mark-paid flow above. The Annual Events page uses the identical panel for renewal cycles.

You can also start from the other direction. On the Dashboard, every transaction row has a small link icon — tap it, search your bills and renewals, and pick the one that transaction paid. Handy when you're already looking at the transaction and don't want to go find the bill first.

Add a one-time bill — including the scan flow

Tap One-time bill at the top of the page to open Add one-time bill. On a phone the scan area reads Scan a bill or choose a file; on a computer it reads Scan or drop a bill. You can fill it in manually, or use the scan flow — the entire modal is a drop zone:

  • Camera (mobile) — tap the upload area to open the camera. Hold the paper bill flat and snap it.
  • File picker — choose an image or a PDF from disk.
  • Drag-and-drop email — drag a bill email straight from Outlook, Apple Mail, or Gmail onto the modal. .eml files, HTML drag payloads, and plain-text drops are all parsed.
  • Paste text — drop in raw text copied from a payment portal or biller statement.

The AI extracts:

  • Vendor — who to pay (the entity, not "Customer Name").
  • Amount — the total payment due (not the previous balance or any partial payments).
  • Due date — the date the payment must arrive.
  • Notes — short supporting context: account number, late-fee terms, autopay status, an early-payment discount window. Skips marketing copy.

Always review every field before saving. The AI is a starting point, not a source of truth.

If you scanned an image, the compressed JPEG is attached to the bill row so you have a visual record. PDF / email drops prefill the form only and don't attach a receipt (yet).

Pay-on lead

Each bill has a configurable payment lead (default 2 days). The Pay-on date is due_date − lead, weekend-shifted to the previous Friday. So a credit card bill due Tuesday the 18th with a 2-day lead has a Pay-on of Sunday the 16th, which shifts to Friday the 14th.

For digital payments that clear instantly, set the lead to 0. For mailed checks, set it to 5–7 days.

Dashboard preview

The Dashboard surfaces an Upcoming bills card with the next 5 bills in the next 7 days, so you don't have to open /bills every morning to know what's coming. An overdue bill says so there too ("9 days overdue", in red), and when the card is collapsed its summary leads with the overdue count. Tap View all → to jump to the full page.

What's planned

Today, Bill Reminders is the view — the queue is right but the notification half isn't wired up yet. Coming next:

  • Notification settings page to opt into per-channel reminders.
  • In-app notification bell with a feed of unread bill alerts.
  • Daily reminder emails with the day's Pay-today queue.
  • Push notifications on iOS and Android.

Until those ship, the daily habit is to open /bills once each morning — the Dashboard card is the gentle nudge.

Related

  • Annual Events — yearly and multi-year renewals, which feed the Bills queue on their own recurrence month and day.
  • Categories — a category's recurrence day schedules it for the cash-flow forecast, not for this page.
  • Debt Tracker — every debt account with a minimum payment and due day shows up on the Bills page automatically.
  • Transactions — logging a transaction against a scheduled bill can settle it for that period.
Last updated September 25, 2026