DAU counts the distinct people who did something deliberate in your product on a given day. The formula is trivial; the definition of active is where all the meaning, and all the arguments, live.
Daily active users is the number of distinct users who performed at least one qualifying action inside a defined 24-hour window. Written out:
DAU(day) = count of unique user IDs with at least one qualifying event in that day
Three words in that sentence do all the work. Distinct means it is a count of people, not of events: a subscriber who taps five inline buttons contributes exactly one. Qualifying means you decided in advance which events count. And defined window means you fixed a day boundary in one timezone. Move that boundary from UTC to a local timezone and every day in the series changes, usually enough to look like a trend.
Raw DAU is noisy because human weeks are noisy. Plot a 7-day rolling average alongside the daily line: the rolling average shows direction, the daily line shows the spikes worth investigating.
The definition of active is not a technical detail you delegate to whoever writes the query. It sets the absolute level of the number and decides whether the number is honest. A workable test: the event should be something the user chose to do, not something your system did to them.
/start. Including it merges acquisition into engagement, which is usually what you do want for a lead bot, as long as you also report new and returning separately.Write the definition down next to the chart, and version it. If you change what qualifies, break the series visually rather than quietly comparing March under the old rule with April under the new one.
WAU and MAU use the same rule over a longer window: distinct users active in the trailing 7 or 28 to 30 days. Because each window deduplicates users, the three numbers are nested, and DAU can never exceed WAU, which can never exceed MAU.
Two common mistakes: averaging DAU across a month and calling the result MAU, and multiplying DAU by 30 to estimate MAU. Both assume no user ever returns twice, which is exactly the assumption these metrics exist to test.
Divide DAU by MAU and you get stickiness: the share of your monthly active users who show up on an average day. It has a second reading that is easier to act on. Multiply the ratio by 30 and you get the number of days an average monthly user was active, so a ratio of 0.2 means roughly six days a month.
There is no universal target. A product built for daily use and a promo bot people open when an offer lands are answering different questions, and borrowed benchmarks from consumer social apps will only make your funnel look broken. The comparisons worth making are internal: this month against last, one traffic source against another, subscribers who picked a category against those who never did. A rising ratio while MAU is flat means your existing audience is engaging more often. A falling ratio while MAU climbs usually means you are buying users who arrive once and never come back.
Bots break several assumptions baked into web and app analytics, so DAU behaves differently in a Telegram funnel than it does in a dashboard product.
The practical fix is to split the line. Report new DAU and returning DAU as two series. New DAU tracks acquisition and answers questions about deep links and ad spend; returning DAU is the honest engagement signal, and it is the one that should move when you improve your drip sequence or your category targeting.
DAU is a good vital sign and a poor diagnosis. It tells you something changed, never why. The metrics that answer the second question are the ones covered in our guide to Telegram bot retention metrics:
In mySkua these sit on one screen. Bot analytics reports subscriber growth, DAU, retention cohorts, campaign activations and delivery stats per bot, with each bot's subscribers kept isolated from the others, so a spike on one funnel never contaminates the reading on another.
Pick your definition of active, fix your timezone, split new from returning, and annotate your send days. That is most of the work; the query is the easy part.
mySkua is currently in an invite-only private beta. If you run Telegram funnels and want to see DAU, cohorts and campaign attribution measured this way across your bots, join the waitlist to request access and we will get in touch as places open up.
Want this on your own bots?
mySkua is in a closed beta and accounts are opened in small batches. Tell us what you run and we will come back to you.
Request access