Skip to content

Today's focus ​

Right below the KPI tiles, the Home dashboard shows three side-by-side cards under the heading Today's focus. Each card is a short list of five members, scoped to something you should do today.

Today's focus row

The three cards are deliberately small β€” five rows each β€” so the page stays fast and the cards stay readable. Every name is a link straight to the member profile, and every card has a View all link that opens the member list with the right filter applied.

TIP

Today's focus only appears if you have members.view. If you log in with attendance-only or giving-only permissions, the cards are hidden and the dashboard skips straight from KPI tiles to the module grid.

At-risk members ​

People who have not attended any meeting in 30+ days. The card pulls from v_members_org, ordered by last_date_attended ascending so the longest-absent members rise to the top.

DetailBehavior
Left swatchAmber border-left
Threshold30 days since last attendance
SortEarliest last_date_attended first (nulls last is debatable β€” see note)
LimitTop 5
View all link/members?not_attended_days=30

A member with no attendance history at all is included (the SQL uses < cutoff, which Postgres treats as nullsFirst: true in the order clause). In practice that surfaces newly-registered members who haven't attended a meeting yet β€” exactly the people you want to invite this week.

Empty state is intentional

If everyone in your scope has attended in the last 30 days the card shows "Everyone's been around recently". That's a feature, not a bug. Most churches see this empty state every few weeks and it's a useful signal that retention is healthy right now.

The 30-day threshold is a hard-coded constant for now. If you need a different window, the Backsliding widget on the custom dashboard lets you set the threshold per-instance.

Upcoming birthdays ​

Members whose birthday falls in the next 7 days (wrapping the year β€” December 28th birthdays show up on December 22nd).

DetailBehavior
Left swatchPink border-left
WindowToday + 6 days
SortDays-until-birthday ascending
LimitTop 5
View all link/members?birth_month={current month}

The query pulls a wider window (up to 2000 members with a date of birth set) and does the day-math client-side, since Postgres doesn't have a clean "month/day in next 7 days that wraps the year" predicate without a custom function. 2000 is enough headroom for any church on any plan.

The View all link goes to all birthdays for the current month, not just the next 7 days β€” that gives you a longer list for printing or sending a bulk message. The card itself stays tightly focused on what's actually upcoming.

Why the dates show MMM d

The right-hand date column uses your church's locale formatting β€” January 8 in en-US, 8 ene in es-ES. The format is MMM d so it stays short even for non-English locales. See Settings β†’ Localization.

New members ​

Members whose date_of_registration is in the last 7 days, sorted newest first.

DetailBehavior
Left swatchEmerald border-left
WindowLast 7 days
SortMost recently registered first
LimitTop 5
View all link/members (no filter)

This is your follow-up list. The right-hand column shows when they registered so you can prioritize the freshest names. Clicking a name opens their profile where you can:

TIP

The View all link goes to the full member list because we don't have a "registered last 7 days" filter chip yet. Once you click through, sort by Date of registration descending to recreate the same view at full size.

Performance notes ​

Each card runs a single query with a five-row limit. The at-risk and new-member queries are cached for 5 minutes; the birthdays query is cached for an hour (birthdays don't shift hour-to-hour).

When you change the org-unit scope, all three queries re-run because the v_members_org view applies the scope filter at the database. That's a single round-trip per card, so even on a slow connection the cards usually reappear within a second.

What's next ​