# Codebook: Sample Conjoint Profile Data

Dataset: `sample-conjoint-profile-data.csv`

Unit of analysis: one shown profile.

## Variables

| Variable | Type | Description |
|---|---|---|
| `response_id` | string | Synthetic respondent identifier. Used as the clustering unit for standard errors. |
| `task_index` | integer | Zero-indexed task number within respondent. |
| `profile_index` | integer | Zero-indexed profile position within task. |
| `chosen` | integer | `1` if this profile was selected in the task, `0` otherwise. |
| `Attribute 1` | string | First randomized attribute. Values are `Reference` or `Level 1`. |
| `Attribute 2` | string | Second randomized attribute. Values are `Reference` or `Level 1`. |
| `Attribute 3` | string | Third randomized attribute. Values are `Reference` or `Level 1`. |

## Analysis Notes

The dataset is long-format profile-level data. Do not collapse it to one row per respondent before estimating conjoint effects.

The replication scripts create indicator variables for each non-reference level:

- `x1`: `Attribute 1 == "Level 1"`
- `x2`: `Attribute 2 == "Level 1"`
- `x3`: `Attribute 3 == "Level 1"`

The example model is:

```text
chosen = intercept + x1 + x2 + x3 + error
```

Standard errors should be clustered by `response_id` because each respondent contributes multiple profile rows.

