Guide
Notifications

Guide section

Notifications

All notifications

Complete list of push alerts, scheduled reminders, in-app inbox items, and background messages in Expense Trail.

Last updated on

Expense Trail uses three ways to reach you: on-screen hints (Dashboard budget cards, daily banner), lock-screen push (optional), and the in-app inbox (bell on the Dashboard). This page lists every notification type, what triggers it, and where to turn it on or off.

For step-by-step settings, see Alerts & push settings.

Three delivery channels

ChannelWhereNeeds push permission?Needs sign-in + sync?
On-screenDashboard budget cards, daily reminder bannerNoBanner: yes; budget cards: no
OS pushLock screen / notification shadeYesMost types: yes
In-app inboxDashboard bell → Notifications screenNoCloud users sync from server; local-only users store on device

Cloud users get push + in-app together for most alerts. Tapping either opens the same destination (budgets, Reports, Settings, etc.).

The inbox keeps up to 100 recent items. Unread rows are highlighted; use Mark all read on the Notifications screen.

Settings map

Open Settings → Alerts:

GroupWhat it controls
On deviceBudget alerts + threshold (50–90%); daily reminder
Push permissionAllow notifications on your phone or browser
Cloud pushScheduled bills, weekly summary, monthly recap, goal milestones, household activity, generic lock-screen privacy
Background activityProgress toasts, Android persistent icon, silent tasks, background sync upload

Buddy requests have no separate toggle — if someone adds you via your TRAIL- invite code, you receive a push and inbox item when signed in with cloud sync.

Complete notification catalog

NotificationWhat it tells youUser settingPushIn-app inboxTap opens
Budget thresholdSpending crossed your alert % (e.g. 80%) for a budgetBudget alerts + thresholdYes*YesDashboard (budgets)
Budget exceededSpending went over 100% of a budget limitBudget alertsYes*YesDashboard (budgets)
Daily reminderNo expenses logged todayDaily reminderYes*YesDashboard
Daily reminder bannerSame nudge while the app is openDaily reminderNo (banner only)Yes (no OS banner)Dismiss or add expense
Scheduled — due todayRecurring bill or income due todayScheduled & billsYes*YesSettings → Scheduled entries
Scheduled — overdueRecurring entry past its due dateScheduled & billsYes*YesSettings → Scheduled entries
Scheduled — due tomorrowEntry due the next calendar dayScheduled & billsYes*YesSettings → Scheduled entries
Weekly summaryLast 7 days spending + top categoryWeekly summary (+ pick weekday)Yes*YesReports
Monthly recapPrevious month spending totalMonthly recapYes*YesReports
Goal milestone (50%)Savings goal reached half of targetGoal milestonesYes*YesGoals
Goal milestone (75%)Savings goal reached 75%Goal milestonesYes*YesGoals
Goal completed (100%)Savings goal fully fundedGoal milestonesYes*YesGoals
Household member joinedSomeone accepted your household inviteHousehold activityYesYesSettings → Household
Buddy requestSomeone linked you via buddy invite code(always when invited)YesYesSettings → Buddies & splits
Shopping place exitLeft a saved place — log spending?Shopping place reminders (phone)Yes*NoAdd expense (note prefilled)
Test notificationConfirms push deliverySend test notification buttonYesYesVaries
Sync errorCloud sync failed in backgroundBackground task notificationsIn-app onlyYesRetry sync
Import errorBackground import failedBackground task notificationsIn-app onlyYesRetry sync
Export errorBackground export failedBackground task notificationsIn-app onlyYesRetry sync
Recurring errorScheduled entry could not postBackground task notificationsIn-app onlyYesRetry sync

*Push requires sign-in, cloud sync, OS permission, and a supported build (not Expo Go). See Alerts & push.

How notifications are triggered

Scheduled server jobs (cloud sync, standard encryption)

When your data is synced with standard (non-encrypted) cloud storage, the server runs scheduled jobs and sends push + in-app notifications. Default times (your timezone on the server):

JobDefault scheduleNotification kind
Daily reminderEvery day 7:00 PMdaily_reminder — only if you logged no expenses today
Scheduled due todayEvery day 8:00 AMscheduled_due_today
Scheduled overdueEvery day 9:00 AMscheduled_overdue
Scheduled due tomorrowEvery day 6:00 PMscheduled_due_tomorrow
Weekly summaryEvery day 8:00 PM (fires on your chosen weekday only)weekly_summary
Monthly recap9:00 AM on the 1st of each monthmonthly_recap

Scheduled transactions still post when you open the app on or after the due date. Push reminders help you open the app — they do not create entries silently in the background.

Event-driven (happens when you use the app)

EventNotificationWhen
Add or sync an expenseBudget threshold / exceededAfter spending crosses your threshold or limit
Add a goal contributionGoal 50% / 75% / 100%When progress crosses a milestone
Partner accepts household inviteHousehold member joinedOther members get notified
Someone enters your buddy invite codeBuddy requestInvitee gets push + inbox item
Tap Send test notificationTest pushImmediately

Budget and goal event pushes run on the server for standard sync, or on your device when end-to-end encryption is on (see below).

On-device only (no server cron)

SourceExamples
Dashboard UIBudget progress cards (always when budgets exist); daily reminder banner
Local evaluatorsE2EE wake pushes, offline users, daily banner inbox entry
Background tasksSync / import / export / recurring errors → in-app inbox (one per activity type per day)

End-to-end encryption (E2EE) path

When E2EE is enabled, the server cannot read your amounts — so it cannot compute budget or goal text server-side.

Instead:

  1. The server may send a silent wake push asking your device to evaluate reminders locally.
  2. Your phone runs the same logic (budget, bills, goals, daily reminder, weekly/monthly) using decrypted local data.
  3. You still get OS notifications and in-app inbox entries — generated on the device.

Buddy invites and household joins still use the server (they do not need decrypted expense amounts).

Lock-screen privacy

Settings → Alerts → Generic lock-screen content (or Push content privacy) replaces detailed amounts and labels with generic text like “Expense Trail — You have a reminder”. Recommended on shared devices. See Privacy overview.

In-app inbox behavior

TopicDetail
OpenDashboard bell (badge = unread count)
Cloud sync onInbox merges server list with local cache (up to 50 fetched, 100 stored)
Local-onlyInbox shows notifications created on this device only
Tap a rowSame routing as push — Dashboard, Reports, Goals, Settings section, or retry sync
Buddy inviteOpens Buddies & splits — you still Accept or Decline there
RefreshPull down on the Notifications screen

Background activity messages

Separate from spending alerts — these cover sync, import, export, and backup running while the app is in the background:

SettingWhat you see
Show progress in backgroundBanner when a long task runs
Persistent notification (Android)Ongoing icon during sync
Silent background tasksHide success toasts
Sync offline changes in backgroundUpload queued edits when app is backgrounded (Android; needs sign-in + sync)

Failures also add an in-app error row (once per activity type per day) with a Retry sync action.

Platform notes

PlatformNotes
iPhone / Android (store app)Full push + inbox + background options
Web (Chrome / Edge)Push after allowing notifications; best on desktop and Android
iPhone Safari tabInstall to Home Screen first, then allow push
Expo GoPush not available — use a store or dev client build

How is this guide?

On this page