BillTracker/services
null 5182754e0f feat(tracker): price-change drift detection with amber insight panel
Detects when a bill's recent payments have diverged from its configured
expected amount for 2+ consecutive months and surfaces it in a new
collapsible amber panel on the Tracker page.

- Migration v0.71: adds `drift_snoozed_until` to bills and
  `notify_amount_change` to users
- New `driftService.getDriftReport()`: computes per-bill payment median
  over last 3 months, flags drift above a user-configurable threshold
  (default 5%, minimum $1 delta)
- New `GET /api/bills/drift-report` and `POST /api/bills/:id/snooze-drift`
  routes (registered before `/:id` to avoid routing conflict)
- `runDriftNotifications()` added to daily worker — sends amber digest
  email per user listing all changed bills with old → new amounts
- `notify_amount_change` wired through profile and notifications routes
- `DriftInsightPanel`: collapsible amber panel with per-bill
  strikethrough old → new amount, ±% badge, TrendingUp/TrendingDown
  icons, "Update to $X.XX" (with undo toast) and "Dismiss" (30 days)
  actions; teal palette for price decreases
- `drift_threshold_pct` setting added to SettingsPage Billing Behavior
- "Notify on price changes" toggle added to ProfilePage notifications

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 14:33:55 -05:00
..
advisoryFilterService.js feat: advisory non-bill transaction filter system (batch 0.33.8.0) 2026-05-29 18:06:12 -05:00
amountSuggestionService.js bill tracker futurue 2026-05-28 02:09:49 -05:00
analyticsService.js v0.28.0 2026-05-16 15:38:28 -05:00
aprService.js apr/snowball 0.27.04 2026-05-15 00:03:32 -05:00
auditService.js v0.20.6: Audit logging for critical operations 2026-05-10 00:03:12 -05:00
authService.js v0.28.0 2026-05-15 22:45:38 -05:00
backupScheduler.js feat(roadmap): size grid from populated lanes + db cleanup fixes 2026-05-30 13:04:27 -05:00
backupService.js corrections 2026-05-14 01:17:05 -05:00
bankSyncConfigService.js fix: subscription recommendation dedup and amount-bucket grouping 2026-05-29 02:51:30 -05:00
bankSyncService.js feat: 90-day backfill + auto-seed + status page redesign (batch 0.33.8.4) 2026-05-29 19:58:52 -05:00
bankSyncWorker.js feat: configurable sync interval, auto-match, encryption note, admin link, SimpleFIN hyperlink 2026-05-29 00:28:50 -05:00
billMerchantRuleService.js feat: SimpleFIN payment backfill button on subscription bills (v0.33.7.2) 2026-05-29 04:19:20 -05:00
billsService.js feat: hybrid subscription tracker 2026-05-28 22:54:07 -05:00
cleanupService.js feat(roadmap): size grid from populated lanes + db cleanup fixes 2026-05-30 13:04:27 -05:00
csvTransactionImportService.js v0.28.01 2026-05-16 20:26:09 -05:00
driftService.js feat(tracker): price-change drift detection with amber insight panel 2026-05-30 14:33:55 -05:00
encryptionService.js feat: zero-config encryption + SimpleFIN Bridge links 2026-05-29 00:04:28 -05:00
loginFingerprint.js v0.28.0 2026-05-15 22:45:38 -05:00
matchSuggestionService.js feat: account monitoring, expanded sync UI, match filtering, error toasts 2026-05-29 01:06:20 -05:00
notificationService.js feat(tracker): price-change drift detection with amber insight panel 2026-05-30 14:33:55 -05:00
oidcService.js v0.28.0 2026-05-16 15:38:28 -05:00
paymentValidation.js docs: update engineering reference manual to v0.28.01 2026-05-16 21:41:13 -05:00
simplefinService.js fix: sync_days now reads from DB config, admin UI controls it 2026-05-29 01:33:54 -05:00
snowballService.js 0.28.0 snowball release 2026-05-14 02:11:54 -05:00
spreadsheetImportService.js v0.28.0 2026-05-16 15:38:28 -05:00
statusRuntime.js initial commit 2026-05-03 19:51:57 -05:00
statusService.js v0.28.01 2026-05-16 20:26:09 -05:00
subscriptionService.js feat: SimpleFIN payment backfill button on subscription bills (v0.33.7.2) 2026-05-29 04:19:20 -05:00
trackerService.js feat(tracker): overdue command center with snooze/skip/pay + sidebar badge 2026-05-30 13:19:09 -05:00
transactionMatchService.js chore: version bump to 0.28.01 and update HISTORY format 2026-05-16 21:36:04 -05:00
transactionService.js v0.28.01 2026-05-16 20:26:09 -05:00
updateCheckService.js v0.27.02 push 2026-05-14 21:00:07 -05:00
userDbImportService.js no exploitable SQL injection vulnerabilities 2026-05-28 03:43:50 -05:00
userSettings.js feat(tracker): price-change drift detection with amber insight panel 2026-05-30 14:33:55 -05:00