Autonnel v0.1.0

Interest panel

Four attention groups per page, why depth alone hides the group that matters most, and how to open a page at the exact spot visitors stopped.


The Interest panel, at /analytics/interest, answers a question the funnel stats overview cannot: for each page, did visitors actually read it, or did they just scroll past?

Scroll depth alone cannot tell you this. A visitor who scrolls to the bottom of your page in two seconds did not read it - they were hunting for a price or a “buy” button. A visitor who sits on your hero section for thirty seconds and never scrolls did not bounce - something up there is holding their attention, good or bad. The Interest panel crosses how far a visitor got with how long they spent, and sorts every visit into one of four groups.

The four groups

GroupWhat it meansWhat it tells you
BouncedNever got past the first screens, and left quickly.The top of the page - your hero, headline, or first offer - is not holding attention.
SkimmedTravelled the page without stopping.Visitors are moving fast, usually hunting for a price or a button rather than reading.
StalledStayed a while and still never got past the first screens.Something near the top held them up without moving them forward - worth a closer look, because this group is invisible in a scroll-depth chart alone.
EngagedGot past the first screens and read.The page is doing its job for these visitors.

Stalled is the group this panel exists to surface. A dashboard that only tracks scroll depth reports these visitors as identical to a two-second bounce, because both stopped in the same place. They are not identical: one left before the page finished loading in their head, the other stayed and read what was there. Only crossing depth with time tells them apart.

Each row in the table shows a colored bar with the share of visitors in each group, plus a single median time on page for that row - one number across all four groups combined, not one per group.

“Deep” means two screens of that page, wherever the browser reported its screen size

A visitor counts as having gotten “past the first screens” once they have scrolled two full screens down the page, rather than a fixed share of it. This needs one number from the visitor’s own browser: what share of the page a single screen covers. Where the beacon reported it, the threshold is two screens of that page. Where it did not - an older cached copy of the tracking script, or a browser that closed before reporting - the threshold falls back to a fixed 50% of the page.

Scaling matters because pages vary enormously in length. A checkout page might be one screen tall; a long-form landing page might be fifty. Under a fixed percentage of page height, the number mostly measures how long you made the page, not how visitors behaved: on a one-screen page everyone clears 50% by definition, and on a fifty-screen page 50% means reading twenty-five screens, an unreasonably high bar. Measuring in screens is what makes the same color on the chart mean the same thing - past the fold and still going - whether the page is short or long. That is exactly why the fallback is a compromise rather than an equivalent: on the rows where it applies, “deep” carries the fixed-percentage meaning above. Hovering a row’s attention bar tells you what share of that row was measured against the page’s own height and what share fell back.

On a page that is no taller than the viewport, the two-screen threshold clamps to 100%, and every visitor there meets it. That is correct, not a bug: on a page short enough to fit in one screen, arriving at the page means seeing all of it.

“Long” means 10 seconds or more

A visit counts as long once a visitor spends 10 seconds or more actually looking at the page. Below that threshold, a visit is fast regardless of how far it scrolled.

Time excludes backgrounded tabs, but not the page load

The time used for the long/fast split is not simple wall-clock time from when the page opened to when the visitor left. It excludes any time the browser tab spent in the background - a visitor who opened your page and switched to another tab for five minutes was not spending five minutes reading you.

The clock starts when the tracking script loads, not at the instant the browser began navigating to the page - but it is not adjusted for page load time beyond that. Time the page spends loading after the tracker is already running counts the same as time spent actually looking at it.

This is measured wherever the visitor’s own browser reports it. Older cached copies of the tracking script do not report foreground/background time and fall back to plain wall-clock time instead, which can inflate their measured duration. Where a page’s rows mix visits from both trackers, the row’s time display is faded in proportion to how much of it is still on the old wall-clock measurement, so a faded row is a signal to treat its exact time with a bit more caution rather than a rendering glitch.

Why UV here is lower than on the Overview tab

The unique visitor count on this panel will not match the Overview tab for the same page and date range, for three separate reasons:

  1. Buyers are excluded by default. The panel is built to answer “where did the people who didn’t buy lose interest,” and a buyer necessarily reached the payment form, which would otherwise pull the numbers toward “engaged.” Check Include buyers in the filter bar to add them back in.
  2. A visitor only counts once their leave beacon has arrived. The engagement figures - scroll depth, time on page - are only complete once a visitor’s session sends its final beacon on leaving. A visitor who is still on the page, or whose leave beacon was lost, is not yet counted here even though Overview already counted their page view.
  3. This table only holds data collected after the feature shipped. Any date range that reaches back before the Interest panel existed will show fewer visitors here than Overview reports for the same range, because Overview’s page-view counts go back further.

None of these mean the panel is undercounting a problem - they mean it is answering a narrower, more specific question than the page-view total on Overview.

Opening a page at the exact drop-off point

Expand any row to see its 20 depth bands, each covering 5% of the page, with how many visitors reached that band and how long they stayed there. Next to each band is a link that opens your live page scrolled straight to that position.

Clicking it is safe to do freely: it opens the page with tracking turned off, so looking at your own drop-off point never adds a visit to your own numbers.

Data retention

Interest panel data is kept for 180 days. Older visits age out and no longer appear in the table, even if you widen the date range.

Filtering

The panel supports the same funnel, traffic source, and date-range filters as the rest of analytics, plus a page-type filter and the buyers toggle described above. Filtering does not change the group definitions - only which visits are counted into them.