LB-05
Data Analyst
Answers business questions in plain language by writing, checking and running SQL on the company’s sales data.
Open the evaluation boardProblem
Owners wait days for simple numbers, and letting a model run SQL against a database is a real security risk.
Try it live
Ask which coffees lost the most repeat buyers last quarter. You get the SQL, the table, a chart and a plain explanation. Then try to make it delete data and watch each safety layer stop it.
Proves
Safe text-to-SQL, a semantic layer, and a measured choice of sync over async.
Signal chain
- resolve metrics
- write SQL
- parse + allowlist
- EXPLAIN
- run read-only
- self-correct
- chart + explain
Stack
Flask (sync) · gunicorn threaded workers · DuckDB · sqlglot · Vega-Lite · Vue
Engineering highlights
- Six layers of SQL safety: a SELECT-only parse, an allowlist of tables, columns and functions, a plan check before anything runs, a locked read-only connection, a forced row limit and a query timeout.
- Sync on purpose. Queries are short and CPU-bound, threads cover the model wait, and the code stays simple. The datasheet publishes a load test against an async build.
- Execution accuracy measured on 100 question and answer pairs.
| Operating limit | Value |
|---|---|
| Questions per visitor per day | 25 |
| Query timeout | 5 s |
| Row cap | 1,000 |
| Model calls per question (est.) | 2–4 |
Status The evaluation board for this part is open. It starts on curated samples, and your own text runs live within your daily allowance. Open the evaluation board