Analytics and the pipeline

What each viewer did, their journey, and where every link stands.

On this page

This page covers what a room records as people use it, and where you read it: the Analytics screen, each viewer's journey, their answers and comments, and the pipeline you work your follow-ups from. It ends with what is not collected.

Everything here is measured, not scored. Where the app shows a stage or a signal, it shows the evidence behind it, and where the room has not reported something, the app says so rather than showing a zero.

What the room measures

Time per app and page

A room counts the seconds a viewer spends on whatever is in front of them: the app on the stage, or the page they are reading in the rail. It counts only while the tab is visible; a tab left in the background adds nothing. The room sends its running totals every 15 seconds, when the tab is hidden, and when the viewer leaves.

The totals are kept per visit, under keys that name what was on screen:

app:<app id>     an app from pitch.json's apps, e.g. app:hq
page:<page id>   a page in the room's Read more rail

Only time on things the live build and the project actually have is kept: a key that names an app the build does not declare, or a page the project does not have, is dropped. This same measure is what your plan's viewer-hours are counted from (see Plans and limits).

A visit is one opening of the room page. It is recorded as the page loads, and reloading the page, or coming back to it from the browser's history, starts another.

The moments of a visit

Beside the totals, the room reports the moments that give a visit its order:

Event When
arrived The visit began, with the viewer's own device class: phone, tablet or desktop
app The viewer switched to an app
frame The viewer chose a device frame
fullscreen, new-tab The stage opened full screen, or in its own tab
handoff "Open on your phone" was used
page A page in the rail was opened
scenario, reset A demo control ran, and whether the demo answered
next-steps The "What happens next" panel was opened
tour-step, tour-done, tour-left The guided tour reached a step, reached its end, or was left to explore
left The visit ended, and where the viewer was

Each event is checked before it is kept: it must name something the live build or the project has (a tour step must be a step of the live story), and belong to a visit of the viewer's own link. Room events has every field.

Who a visit belongs to

On a private link, a visit belongs to the person who made it: the person you made the link for, or someone it was forwarded to who said who they are (see Running a pitch). At a listed project's public address, visits are anonymous; the room tells visitors apart by an id it gives each browser session, which is stored hashed and used only to count people.

The members' preview ("Preview as viewer") records nothing.

The Analytics screen

Analytics in the app's side bar shows every project in the workspace together. Each project also has an Analytics tab showing that project alone.

Date ranges

Choose the last 7, 30 or 90 days, or a custom range. Days are counted in UTC, both ends are included, and a range can be at most 366 days. Every day in the range is drawn, including the empty ones, so a gap in a chart is a day when nothing happened, not a day that was left out.

Your plan sets how far back you can look: Free shows the last 30 days, Pro the last 90, and Team and Organisation all of it. Nothing is deleted, and a plan with a longer window shows the older history again (Plans and limits).

The measures

Measure What it counts
Views Visits begun in the range
Viewers Distinct people: each person under a private link once (the link itself, when nobody on it has said who they are), and each anonymous visitor at a public address once
Time in the room The seconds measured on apps and pages, from visits begun in the range
Turned away Viewers a full room turned away (see Plans and limits)

Each of these is also drawn day by day, as its own chart: views a day, viewers a day, minutes in the room a day, and viewers turned away a day.

Ranked lists

  • Apps used: time per app, largest first, with how many viewers used each.
  • Pages opened: opens per page, with how many viewers opened it and how long it was read.
  • Scenarios run: runs per demo control, with how many viewers ran each.
  • Next steps chosen: answers per next step.
  • By project, on the workspace view: views per project, with viewers and time.

Page opens and scenario runs are counted from the room's events. Each panel says from when the room first reported them for the projects in view; before that date they were never recorded, so a zero there means "not measured", and the app says so.

The tour's drop-off

When a live build has a story, the screen shows how many people reached each of its steps, in the story's order, so the fall from one step to the next reads down the list. Beside it: how many people started the tour, reached its end, and left it to explore on their own. A person counts once at each step they reached, however many visits it took.

On Free

On a plan without full analytics (Free), the platform computes the range's total views and nothing else, and the app shows that number. The rest of the screen is drawn from invented values under a lock that says what a paid plan shows. They are never your numbers blurred: your other numbers are not computed for a Free workspace, let alone sent to the browser. Pro and up show everything on this page.

Activity and journeys

A journey

A journey is one viewer link's visits in order: what they opened, ran, read, said and chose, and where they stopped. Open a project's Activity tab for the list of its viewers, each with their visits, time, when they were last seen and their latest answer; choose a viewer to see their journey. On the pipeline, a card's See their visits opens the same view.

Journeys are analytics in full. On Free the platform refuses them, and the tab shows the lock instead.

What a journey shows

  • The link: the viewer's name, the email they were given or gave, the project, and how many visits.
  • The tour, when the live build tells one: "Finished the tour", "Took the tour to step 3 of 5", or "Has not taken the tour", across every visit.
  • Who has opened this link: the person it was made for, and anyone it was forwarded to, with the email each typed, marked unverified. Nothing is ever sent to those addresses, so nothing checks them.
  • Each visit, newest first: when it began, how long it lasted, who made it, on what kind of device, and the time split across apps and pages. Then its moments in order, each timed from the start of the visit: "Switched to Corner HQ", "Read Why Corner", "Ran “Morning check-in”", "Opened “What happens next”", a comment in full, an answer with its detail, and "Left from Corner HQ".
  • What the platform recorded itself in the same visit: their copy of a container demo starting and becoming ready (with how long it took), and a comment or an answer.
  • Outside any visit: anything that belongs to no visit, such as the viewer being turned away by a full room.

