For data teams, and the people who wait on them
Solstice is built to read the warehouse you already own, build a governed layer of measures on top of it, and answer with numbers, a report, and the grounds for its confidence. In this demo, that warehouse is a sample warehouse or a file you upload, because a live warehouse connection is not connected yet. No new dashboard to maintain, no SQL required to ask.
What drove growth this month?
Reducing churn is the largest opportunity. Net flow is shown from your own tables, with the playbook and measures named.
High confidence: trusted measures only
| Measure | Owner | Trusted |
|---|---|---|
| Total MAU | Data team | Yes |
| Churn rate | Data team | Yes |
| Ad hoc signups | Unknown | No |
Demo data. Untrusted measures lower confidence, they do not get hidden.
Monthly active users, against trend and goal
Churn down, new users up. The chart, the table, and the takeaway come from the same numbers.
Ask in the app, in a question box, or in a follow-up inside a report. The question stays in plain language, the work underneath stays visible.
Measures, owners, lineage, and trust status are checked before an answer is written, not added afterwards as a footnote.
Expert methods for long-term growth, funnel, engagement, and revenue drivers run first, so an answer is a method applied, not a guess phrased well.
A product lead, a finance lead, or a go-to-market lead files a request, waits days, and gets a chart with no method attached.
The playbook used, the measures queried, and the confidence grounds are shown with the answer.
A line goes up or down, and the next question is still unanswered: why, for whom, and what would change it.
Takeaways first, then a report with composition, funnel, or drivers, computed from the same tables.
One team counts a user one way, another counts it differently, and both charts look right.
Owner, lineage, and trusted status per measure, and a lower confidence answer when a measure is untrusted.
A fluent answer with no source is worse than no answer, because it gets acted on.
If a dimension or measure does not exist in your warehouse, Solstice says so and offers the closest real dimension, instead of inventing a split.
Context, agents, and interface, with feedback going back to context.
Your warehouse, plus a semantic layer: measures, definitions, owners, lineage, and trust.
Playbooks for growth, funnel, engagement, and drivers, plus channel, product, cohort, and trend splits where your tables support them.
Chat, report, follow-up, download, and shared toggle. A question, an answer, and a report you can check.
Feedback loop: a correction, a new measure, or a trusted toggle updates the context layer, so the next answer is better, not just the last one.
Checklist, in the app: pick a playbook, check trusted measures, compute from tables, state confidence and grounds.
Owner and lineage per measure, trusted and untrusted toggles, and a confidence drop when a required measure is untrusted.
Long-term growth, funnel, engagement, revenue drivers, and new splits for channel, product, repeat purchase, trend, churn by plan, cohort, and country.
Follow-ups answer from the report you are looking at. They do not invent new numbers from a different question.
Solstice is a warehouse-native analytics demo product. It is built to answer a simple question well: can a team ask its own warehouse in plain language and get an answer it can check, with the method, the measures, and the confidence shown? This build is a browser demo only. It uses sample warehouses and files you upload yourself. It does not claim a team, an office address, funding, customers, or a security certification, because none of those are part of this demo. It serves data teams and the people who wait on them: product, finance, and go-to-market leads who need an answer with grounds, not just a chart.
If you want to try it, use Get started above. That opens a demo sign-in, then a guided onboarding where you pick a warehouse, confirm measures, pick playbooks, and run a first question.
Read-only access for a real warehouse, with a read-only role and SELECT on the tables you choose. No write access is needed. In this browser demo, a live warehouse question cannot run from the app: Snowflake and BigQuery connector code exists in the backend but is not connected yet and no credentials are supplied, so no credentials are sent anywhere, and sample data or your own upload is used instead. We do not claim SOC 2 in this demo build, and we do not publish customer quotes, logos, or case studies here.
Setup help is built into onboarding: connect a warehouse, confirm measures, pick playbooks, run a first question. That sequence is the product, not an afterthought.
No tiers are invented here, and no dollar prices are shown, because none are published in this demo.
Pay for data processed and queries answered. Start on a sample warehouse or your own upload, and scale from what you actually use.
For larger teams and larger warehouses, pricing is tailored to scale. Talk to us about your warehouse size, team, and setup needs.
Solstice demo build. Sample data only unless you upload your own file. A live warehouse question cannot run from the app yet: backend Snowflake and BigQuery connectors are not connected and no credentials are supplied. Case studies and Careers are not listed here, because no customer case studies or open roles are part of this demo, and inventing them would be misleading.
Solstice in this demo build runs in your browser, with an optional local backend on your own machine. Sample warehouses are generated in the browser. A file you upload is read in the browser for this session. No warehouse credentials are sent anywhere, because a live warehouse connection is not connected yet and no credentials are supplied. No real account is created by the demo sign-in, and credentials you type there are stored only in this browser for this demo.
We do not claim to collect, sell, or share your data in this demo, because this build has no backend account system. If a future hosted version is built, this page must be rewritten before anyone is asked to sign in for real.
This is a demo product, for evaluation only. Sample data is fictional. Answers are computed from the warehouse tables you select or upload, and they carry a confidence level for a reason: check a trusted measure, a definition, and a lineage before acting on a number. Solstice can make mistakes, and the demo disclaimer says so on every answer.
Do not use this demo build with real customer data, real warehouse credentials, or as a system of record. No service level, support promise, or security certification is offered in this demo.
Use Get started or Sign in. This is a local demo account in this browser only. Magic sign-in is partially wired in v18: a backend verification service exists, but real sign-in is not verified end to end yet, and demo sign-in is the only verified sign-in.
In onboarding, or later from Warehouses, pick a provider card. Real providers show their fields and an honest test result, because a live connection is not connected yet and no credentials are supplied. Backend Snowflake and BigQuery connector code is dry-run only. Sample warehouses and your own CSV or JSON upload are the paths that actually run end to end in this build.
Check owner, lineage, and trusted status per measure. Marking a required measure untrusted drops the next answer to Directional, with the measure named.
Ask in plain language. The engine parses metric, dimension, time scope, and comparison, checks the schema first, and refuses by name where a column does not exist. Follow-ups re-run with the previous report as context. Use the report card for the chart, table, and SQL.
Correction: earlier builds had no model brain at all. They matched phrases in the question and computed answers from tables, with no agent loop, no tool calling, and no conversation memory beyond the session. With AI analysis on and the local backend running, v16 adds that brain: gpt-5.6-luna works through tools in several rounds, calling for aggregates, comparing segments, trending by month, and checking cohorts, then writes the final answer from the tool results only. The chat shows which tools were called, in order. When you connect, the app sends its active warehouse tables to the local backend only, over localhost, for tool execution in that session. The backend never forwards those rows to the model; the model sees only aggregates. A hosted backend would need the same rule. No API key is in this app file. With AI analysis off, or with the backend not running, answers are deterministic and are labelled as not from AI. In v18, the brain is multi-agent, not a single agent: Orchestrator, Quality, Modelling, Analysis, and Storytelling, with tool calling and conversation history. A persistent context layer now exists in the backend: structured feedback can change a later answer, and report history and scheduled briefs exist as a backend one-shot job, not as automatic browser scheduling. What is still missing is a live warehouse backend connection: Snowflake and BigQuery connector code exists in the backend and is tested dry-run only, with no credentials supplied and no network call made, so no Solstice chat question has yet run end to end against a live BigQuery or Snowflake warehouse.
Solstice builds a governed layer of measures over the warehouse you already own, runs expert playbooks over it, and shows confidence and grounds for every answer.
What are the biggest opportunities for long term user growth?
Playbook, measures, lineage, and confidence, shown with the answer.
Takeaways, then a report to drill into, from the same tables.
Demo data only in this build, unless you upload your own file.
This is a demo sign-in only. No real account is created. What you type here is stored only in this browser for this demo. There is no server session, so closing this browser or clearing its stored data ends the demo sign-in. Do not reuse a password you use anywhere else.
Magic sign-in is partially wired in this build and is not verified end to end yet. Demo sign-in is the only verified sign-in. The Magic panel below shows the current status plainly, and it never asks for a secret key.
Step 1 of 6
Connect a warehouse read-only, so Solstice can read your tables and answer from them. No data is moved, and no write access is needed.
Measures from the active warehouse, with owner, lineage, and trusted status. This is a full page, not a modal.
Create, edit, test, and approve measures. Editing a measure creates a new version; it never rewrites the version an old answer used. Test a version on sample data before approving it.
Paste a small sample table as JSON rows. The test returns aggregates only; sample rows are never shown back and never leave this test run.
Expert methods Solstice uses. Turning one off means questions for that playbook will not get a High confidence answer.
Create, edit, test, and approve playbooks. Editing creates a new version. A playbook is High confidence only when it matches the question, every required measure is trusted, and the data covers the period; otherwise it is Directional, with the reason named.
Every answer stores the playbook and measure versions that produced it. The badge below is what an old answer keeps showing, even after a newer version is approved.
Download history for this browser session only. No report link or sharing is created here.
Saved reports from this browser. Open one to read it again, or download it as JSON, CSV, or HTML. The v14 Download menu on the current report still works the same way.
No saved reports yet. Ask a question, and it will appear here.
Save a question and a schedule. The backend job generates a report from that question against the active warehouse, stores it in report history above, and marks it generated with its date and status. In this browser alone, schedules are saved but do not run by themselves; running needs the backend one-shot command (see the note under the list).
Plain language that works: every day at 09:00, daily at 9am, every Monday at 08:30, Mondays at 8:30am, every Friday at 17:00. Anything else is rejected with that list, not silently accepted.
No scheduled briefs yet.
Backend run: python3 briefs.py run-due generates every due brief now. A cron entry running that command every 15 minutes is the scheduled job; see DELIVERY-REPORT.md for the exact line.
Optional. If you add your own Slack webhook URL, generated briefs are posted there as a text summary plus totals. Warehouse rows are never posted. If you leave this empty, briefs are still saved in report history, and the app says plainly that Slack is not configured. It never claims a Slack delivery happened.
Slack is not configured
The URL is never shown back, never stored in a report, and never included in a screenshot or download. In backend mode it is stored only in the backend settings file. In browser-only mode this panel records only that a webhook was supplied; it does not send anything to Slack from the browser.