# Entity Properties

> For AI agents: a documentation index is available at [/llms.txt](/llms.txt). Append `.md` to any page URL for markdown, or send `Accept: text/markdown`.

Entity properties are categorical details about an entity, such as a user, that you can reuse across all experiments to filter or group results. You can provide detail that doesn't typically change, such as a user's home country. You can also provide a property that may change during an experiment, such as Subscriber Status: True/False. For dynamic properties, you provide a timestamp field that Statsig uses to identify the most recent value before the user's exposure. Using the pre-exposure value prevents imbalanced groups and biased results when an experimental treatment impacts the property, for example if the treatment increased the subscription rate.

![Entity Properties configuration interface](https://docs.statsig.com/images/statsig-warehouse-native/configuration/entity-properties/7fcac725-54b4-46be-bb68-52fcc308fe5f.png)

![Entity Properties setup screen with timestamp configuration](https://docs.statsig.com/images/statsig-warehouse-native/configuration/entity-properties/6c151cf4-d343-4750-8bfd-a6d48afd6e10.png)

## Example data

For property sources, Statsig only needs a user\_id and property fields. Property sources can define **fixed** properties (for example, a user's country of origin) or **dynamic** properties. For dynamic properties, provide a timestamp so Statsig can identify the most recent pre-exposure record.

| Column Type | Description | Format/Rules |
| --- | --- | --- |
| timestamp | _Optional_ an identifier of when you define the property. Required for dynamic properties | Castable to Timestamp/Date |
| unit identifier | **Required** At least one entity to which this metric belongs | Generally a user ID or similar |
| property columns | **Required** Fields you can use to group by and filter results in exploratory queries |  |

For example, a static property source could be:

| user\_id | company\_id | country |
| --- | --- | --- |
| my\_user\_17503 | c\_22235455 | US |
| my\_user\_18821 | c\_22235455 | CA |

You can use this source to filter and group results in any experiment that exposed either user\_id or company\_id.

For a dynamic property, it might look like this:

| user\_id | timestamp | company\_id | intent\_segment | spend\_segment |
| --- | --- | --- | --- | --- |
| my\_user\_17503 | 2023-10-10 | c\_22235455 | high\_intent | high |
| my\_user\_17503 | 2023-10-11 | c\_22235455 | high\_intent | high |
| my\_user\_17503 | 2023-10-12 | c\_22235455 | mid\_intent | high |
| my\_user\_18821 | 2023-10-10 | c\_22235455 | low\_intent | low |
| my\_user\_18821 | 2023-10-11 | c\_22235455 | low\_intent | mid |
| my\_user\_18821 | 2023-10-12 | c\_22235455 | low\_intent | mid |

The first user in this example has their intent\_segment property change on `2023-10-12`. Because Statsig uses the intent\_segment value before the user's exposure, this user may have different intent\_segment values across different experiments.
