A small model for routine questions, and where we stop it
Most questions in a document pipeline are small. Jev answers them in about half a second, for teams that switch it on, and only decides when it is at least 0.9 sure. What it sees, where it runs, and what it is not allowed to do.
Before anything in your portfolio changes, a lot of small questions get asked. Is this attachment a capital call, a fund report or neither? Is this headline about the company you follow or about another company with a similar name? Which of your own expense accounts does this receipt belong to?
A large language model answers all of these well. It is also slower than the question deserves, and on our platform every call to it uses your team's credits. So for teams that switch it on, we now send these questions to Jev first. Jev is a decision model from TypeSafe AI, built to pick one answer from a fixed list and say how sure it is.
Faster, and cheaper where it decides
A Jev answer comes back in about half a second. When Jev is sure enough, its answer stands, and the large model is not called for that step at all. An inbound document that Jev classifies uses no credits for classification. The same goes for a batch of news headlines that Jev rejects completely.
When Jev is not sure, nothing changes: the model in the EU decides, exactly as it did before. The worst case is one extra half-second round trip.
The 0.9 rule
"Sure enough" is a number. For inbound documents, Jev's answer counts only at a confidence of 0.9 or higher, both when it accepts a document as a fund report or capital call and when it drops one as unrelated.
We chose that number by replaying 129 past uploads from two teams through Jev and comparing its answers with where each document actually ended up:
- Every fund report and every capital call Jev answered was classified correctly.
- Every miss was a loan or interest statement that Jev called a fund report. The most confident of these scored 0.79.
- Jev never dropped a real document.
- At 0.9, Jev decides 108 of the 129 documents. The other 21 go to the model in the EU.
Accept and drop are two separate thresholds, because the two mistakes cost different things. A wrong accept imports something you delete. A wrong drop can lose a capital call with a deadline. Both are 0.9 today. The drop threshold will not go below the accept threshold, because the replay contained only a few unrelated documents.
That is a small sample from two teams, and we are not presenting it as more. It is enough to set a conservative threshold, and the admin replay stays in the app so we can rerun it as more documents come in.
The same pattern, with the costly mistake ruled out
Each place Jev is used gets its own rule, built around whichever mistake would hurt more there:
- Uploads with a vague filename. "Scan_0412.pdf" used to stay unclassified, so a capital call notice never reached extraction. At 0.9 or higher, Jev can now set the type, but only to capital call or fund report, and never over a type a person chose.
- Receipts. Jev pre-fills an expense account, at 0.8 or higher, and only from your book's own chart of accounts. It never posts anything. Payroll documents are never sent to it.
- News. Jev may only reject a headline, and only when it is at least 90% sure the headline is about someone else. Every headline that might be relevant still goes to the model in the EU.
- Grid edits. When an edit looks unusual, Jev adds an info note. It never blocks a save, and it sees rows as "row 1", "row 2", without names.
What Jev sees, and where
This is the part to read carefully, because it is different from the rest of our processing.
- Jev runs in the US. We call it at TypeSafe AI, Inc. through the Vercel AI Gateway. Every request is pinned to TypeSafe and refuses any provider that would keep the data. TypeSafe has no EU region yet.
- It gets masked text only. It sees at most the first 8,000 characters of a document, with names from your directory replaced by placeholders. It never gets the file or the filename. Scans without a text layer are not sent.
- It is off by default, for every team. An owner or Team Admin switches it on in team settings and agrees to TypeSafe as a sub-processor. Every change is recorded in your team's audit log. Only our server can change the setting.
- Extraction stays in the EU. Jev answers routine questions. It does not read figures out of your documents. Every document that is kept is still converted and read in the EU, as described on how it works.
TypeSafe AI, Inc. is listed with our other sub-processors on the security page.
What Jev does not do
It does not extract numbers, post bookings or decide that a news item is relevant. It does not see a document it has not been allowed to see, and it does not run for a team that has not switched it on. If it fails, times out or isn't sure, the work goes back to the path it took before Jev existed.
That is the whole idea. A small, fast model handles the clear-cut cases. Everything else goes to a model that is slower and EU-only, with a threshold between the two that we can show you how we chose.