What a store launched recently tells you more than its full catalog does: where the brand is heading, which suppliers it just added, which product it is betting on this season. Many stores have a “New arrivals” collection, but it is curated, often stale, and doesn’t say when anything arrived. The dates are in the store’s public product data, though, and an export puts them in a column you can sort.
The three date columns
The Variant rows format includes three timestamps for every product:
created_at: when the product was created in the store.published_at: when it was published to the storefront. This is often the same day ascreated_at, but can be weeks later for products prepared ahead of a launch.updated_at: the last time the product was changed. Stores edit products all the time, so this is a sign of activity, not of a launch.
The values are in the ISO format Shopify uses, such as 2026-09-14T10:22:31-04:00, with the store’s time zone offset at the end. Because the format puts the year first, sorting the column A→Z sorts it by date even if your spreadsheet treats it as text.
Find the latest launches in four steps
- Export the store with the Variant rows format.
- Remove duplicate rows on
handle(Excel: Data → Remove Duplicates; Google Sheets: Data → Data cleanup → Remove duplicates). Variant rows has one row per variant, and you want one row per product here. - Sort by
published_at, newest first (Z→A). - Read down the top of the list:
title,vendor,product_type,priceandproduct_urlare all on the same row.
A quick way to see the pace: add a column with =LEFT(F2,7) on published_at to get the month, then a pivot table counting products per month. A store that published 40 products last month and 3 the month before is doing something worth a closer look.
Which date to trust
Neither date is a perfect “launch date”. Use them together:
- A product with an old
created_atand a freshpublished_atwas either held back and released recently, or taken off the storefront and put back. That second case is common for seasonal or restocked items. - A product with both dates recent is almost always genuinely new.
- Ignore
updated_atfor launches. A price change, a new photo or a tag edit all move it.
If a date column is empty for a store, the store’s data didn’t include it. That can happen on stores that hide their product list, where CatalogCSV reads the products from collection or product pages instead.
The free limit and large catalogs
Be aware of one thing on bigger stores. The free export keeps the first 100 products in the order the store lists them, and that order is not necessarily newest first. On a store with a few hundred products, the newest launches may be outside the free 100. The popup tells you the store’s total when it finishes, for example Done — downloaded 100 of 640 products (free limit), so you know when that is the case. A Pro license ($9 a month or $79 a year) exports the whole catalog, so the sort covers everything.
New since last time
For a store you follow regularly, dates are only half the answer. Products also disappear. Save each export with its date (the file name already includes it), and next time compare the two files on product_id: any ID in the new file but not the old one is new, and any ID that only exists in the old file has been removed or hidden. In Excel or Sheets, =ISNA(MATCH(J2, old!J:J, 0)) marks the new ones. The two-export tracking guide walks through the same idea for prices.
CatalogCSV doesn’t watch stores for you or send alerts. Each export is a snapshot made at the moment you click, from your own browser.
What the dates don’t tell you
- Whether a new product sells. CatalogCSV has no sales data and doesn’t estimate it. Watching the
availablecolumn flip tofalseacross a few exports is the closest public signal, and it is a weak one. - Unpublished products. Drafts and products the store hasn’t published yet aren’t in the public data, so you see a launch the moment it goes live, not before.
- Stores you can’t read. A store running a bot check can’t be read, and a password-protected store needs its password entered first.