Docs overview

Using the Cassis web app

The Cassis web app lives at app.getcassis.com. Sign in with Google, or set a password through "Reset password" on the sign-in screen.

The app has five sections in the left sidebar: Chat, Ontology, Suggestions, Evals, and Tables. Below is a short tour of each, using a Formula 1 project as the running example.

Access is limited to selected design partners today. Leave your email at getcassis.com to be notified when it opens up.
Chat
Ask questions in natural language. Review the proposed query plan, then run it to see SQL and results.
Ontology
Browse and edit what Cassis knows about your data: objects, properties, links, context, graph.
Suggestions
Ontology updates proposed from your recent chats. Review, edit, apply.
Evals
A dataset of question / expected-answer pairs, with runs across the current ontology.
Tables
The raw schema underneath the ontology: tables, columns, row counts, and the ontology objects mapped to each.

Chat

Ask a question in natural language. For simple questions, Cassis answers directly. For complex or expensive ones, it surfaces a proposed query plan first: a plain-language description of how it will answer, the assumptions it had to make, and the ontology objects it will use. Review the plan, then click Run this plan to execute.

Every answer carries 👍 / 👎 with a free-text comment and an "Add as test case" shortcut. When you correct the agent in chat (a wrong answer, a clarification on a field, an object description that needs fixing), it's captured automatically and surfaced in Suggestions for review.

1. Simple question
Clear questions run directly. Cassis returns the answer in plain language, with the SQL and result so anyone downstream can verify.
Cassis · Formula 1 project
Who won the most races in 2023?
Max Verstappen won 19 out of 22 races in 2023, far ahead of Pérez (2) and Sainz (1).
sql: SELECT d.full_name, COUNT(*) FROM result r
  JOIN race ra ON r.race_id = ra.race_id
  JOIN driver d ON r.driver_id = d.driver_id
  WHERE ra.year = 2023 AND r.position = 1
  GROUP BY d.full_name ORDER BY 2 DESC

results: 3 rows
objects_used: Race Result, Race, Driver
Show SQL Download 👍 / 👎 Add as test case
2. Plan, then execution
Complex or expensive questions surface a plan first. Review the assumptions and the objects the agent picked, then click Run this plan to execute.
Cassis · Formula 1 project
Compare total points scored by all drivers in 2022 vs 2023, including sprint results.
Proposed query plan
UNION query combining the result and sprint_result tables, grouped by season.
Race Race Result Sprint Result
Assumptions:
· Sprint points included in the total
· Points rolled up across all drivers per season
Run this plan
Across 2023 drivers scored 2,458 points combined, slightly ahead of 2022 at 2,350. Sprint points are included in both totals.
2 rows.
2022: 2,350 points
2023: 2,458 points
3. Follow-up in the same chat
Keep asking. The chat holds its context, so follow-ups reference earlier results naturally — no need to restate the scope.
Cassis · Formula 1 project · continued
Now break it down by constructor for 2023.
Grouped by constructor in 2023: Red Bull Racing 860, Mercedes 409, Ferrari 406, McLaren 302, Aston Martin 280, Alpine 120, and five more under 30 points.
results: 10 rows
objects_used: Constructor Standing, Constructor

Ontology

Where you explore and edit what Cassis knows about your data. The tab bar at the top has six views: Context, Objects, Definitions, Links, Graph, and Import / Export. Everything is editable inline.

Context
The business context Cassis uses to ground every answer. Season numbering, FR vs global terminology, product conventions, anything an analyst would otherwise explain in a meeting.
Objects
The business objects we extracted from your tables. Each one has a description, its source table, synonyms, and properties.
Definitions
Metric and concept definitions that don't belong to a single object (e.g. "podium", "DNF", "win percentage").
Links
Relationships between objects, with the SQL join pattern and notes.
Graph
Visual overview of the ontology. Useful to spot connections or gaps at a glance.
Import / Export
Export your ontology into Cassis's format for now. More formats come later.
Context
Objects15
Definitions
Links26
Graph
Import / Export
Circuit "public"."circuits"
Constructor "public"."constructors"
Constructor Result "public"."constructor_results"
Constructor Standing "public"."constructor_standings"
Driver "public"."drivers"
Driver Standing "public"."driver_standings"
Lap Time "public"."lap_times"
+ 8 more
Driver
Formula 1 drivers who have competed in races
Source table "public"."drivers"
Synonyms racer, pilot
Notes There is also a drivers_ext table with the same columns but dob stored as text. Use the base drivers table which has dob as a proper date type.
+ 4 more
Driver ID number PK
Unique identifier for the driver
"driver_id"
Driver Reference string
Short reference code for the driver (e.g. 'hamilton', 'verstappen')
"driver_ref"
Driver Code string
Three-letter abbreviation code (e.g. 'HAM', 'VER')
"code"
+ 7 more

Suggestions

When you correct the agent in a chat, clarify a field, or add business context, Cassis catches it here. Click "Analyze conversations" to scan recent chats for ambiguities and weak hypotheses, then review the proposed ontology changes and apply the ones that look right. This is how the ontology stays in sync with how your team actually talks about the data.

Suggestions 4 unanalyzed conversations
▶ Analyze conversations
All10
Pending7
Accepted2
Rejected1
Add property
Add is_win on Race Result
3 chats used "win" and the agent inferred position = 1. Define it formally so future queries are grounded.
CASE WHEN position = 1 THEN TRUE ELSE FALSE END
✓ Apply
Modify definition
Add "team" as a synonym on Constructor
3 recent chats used "team" to mean the constructor, not the engine manufacturer. Adding the synonym helps the agent resolve questions about teams directly.
✓ Apply
Edit AI context
Note on Race: exclude sprint races by default
A chat revealed sprint races should be excluded from most "race" questions unless the user asks explicitly.
✓ Apply

Evals

A dataset of questions with expected answers, plus runs that execute every test case against the current ontology. Add a test case directly from the bottom of any chat with "Add as test case", or create one from scratch in this section.

Test Cases
A question plus its expected answer. The expected answer can be a value or a reference SQL query. Since the underlying data may change, the eval focuses on whether the generated query is right, not whether it returns a specific number.
Runs
A full run across every test case. Review each one's plan, the generated SQL, and the verdict (passed / failed). Use runs to track ontology quality over time.
Test Cases12
Runs
4 runs ▶ Run evaluation
Date Status Accuracy Tests Version
Apr 23, 11:45 Completed 92% 12 v2.4.0
Apr 20, 15:20 Completed 83% 12 v2.3.2
Apr 18, 10:30 Completed 75% 10 v2.3.0
Apr 15, 18:00 Completed 60% 10 v2.2.5

Tables

The Tables view shows the schema Cassis sees: every table with its columns, row counts, and the ontology objects mapped to it. Useful for seeing exactly what the ontology is built on top of.

public.circuits 77
public.constructors 212
public.drivers 859
public.lap_times 575K
public.races 1.1K
public.results 26.5K
+ 9 more
public.drivers
DriverFormula 1 drivers who have competed in races
Columns (10)
driver_id
S driver_ref
N number
S code
S forename
S surname
D dob
+ 3 more
driver_id
integer
Primary Key Not Null
Property
Driver ID
Unique identifier for the driver

Want to try Cassis?

Access is limited to selected design partners today. Leave your email to be notified when it opens up.

Stay tuned