# Wayfair US Rank Intelligence — Sample Dataset
### Prepared by PLOTT DATA for SONGMICS HOME · snapshot 2026-09-01

This sample shows exactly what a daily Wayfair rank feed from PLOTT DATA looks like:
the schema, the field coverage, the analytical layer built on top, and the accuracy
you can hold us to.

---

## 1. How the data is collected

**Direct, real-time scraping of Wayfair's live public pages. Nothing is estimated,
modelled or licensed from a third party.**

| | |
|---|---|
| **Method** | HTTP collection of Wayfair's server-rendered category, search and product pages, parsed from the live DOM |
| **Session** | Every collection uses a fresh, cookie-clean, logged-out session — the programmatic equivalent of an incognito window. No account, no cart, no browsing history, so no personalisation bias |
| **Geography** | Pinned to a fixed `postalCode` (this sample: `10001`, New York NY). Delivery promises and some pricing are location-dependent, so the postcode is held constant across days to keep the series comparable. We can run any number of postcodes in parallel |
| **Ranking** | We record **both** the on-page `slot_position` (what a shopper actually sees, ads included) and the de-sponsored `organic_rank`. Roughly 37% of slots in these categories are paid, so the two differ substantially — the organic rank is the one that measures merchandising strength |
| **Sorting** | Default `Recommended` sort, which is what ~95% of Wayfair shoppers see. We can additionally track any other sort or filter state |
| **Depth** | This sample tracks the first 3 result pages (~144 slots) per category. Depth is configurable to any number of pages |

**What is measured vs. what is derived** — the dataset keeps these strictly separate:

- *Measured* — rank, title, brand, price, list price, discount, badge/flag, star rating, review count, shipping promise, variant counts, sponsored flag, image, URL. Every one of these is read off the page.
- *Derived* — review-count deltas, estimated units, rank bands, share-of-shelf. Always computed from measured fields, always documented, never mixed into the measured columns.

## 2. Refresh frequency

PLOTT DATA runs on whatever cadence you need — we build the collection to the
requirement rather than fitting you to a fixed product schedule.

| Cadence | Best for | Notes |
|---|---|---|
| **Daily** *(recommended baseline)* | Rank tracking, price/promo monitoring, share of shelf | One snapshot per category per day at a fixed hour, so day-over-day moves are clean |
| **Intraday (2–24×/day)** | Promo and Way Day monitoring, ad-slot churn, price-war response | Rank and price genuinely move within a day; hourly resolves it |
| **Weekly** | Velocity, assortment drift, competitive entry/exit | Aggregated from the daily series — you get the weekly roll-up *and* keep the daily grain underneath |
| **Real-time / on-demand** | Launch days, incident checks, ad-hoc category pulls | Triggered via API |

The sample ships **daily grain with a weekly roll-up** because that combination is
what actually supports rank↔sales inference: daily catches the move, weekly is the
window over which review counts accumulate enough to be a usable signal.

## 3. How far back the history goes

**Straight answer: Wayfair does not publish rank history, and nobody can backfill it
retroactively — including us. A rank time series begins the day collection begins.**

We would rather say that plainly than sell you a backfill that cannot exist.

What that means in practice:

- **Day 1** — full cross-sectional picture: every ranked listing, its position, price,
  rating and review count. Immediately useful (see `analysis_rank_band.csv`,
  `analysis_share_of_shelf.csv` — both built from a single day and both already
  actionable).
- **Week 1–2** — first true rank movements and price-change events.
- **Week 4+** — review-velocity becomes reliable; rank↔velocity relationships hold up.
- **Quarter 1+** — seasonality, promo-cycle effects, sustained competitor tracking.

**One genuine head start:** cumulative `review_count` is a *stock* that Wayfair
displays today and that encodes years of past demand. So from the very first snapshot
you get a lifetime-to-date demand proxy per SKU — you just can't slice *when* those
reviews arrived until we start measuring. Every day of collection converts more of
that stock into measurable flow.

---

## 4. What is in this sample, and what is real

Total honesty about provenance — every row is labelled.

| File | Rows | Provenance |
|---|---|---|
| `observed_snapshot_real.csv` | 1,560 | **100% observed.** Every ranked listing across 12 categories, 2026-09-01 |
| `client_catalog.csv` | 36 | **100% observed.** The complete SONGMICS HOME + VASAGLE catalogue as listed on Wayfair US |
| `analysis_rank_band.csv` | 5 | **100% observed.** Cross-section of the real snapshot by rank band |
| `analysis_share_of_shelf.csv` | 12 | **100% observed.** Per-category brand composition and ad density |
| `keyword_rankings_raw.json` | ~1,700 | **100% observed.** Organic + paid rank for 21 head keywords |
| `dim_product.csv` / `dim_category.csv` | 1,560 / 12 | **100% observed.** Dimension tables |
| `fact_daily_rank.csv` | 27,912 | **Illustrative.** 28-day daily panel. The final day (`is_observed = True`) is the real snapshot; the preceding 27 days are back-simulated so you can see the schema and shape of an ongoing feed |
| `fact_weekly_snapshot.csv` | 3,904 | **Illustrative.** Weekly roll-ups computed from the panel above |

**On the illustrative rows.** We can't hand you 28 days of history we haven't
collected yet, and we won't pretend otherwise. So the panel is generated from the
real snapshot using a rank→visibility curve **calibrated on the observed
cross-section** (`rank_visibility_weights` in `manifest.json`) rather than invented.
Every such row carries `is_observed = False` and the generator is seeded and
reproducible (`seed` in `manifest.json`). Use it to validate your pipeline, schema
and dashboards — not to draw conclusions about the market. Every conclusion in the
accompanying report comes from the observed files only.

## 5. Estimated units — the method, and how to make it exact

`est_units_sold_*` divides the change in review count by an assumed review rate:

```
est_units = new_reviews / review_rate      review_rate ∈ {2%, 3%, 4%}
```

This is the standard published-proxy approach (Chevalier & Mayzlin, *JMR* 2006, and
successors), and on marketplaces the rate typically lands between 1% and 4%.

**You can do better than an assumption, and this is the highest-value thing in this
sample.** You have Partner Home unit sales for your own SKUs. Give us one quarter of
those against the same weeks of review deltas and we solve for *your* actual review
rate, per category. That single calibration converts the proxy from an
order-of-magnitude estimate into a genuine unit-sales model — which we then apply to
every competitor listing on the shelf, where you have no visibility today. Your own
ground truth becomes the instrument that reads the rest of the market.

## 6. Files

```
observed_snapshot_real.csv      the real day, every ranked listing
client_catalog.csv              SONGMICS HOME + VASAGLE on Wayfair US
analysis_rank_band.csv          rank band -> reviews, rating, price, brand mix
analysis_share_of_shelf.csv     per-category composition and ad density
keyword_rankings_raw.json       21 head keywords, organic + paid rank
dim_category.csv                category dimension
dim_product.csv                 SKU dimension
fact_daily_rank.csv             28-day daily panel (illustrative)
fact_weekly_snapshot.csv        weekly roll-ups (illustrative)
manifest.json                   run metadata, calibration constants, seed
DATA_DICTIONARY.md              every column, typed and defined
```

Delivery formats available: CSV, JSON/JSONL, Parquet, direct-to-warehouse
(Snowflake / BigQuery / Redshift), S3/GCS drop, or REST API.

---

*PLOTT DATA · plottdata.com · Collection covers publicly accessible pages only; no
account access, no personal data, no circumvention of authentication.*
