# Canadian grocery observation evaluation sample

49 distinct records from three selected product/reference-store series, observed
July 20 to August 17, 2026. Historical observations, not today's prices.
The CSV and JSON contain the same records. Prices are in Canadian dollars.

## Provenance and selection

Source: a retained Vynn current-system observation export prepared August 17,
2026. Its SHA-256 is recorded in observations.json. The original export remains
private. A fixed selection of three reference-store series is projected onto
the nine public fields below. Of 160 selected source rows, 111 exact duplicate
public records are removed. Different observed prices on the same day, if
present, remain separate. No missing dates are filled.

Names, package descriptions, dates, prices, and promotion classifications are
preserved from the source. Retailer names and source product/store identifiers
are replaced or omitted. These sample series IDs cannot be passed to the API.
The sample is an export format, not a REST or MCP response schema.

The products were selected to demonstrate reading a series. They are not a
random sample or a basket, do not establish cross-retailer product equivalence,
and cannot estimate grocery inflation or province-wide prices. Each series
represents one reference store. Unknown promotion status is not a regular price.

## Files

- observations.csv: records for spreadsheets and Python.
- observations.json: the same records plus version, selection, and source hash.
- analyse.py: dependency-free Python example; accepts the CSV path as argument.
- walkthrough.ipynb: the same analysis in a Jupyter notebook.

Download the CSV and Python file into the same directory, then run:

    python3 analyse.py observations.csv

The script reports the observed minimum and maximum and the number of dates
with observations for each series. It does not interpolate a price history.

## Data dictionary

| Field | Meaning |
| --- | --- |
| series_id | Sample-only identifier for one product at one reference store. Not an API product ID. |
| product_name | Product name retained from the source record. |
| size | Source package description; blank means unavailable. |
| retailer | Anonymized label, not a retailer's name or evidence of a province-wide price. |
| province | Province of the selected reference-store series. |
| observed_date | Observation date, ISO YYYY-MM-DD; source has day precision. |
| observed_price | Observed price as a decimal string in JSON and decimal text in CSV. |
| currency | CAD. |
| promotion_status | Source classification; unknown means not classified. A blank value remains blank when the source did not supply a classification. |

## Use and citation

Provided for evaluation of Vynn's data structure and the accompanying example.
This sample does not grant access to or redistribution rights for Vynn's full
dataset. Production use and broader extracts follow the applicable Vynn terms
and agreed licence. See https://vynn.ai/terms and https://vynn.ai/pricing.

Citation: Vynn.AI, Canadian grocery observation evaluation sample, version
2026-08, observation period July 20–August 17, 2026. https://vynn.ai/data
Include an access date and describe any further transformation.
