Introduction
Datagoat answers typed questions about cases. It answers from what happened to cases like them.
You send a record of past cases and their outcomes, questions of four types, and the cases you want answered. You get back structured answers your code can use directly: a chance for each case, the columns that moved it, and a signed Verdict. When the record can't support an answer, you get a refusal instead.
How it works
Datagoat learns. The first question about a record fits a model of one yes/no outcome in it, such
as churned, converted or failed. The model is checked on rows it never saw. If it holds up,
every case is scored against it. If it doesn't, the answer is refused. It says so rather than
guess, and a refusal costs nothing.
The same record and the same question always give the same answer. Change one byte of the record and the next question fits again.
Four question types
| Type | Asks | Returns, per case |
|---|---|---|
yesno |
Will the outcome happen? | p, the chance it happens |
score |
Where on a scale of likelihood? | level, such as likely, with p |
choice |
Which option works best here? | choice, with each option's p |
rank |
Which cases first? | position in a ranked list, with p |
Every answered case also carries up to four reasons. A reason is a column, the case's value,
and which way it moved the chance. Several questions can go in one call. Questions about the same
outcome, with the same outcome_is_desirable, share one fit.
Design philosophy
Ask narrow questions about outcomes you actually record. Datagoat learns one outcome per question. For a decision with several parts, such as "will they churn, and which offer keeps them?", ask one question for each part in the same call. Then combine the answers in your code, where the thresholds and the costs are yours.
Datagoat reads numbers, dates, counts and categories: tables, event logs, time series, panels, sensor streams and agent traces (see Shapes). It does not read free text. To judge what a message or a document says, use a language model, such as Jev (Datagoat and Jev).
What it is, and isn't
- It is deterministic. The same inputs give the same numbers, byte for byte.
- It is a glass box. Every answer says which columns moved it, and which way.
- It refuses rather than guesses. No pattern that holds on held-out rows means no answer.
- It is signed. Anyone can check that an answer wasn't altered, and no key is needed.
- It closes the loop. Record what you did and what happened, and it tells you whether acting worked (Closing the loop).
- It isn't zero-shot. It needs history: about 500 labeled rows or more.
- It doesn't predict numbers. Outcomes are yes/no. "How much?" is a question for a regression tool.
- It doesn't find causes. Reasons are associations.
Where to go next
- Quick start: a free key and a first answer in two minutes
- The record, Questions, Answers: the three things every call is made of
- Shapes: event logs, series, panels, signals and traces
- Patterns: route, gate, rerank, grade and watch
- Known limits: where it is not the right tool
- Connect, SDKs, API reference