
Enqualia
From behind to
frontrunner.
Custom AI, built and run for you: your data gets a shape, your questions get your answer.
Point Enqualia at a table and it builds its own model of what is in there. Then agents answer questions, write reports, and draft new APIs on top of it.
No schema to define, no model to configure. Eight rows and it fits.
The fit
What happens when a table lands
Three things run, in order, with nothing supplied but the rows.
It reads the columns
Every column is classified from its own values. Numbers, booleans, categories, free text, identifiers to ignore. Where there is a name column it becomes the label, and where there is a category it becomes the cohort that everything else gets compared against. Nothing is declared.
8 rows minimum. 200 features maximum. Median imputation, z-scored.
It gives every record a position
The numeric and categorical fields become a grounded embedding. Text fields go to a separate semantic tower, up to three hundred records. Records that are alike end up near each other, and the distance is a fact about the fields, not an opinion about the data.
PCA to at most 16 dimensions. L2 normalised, so the dot product is a cosine.
It fits a head for every number
Every numeric column with enough values and any variation becomes a prediction target, learned from the other columns of the same row. A column can never predict itself, and it can never predict itself through a near-copy of itself either.
Ridge, five-fold cross-validation, R squared pooled out of fold. Reported when negative.
The grounded fit is all numpy. There is no training run, no GPU, and no queue to wait in.
The gate
It has to beat the obvious answer, or you do not see it
A number is only shown when it beat the simplest answer available. Otherwise you get the simple answer, labelled.
Before any predicted number reaches you, it is scored against the simplest answers available: the table average, the average of its own cohort, a plain model on the raw fields, and a prior for each single-valued relation the record belongs to. If the model does not beat the best of those on held-out rows, the model number is withheld and the baseline is shown in its place, labelled.
>What should the maintenance cost for this site be, given everything else about it?
range 36,200 to 47,400
>What should the maintenance cost for this site be, given everything else about it?
This is the cohort average. The model did not beat it, so the model number is not shown.
[FLOOR] means you are seeing a baseline, not a model number.
- The comparison runs per question, not once at training time.
- The record you are asking about is removed from the panel that judges its own model.
- When the cohort is too small, the comparison widens and the answer says so.
Separation of powers
The language model writes the query. It never touches the data
A question is compiled into a typed program. The program runs on numpy. The answer is written from the trace, and then checked against it.
Compile
The model sees your field names, your ids and a grammar, never a table of your rows. It returns one JSON program. If the program does not validate, it gets one corrective retry with the errors and the nearest real identifiers.
Execute
A deterministic engine runs the program. Same program, same answer, every time, with a hash you can cite.
Gate
Every model-produced number passes the floor check on the way out. The gate lives in the engine, so no program can route around it.
Render and check
A second model call writes the sentence from the trace alone. A checker then verifies that the sentence states the trace's own answer, and relays the withheld and widened labels the trace requires. A sentence that fails is rewritten once, and if it fails again the answer is built from the trace deterministically.
Run the program yourself, with no question and no model involved, and there is nothing to compile and nothing to render.
Agents
What it does while you are not looking
Every capability here is the same agent with a different amount of privilege. The key decides what it is allowed to do, and the rule is enforced in the code, not in the prompt.
Ask for a piece of work, get several specialists
A mission plans up to four workers, runs them in parallel, and each one is a full agent with the whole workspace in context. When the mission ends in a report, a critic reads the findings first and checks the load-bearing numbers against live data before anything is composed. The result is a report that lives in the graph as a node, keeps its own feedback log, and versions instead of duplicating.
Four named specialists: report writer, model trainer, data exporter, API builder.
A watch on a schedule
It snapshots your tables by record set and update stamp, so an edit registers, not just a new row. When something moves it tells you what changed and whether one of your reports now contradicts the data.
Point at a file, a URL, or a question
CSV and JSON parse deterministically. PDFs and pages are structured against the schema the table already has. Every record carries where it came from. Ask for a dry run and you see exactly what would change before anything is written.
Share a read-only assistant
A link that can look at everything and change nothing. No writes, no storage access, no model fitting, and a daily quota claimed before the model runs rather than after.
Connect it to your own agent
The whole tool surface over MCP. The key decides which workspace, so a client cannot name one it has no key for. Long work returns a job id in milliseconds.
The graph
Your business, as a place you can walk through
Every node is a markdown file, so anything you can see, you can open and read. Files that mean similar things sit near each other, and the position is where the similarity lives.
An illustrative workspace. Branches appear as the workspace grows: APIs, Database and Storage on the first sync, then Semantics, Models and Reports once there are any.
Semantic rooms
Records arrange themselves
Records in a table are embedded and projected into a room of their own. Records that read alike end up neighbours, so the groupings appear without anyone tagging them and without a rule being written. Distance on screen is similarity, which is also how retrieval finds the right records: it looks in the neighbourhood rather than down a keyword list.
- Records
- 12
- 2D fit
- 94%
- Groups it found on its own
- WomenswearMenswearInteriorsConcept
One entity, one node
Records for the same thing, scattered across five tables, fold into the single node they describe. You read the thing, not the five rows about it.
Zoom into anything
A node with data inside it opens as its own graph, at any depth. The records that reference it become rooms of their own, one level down.
Watch it think
Ask a question and the answer travels the real edges to the files it actually opened. The spread you watch is the reach the model had.
Two ways in
Start it yourself, or start it with us
The same workspace either way. The difference is who does the first week.
Free to start, no card. Eight rows is enough to see whether it works.
We land your messiest source and hand back a workspace with a report in it.
Pricing
Fixed plans. Zero surprise invoices.
Every plan includes a monthly pool of entanglements with a live meter, like the AI tools you already use, but for your own workspace and endpoints.
Usage is measured in entanglements. Every call tells you what it spent, in the response header and in the dashboard.
Starter
1 production project, 3 seats
300K entanglements included monthly
See full plan Best valueGrowth
One workspace per client, white-label
1M entanglements included monthly
See full planScale
Unlimited projects, SLA
3M entanglements included monthly
See full planStart free, no credit card. Annual billing saves two months.

Antoni Elkenbracht
Founder
MSc Artificial Intelligence, Utrecht University. The gate, the entity models and the query layer come out of the thesis work. The method is the credential, and it is written down.
LinkedIn
Marharita Nakaliuzhna
Chief Operating Officer
English Literature and Linguistics. Runs partnerships and public affairs, so the teams who need this find it and the work reaches them.
Point it at one table
Eight rows and it fits. Thirty in a cohort and the gate can judge it per cohort rather than across the whole table. If the model cannot beat the average, you will be the first to know, because it will tell you.
No card to start. Your workspace is yours. Export everything, any time.