Upload hypothetical purchase task (HPT) survey data in wide format, aggregate responses at each price, and fit the exponentiated demand model (Koffarnus et al., 2015), overall and by group. Everything runs in your browser: your data never leaves your computer, and your session is saved locally so you can pick up where you stopped.

1 Upload data 2 Clean & recode 3 Map columns 4 Results

Upload your survey data

Wide format: one row per respondent, one column per price point. Cells hold either a yes/no purchase response (e.g. 1/0, Yes/No) or a quantity the respondent would buy. Extra columns (ID, sex, site, condition…) are fine; you can use one for group comparisons. CSV or Excel (.xlsx).

Drop a CSV or Excel file here or click to browse
Nothing is uploaded to any server: parsing happens in your browser.

Clean & recode (optional)

Build new grouping variables or exclude rows. Your uploaded values are never modified: your recodes are applied on top of them and saved with your session. Blank cells in price columns are already treated as missing automatically.

New grouping variable

Create a new column by recoding an existing one: collapse categories (sites into regions) or bin numbers into ranges (age into age groups). The original column is kept; the new one appears as a grouping option in the next step.

Exclude rows

Drop respondents from all analyses by a column value (e.g. a failed attention check).

Map your columns

Fits a separate curve for each group, alongside the overall (“All”) curve.

Columns

Price columns were auto-detected from the headers; check the assigned price values and fix any that are wrong.

Data preview

Results

Settings
Applies to every curve. The default of 2 means demand can fall to about 1% of Q₀ at very high prices.
Applies when the data has a free (price-0) condition.

Individual responses

Aggregated data

The aggregated values the curves are fitted to, at each price.