From 77e7a058bf9c95b57cdaa5efbb05b31f3262dbdf Mon Sep 17 00:00:00 2001 From: Adam Rutkowski Date: Fri, 27 Feb 2026 19:53:14 +0100 Subject: [PATCH] Don't join sessions for regular site cards --- lib/plausible/stats/sparkline.ex | 38 +++++++++++++++++++++++-- test/plausible/stats/sparkline_test.exs | 6 ---- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/lib/plausible/stats/sparkline.ex b/lib/plausible/stats/sparkline.ex index 50f419ad1444..3eb0752214cf 100644 --- a/lib/plausible/stats/sparkline.ex +++ b/lib/plausible/stats/sparkline.ex @@ -73,8 +73,42 @@ defmodule Plausible.Stats.Sparkline do end defp query_24h_stats(view_or_site, now) do + if Plausible.Sites.regular?(view_or_site) do + query_24h_stats_regular(view_or_site, now) + else + query_24h_stats_consolidated(view_or_site, now) + end + end + + defp query_24h_stats_regular(site, now) do stats_query = - QueryBuilder.build!(view_or_site, + QueryBuilder.build!(site, + now: DateTime.from_naive!(now, "Etc/UTC"), + input_date_range: :"24h", + metrics: [:visitors], + include: [compare: :previous_period] + ) + + %Stats.QueryResult{ + results: [ + %{ + metrics: [visitors], + comparison: %{ + change: [visitors_change] + } + } + ] + } = Stats.query(site, stats_query) + + %{ + visitors: visitors, + visitors_change: visitors_change + } + end + + defp query_24h_stats_consolidated(view, now) do + stats_query = + QueryBuilder.build!(view, now: DateTime.from_naive!(now, "Etc/UTC"), input_date_range: :"24h", metrics: [:visitors, :visits, :pageviews, :views_per_visit], @@ -90,7 +124,7 @@ defmodule Plausible.Stats.Sparkline do } } ] - } = Stats.query(view_or_site, stats_query) + } = Stats.query(view, stats_query) %{ visitors: visitors, diff --git a/test/plausible/stats/sparkline_test.exs b/test/plausible/stats/sparkline_test.exs index a1902210c1f7..9c1959f012e5 100644 --- a/test/plausible/stats/sparkline_test.exs +++ b/test/plausible/stats/sparkline_test.exs @@ -36,13 +36,7 @@ defmodule Plausible.Stats.SparklineTest do assert %{ ^domain => %{ visitors: 0, - pageviews: 0, - pageviews_change: 0, - views_per_visit: +0.0, - views_per_visit_change: 0, visitors_change: 0, - visits: 0, - visits_change: 0, intervals: intervals } } =