When the room reported a visit's totals but not its order, the journey says so instead of guessing where the visit ended from the totals.

Next-step answers

At the end of a visit, or whenever they open "What happens next", a viewer on a private link can answer one of the next steps you offer (see Brand and next steps). Each answer is kept with the person who gave it and any detail the step carries:

Step The room words it Detail kept
meeting Book a meeting None
yes Yes — send the proposal None
later Get back to me In a week, a month, or next quarter
colleague Bring in a colleague Their name, and an email if given
question Ask a question The question
no Not for me A reason, if given: price, timing, fit, or already solved

Answers appear in the viewer's journey, on their pipeline card, in the Analytics screen's Next steps chosen, and on the home screen, whose line under the greeting names the latest one. A decision moves the viewer's stage on the pipeline (below).

At a public address, the only step offered is "Ask a question", and it is sent as a comment by someone signed in (see The community).

Comments

Viewers can pin a comment to the app they are looking at. Each comment keeps the app, the screen, where on the stage it was pinned, and who wrote it. You read and answer them in the project's Feedback tab; the viewer reads your latest reply in the room the next time they open their link. Running a pitch covers comments and replies in full.

The pipeline

The pipeline is every viewer link as a card, in the column of where that viewer is. Pipeline in the side bar shows every project together; a project's Pipeline tab shows that project's viewers, with each one's signals beside the board.

Only private viewer links are on it: a public address and a preview are never cards. A link that is revoked or has expired leaves the board.

The pipeline is Pro and up. On Free the platform refuses every part of it with 402, links made while the workspace was on a paid plan included, and the app draws the board locked, from invented viewers, as it does analytics (Plans and limits).

Stages

Stage Shown as Means
sent Sent The link has not been opened
opened Opened One visit
engaged Engaged Two or more visits, or two minutes or more in the room, or an answer that is not a decision
yes Said yes Their latest decision was "Book a meeting" or "Yes — send the proposal"
later Later Their latest decision was "Get back to me"
no Not now Their latest decision was "Not for me"

How a viewer moves

Unless you place them, a viewer's stage is worked out from what they did, each time the board is read:

  1. The latest answer that is a decision wins: a meeting or a yes is Said yes, "Get back to me" is Later, "Not for me" is Not now.
  2. With no decision, any answer ("Ask a question", "Bring in a colleague") counts as Engaged.
  3. With no answer, two visits or two minutes in the room is Engaged, one visit is Opened, and none is Sent.

The two-minute line is a first setting, not a settled rule, and may change.

Placing a viewer by hand

Drag a card to another column, or open it and choose Move to (the keyboard's way). A card you placed stays where you put it, marked "You placed them here", whatever the viewer does next.

When what the viewer did says something else, the card shows it as a suggestion, "Their activity says: Engaged", with Use that to accept it. It is never applied for you. Back to automatic hands the card back to the evidence.

Outcome, follow-up and notes

Open a card to keep, alongside the stage:

  • Outcome: Won, Lost or Later, or Not decided. It is your judgement of the deal, apart from where the viewer is.
  • Follow up on: a day, and a line of up to 280 characters on what about. The card shows "Follow up 14 October", or "Follow-up was due 14 October" once the day has passed. It is a reminder on the card only: nothing is sent to you or to the viewer.
  • Notes: as many as you like, each up to 2,000 characters, newest first, with who wrote it. Only your workspace sees them; they are never shown in the room.
  • Forwarded: anyone who opened this link and said they were someone else, with the email they typed.

Signals

Each card carries the evidence its stage is read from: time in the room, number of visits, apps used, pages read, when they were last seen, and their latest answer. These are counts, never a score.

From the CLI and Claude

The connector gives Claude three read-only tools over the same records (see MCP tools):

Tool Returns
viewer_activity A project's viewer links and their visits: when, and the seconds on each app and page
read_feedback A project's next-step answers and its comments
pipeline Every viewer link across every project, with its stage

Each changes nothing: reading feedback does not mark it read or resolved. The Analytics screen's charts, journeys, and the pipeline's outcomes, follow-ups and notes are in the app only; pitch has no command for them yet.

What is not collected

The room is built to tell you what a viewer did in your demo, and nothing about them beyond that.

  • No tracking scripts. The room runs only its own script, under a content security policy that lets it talk only to itself. No third-party analytics, advertising or fingerprinting code is loaded.
  • No address or browser details for viewers. The room keeps a device class (phone, tablet or desktop) and nothing else about the viewer's machine: no IP address, no browser version, no location.
  • Nothing inside the demo. The room counts time per app, not clicks, keystrokes or screens inside your demo. It cannot see them: the demo runs on another origin, and the script the room adds there only reports which screen the viewer is on, for pinning comments, and rings what a tour step points at.
  • No verified identities. A viewer's name is what you typed when making the link, or what they typed when they said who they are. An email is what someone typed; nothing is ever sent to it.
  • Nobody at a public address. A visitor there is an anonymous, hashed id, used only to count people. Someone who signs in to comment or react is known to you by their public face (name, handle and avatar), never their email.
  • Nothing from a preview. "Preview as viewer" records no visit and no event.