> ## Documentation Index
> Fetch the complete documentation index at: https://docs.data.avina.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Evidence and verdicts

> How every requirement is checked, and how to read why a result matched.

Every result the Data API returns has been checked against each of your requirements. The result lists those requirements one by one, with the evidence that each is true.

## Three verdicts

Checking one requirement against one candidate (A company or person that might match your request and still has to be checked.) ends in exactly one verdict.

> [card] matched
>
> Evidence confirms the requirement is true.

> [card] not\_matched
>
> Evidence shows the requirement is false.

> [card] unknown
>
> Evidence is missing, or too imprecise to decide.

The `unknown` verdict keeps guesses out of your results:

* Missing data is not a "no". A company with no published revenue is not "under \$50M". It is unknown.
* Unknown is not a "yes". A candidate with an unknown requirement is never returned as a match.
* An imprecise figure is not rounded in your favor. A company known to have 51 to 200 employees is unknown for "more than 100 employees".

## What gets returned

A candidate is added to the results only when **every** requirement is `matched`. Here is a search with three requirements, checked against three candidates:

Candidate

Outcome

Replay

| Candidate | Headquartered in Texas | Is a dental practice | Privately held | Outcome |
| - | - | - | - | - |
| Lakeview Dental Group | matched | matched | matched | Returned |
| BrightSmile Software | matched | not\_matched | (not checked) | Rejected |
| Northside Family Dental | matched | matched | unknown | Not returned, counted in `progress.unknown` |

So every entry in a result's `matched_criteria` has `verdict: "matched"`. The other outcomes are counted in the search's `progress`:

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{ "progress": { "candidates": 40, "accepted": 6, "rejected": 31, "unknown": 3, "not_returned": 0, "contacts_found": 0 } }
```

> [!TIP]
>
> A high `unknown` count means matches may exist that could not be confirmed. Loosening the requirement that is hardest to verify, or replacing a free-text criterion with a structured filter, can turn unknowns into results.

## Reading `matched_criteria`

Each result has one entry per requirement of the search. This example shows three:

```json matched_criteria (shortened) theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "matched_criteria": [
    {
      "criterion": "company.headquarters.state",
      "verdict": "matched",
      "evidence": { "summary": "Headquarters state: Texas", "sources": [], "items": [] }
    },
    {
      "criterion": "open_jobs",
      "verdict": "matched",
      "evidence": {
        "summary": "1 open job matches.",
        "sources": ["https://lakeviewdental.example/careers/sdr"],
        "items": [
          {
            "type": "job",
            "title": "Sales Development Representative",
            "posted_at": "2026-10-29",
            "location": "Austin, TX",
            "url": "https://lakeviewdental.example/careers/sdr"
          }
        ]
      }
    },
    {
      "criterion": "criteria.0",
      "verdict": "matched",
      "evidence": {
        "summary": "\"Family-owned and independently operated since 1998.\"",
        "sources": ["https://lakeviewdental.example/about"],
        "items": []
      }
    }
  ]
}
```

### `criterion`

Identifies which requirement the entry is about:

| Value | Refers to |
| - | - |
| A field name, such as `company.industry` | The filter condition on that field |
| `open_jobs` or `new_hires` | The condition on the company's job listings or recent hires |
| `criteria.0`, `criteria.1`, ... | The free-text criterion at that position in `criteria`, counting from zero |

For a search started with `query`, the filters and criteria are the ones in the search's `interpretation`.

### `evidence`

**summary** `string`

A one-line explanation, or a direct quote from the source in quotation marks.

**sources** `string[]`

URLs that support the verdict. Empty when the evidence is a data record with no public page, such as an employee-count range.

**items** `object[]`

The supporting records, when the requirement is about jobs, hires or technologies. Each has a `type` of `job`, `hire` or `technology` and the fields for that type.

## What counts as evidence

Evidence has to be about the right company and has to state the thing you asked for.

| Requirement | Counts | Does not count |
| - | - | - |
| "Offers same-day dental implants" | The clinic's own page: "We provide same-day implant procedures" | A software vendor's page: "We help clinics offer same-day implants" |
| "Is hiring SDRs" | An open SDR job at the company | A blog post from last year about growing the sales team |
| "Uses Salesforce" | A detected Salesforce deployment | A job description that lists Salesforce experience as nice to have |
| "Opened a new factory" | An announcement that the factory opened | An announcement that construction is planned |

An AI model's own reasoning is never evidence. If a claim cannot be tied to a source or a data record, the verdict is unknown.

## Using evidence in your product

* Show `evidence.summary` and the first source next to each result, so your users can check the list for themselves.
* Pass `sources` through to an AI agent, so it can cite where a claim came from.
* Store `matched_criteria` with the record. It is the reason the record entered your pipeline, which helps when someone audits the list later.

> [!NOTE]
>
> Evidence reflects what was true and findable when the search ran. A job listing can close and a page can change. `found_at` on each result records when it was added.

## Next steps

> [card] [Search lifecycle](https://docs.data.avina.io/concepts/search-lifecycle.md)
>
> Statuses, stop reasons and partial results.

> [card] [Result fields](https://docs.data.avina.io/api-reference/companies/list-results.md)
>
> The full result schema.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.