Dave's Markets weekly ad, complex deals, in the deals row format. Prepared by 248.ai (Ora), 2026-09-21.

Ad week: 2026-09-16 to 2026-09-22.
Scope: Store 11, Turneytown, Garfield Heights, OH. The chain prints the ad in three versions; this is the one store 11 receives.

Files:
  daves-markets-complex-deals-2026-09-16.csv   one row per store and participating sku_id, 19 columns
  README.txt   this file

Rules applied to every row:
  1. Complex deals only: N for $X, buy X get Y free or Z percent off, and buy X save $Y. Plain single-item sale prices are not in this file.
  2. Digital coupons are excluded. A price that needs a coupon clipped online is not honored at the shelf, so those tiles are left out and counted below.
  3. Delivery is CSV: UTF-8, comma separated, one header row, a blank cell is null, dates are UTC.

Columns, in this order (the 12 deal columns first, then 7 provenance columns):
  store_id                           the retailer's own store number
  sku_id                             the item code under this merchant's convention (see below); digits only
  promotion_type                     BUY_X_FOR_Y, BUY_X_GET_Y_Z_PERCENT_OFF, or BUY_X_SAVE_Y
  promotion_purchase_quantity        X: how many the shopper must buy
  promotion_total_price              BUY_X_FOR_Y only: the price for X; blank otherwise
  promotion_quantity                 BUY_X_GET_Y_Z_PERCENT_OFF only: Y, how many are discounted; blank otherwise
  promotion_percentage               BUY_X_GET_Y_Z_PERCENT_OFF only: Z, 100 when the Y items are free; blank otherwise
  promotion_price_off                BUY_X_SAVE_Y only: the amount off in dollars; blank otherwise
  promotion_quantity_limit_per_cart  the limit printed in the ad; 0 when the ad states none
  promotion_start_time               UTC, ISO-8601 ending in Z
  promotion_end_time                 UTC, ISO-8601 ending in Z
  promo_group_id                     one id per offer; rows that share it are one mix-and-match group
  loyalty_offer_required             True when the price needs a loyalty offer loaded to the shopper's account
  mapping_note                       how the row was derived, when there is something to say; blank otherwise
  item_name                          the item as the retailer names it
  source_deal_text                   the ad copy the row was parsed from
  sku_source                         which field and rule produced sku_id (values listed below)
  flyer_id                           the retailer's circular id; blank when the retailer publishes none
  ad_version                         the regional version of the ad the store receives

sku_id for Dave's Markets is the GTIN-14: the UPC zero-padded to 14 digits with the check digit kept, as the merchant's delivery catalog lists it.
sku_source values in this file:
  ddmsid:group                 56 rows   the tile names a product family and was fanned out to every catalog item sharing the name

Fan-out: this merchant's ad carries no item code, so sku_id is the item id in the merchant's delivery catalog, joined to the ad tile by name at store 11.
A tile that names a product family (select varieties, a size range) is fanned out to every catalog item whose name carries the tile's brand and product words, one row per item, tagged sku_source = ddmsid:group. The count of items each tile fanned out to is in mapping_note.
A tile with no matching listed item is left out and counted below. No sku_id is ever guessed.

Buy one get one is BUY_X_GET_Y_Z_PERCENT_OFF with X=1, Y=1, Z=100; the ad's save-up-to amount, where printed, is in mapping_note.
Each price when you buy N or more is BUY_X_FOR_Y with X=N and the total = N x the unit price; mapping_note says so.

Counts:
  rows                                   56
  offers (distinct promo_group_id)       14
  stores                                 1
  BUY_X_FOR_Y                            56
  loyalty_offer_required = True          0
  digital coupon tiles excluded          0
  complex tiles left out, no listed item 42

Each file is a dated read of the retailer's public website; 248 reports what was published.
