---
title: Document schemas
description: Which fields to pull from each type of document. Saved once per document type, versioned, and used by the extract step.
section: Concepts
order: 3
---

A document schema says which field values to read from one type of document: a pay stub, a bank statement, a W-2. Schemas are built under **Extract** in the app.

## What a schema contains

Each field has a name, a type, and optionally a description, synonyms and a required mark.

| Type | For |
| --- | --- |
| text, number, date | Single values. |
| select | One of a fixed set of options. |
| yesno | A yes or no as printed or ticked. |
| object | A group of nested fields. |
| list | Repeating rows or values, such as the lines of a statement. |

**Synonyms** are the other labels the same field goes by on real paper: "statement date", "date of issue". **Required** fields that a page does not state are recorded as *not stated*. That is kept distinct from unread and from zero.

## Versions, and the default

Schemas are versioned like everything else: draft until activated, frozen once active. A document type with no schema of its own is read with the organization's **default** schema, so nothing goes unread for lack of setup.

## Why this lives in Sheaf

The schema is saved in your organization and named by the document type it belongs to. It is never sent with a request. What your team learns about reading a document accumulates here, not in integration code.
