# Schema (/docs/schema)

Datahop learns your schema from the events you send. You don't define anything up front. **Schema** in the sidebar shows what came in: every event, every person property and every group property. For each one you see how much data there is, what the values look like and where it's used.

Use it to answer questions like "is anyone using this event?", "can I rename this property safely?" and "why do we have both `signup` and `sign_up`?"

## Events [#events]

Each event shows:

- **Last 30 days**: a small chart of daily volume, the total, and the change against the 30 days before.
- **People**: how many different people sent it in the last 30 days.
- **Last seen**: when the most recent one arrived.
- **Used in**: how many insights, dashboards, cohorts, feature flags, experiments, alerts, destinations and saved SQL queries reference it. **unused** means nothing does yet.

Search by name, description or tag, and sort by volume, last seen, usage or name. The filters at the top narrow the list:

| Filter | Shows |
| --- | --- |
| **Unused** | Events nothing references yet. |
| **New this week** | Events first seen in the last 7 days. |
| **Stale** | Events with nothing in the last 30 days. |
| **Hidden** | Events you've hidden. |

### An event's details [#an-events-details]

Click an event to open its details:

- **Volume**: daily counts for the last 90 days.
- **About**: a description, tags, and two switches. **Verified** says someone checked the name and description, so people and agents can trust them. **Hidden** removes the event from every event picker. A hidden event is still collected and you can still query it, so hiding is safe.
- **Where it's used**: every insight, dashboard, cohort, flag, experiment, alert, destination and saved SQL query that uses the event, each with a link. When something uses it indirectly, the list says how, for example a dashboard *via insight "Signups by plan"*. Check this list before you rename or stop sending an event.
- **Properties**: each property's type, the share of events that have it, and its most common values. These come from up to 100,000 events from the last 30 days.

Two buttons get you moving: **Create insight** opens a trend for the event, and **View recent events** shows the latest ten.

## Person and group properties [#person-and-group-properties]

**Person properties** lists every property on your people. If you use [groups](/docs/people/groups), each group type gets its own tab, such as **Company properties**. For each property you see:

- **Have it**: the share of people (or groups) that have the property.
- **Top values**: the most common values. For properties where almost every value is different, like an email, you see the number of values instead.
- **Set from**: where the value comes from:
  - **$set on …**: the events that set it, from `identify()` or `$set`.
  - **First touch**: set once by the SDK on a person's first visit (`$initial_*`).
  - **Computed by SQL**: written by a [saved query with computed properties](/docs/product-analytics/sql). The query's name links to it.
  - **People API**: set through the REST API or MCP.
- **Used in**: the cohorts, flags, insight filters and breakdowns, and saved SQL queries that use it.

Click a property to see all of its values with counts. Numeric properties also show the minimum, median, average, 90th percentile and maximum.

## Descriptions help agents [#descriptions-help-agents]

Agents read the descriptions, tags and verified state before they query. Through MCP, `get_schema` returns the same overview as this page, and `get_event_usage` returns one event's properties and everything that uses it. When two events look alike, agents are told to prefer the verified or more-used one. Agents can also fill in descriptions with `describe_event`. See the [tool reference](/docs/agents/tools).
