Report Copilot
LLM-written report scripts that only ever see schemas, never personal data.
About the Project
A reporting system for an education non-profit's teacher programme. A plain-language request such as "training report for one state, split by district" is turned into business rules and a report script by an LLM, run against the warehouse, and the output is checked against the manual report on counts and values. The LLM only ever sees table schemas, never row values; 1,763 columns across 95 tables are classified for personal data, and direct identifiers are pseudonymised with a keyed HMAC-SHA256 hash, failing closed on any unclassified column.
Technical Overview
Data Sources
- Teacher programme records
- Training and certification data
- Warehouse tables (BigQuery)
- Manual Power BI reports for validation
ML / NLP Stack
- LLM-generated report scripts from plain-language requests
- Business rules encoded and tested as code
- Automated report validation against manual reports
- Keyed HMAC-SHA256 pseudonymisation
- Expert-verified PII column classification
Key Challenges
- Personal and child data under the DPDP Act
- Business rules spread across manual reports
- 1,763 columns across 95 tables to classify
- Proving automated reports match manual ones
Interested in this solution?
Let's discuss how we can adapt this approach for your business.
Get in Touch