# Enrichments

An enrichment is a column MAIA fills by research, one row at a time. It takes a question and a set of rows and returns a value for every row, with the reasoning and the sources behind it.

Updated: 2026-09-29. Source: https://maia-analytics.com/docs/enrichments/overview

## What an enrichment is

An enrichment is a column with a question attached. MAIA asks the question of each row and researches the answer for that row alone.

A filter reads a value the data already holds. An enrichment finds a value the data does not hold.

![The column menu open on an enrichment column named Owner Contact Info, beside a filled column of Enrich buttons. Its description reads Finds parcel owner contact information including name and contact details. Below that, Source: Enrichment: Owner contact, Data type: Contact, and 0 of 10 enriched.](https://maia-analytics.com/product-shots/docs/column-menu-enrich@2x.png)

A researched column's menu names its question, its kind, its type, and how many rows have run.

| Part | What it is |
| --- | --- |
| The question | What the column asks, in plain words |
| The type | Yes or no, a number, a category, a link, or text |
| The kind | The kind of research that answers it. See [Kinds of enrichment](https://maia-analytics.com/docs/enrichments/overview#kinds) |
| The rows | The layer it runs on, in whole or in part |

## What a researched cell holds

Every researched cell holds the same three things.

| Part | What it holds |
| --- | --- |
| Value | The answer, in the column's type |
| Reasoning | One or two sentences, finding first |
| Sources | The records, pages, or images the answer rests on |

![A table cell reading Excellent under the column Roof Solar Readiness, with its reasoning panel open below it. The panel reads Roof Solar Readiness = Excellent, then Reasoning: the building shows a very large, predominantly flat and contiguous white roof with broad unobstructed sections, only limited rooftop equipment and small vents, and no obvious solar panels, heavy shading, unusual geometry, or severe deterioration.](https://maia-analytics.com/product-shots/docs/reasoning-satellite@2x.png)

One researched cell, opened. The value is in the cell, and the reasoning is in the panel.

When MAIA finds nothing it can support, the cell reads **Unavailable** and the reasoning says what was checked. MAIA does not fill the gap with a guess.

![A table cell reading Unavailable under the column Owner Occupied, with its reasoning panel open below it. The panel reads Owner Occupied = Unavailable, then Reasoning: no parcel owner, mailing address, or occupant records were returned, and the name FedEx Ground alone cannot establish occupancy. Sources (2) sits at the bottom.](https://maia-analytics.com/product-shots/docs/reasoning-unavailable@2x.png)

An Unavailable cell, opened. MAIA says what it checked instead of guessing.

## Kinds of enrichment

You name what you want to know, and MAIA picks the kind that answers it.

| You want | MAIA uses |
| --- | --- |
| A fact visible from above, such as roof type or paving | [Computer vision](https://maia-analytics.com/docs/enrichments/computer-vision) |
| The person behind an owner, and how to reach them | [Contacts](https://maia-analytics.com/docs/enrichments/contacts) |
| Loans, liens, and foreclosure filings on a parcel | [Mortgages and liens](https://maia-analytics.com/docs/enrichments/mortgages-and-liens) |
| Whether the owner occupies the building, or who the tenants are | [Property details](https://maia-analytics.com/docs/enrichments/property-details) |
| Anything else that is on the public web | [Web research](https://maia-analytics.com/docs/enrichments/web-research) |
| A value worked out from the row's own columns | Row data only. No web search is involved |

[Sub-agents](https://maia-analytics.com/docs/capabilities/sub-agents) research every kind but one, one sub-agent per row. Mortgages and liens is a records lookup, so the same parcel returns the same profile every time.

> **Note:** Two kinds are not available everywhere. Mortgages and liens is Pro only. Owner occupancy does not run on a layer you uploaded.

## Who starts it

An enrichment starts in one of two ways: the main agent starts it, or you do.

| Started by | Where | Who chooses the rows |
| --- | --- | --- |
| The main agent | Chat. You state what you want to know | The agent. It tests on a few rows before it runs the rest |
| You | The table or the map | You, from one cell to the whole list |

Either way, the research is the same and so is the cell. The steps for both are on [Run an enrichment](https://maia-analytics.com/docs/enrichments/run-an-enrichment).

## How a column is designed

MAIA designs every column by these rules, whether you or the agent wrote the question.

- **One question per column.** Two questions make two columns.
- **The simplest type that answers.** In order: yes or no, a number, a category, a link, text.
- **A rubric for judgment calls.** "Rate this roof for solar" becomes a scale with stated criteria, so every row is judged alike.
- **Two catch-alls on every category column.** `no_match` for a row identified with confidence that fits none of the categories. `unknown` for a row that cannot be determined.

## What it costs

Every row you enrich spends credits from your workspace's balance, the same balance that chat spends. The amount depends on the research each row takes.

Filter the table before you run, and you pay only for the rows you care about. See [What uses credits](https://maia-analytics.com/docs/billing/usage).

## Limits

- **An enrichment answers per row.** A question about the whole layer belongs in chat.
- **A value is evidence, not a verdict.** Read the reasoning and open the sources on the rows you will act on. See [Review](https://maia-analytics.com/docs/using-maia/review).
- **MAIA does not run Unavailable rows again by itself.** An ordinary run skips them. Open the column's **Enrich** menu and choose **Re-run unavailable rows**.
