# Warehouse Output

Upon a successful run, the Profiles project creates a series of tables and views in your warehouse. 

## Views

The final output from Profiles are views that, after each run, are updated to the most recent materialized tables. This allows you to always work with the most recent data without having to change code.

### ID Graph

The name of your ID graph's output is the name defined in your model spec. The name of the resolved `rudder_id` is `{ENTITY}_MAIN_ID` by default.

```sql
USER_MAIN_ID,
OTHER_ID,
OTHER_ID_TYPE,
VALID_AT,
FIRST_SEEN_AT
```

### Cohorts

`{ENTITY}_ALL`

`{ENTITY}_{COHORT_NAME}`

Using the names defined in [`profiles.yaml`]({{< ref "profiles/dev-docs/profiles-yaml/cohorts.md" >}}).

```sql
USER_MAIN_ID
```

### Feature views

`{ENTITY}_{FEATURE_VIEW_NAME}`

Using the names defined in [`pb_project.yaml`]({{< ref "profiles/dev-docs/pb-project-yaml/entities.md" >}}) for entities and [`profiles.yaml`]({{< ref "profiles/dev-docs/profiles-yaml/cohorts.md"  >}}) for cohorts.

```sql
USER_MAIN_ID,
<FEATURES>
```

Features named defined in [`profiles.yaml`]({{< ref "profiles/dev-docs/profiles-yaml/var-groups/"  >}}).

## Tables

Profiles creates a series of materialized tables that feed into the final views. RudderStack **does not recommend** using these tables directly as they are tied to individual runs.

These table include:

- [Entity var]({{< ref "profiles/dev-docs/profiles-yaml/var-groups/entity-var.md" >}}) tables
- [Input var]({{< ref "profiles/dev-docs/profiles-yaml/var-groups/input-var.md" >}}) tables
- Edges tables
- Mapping tables

Note that the tables use the format: `Material_<name>_<HASH>_<seq_no>`.

<br />
