ai accounting platform
Luca — ICAI CA-GPT
CA assistant where the LLM emits a spreadsheet IR, never cell formulas.
- role
- AI engineer
- status
- ● live
- scale
- 106 tables · 5 LLM providers
- stack
- TypeScript · Express · PostgreSQL · pgvector
- type
- commercial · closed source
FIG.01 // LUCA · SPREADSHEET GENERATION
The model never writes a cell address
It describes the model. A deterministic compiler builds the workbook.
The model never writes a spreadsheet formula
The model emits an intermediate representation: inputs, rows and scenarios. A deterministic compiler turns that into the workbook, assigning every cell address, laying out sheets and wiring cross-sheet references.
Because the IR has no cell-address surface at all, a whole class of cross-sheet reference bugs becomes unrepresentable rather than merely discouraged by a prompt.
Clarify first, and remember what is still open
Answers carry an "Unconfirmed — answer these to refine" block and an "Assumptions" block. The orchestrator parses those questions back out, so when the user answers only some of them the system knows which are still open.
Five providers behind one health-scored registry
No part of the application talks to a model vendor directly. Every provider carries a health score; successes raise it and failures lower it, with a rate limit costing more than a transient error and an auth or quota failure zeroing it outright.
Cooldowns are typed per failure class. Below the health floor a provider is skipped entirely, and Azure OpenAI is the guaranteed floor, so the failure mode is a slower answer rather than no answer.
5 LLM providers11 chat modes10 compliance modules
FIG.02 // LUCA · PROVIDER ROUTING
One health-scored registry, five providers
Below the health floor, a provider is skipped. Azure OpenAI is the guaranteed floor.