Step one: the planner translates intent into a query.
When a user asks 'Who is the all-time leading scorer?', a Claude model — running as a structured-output planner — interprets the question and produces a JSON query plan. The plan specifies what data to retrieve: row type, grouping, aggregation function, ordering, and any filters. It does not produce an answer.
The plan is validated against an allowlist before execution. Column names, aggregation types, filter operators, and ordering directions are all checked against a controlled schema. A plan that references columns or operations outside the allowlist is rejected before any query runs. This prevents the AI layer from constructing arbitrary SQL.
Step two: the database executes the query.
The validated query plan is translated into parameterized SQL and executed against PostgreSQL. The result is a set of verified rows — actual data from the institution's historical records. No estimation. No inference. No language model is involved in this step.
The query result is the fact. If the top career scorer has 87 goals, the database returned 87. That number did not come from a model's training data, and it cannot be changed by rephrasing the question.
Step three: the explainer writes the answer.
A second Claude model — the explainer — receives the verified query result and writes a natural-language answer. It knows the institution's context (program identity, rivalries, historical character) from a structured primer, and it knows the query result. It does not have access to the raw database, and it cannot generate statistics.
The explainer's only job is to describe what the verified rows show — accurately, in the institution's voice, with appropriate context. If the data shows a tie, the explainer reports a tie. If it shows an outlier season, the explainer describes the data without speculating about why.
What Field does when it cannot answer.
If a question cannot be formed into a valid query plan — because it requires data the archive does not contain, or asks for a kind of cross-referencing the schema does not support — Field says so explicitly. It does not fall back to training-data estimates or confident guesses.
Coverage is always disclosed: if per-player records start in 2002, Field answers questions about career leaders as 'in records since 2002' — not as all-time claims. An honest scoped answer is more useful than a confident wrong one.
Why this architecture matters.
General AI tools combine interpretation and fact retrieval in a single inference pass. The model simultaneously decides what the question is asking and what the answer should be — drawing on training data, which for small-college athletics is sparse, inconsistent, and frequently outdated.
Field's two-step separation means statistical claims and narrative claims are produced by different systems with different properties. Statistics are deterministic, queryable, and auditable. Narrative is flexible and contextual. Neither contaminates the other.
The result is a system that can be wrong about phrasing or context — but cannot be wrong about a statistic in a way that isn't traceable to a specific record in the database. That is the trust property Field is built on.
Common questions.
Can Field answer questions about events outside its archive?
No. Field only answers from the records an institution has uploaded and verified. It does not draw on training data, web search, or external databases. Questions about data outside the archive receive a clear disclosure of what Field does and does not cover.
What prevents the AI from guessing when it does not know?
The architecture. The explainer model receives only the verified query results — it is not given the ability to generate statistics. If the query returns no results, the explainer is instructed to say so. There is no path through the system that produces a number not returned by the database query.
How does Field handle questions it cannot form a query for?
The planner returns an empty or refused plan, and the system responds with a clarification rather than attempting an answer. Certain question types — ones requiring conditional group filtering or cross-referencing data fields the schema does not support — are explicitly declined rather than answered incorrectly.
What data does Field use from each institution?
Field structures and ingests whatever historical records an institution provides — typically CSV exports of season summaries, game results, career statistics, and program honors. The data is stored in a multi-tenant PostgreSQL database with institution-level isolation. Field operates as a data processor; institutions retain ownership.
Does Field update automatically when new season data is available?
Not automatically. Each new season requires a data upload and ingestion. Field is built for historical archives, not real-time data. The athletic department or Field provides new-season data as records are finalized after each season.