SQL field guide / Define the denominator
Calculate Monthly Cohort Retention Without Counting Unfinished Months
Count retained users once and separate a completed month with no activity from a month that has not finished.
Lumen / Product analytics Beta
See which features people use, follow their sessions, and inspect the events behind a product decision. Open-source product analytics, connected to your SyneHQ workspace.
Included at no additional product charge during beta.
Explore Lumen
Compare event activity, open a user or session, and inspect the records behind it. This interactive preview uses sample data, so you can explore before connecting your product.
Sample product activity · all times UTC
Events (30d)
+23.3% vs previous 30 days
Unique users (30d)
+1.0% vs previous 30 days
Sessions (30d)
+23.3% vs previous 30 days
Identified users (30d)
+1.0% vs previous 30 days
Daily events, last 30 days
| date | events |
|---|---|
| Aug 12 | 1,902 |
| Aug 13 | 1,617 |
| Aug 14 | 1,564 |
| Aug 15 | 1,747 |
| Aug 16 | 1,691 |
| Aug 17 | 1,641 |
| Aug 18 | 1,599 |
| Aug 19 | 1,569 |
| Aug 20 | 1,315 |
| Aug 21 | 1,317 |
| Aug 22 | 1,577 |
| Aug 23 | 1,614 |
| Aug 24 | 1,666 |
| Aug 25 | 1,731 |
| Aug 26 | 1,806 |
| Aug 27 | 1,647 |
| Aug 28 | 1,730 |
| Aug 29 | 2,050 |
| Aug 30 | 2,124 |
| Aug 31 | 2,186 |
| Sep 1 | 2,236 |
| Sep 2 | 2,269 |
| Sep 3 | 2,045 |
| Sep 4 | 2,044 |
| Sep 5 | 2,266 |
| Sep 6 | 2,234 |
| Sep 7 | 2,190 |
| Sep 8 | 2,138 |
| Sep 9 | 2,082 |
| Sep 10 | 1,785 |
Daily unique people, last 30 days
| date | users |
|---|---|
| Aug 12 | 476 |
| Aug 13 | 405 |
| Aug 14 | 391 |
| Aug 15 | 437 |
| Aug 16 | 423 |
| Aug 17 | 411 |
| Aug 18 | 400 |
| Aug 19 | 393 |
| Aug 20 | 329 |
| Aug 21 | 330 |
| Aug 22 | 395 |
| Aug 23 | 404 |
| Aug 24 | 417 |
| Aug 25 | 433 |
| Aug 26 | 452 |
| Aug 27 | 412 |
| Aug 28 | 433 |
| Aug 29 | 513 |
| Aug 30 | 531 |
| Aug 31 | 547 |
| Sep 1 | 559 |
| Sep 2 | 568 |
| Sep 3 | 512 |
| Sep 4 | 511 |
| Sep 5 | 567 |
| Sep 6 | 559 |
| Sep 7 | 548 |
| Sep 8 | 535 |
| Sep 9 | 521 |
| Sep 10 | 447 |
Most frequent product actions
| name | count |
|---|---|
| page.viewed | 16,671 |
| report.viewed | 11,221 |
| filter.applied | 7,160 |
| project.created | 6,026 |
| invite.sent | 4,374 |
| report.shared | 3,821 |
| checkout.completed | 3,404 |
| export.completed | 2,705 |
Most viewed product paths
| name | count |
|---|---|
| /workspace | 13,690 |
| /reports/revenue | 7,218 |
| /projects | 5,732 |
| /reports/retention | 5,058 |
| /settings/team | 4,621 |
| /checkout | 4,290 |
| /explore | 3,958 |
| /dashboards | 3,839 |
| /reports/acquisition | 3,540 |
| /onboarding | 3,436 |
Practice the underlying skill
Activity is a starting point. Learn how a retention query defines eligible cohorts, counts each user once, and handles incomplete months.
Runs locally in DuckDB. Fictional data. No signup required.
SQL field guide / Define the denominator
Count retained users once and separate a completed month with no activity from a month that has not finished.
Compare feature events and the people behind them. Give your next product review a clear starting point.
Events + users
Read the sequence around an action. See the recorded steps leading up to a share, a checkout, or an exit.
Session event paths
Check incoming activity in Live. Use Console to query raw events when the summary raises another question.
Live events + raw queries
Start with one meaningful event
Track the action that tells you a feature is being used: a project created, a checkout completed, or a report shared. Add the context you’ll need to understand it later.
Use TypeScript in the browser, Go or Python on the server, or send events over HTTP. Your team decides what to collect.
npm install @synehq/lumen-jsimport { Lumen } from "@synehq/lumen-js";
const lumen = new Lumen("<ingest-key>", {
endpoint: "https://<your-ingest-host>",
});
lumen.identify("user_123", { plan: "team" });
lumen.track("report.shared", {
report_type: "quarterly",
});Use the ingest key and endpoint from your Lumen setup. Keep administrative credentials on the server.
SyneHQ / lumen
Use Lumen in SyneHQ, inspect the code, or host the telemetry server on your own infrastructure.
A server you can inspect. SDKs you can build with.
Server: AGPL-3.0-or-later
Client SDKs: Apache-2.0
Lumen is included at no additional product charge during beta. This does not establish future pricing or volume terms. The open-source server is also available to self-host under AGPL-3.0-or-later; SDKs use Apache-2.0.
Each team has a dedicated ClickHouse-backed tenant in us-east-1. Raw event retention is currently one year. Schema and retention behavior may change during beta.
On a tenant deletion request, Lumen purges the data, including backups, within 30 days. Your team controls which events and properties it collects; SyneHQ processes hosted data under its DPA.
The session view shows the sequence of recorded events and their properties. It is not a video recording of a user’s screen.
You can self-host the open-source Lumen server. The hosted beta is in us-east-1; contact SyneHQ about EU hosting or Standard Contractual Clauses before relying on it for those requirements.
Start with the events behind one important workflow, then follow how people use it.