A registration is not an active user. An active user opened the site, saw that something had moved, and either replied or came back inside the week. Daily active users (DAU) and weekly active users (WAU) are names for those two events. They are not names for “we shipped a welcome widget.”
This article is the cross-platform version of that sentence. The XenForo engagement piece already walked What’s New, watches, thread types, and notices. Do not reread it as a shopping list and install the Discourse or IPS analogue of every control. The 30-day member onboarding calendar already told new people where to stand. This one is the operator loop after that calendar: how you tell whether the room is alive, which conversion is actually broken, and which habit moves the count you chose.
No case-study percentages. No “healthy DAU/MAU is X.” Discourse’s own admin dashboard defines a stickiness ratio as DAU divided by MAU, or WAU divided by MAU — that is a definition, not a target. Your baseline is the only honest number. Teach the method. Then run it for four weeks before you buy anything.
What you are actually counting
Three different jobs hide under “we need more active users.” Mix them and you will celebrate the wrong week.
| Job | The person does | Honest proxy | Fake win |
|---|---|---|---|
| Show up | Opens a logged-in session on a calendar day | DAU / WAU from your platform or analytics | A campaign email that produces one bounce |
| Speak | Leaves a post someone else can answer | First post, then a second post that is not “thanks” | A contest that produces one-line entries |
| Return | Opens the site again inside seven days without a campaign | WAU that is not the same as “opened the welcome PM” | A push that they swipe away |
DAU is “touched the product today.” WAU is “touched it in the last seven days.” Monthly active (MAU) is the same idea stretched to a month. Stickiness — DAU/MAU or WAU/MAU — answers a different question: of the people who still have an account, how many actually use it. A board can grow MAU (new registrations) while stickiness falls (nobody comes back). That is a dead board with a good launch week.
Platforms disagree about the verb “touched.” XenForo’s notable-members and online lists are not a DAU report. Discourse’s dashboard exposes stickiness as a ratio; it does not publish a universal healthy value. Google Analytics 4, if you wired the Measurement ID, will count page views and sessions for whoever loads the theme — including guests and crawlers if you are sloppy with filters. Pick one definition of “active” and write it on a staff page:
- Session-active: a logged-in page view (or a Discourse request that is not a bot).
- Poster-active: at least one public post that day / week.
- Reader-active: opened three topics, or spent N minutes — only if your stack actually records it.
Use session-active as the headline DAU. Use poster-active as the quality check. A board where DAU is fine and poster-active is a handful of staff is a magazine, not a community. A board where poster-active is fine and session-active is the same ten people every day is a club. Both can be intentional. They are not the same product.
Do not mix guest hits into DAU unless you sell ads on guests. Guests are a top-of-funnel number. They belong next to Search Console, not next to “are the members alive.”
Four conversions, not one funnel poster
Draw the path as four doors. Count how many people stand in front of each door for a week. The smallest door is the job.
- Arrived → registered. Marketing, SEO, Discord invite, the game launcher. Not this article. If this door is empty, you do not have an activity problem. You have a discovery problem.
- Registered → first useful session. They confirmed mail (or Discourse ID), landed somewhere, and understood where to stand. The onboarding calendar owns the copy. You own whether the first screen is an empty hallway.
- First session → first public post. The lurker-to-poster door. Most communities leak here and then buy a rank plugin.
- First post → second session inside seven days. The return door. This is the one DAU/WAU actually measures. If they posted and nobody answered, they will not open the site to check a void.
You can be excellent at (1) and dead at (4). Launch campaigns do that on purpose. You can be excellent at (3) and dead at (4) if staff never reply. You can be excellent at (4) for twenty regulars and still look “inactive” on a 10,000-account register — that is a stickiness story, not a content story.
Once a week, write four integers. Not percentages. Headcount.
- New confirmed accounts this week.
- Of those, how many opened the site on a second calendar day.
- Of those, how many made a first public post.
- Of last week’s first-posters, how many came back this week.
The notebook we queried for XenForo community practice did not ship reply-latency or lurker-to-poster metrics. Treat the four integers as operational practice, not as an official report. Build them from your own logs: XenForo user “last activity” plus message count, Discourse Data Explorer if you have it, a weekly CSV export, even a staff spreadsheet. A spreadsheet you actually fill beats a dashboard you do not trust.
Build a baseline before you change anything
Week zero is measurement. Do not ship a ritual, a contest, or a new category the same week you start counting. You will not know what moved.
Pick the window. Four consecutive weeks is enough to see a shape. Twelve is better if you have a seasonal game. Mark holidays and patch days on the same sheet or you will invent a miracle.
Pick the source and do not switch it mid-test.
| Source | What it is good for | What it lies about |
|---|---|---|
| Platform last-activity / online | “Did this account wake up?” | Bots, RSS, API, staff alts |
| Platform post counts | “Did they speak?” | Edits, deleted posts, soft-deletes you still count |
| GA4 sessions (filtered to logged-in, if you can) | Trend across a redesign | Guests, theme previews, doubled tags |
| Discourse stickiness on the admin dashboard | Direction of DAU/MAU or WAU/MAU | A target. It is not a target |
| Email / push open rates | Whether the ping is broken | Whether the room is worth opening |
If two sources disagree, believe the smaller one until you find the bug. The usual bug is staff accounts, crawlers, or a “keep-alive” ping from a mobile app.
Segment, or the average will lie. At minimum:
- Accounts created in the last 14 days versus everyone else.
- People with 0 public posts versus people with 1–9 versus 10+.
- Staff versus members. If you do not split staff, you will congratulate yourselves for answering your own threads.
A lurker is not a failure. Most healthy rooms have more readers than writers. The failure is a lurker who wanted to post, could not see where, and left. You cannot see intent in the database. You can see whether first posts get a human reply, and whether the first screen looks empty.
Write the “do not celebrate” list on the same staff page:
- A spike that is 90 percent one announcement thread.
- A spike that is a contest with a prize.
- A spike that is you, posting as three accounts.
- A registration spike with no second-session bump the following week.
Those are reach. Reach is allowed. It is not DAU you can keep.
The first screen is still the return visit
XenForo community practice is blunt about taxonomy: a deep, fragmented tree overwhelms new visitors, produces misplaced threads, and leaves forums looking empty. Empty-looking forums discourage returns. The recommended shape is a broad node setup — fewer rooms, conversations stacked where people can see them move — and thread prefixes inside those rooms when you need a filter. Prefixes sit on existing tables; they do not multiply the permission-rebuild cost the way another node does.
That paragraph is about XenForo nodes. The job is cross-platform. Discourse calls the same mistake “eighty categories and a missing last-post column.” Invision calls it a club directory nobody scrolls. The test is the same: open a brand-new account and a veteran account. If the new account’s first screen is a list of quiet rooms, you trained them to leave. If the veteran’s first screen is “what moved since yesterday,” you have a return hook.
Do not fix this with a widget that says the room is busy. Fix the information architecture so the busy room is the one they land in. The nodes article is the XenForo carpentry. Here you only need the rule: one obvious live room beats four empty ones with prettier icons.
Staff posts belong in that live room, not in a hidden “Staff Lounge recap” nobody subscribed to. A weekly open question with a title a stranger can answer without lore — “What are you running this week?” — is a return hook. “Remember the 2014 outage?” is a club handshake. The onboarding article already used that pair. It still works in month fourteen.
Reply latency is the actual ping
Watches, alerts, email, and push only matter if something happens after the first post. A watch that fires on silence is how you train people to turn notifications off.
Community sources we queried did not prescribe a minute-count for first replies. Do not invent one. Measure your median time from a new member’s first public post to the first human reply that is not an auto-welcome. Pull twenty first-posts from last month. Write the hours next to them. That distribution is your product.
What the distribution usually teaches:
- If staff answer in hours and regulars never do, you have a helpdesk. Helpdesks can be healthy. They die when staff take a week off.
- If regulars answer and staff only appear for fights, you have a community. Protect those regulars. They are the DAU you cannot buy.
- If nobody answers, you do not have a notification problem. You have an empty room. Adding more pings will not fill it.
A moderator template still beats a like and silence: welcome, we moved this to X, here is a related thread, here is the one question that would help. The like is recognition. The sentence is a reason to refresh.
Cap the staff reply budget in writing. “We answer first posts in the main room on weekdays” is a promise you can staff. “We are a family who never sleep” is how you burn the two people who actually log in. The moderation team article owns hiring. Here you only need the activity consequence: an unanswered first post teaches the next first poster that the room is a museum.
Do not auto-watch every new member onto every room. That is how you get “unsubscribe from this site” on day two. Auto-watch the one room they joined for, and say so in the welcome. If you cannot name that room, your tree is the problem.
Email only works if mail leaves the server. Discourse may skip SMTP on day one (Discourse ID + web push) and add mail later for digests. XenForo will happily queue mail into a void if SPF/DKIM are theatre. Fix delivery before you write a second drip. A digest of “nothing moved” is anti-retention.
Lurker to poster is a designed door
People lurk because the room looks expensive. Lore, inside jokes, a 40-reply argument, a title ladder that says they are nobody. You will not abolish lurking. You can lower the cost of the first sentence.
Give them a thread that does not require lore. Introductions, a weekly open question, a “show the thing” thread, a question type with a solution box. The first post should be answerable in five minutes by a stranger who read one pinned page.
Answer that post in public. A private welcome PM is polite. A public reply is a demonstration to the next lurker that humans live here. Do both if you can staff both. Do not replace the public reply with a bot.
Do not make the first post a permission puzzle. XenForo boards that revoke “post with external links” or “start conversations” from Registered, then grant them back via a promotion after N messages, are doing access as a reward. That can be correct anti-spam. It is also a lurker tax if the obvious room is the one they cannot post in. Test every permission change with a fresh account. The permissions guide is the map; the test is the point.
Discourse’s TL0 sandbox is an on-ramp, not a punishment. Official trust-level material: new accounts start restricted so they cannot accidentally harm themselves or the room. Defaults from the notebook: one embedded image (newuser max embedded media), two links, two mentions, 50 likes/day, 24-hour own-post edit, no flag / mute / ignore, chat capped. They cannot flag. Progression to TL1 is an automated job on the order of fifteen minutes once entry requirements are met — the notebook does not list the exact visit/read/like counts; those are admin-configurable. Tell people, in the welcome topic, that the sandbox exists and that the composer will not warn them about the one-image cap until publish. Turning the sandbox off to “increase activity” is how you increase spam. Meta is explicit on that last point.
A reading gate on a rules category (community Discourse practice: require time in a rules category before general posting) is allowed if you also tell them how to finish it. A silent gate is how DAU looks fine and first posts never happen.
Stop grading the first post. If the only replies are “wrong forum” and “read the 12-page lore bible,” you selected for veterans. Move the thread, link the bible, ask one question. Save the grade for the second month.
What not to install yet
Engagement add-ons, points shops, and “who is online” enlargers treat a hallway problem as a costume problem. A shop rewards people who already post. Ranks are a sentence under a name. Reward design is a later article in this series. None of them create a second session if the first screen is empty and the first reply never comes.
A contest is a one-week DAU rental. Count it separately. If the week after the contest returns to the old baseline, you rented reach. That can still be worth it for a launch. It is not a retention system.
A Discord mirror of every thread will split the room unless you decided, in writing, which medium owns which job. The game/RP server piece is the culture version of that split. Here the activity rule is simpler: one canonical place where “what moved” is visible tomorrow. Two places that both claim that job will each look half-empty.
Platform notes — jobs, not tours
You do not need a second ACP tour. You need to know which job each stack already paid for.
XenForo. First screen: forum list, New posts as default, or a decided portal. Watches on threads and forums. Activity summary and alerts. Thread types that ask for a reply (question, poll, suggestion) instead of a vibe. Notices that ask for one action. The engagement article owns the clicks. Your job here is to pick one first screen and staff the replies it surfaces.
Discourse. Latest is already “what moved.” Trust levels already sandbox new accounts. Stickiness is already on the admin dashboard as DAU/MAU or WAU/MAU. Notification levels exist per topic, category, and tag. The first-week beginner guide owns wizard and TL vocabulary. Do not disable TL0 to chase a DAU bump. Do not add Admin + Mod + TL1 + TL2 + TL3 + TL4 redundantly to category security — hierarchy plus Staff already cover this, and the redundant set is a known way to produce “not permitted to view.”
Invision / others. Same four conversions. Same empty-hallway test. Same “staff reply budget” sentence. If your stack has a follow/watch primitive, use it on one room. If it has a points suite, leave it off until the four integers move without it.
Analytics. GA4 answers “what did they do after they arrived.” Search Console answers “how did they find you.” Neither answers “did a human reply.” Do not let a traffic spike hide a reply-latency hole.
A four-week operator loop
Run this as a shift, not as a redesign.
Every weekday (15–20 minutes).
- Open the live room as a new account would see it. If it looks empty, post or surface something real — not a “bump.”
- Answer or assign every first post from an account with fewer than ten messages. Template allowed. Silence not allowed.
- Glance at mail/push bounce or digest errors. A silent ping channel will fake a retention problem.
Once a week (45 minutes).
- Write the four integers. Write median first-reply hours for that week’s new posters.
- Mark one cause, not five: first screen, reply latency, permission puzzle, ping delivery, or “we have no live room.”
- Change one thing. A prefix, a pinned open question, a watch default, a welcome sentence, a staff roster slot. Not a new category and a contest and a plugin.
Once a month.
- Compare stickiness or your WAU/MAU homemade ratio to the previous month. Direction only.
- Re-read the do-not-celebrate list against any spike.
- If first posts are fine and second sessions are not, inspect watches and the first screen — not the registration form. If second sessions are fine and first posts are not, inspect the lurker door — not the rank ladder.
Stop the loop if you are not filling the sheet. An unmeasured ritual is how communities accumulate holidays nobody attends.
Worked example — reading a bad week without inventing a benchmark
Imagine last week’s sheet (these numbers are a method, not a target):
- 40 new confirmed accounts.
- 18 opened a second calendar day.
- 6 made a first public post.
- Of the previous week’s 8 first-posters, 2 came back.
Three different stories fit those integers. Only one of them is “install gamification.”
Story A — they never found the room. Second-day opens are weak. The first screen is a directory. Fix IA. Do not buy a badge.
Story B — they found the room and were ignored. Second-day opens are fine, first posts happen, return of last week’s posters is a cliff. Read the six first-posts. If four have no human reply, you have a staffing problem. The toxic users playbook is not the issue yet. Silence is.
Story C — they posted and the ping never arrived. Returns are a cliff but the threads were answered. Check mail, push, and whether they were watching the thread they posted in. Fix delivery. Then ask whether the answer was a like or a sentence.
You will be tempted to average the three stories into “engagement is down.” That sentence authorizes a shopping cart. The sheet authorizes one change.
What “good” looks like without a number
A room you would show a sceptical regular:
- The first screen on a Tuesday morning shows movement that is not staff talking to staff.
- A new account can post a useful first sentence in one obvious place without a permission error or a one-image trap they were not warned about.
- First posts receive a human sentence while the author still remembers writing them.
- WAU is not identical to “opened the announcement.”
- Staff can point at the four integers without opening a vendor dashboard.
If you cannot show that room, widgets will not invent it. If you can show that room, widgets are optional decoration.
Checklist
- Written definition of DAU / WAU / poster-active on a staff page; guests split out
- Four integers recorded for week zero before you change the product
- Staff accounts excluded from the headline counts
- New-account first screen tested this week (empty hallway vs “what moved”)
- One live room, not four quiet ones, linked from welcome copy
- Median hours to first human reply, from a sample of new-member first posts
- Staff reply budget written and rostered; template exists
- Watch / follow default is one room, not the whole tree
- Mail or digest actually leaves the building
- Discourse: TL0 sandbox still on; image-cap explained in the welcome topic
- XenForo: you did not confuse this loop with a new What’s New widget
- No contest, shop, or rank suite counted as “the” retention system
- One change per week, not a redesign
- Do-not-celebrate list applied to every spike
Active users are a habit you can see on a calendar. Registrations are a hope. Count the habit. Staff the reply. Put the movement where a stranger can see it. The software you already run will report the rest — as long as you picked a definition and refused to shop your way around an empty first screen.

