Skip to content

Product analytics for small SaaS teams

Ship on Tuesday. Know by Friday whether it worked.

Pulse watches the four or five events that actually predict whether a trial sticks — the first report published, the week-two return, the first teammate invited — and answers in cohorts instead of vanity charts. No warehouse, no data hire, no six-week integration before the first number.

One script tag and one identify() call. Most teams have a cohort grid before the coffee goes cold.

Retention · weekly cohorts

Weekly active
Weekly retention, sample workspace
CohortW0W1W2W3W4W5
Mar 03n=128100%61%48%44%41%40%
Mar 10n=141100%64%52%47%45%Not reached yet
Mar 17n=156100%72%63%59%Not reached yetNot reached yet
Mar 24n=149100%74%66%Not reached yetNot reached yetNot reached yet
Mar 31n=163100%75%Not reached yetNot reached yetNot reached yetNot reached yet

noteOnboarding checklist shipped Mar 14. Week-two retention on cohorts after it: 63% and 66%, against 48% and 52% before.

01What it does

Four questions, asked the same way every week.

Most analytics tools answer whatever you can be bothered to build. Pulse ships with the four that decide whether an early-stage product survives, already wired to the events you send.

  • 01

    Did they activate?

    Pick the one action that means a trial is real — a report published, a source connected, a teammate invited — and Pulse measures everything else against it. One definition, written down, that stops changing between meetings.

    Activationreport_published

  • 02

    Did they come back?

    Weekly cohorts: signup week down the side, weeks since across the top. A bad release shows up as a column that goes pale, which is harder to argue with than a line chart that only ever goes up.

    Cohort window12 weeks

  • 03

    Where did they stop?

    Funnels built from the events you already send, not a separate tagging project. Click any step to get the list of workspaces that fell out of it — the accounts, not just the percentage.

    Drop-off stepconnect_source

  • 04

    Which accounts are going quiet?

    Usage per workspace, week over week, with the ones trending down pulled to the top. It is the same list your renewal email should have been working from all along.

    Quiet threshold-40% / 2 wks

02How it works

Three steps, and the third one is an argument.

Installation is the easy part. Deciding what counts as a real user is the part teams skip, so Pulse makes you write it down before it will draw you a chart.

  1. 01

    Send events

    Drop in the snippet, then call track() on the handful of things that matter. Server-side too, if that is where the truth lives. Pulse does not want your whole event firehose — it wants the five events you would actually defend in a review.

    app/analytics.ts

    pulse.identify(user.id, { workspace: ws.id, plan: ws.plan })
    
    pulse.track("report_published", {
      workspace: ws.id,
      source_count: ws.sources.length,
    })
  2. 02

    Name the moment that counts

    Mark one event as activation and one as the north star. Everything downstream — cohorts, funnels, the quiet-account list — is computed against those two definitions, so nobody gets to redefine success halfway through a quarter.

    pulse.config

    activation  = report_published
    north_star  = weekly_active_workspaces
    cohort_by   = signup_week
  3. 03

    Ask without writing SQL

    Ask for week-two retention on accounts that connected a source in their first session, and Pulse builds it. Every answer prints the event definition and the filter it used underneath, so you can check its working before you quote it to anyone.

    pulse ask

    > week 2 retention, cohorts since Mar,
      workspaces that connected a source
    
      using: activation=report_published
             filter=source_connected in session 1
03Exports

It leaves as fast as it arrives.

Nothing in Pulse is trapped in Pulse. Every cohort, funnel and account list is a CSV, a scheduled push, or a row in your own warehouse — on the Team plan and above.

If leaving is hard, the product was never the reason you stayed.

Tidewater
Warehouse sync, hourly
Ledgerline
Billing events in, MRR out
Hopper
Lifecycle email triggers
CSV / API
Everything, on demand
04On this site

The plan question, answered at 2am.

Which plan, what is in it, and whether a trial covers what you need — answered while you are evaluating, rather than whenever we are next at a desk.

It reads the same plan sheet this site publishes, so the answer a visitor gets at midnight is the answer on the pricing page. When a billing question goes past what the documents cover, it stops and hands over rather than guessing.

Read the plan sheet it answers from

Pulse Analytics assistant

Built in

Scripted walkthrough

Ask me something a real visitor would ask. I'm Pulse Analytics's assistant — I answer from what's on this site, and I'll say when something isn't.

Try a question

05Plans

Priced on events, not on seats.

Charging per seat means someone gets locked out of the numbers to save $12. Everyone at your company can have a login on every plan.

  • Trace

    $0forever

    For one person checking whether the thing they shipped did anything.

    • 50,000 events a month
    • 1 workspace, 2 seats
    • 6-month history
    • Cohorts and funnels

    Start on Trace

  • Team

    Most picked

    $49per month

    For a product team that has to agree on what activation means and then hold to it.

    • 1,000,000 events a month
    • 3 workspaces, unlimited seats
    • 2-year history
    • Warehouse sync and scheduled exports
    • Quiet-account alerts

    Start a 14-day trial

  • Company

    $240per month

    For when finance, support and product are all reading the same numbers and need them to reconcile.

    • 10,000,000 events a month
    • Unlimited workspaces
    • 5-year history
    • Audit log and role-based access
    • Named contact for billing

    Start a 14-day trial

Prices in USD, billed monthly, cancel whenever. Trials do not ask for a card. Going over an event limit does not switch anything off — Pulse keeps recording and tells you the month you went over.

Line-by-line comparison
06Getting started

The first hour, honestly.

  1. 01

    Install

    The snippet goes in your app shell; the server SDK is one import. Ten minutes if your event names already exist, an afternoon if this is the conversation where you decide what they should be.

  2. 02

    Backfill

    If you already keep a signups table, point Pulse at it and the cohort grid fills in behind you. Otherwise the grid starts empty and is useful in about two weeks, which is the honest answer.

  3. 03

    Pick your one number

    The setup ends by asking which event means a trial became real. It is a five-minute decision that most teams argue about for a month, and it is worth having the argument on day one.

Start a trial

Trials run for fourteen days on the Team plan. Tell us the product and the one event you think means activation, and the workspace comes back configured rather than empty.

Trials do not ask for a card and there is nothing to cancel if you walk away.

Billing
(555) 0107