Product analytics
Product analytics turns the Visits and Events captured on every Domain and API into the conversion, activation and retention Metrics every Team reads.
Product analytics reads the Events every Verb emits as trends, funnels, retention, paths and lifecycle. The definition is the tracking plan: a Change that renames or removes an Event must map it for every reader, or it is refused.
Summary
| Part | This System |
|---|---|
| Group | Data and insights |
| Status | Live |
| Shelf | Silent: it runs without being asked |
You can ask:
- “Where do visitors drop off?”
- “How many people signed up this week?”
- “Do users come back after the first week?”
- “Watch a recording of this session”
What you get
| Part | This System |
|---|---|
| Starts | On for every Startup at creation, with nothing to install. |
| Built from | Analytics, Event streams, Database, Functions |
Nouns it owns
| Noun | Definition |
|---|---|
| Visitor | A Visitor is someone a Startup cannot name, known by an id scoped to that Startup. |
| Visit | A Visit is one span of a Visitor’s Events on a Startup’s Sites and Apps. |
| Metric | A Metric is a named measure computed from Events or Entries, always derived and never typed in. |
| Acquisition | An Acquisition is how a Visitor or Prospect first arrived, recorded on its first Event: the referrer kind, the Play, the campaign, and the medium. |
| Recording | A Recording is the replay of one Visit or one agent browser session, masked at capture. |
| Audience | An Audience is a saved query over Visitors, Leads, Prospects, or Customers, used to target Ads and Messages. |
Verbs
| Verb | Object | Approval | Event |
|---|---|---|---|
| Visit.list | Visit | None | None. |
| Metric.create | Metric | None | Metric.created |
| Metric.list | Metric | None | None. |
| Customer.activate | Customer | None | Customer.activated |
| Event.capture | Event | None | Event.captured |
| Visitor.identify | Visitor | None | Visitor.identified |
| Visitor.merge | Visitor | None | Visitor.merged |
| Visitor.forget | Visitor | Asks first; waits 1 business hour | Visitor.forgotten |
| Metric.define | Metric | None | Metric.defined |
| Metric.query | Metric | None | Metric.queried |
| Metric.watch | Metric | None | Metric.watched |
| Recording.list | Recording | None | None. |
Events
| Direction | Event | How |
|---|---|---|
| Emits | Metric.created | By Metric.create |
| Emits | Customer.activated | By Customer.activate |
| Emits | Event.captured | By Event.capture |
| Emits | Visitor.identified | By Visitor.identify |
| Emits | Visitor.merged | By Visitor.merge |
| Emits | Visitor.forgotten | By Visitor.forget |
| Emits | Metric.defined | By Metric.define |
| Emits | Metric.queried | By Metric.query |
| Emits | Metric.watched | By Metric.watch |
States
The lifecycle of a Metric:
| State | Meaning | Moves to |
|---|---|---|
draft (first) | Its query is written and not compiled, so nothing reads it. | defined by Metric.define |
defined | Its query compiles against the Startup’s Events and Entries; defining it again recompiles an edited query. | None: it ends here. |
Who operates it
| Part | This System |
|---|---|
| Accountable | Analyst |
| Team | Marketing Team |
| Seat | A role agent holds it until a Human is seated. |
| Autonomy | supervised |
| Also calls its Verbs | Founder, Onboarding Specialist, Operations Lead, Finance Lead |
Approvals and limits
| Verb | Rule | Detail |
|---|---|---|
| Visitor.forget | A person says yes first | Waits 1 business hour |
Processes that use it
| Process | How it uses it |
|---|---|
| Iteration | A step calls Metric.query |
| Onboarding | A step calls Customer.activate |
| Role review | A step calls Metric.query |
| Runway | A step calls Metric.query |
Rail underneath
None.
Views and dashboards
| View | Shows | Metrics |
|---|---|---|
| Activation | The funnel from first Visit to first value, and retention by weekly cohort. | Activation rate, Month-3 retention |
| The Analyst’s view | The Metrics its accountable Role answers for. | Metric freshness |
Access
What each Access level may call here.
| Access level | May call |
|---|---|
owner | Every Verb (29) |
admin | All but 1 of 29: Visitor.forget |
member | All but 1 of 29: Visitor.forget |
viewer | Read only (12 of 29) |
Import and export
None.
Fees and pricing
None.
Availability and limits
| Part | This System |
|---|---|
| Status | Live |
Compliance notes
Recordings mask inputs at capture, and an erasure request removes a Visitor everywhere; what to track stays the founder’s.
Controls it carries:
Related Systems
Example
// A weather-risk Dataset API counts a Customer activated at its first paid Order within 7 days.
import { $ } from 'startup-builder'
const activation = await $.Metric.define({
name: 'Paid within 7 days',
query: 'share of Customer.created followed by Order.paid within 7d',
unit: 'percent',
})
// Which Plays bring Customers who pay? Split the funnel by Acquisition.
await $.Metric.query({ metric: activation.$id, shape: 'funnel', breakdown: 'acquisition.play', window: '30d' })
// Below 30 percent, the Analyst gets a Task to open an Experiment.
await $.Metric.watch({ metric: activation.$id, threshold: 30, direction: 'below' })