Skip to main content
Product-engagement metrics like daily active users have a recognizable shape: an underlying growth (or decay) trend, a strong weekly rhythm, and noise. DailyActiveUsersGenerator reproduces this for testing growth-analytics dashboards and anomaly detection on product metrics.
The model yt=base (1+g) d(t)β‹…w(t)+boostt+Ξ΅t,boostΒ decaysΒ atΒ (1βˆ’Ξ΄)y_t = \text{base}\,(1 + g)^{\,d(t)} \cdot w(t) + \text{boost}_t + \varepsilon_t, \qquad \text{boost decays at } (1-\delta) The level is base_users * (1 + growth_rate)^day, scaled on weekends by weekend_factor (1.2 for gaming, 0.8 otherwise). With probability event_probability per step an event adds (impact - 1) * base to a boost that decays geometrically at event_decay_rate, where impact is drawn between event_impact_min and event_impact_max. Proportional Gaussian noise (noise_std) is added and the result is clipped at zero. Set growth_rate_std to perturb the growth rate per series, and app_type (consumer, business, gaming) to pick the defaults for a product profile.

App type

app_type sets the engagement profile, mainly through the weekend multiplier: a consumer app dips slightly at weekends, a B2B app drops sharply, and a gaming app rises. The seed and base level are shared.

Analyzing event impact

Compare DAU on event days versus normal days to measure the lift from marketing events.

Hourly active users

The generator also supports sub-daily frequencies like hourly data.

Multiple products/apps

Generate DAU data for multiple products simultaneously and compare event distributions.

Custom column names

Customize the output column names to match your application’s naming conventions.
Related generators
  • Clickstream β€” the sessionized activity beneath engagement metrics.
  • Seasonal β€” the weekly rhythm in isolation.
Full parameters are in the generator reference.