df.groupby("channel")["repeat"].mean()Anyone can now make a dashboard with AI.
That’s wonderful.
The person closest to the question can answer it themselves. No more waiting weeks in a queue for someone else to build it.
That’s terrible.
Now there are twenty dashboards and analyses for every question, many on stale data, and nobody knows which one is right.
Keep the wonderful. With Seneca, anyone can pull a trusted dashboard or analysis into their own AI tool and build on it.
Lose the terrible. Every one shows how far you can trust it: where its data came from, how fresh the numbers are, and who reviewed it, if anyone did.
Twenty versions of one question.
No two agree.
With Seneca, start from what’s already known. Find it. Build on it.
Try it: press “Reviewed · see why” for this dashboard’s proof.
Repeat Purchase by Channel
Share of new customers who bought again within 90 days, by acquisition channel
New customers
—
Repeat rate (90 days)
—
Repeat revenue
—
Best channel
—
Repeat rate by month
90-day repeat rate for customers acquired in each month
Repeat rate by channel
Whole period, selected region
| Channel | New customers | Repeat rate | Repeat revenue | vs prior 12 mo |
|---|
Why you can trust this
Repeat purchase by acquisition channel. Rhea Osei, Marketing, with Claude. 7 October 2026.
- Source
- Orders warehouse, certified by the data team on 2 September 2026.
- Data as of
Live, today 06:00. The figures are not stored in the page. Each time it opens, its queries run under the reader's own data access.
- Checks
Passing Channel totals add up to the customer count.
Passing No customer is counted in two channels.
A passing check proves only what it declares. It is not a review.
- Definitions
Revenueestablished is the company's shared definition.
Repeat-purchase windownew here was created for this question and stays specific to it until someone approves it for everyone.
- Open to
- Marketing-leads group. Details on the Data tab.
- History
- 3 versions · 2 related analyses
Review, by a named person
Reviewed
The channel assignment and the 90-day window are appropriate for comparing channels. A later correction moved partner sign-ups out of Referral. This analysis does not show why Social customers return less often.L. Marsh, Finance · 9 October 2026
Each space sets its own floor. A sandbox accepts anything and says so in the record; the board space requires an accountable reviewer before anything is shown there.
What feeds each panel
- 1Headline figures
repeat_summaryonorders,customers - 2Repeat rate by month
repeat_by_monthonorders,customers - 3Repeat rate by channel
repeat_by_channelonorders,customers,channels - 4Channel table, same query as panel 3
- Tables
- orders, customers, channels. All three certified; none copied into the page.
- Filter
- Region, passed to every query as a parameter. The readout under the dashboard shows the rows each run returned.
- Who can open
Marketing-leads group.
Two people opening the same dashboard can see different rows, because each query runs under the reader's own data access. Sign-in is through your company's identity provider, so these are the groups you already run.
- v1 · 7 Oct 2026Built with Claude from the certified Orders source. Shared with the marketing team as not yet reviewed.
- v2 · 9 Oct 2026Reviewer asked for the 90-day window to be stated plainly; note added. Partner sign-ups moved out of Referral. Approved for marketing leads. L. Marsh
- v3 · pendingThe nightly refresh changed the conclusion for Social. That became a new version held for review; v2 stays published. An approved conclusion is never rewritten silently.
Everyone is sharing the dashboards they’ve made with AI.
But which ones can you trust?
You've been sent another HTML dashboard over Slack. It's beautiful. It's interactive. Is the data up to date? Did anyone check it? The person who built it may know, but the page doesn't say. In Seneca, it does.
| Sent over Slack | In Seneca | |
|---|---|---|
| The numbers | Copied into the page on the day it was built. They look fresh, but could be days or months old. | Queried live from your warehouse each time it opens, with the data's time in its record. |
| The source | Not on the page. It may be a certified table or an export from someone's laptop, and the reader can't tell which. | Named in its record, and marked certified or not. The tables and the query behind every panel are listed. |
| Who checked it | No one knows. | A reviewer signs by name, with what they checked and what they did not. Each space sets its own floor.A sandbox accepts an unreviewed draft and says so. The board space requires an accountable reviewer. |
| Where it lives | A chat thread, a shared drive, a link that stops working. | One stable address, opened only by named groups, with every query run under the reader's own data access.Sign-in is through your company's identity provider, such as Okta or Entra, so the groups are the ones you already run. |
| What changed | A new copy, with no record of why or by whom. | Every version kept, with who changed what and why. If new data changes an approved conclusion, the approved version stays up until someone checks the new one. |
| The next person | Starts from nothing and asks the same question again. Twenty times a quarter, in twenty threads. | Is shown what already answers it before they start, and builds on it. Anything new on the same question is linked to what came before. |
| The AI tool | Whichever one that person happened to use. It follows the company's definitions only if they connected it to them. | Any of them. Claude Code, Codex, Cursor, and whatever comes next, through one open tool interface. Each is handed the company's definitions first. |
Before anyone builds a new dashboard, they are shown what already exists.
A dashboard is a standing view: the same question, answered live every day. An analysis is one investigation that ends in a conclusion, usually in a chat thread. Seneca holds both, and resolves the sprawl by making existing work the starting point, not by turning new work away.
Dana, in Sales operations, asks Claude why EMEA revenue fell last quarter.
Before Claude writes a line of SQL, it asks Seneca what the company already knows. It gets back two analyses and a dashboard that already answer the question, and the definitions it should use. Dana reads them in ten minutes instead of rebuilding them in a week, and her own work starts where theirs ended.
They reach three different conclusions, and Seneca keeps all three side by side rather than letting the newest become the official one. If Dana files a fourth, it is cross-referenced to the others at the door. Nothing is turned away, and nothing is pretended: an unreviewed draft simply says so in its record.
Illustration with made-up names and entries.
What already answers this: why did EMEA revenue fall in Q3?
Two analyses and a dashboard already answer this. Start from one of them rather than from the warehouse.
- EMEA Q3 revenue: restatement effectAnalysis · Leo Marsh, Finance, with Codex. 7 Oct. Moves two large contracts into Q2.ReviewedP. Nair, Data team
- EMEA Q3: competitor pricing in DE and FRAnalysis · Amara Osei, EMEA sales, with Cursor. 8 Oct. Filed beside the above as a second explanation.Different conclusionkept beside Finance's
- EMEA campaign spend, July onwardDashboard · Marketing, with Claude. 9 Oct. Shared with the marketing team only.Not reviewed yetsandbox space
Also handed over: the established definitions of revenue and fiscal quarter, and the Data team's note that Q3 is incomplete until the 15th. Not handed over: any row Dana's own access does not allow.
Beside your semantic layer, not instead of it.
A semantic layer is exact by design. What Seneca keeps has room for different views, and that is deliberate.
Don't have a semantic layer? We can help with that too.
The semantic layer answers "what is revenue?"
One definition, one number, the same for everyone. Seneca references those definitions from the systems that own them and marks them on every dashboard and analysis as established. It never redefines them.
- Revenue, net of refunds
- Active customer
- Fiscal quarter
Seneca answers "what did we learn, and where do views differ?"
Corrections, with who made them. Different explanations of the same result, kept side by side. The note that the current period is incomplete. The calculation one analyst invented that may or may not deserve to become shared. This is what the next person and their AI tool are handed first.
- Partner sign-ups moved out of Referral, 9 Oct, L. Marsh
- EMEA Q3: three different conclusions, all kept
- Repeat-purchase window: new to one dashboard, not yet shared
Early, and building with analytics leaders.
Seneca is early, and we are building it in the open with the people who are living this problem.
We are looking for analytics and business leaders who are already watching AI-built dashboards and analyses multiply in their teams and want one place for them to live, and one place to look before building another. If that sounds like you, we would like to hear what you are seeing and to show you Seneca.
Jake Minette
Founder, Seneca Analytics
Jake has spent 20 years in business intelligence, analytics, and data science, turning data into stories that help people make decisions. He started Seneca after watching AI tools produce complete, useful dashboards and analyses that had no good place to live, and watching teams rebuild them because nobody could find the first one.