Plan a Month in the Tracker¶
The Tracker is the home view after sign-in. It converts your recurring bills, payments, and month-specific overrides into a working monthly checklist — the place you'll spend most of your time.
This page explains how to read the bank status bar, what each column in a row means, how sorting and the lifecycle status order work, and when to expect BillTracker to prompt you for a decision.
What does the bank status bar show?¶
When SimpleFIN bank tracking is enabled, a colored bar appears between the page header and the filter panel. It shows:
- A pulsing Live Sync indicator
- The connected account name
- The live bank balance with an "as of" timestamp so you can see how fresh the figure is
- Pending payment amount (amber when present)
- The projected amount after bills (green when positive, red when negative)
The Starting summary card is replaced with a bank-styled card showing the effective balance as the main number and the projected-after-bills amount in the hint line.
How do I collapse the search and filter panel?¶
Click the chevron in the search bar header. The expanded/collapsed state
is remembered across pages and sessions — Tracker, Bills, and
Subscriptions share the same setting through the
useSearchPanelPreference hook. The default is expanded.
How do I pin due and overdue bills to the top?¶
Click Pin Due in the Tracker header. Bills are sorted so urgent ones float to the top of each bucket in this order:
- Missed
- Late
- Due soon (within 3 days)
- Upcoming
- Everything else (ties broken by due day)
Drag reorder is automatically disabled while Pin Due is on (the two modes
conflict). The preference persists via localStorage under
tracker_pin_upcoming.
How do I sort the tracker?¶
Click any column header on the desktop table to toggle sort direction.
The filter bar exposes a compact sort selector for mobile and tablet. The
URL is bookmarkable: /tracker?year=2026&month=5&sort=due_day&dir=asc
captures the active view.
You can sort by:
- Bill name
- Due date
- Expected amount
- Last-month paid
- Paid amount
- Remaining amount
- Paid date
- Status
Status sort is lifecycle-aware, not alphabetical
Status sort uses the tracker lifecycle order
(missed → late → due_soon → upcoming → autodraft → paid → skipped),
so you walk through the urgency gradient rather than a textbook A-Z
list. Manual bill reordering is paused while a sorted view is active.
What does each column in a row mean?¶
| Column | What it shows |
|---|---|
| Bill name, category, normal amount, due day | Recurring bill defaults |
| Effective amount | Monthly override when set, otherwise normal amount |
| Trend sparkline | Last 6 months of actual payment totals, rendered as a 44×16 px inline SVG polyline. Computed server-side in trackerService.fetchSparklines and only shown when two or more months of data exist. See What is the sparkline on a row? |
| Changed badge | Amber badge with a trending-up icon when the drift service flags the bill. Reuses useDriftReport() data — no extra API call. See What does the Changed badge mean? |
| Paid amount and paid date | Active payments in the bill's cycle |
| Status | Server-side status calculation plus month skip state |
| Badges | Autopay (with trust score), subscription, and optional account-reference flags |
| Override badge | Shown on manual payment history rows that were overridden by a later bank payment |
What does the autopay trust badge mean?¶
The AP badge on each tracker row shows a 12-month confidence score:
✓ 12/12 successfulon a healthy bill⚠ 11/12in amber when even one payment was recorded as an autopay failure- A clock nudge when autopay has not been manually verified in over 90 days (or never)
Hovering the badge shows a tooltip with the success rate, the last failure date and notes, and the verification timestamp. The BillModal autopay panel exposes the same data with a Mark verified button. See What does autopay trust mean? for the full flow.
How do overdue bills appear in the sidebar?¶
The sidebar (desktop) and bottom nav (mobile) show an overdue badge with the count of strictly past-due bills. Bills due today are not counted as overdue. Hovering the badge shows a tooltip with up to 5 bill names (e.g. "2 past due · Verizon · Car insurance") so the number is explained without navigating anywhere.
How are bills bucketed in a month?¶
The Tracker splits bills into two due-date buckets:
| Bucket | Default rule |
|---|---|
1st-14th |
Bills with due_day <= 14 |
15th-31st |
Bills with due_day >= 15 |
A bill may carry an explicit bucket override. Otherwise, the server
assigns the bucket from due_day.
What do the lifecycle statuses mean?¶
BillTracker calculates a status from the bill cycle, due date, payment total, autopay state, and grace period.
| Status | Meaning |
|---|---|
paid |
Active payments meet or exceed the effective amount |
autodraft |
Autopay is assumed paid but not yet confirmed |
upcoming |
Due date is more than 3 days away |
due_soon |
Due within 3 days |
late |
Past due but still inside the configured grace period |
missed |
Past the grace period without enough payment |
inactive_cycle |
Quarterly or annual bill does not occur this month |
skipped |
User explicitly skipped this bill for the selected month |
Overpayments are preserved but do not produce a negative remaining balance — the tracker caps the amount applied toward the due amount and shows the extra value separately.
What routine actions can I do from a row?¶
From a Tracker row, you can:
- Record a payment amount and date.
- Open payment history for the bill.
- Mark a bill unpaid after confirmation.
- Set a lower month-specific amount when a bill cost less than expected.
- Edit the current month's amount, skip state, and notes.
- Accept or dismiss an autopay suggestion.
- Open the recurring bill for a permanent change.
What happens when a bank payment posts in the wrong month?¶
When a bank-synced payment crosses a month boundary — for example, an AT&T payment of $332.97 that posts June 1 but was due May 29 — a dialog prompts: "AT&T payment of $332.97 posted June 1 — should it count for May?" Accepting moves the paid date to the last day of the prior month so the tracker shows it as paid that month. Rejecting keeps the original date. Multiple candidates are queued and shown one at a time.
The reclassification uses PATCH /api/payments/:id/attribute-to-month,
which is allowed only for provider_sync payments and never changes the
amount or the bank link. Late attributions from the Tracker Sync Bank
button and from individual bill syncs are processed in the same queue.
Why do some screens animate?¶
The Tracker is animated with framer-motion. A shared PageTransition
wrapper drives user/admin route content. Dialogs and AlertDialogs use
Framer entry motion. Tracker bucket rows and cards use layout animation
so sorted and reordered bill groups move smoothly rather than snapping.
The mobile row variant prevents duplicate quick-pay taps while a save is
in progress and lets bucket headers wrap cleanly on narrow screens.
Animations respect useReducedMotion() — users with reduced-motion
preferences see content appear without motion.
How do I read the Summary screen?¶
Summary turns monthly bill data into a cash plan:
- Starting amounts for the
1stand15thperiods - Additional or other starting amount
- Monthly income
- Expected expense totals
- Paid expense totals
- Remaining amount by period
- Printable summary output
Edit starting amounts from Tracker summary cards or the Summary page.
How do I read the Calendar screen?¶
The Calendar places bill due dates and payment activity on a monthly grid. It also includes:
- A monthly money map
- Paid, due, skipped, late, and missed visual markers
- Selected-day details
- Monthly expense progress
- A compact Snowball target view
- A personal calendar subscription feed (
feed.ics) for external calendars
Use Calendar when the question is when money leaves the household rather than only how much remains. See How do I subscribe to the calendar feed? for the ICS subscription workflow.
How do I read the Analytics screen?¶
Analytics provides a reporting view with:
- Date range and ending-month controls
- Category and bill filters
- Active or inactive bill selection
- Monthly spending trend
- Expected versus actual spend
- Spending by category
- Pay-on-time heatmap
- Forecast horizon controls
- Print and PDF-friendly output
Monthly overrides feed expected-versus-actual reporting. Skipped months can be included or hidden.
How do I find bills with bad data?¶
The Health page audits bill setup quality. It flags incomplete records such as:
- Missing categories
- Debt records without minimum payments
- Debt balances without APR values
- Autopay records without useful account-reference information
Use Health after an import or whenever reporting starts to feel incomplete.
What cycles does the Tracker understand?¶
BillTracker supports cycle-aware due dates:
| Cycle | Behavior |
|---|---|
| Monthly | Appears every month on due_day |
| Weekly | Uses the first selected weekday in the month |
| Biweekly | Uses a stable two-week anchor and selected weekday |
| Quarterly | Appears every third month from its configured start month |
| Annual | Appears only in its configured month |
Payments are evaluated inside the bill's resolved cycle range rather than assuming every bill is monthly.
Next steps¶
- Record a payment with Record Payments.
- Set up a bank rule to auto-match in Connect Your Bank.
- See the sparkline in detail at Tracker Features.
- Add or edit a bill in Add and Manage Bills.
- Audit incomplete data with the Health page described above.