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

# Data Freshness

> How Data Legion tracks data recency and determines which contact information is current through last_seen dates and current status flags for person and company data.

How we track recency and determine which data is current across person and company records.

## Overview

Both person and company records include `last_seen` dates to track when data was last observed.

Person data additionally uses `current` flags on contact arrays (phones, emails, locations, socials) to indicate our best assessment for which contact method to use right now. Only mobile phones can be marked current. Personal emails have `current: null` because we can't verify if they're still in use.

## Person Data: The `current` Field

The `current` field answers: "If I need to contact this person, which phone/email should I use?"

| Field            | `current: true` means            | `current: false` means    | `current: null` means               |
| ---------------- | -------------------------------- | ------------------------- | ----------------------------------- |
| Phone            | This is the primary mobile       | Not the primary contact   | N/A (phones always have true/false) |
| Email (work)     | Confirmed current employer email | Historical or unconfirmed | N/A                                 |
| Email (personal) | N/A                              | N/A                       | We can't verify (unknown)           |
| Location         | Current residence                | Historical address        | N/A                                 |
| LinkedIn profile | Primary profile                  | Secondary account         | N/A                                 |

## Phone Classification

Phones are classified by type, which affects current selection:

| Type     | Can be `current`?            |
| -------- | ---------------------------- |
| Mobile   | Yes (exactly one per person) |
| Landline | No                           |
| VoIP     | No                           |
| Unknown  | No                           |

**Why only mobiles?** People typically have one primary mobile number. Landlines are often shared (household) or outdated. By selecting exactly one mobile as current, we give downstream users a clear "call this number" recommendation.

## Work Email Current Rules

A work email is marked `current: true` when it meets our criteria for current employment verification.

If multiple work emails qualify, we select the best one using our proprietary selection criteria.

## Personal Email Current Rules

Personal emails (Gmail, Yahoo, ISP emails, etc.) always have `current: null`.

**Why null instead of true/false?**

* `true` would imply we confirmed they still use it (we haven't)
* `false` would imply we confirmed they don't (we haven't)
* `null` = "unknown" is the honest answer

Personal emails can still have high confidence and multiple sources. The `current` field specifically measures "confirmed active use," which requires external validation we don't currently perform.

## Top-Level Convenience Fields

For quick access, we promote `current: true` items to top-level fields:

| Top-Level Field | Source                                        |
| --------------- | --------------------------------------------- |
| `work_email`    | First professional email with `current: true` |
| `mobile_phone`  | First mobile phone with `current: true`       |
| `linkedin_url`  | First LinkedIn social with `current: true`    |
| `city`          | From first location with `current: true`      |
| `state`         | From first location with `current: true`      |
| `country`       | From first location with `current: true`      |

These are **extracted from arrays**, not separate data. If no `current: true` entry exists, the top-level field will be `null`.

## Company Data: Freshness Tracking

Company records track freshness at the record level rather than per-field:

| Field       | Description                                                 |
| ----------- | ----------------------------------------------------------- |
| `last_seen` | Month the company record was last observed (YYYY-MM format) |

Company data does not use `current` flags. Company socials, domains, and tickers do not include per-element `confidence`, `num_sources`, `last_seen`, or `current` fields. These are simpler structures compared to person contact arrays.

Workforce analytics fields (the `legion_` prefix fields) are derived monthly from person data and reflect the state of the workforce at the time of the most recent build.

## Common Questions

<AccordionGroup>
  <Accordion title="Why is this personal email showing current: null when it has high confidence?">
    `confidence` measures how many sources agree this email belongs to this person. `current` measures whether we can confirm it's actively used today. For personal emails, we can't make that determination without external validation, so we leave it as `null` (unknown).

    We do not currently perform active-use verification for personal emails.
  </Accordion>

  <Accordion title="Why is this phone not marked current?">
    Check the phone type:

    * If it's a landline/VoIP, these are never current (only mobiles qualify)
    * If it's a mobile, only one mobile per person is current; this one wasn't selected
  </Accordion>

  <Accordion title="How recent does data need to be?">
    Work emails must meet our criteria to be marked current. For phones, we use our prioritization method.
  </Accordion>

  <Accordion title="Can old data still be useful?">
    Yes. Historical phones/emails are still included in the output, but they won't be marked `current`. Some use cases (research, identity assessment) benefit from historical data.
  </Accordion>

  <Accordion title="How often is the data refreshed?">
    Data is refreshed monthly. The `current` flag helps you identify the most up-to-date contact information.
  </Accordion>
</AccordionGroup>

## Related Documentation

* **[Data Verification](/docs/data-quality/data-verification)** - How we verify data quality
* **[Quality Scoring](/docs/data-quality/quality-scoring)** - Understanding quality scores
