{
 "prereg": {
  "active": {
   "version": 1,
   "file": "ops/track-record/PREREG.md",
   "sha256": "65d454cbaaeafa1d041a2eff63bdb1d34c5635712c40412cbf42295efcd76dcc",
   "registered_on": "2026-10-31",
   "text": "# Binna track record: pre-registration, version 1\n\nStatus: registered before any of the calculation code was merged. This file is frozen once it is on the main\nbranch: it is never edited, deleted or re-added. Any change to these rules is made by adding a new file\n(PREREG-v2.md, PREREG-v3.md, ...). A new version applies only to announcements published after that version was\nregistered; rows published earlier keep being calculated with the version in force when they were published.\nThe page shows the SHA-256 of every version and the date each one was registered.\n\n## 1. What the track record measures\n\nTwo things, and nothing else:\n\n- **A. Announcement lead.** When we publish that a brand has announced a launch at a retailer, how many days\n  before the first evidence of the brand being on sale there could the public read it on our site?\n- **B. Detection lag.** For every event we publish, how many days after the report did it enter our data?\n  This measures how fast we find reports. It is not a measure of being early.\n\n\"Early\" on the page means only: the day the announcement became visible on our site is before the date of the\nfirst on-sale evidence. It does not mean we predicted anything, and the page does not say so.\n\n## 2. Events in scope\n\n- Every event that has ever been on the main branch in `events/verified-*.jsonl`, or in the initial reviewed set\n  `events/golden-2026-10-19.resolved.jsonl`, and that passes the same validation as `collector/compile_events.py`.\n  Duplicates are merged with the same key as that script: (brand trimmed and lower-cased, retailer, country,\n  source URL, whether the event is a delisting).\n- Once an event has been on the main branch it stays in scope for good, even if its line is later removed.\n  The fields used for the calculation (status, month, scope, report date, source URL) are taken from the version\n  of the line in the commit where the event first appeared, not from later edits. For the initial reviewed set,\n  that version is the file as it stood at the end of 2026-10-19 (Toronto), when it was assembled; it was not\n  shown on the public site before 2026-10-26.\n- Event files and `events/corrections.jsonl` are append-only on the main branch: existing lines are never changed\n  or removed. Our checks compare every change with the main branch and refuse anything else. Corrections go to\n  `events/corrections.jsonl`; the calculation reads every line that has ever been in that file on the main\n  branch, so a removed line still counts.\n- Rows are shown only for brands in the public brand data (`data/brands.json`) on the day of the calculation,\n  matched by name after Unicode NFKC normalisation, case folding and removal of everything except letters and\n  digits. Events about other brands are not shown as rows, under the same publication rules as the rest of the\n  site. **They are still counted**: they are calculated with exactly the same rules, included in every headline\n  count, median and percentile, and published as anonymous figures (status, lead or lag in days, dates) without\n  brand, retailer or link. This matters because brands known only from news reports are published only once a\n  store listing is reported, so leaving out hidden announcements would hide exactly the ones that did not come\n  true.\n- No other selection. Every event in scope is counted, including announcements that never came true, events that\n  were later corrected, and events that make the figures look worse.\n\n## 3. Dates\n\n- **published_at** is the date, in America/Toronto, of the earliest commit on the first-parent history of the\n  main branch in which a line carrying the event's key is present in an `events/verified-*.jsonl` file. For a line\n  that was in the file when the file was first added, this is the committer date of that first-add commit\n  (`git log --first-parent --diff-filter=A`). A line added later gets the date of the commit that added it.\n  File modification times are never used. Events in the initial reviewed set have published_at 2026-10-19.\n  If an event is in more than one file, the earliest date wins. An event never on the main branch is not counted.\n- **visible_on** is the first day the public could read the event on our site: the later of published_at plus one\n  day (the site is rebuilt each morning at 06:07 Toronto from the main branch) and 2026-10-26 (the day the site\n  went live).\n- The calculation refuses to run on a shallow clone, where the history would be cut off.\n\n## 4. Metric A: announcement lead\n\n- Eligible: every in-scope event with status `announced`. Its key is brand, retailer and country.\n- On-sale evidence for that key is any of:\n  1. an in-scope event with status `listed` for the same brand, retailer and country. Its evidence date is the\n     earlier of the first day of its listing month (when it has one) and its report date;\n  2. a retailer listing in the public brand data for the same brand, retailer and country with status `listed`\n     and evidence `checked`, not a distributor. With a start month or year (`since`), its evidence date is the\n     earlier of the first day of that month or year and its check date. Without `since`, only the check date is\n     known, and it is the most recent check, not the first: such a listing counts as dated evidence only when its\n     check date is on or before visible_on (it then shows the brand was already on sale), with the check date as\n     its evidence date. A later check date without `since` is \"undated on-sale evidence\": it never makes an\n     announcement fulfilled, and it keeps the row pending only while that check date is on or before the deadline\n     (status 5 below).\n  Listings with evidence other than `checked` come from the event files and are covered by rule 1.\n- Scope: online-only evidence (an event with scope `online`, or a listing of kind `online`) does not count as\n  evidence for an announcement whose scope is `in_store` or `both`. Any other evidence counts.\n- Each piece of dated evidence has an earliest possible date and a latest possible date. A month counts from its\n  first day to its last day (\"month precision\"), a year from 1 January to 31 December (\"year precision\"). The\n  earliest possible date is the earlier of the start of the listing month or year and the report or check date;\n  the latest possible date is the earlier of the end of that month or year and the report or check date. A piece\n  of evidence without a month or year has the report or check date as both.\n- Evidence date E = the earliest possible date over all dated evidence. Confirmed date L = the latest possible date\n  over all dated evidence, taking the smallest such value: the first day by which some evidence shows the brand was\n  certainly on sale. E is never after L. The deadline is always compared with L, and the lead is always counted\n  from E, so imprecise dates can only make a result look worse, never better.\n- Deadline = the last day of the announced month plus 90 days; when the announcement gives no month, the report\n  date plus 90 days.\n- Status. Write V for visible_on, D for the deadline, E for the evidence date (only when there is dated evidence)\n  and T for the calculation date. The first rule that applies decides:\n  1. `withdrawn`, in either of two cases. (a) A correction in `events/corrections.jsonl` with action `remove` for\n     the same brand, retailer and country and the same source URL as the announcement (URLs compared after\n     removing tracking parameters); the date of the correction does not matter, and a correction with another\n     source URL never withdraws. An `online_only` correction is never a withdrawal. (b) A verified delisting for\n     the same brand, retailer and country dated on or after V and on or before D, when there is no dated on-sale\n     evidence with E before the delisting date. A delisting dated before V or after D never withdraws. The scope\n     rule above applies to delistings too: an online-only delisting (scope `online`) never withdraws an\n     announcement whose scope is `in_store` or `both`.\n  2. `already_listed`: L is on or before D, and E is on or before V. No lead is counted.\n  3. `fulfilled`: L is on or before D, and E is after V. Lead = E minus V, in days.\n  4. `unfulfilled`, evidence not confirmed by the deadline: there is dated evidence but L is after D. No lead is\n     counted; the row is marked as having on-sale evidence that does not confirm a listing by the deadline, and\n     shows E.\n  5. `pending`: there is no dated evidence, and either there is undated on-sale evidence whose check date is on or\n     before D, or T is on or before D.\n  6. `unfulfilled`: every other case, that is, no dated evidence, T after D, and no undated on-sale evidence\n     checked on or before D.\n  Unfulfilled means no on-sale evidence in our data that confirms a listing on or before the deadline, not that\n  the brand is not on sale.\n- A row whose deadline had already passed when it became visible is marked as such.\n- Headline: the number of fulfilled announcements and the median lead among them (hidden announcements\n  included). Fewer than 10 announcements that are no longer pending is not enough to draw a conclusion; the page\n  then says \"Sample n=..., not enough to draw a conclusion\" instead of presenting the median as a result.\n\n## 5. Metric B: detection lag\n\n- Every in-scope event (listed, announced or delisted): lag = published_at minus the report date, in days.\n- Reported: the number of events, the median (the mean of the two middle values when the count is even) and the\n  90th percentile by the nearest-rank method (the value at position ceil(0.9 x n) in ascending order).\n- Always shown split by how the event entered the data: `daily review` (files named `verified-YYYY-MM-DD.jsonl`)\n  and `one-off batch` (the initial reviewed set and files named `verified-YYYY-MM-DD-<label>.jsonl`, which collect\n  older reports on purpose). Also grouped by the month of published_at. The overall figure is published but never\n  shown on its own without the split.\n- Any group with fewer than 10 events is marked as not enough to draw a conclusion.\n\n## 6. Backfill\n\n- Events published on or before the day this file reached the main branch are calculated with exactly the same\n  rules and are marked \"backfilled\". They are not an out-of-sample test: these rules were written while those\n  events could already be seen. The page states the backfill range and the known biases, including that the\n  initial reviewed set has a fixed date by rule rather than from history, and that one-off batches collect old\n  reports, which makes detection lag long by construction.\n- Before the first calculation, the history of every event file was checked: each `events/verified-*.jsonl` file\n  was added in one commit and never changed; the initial reviewed set was changed only on 2026-10-19.\n\n## 7. Integrity and recalculation\n\n- Each calculation reads these rules from the main branch, not from a working copy, and checks that every commit\n  that touched this file left it identical to the version first added. It refuses to run otherwise.\n- The calculation is deterministic: the same main branch, the same public brand data and the same calculation\n  date give the same output. It is published daily as `data/track_record.json`, on the page and as a download,\n  with every row, the anonymous figures for hidden events and the dates used; the page gives a short program that\n  recomputes the figures from that file.\n- The SHA-256 of this file is written into the data and shown on the page.\n"
  },
  "versions": [
   {
    "version": 1,
    "file": "ops/track-record/PREREG.md",
    "sha256": "65d454cbaaeafa1d041a2eff63bdb1d34c5635712c40412cbf42295efcd76dcc",
    "registered_on": "2026-10-31",
    "text": "# Binna track record: pre-registration, version 1\n\nStatus: registered before any of the calculation code was merged. This file is frozen once it is on the main\nbranch: it is never edited, deleted or re-added. Any change to these rules is made by adding a new file\n(PREREG-v2.md, PREREG-v3.md, ...). A new version applies only to announcements published after that version was\nregistered; rows published earlier keep being calculated with the version in force when they were published.\nThe page shows the SHA-256 of every version and the date each one was registered.\n\n## 1. What the track record measures\n\nTwo things, and nothing else:\n\n- **A. Announcement lead.** When we publish that a brand has announced a launch at a retailer, how many days\n  before the first evidence of the brand being on sale there could the public read it on our site?\n- **B. Detection lag.** For every event we publish, how many days after the report did it enter our data?\n  This measures how fast we find reports. It is not a measure of being early.\n\n\"Early\" on the page means only: the day the announcement became visible on our site is before the date of the\nfirst on-sale evidence. It does not mean we predicted anything, and the page does not say so.\n\n## 2. Events in scope\n\n- Every event that has ever been on the main branch in `events/verified-*.jsonl`, or in the initial reviewed set\n  `events/golden-2026-10-19.resolved.jsonl`, and that passes the same validation as `collector/compile_events.py`.\n  Duplicates are merged with the same key as that script: (brand trimmed and lower-cased, retailer, country,\n  source URL, whether the event is a delisting).\n- Once an event has been on the main branch it stays in scope for good, even if its line is later removed.\n  The fields used for the calculation (status, month, scope, report date, source URL) are taken from the version\n  of the line in the commit where the event first appeared, not from later edits. For the initial reviewed set,\n  that version is the file as it stood at the end of 2026-10-19 (Toronto), when it was assembled; it was not\n  shown on the public site before 2026-10-26.\n- Event files and `events/corrections.jsonl` are append-only on the main branch: existing lines are never changed\n  or removed. Our checks compare every change with the main branch and refuse anything else. Corrections go to\n  `events/corrections.jsonl`; the calculation reads every line that has ever been in that file on the main\n  branch, so a removed line still counts.\n- Rows are shown only for brands in the public brand data (`data/brands.json`) on the day of the calculation,\n  matched by name after Unicode NFKC normalisation, case folding and removal of everything except letters and\n  digits. Events about other brands are not shown as rows, under the same publication rules as the rest of the\n  site. **They are still counted**: they are calculated with exactly the same rules, included in every headline\n  count, median and percentile, and published as anonymous figures (status, lead or lag in days, dates) without\n  brand, retailer or link. This matters because brands known only from news reports are published only once a\n  store listing is reported, so leaving out hidden announcements would hide exactly the ones that did not come\n  true.\n- No other selection. Every event in scope is counted, including announcements that never came true, events that\n  were later corrected, and events that make the figures look worse.\n\n## 3. Dates\n\n- **published_at** is the date, in America/Toronto, of the earliest commit on the first-parent history of the\n  main branch in which a line carrying the event's key is present in an `events/verified-*.jsonl` file. For a line\n  that was in the file when the file was first added, this is the committer date of that first-add commit\n  (`git log --first-parent --diff-filter=A`). A line added later gets the date of the commit that added it.\n  File modification times are never used. Events in the initial reviewed set have published_at 2026-10-19.\n  If an event is in more than one file, the earliest date wins. An event never on the main branch is not counted.\n- **visible_on** is the first day the public could read the event on our site: the later of published_at plus one\n  day (the site is rebuilt each morning at 06:07 Toronto from the main branch) and 2026-10-26 (the day the site\n  went live).\n- The calculation refuses to run on a shallow clone, where the history would be cut off.\n\n## 4. Metric A: announcement lead\n\n- Eligible: every in-scope event with status `announced`. Its key is brand, retailer and country.\n- On-sale evidence for that key is any of:\n  1. an in-scope event with status `listed` for the same brand, retailer and country. Its evidence date is the\n     earlier of the first day of its listing month (when it has one) and its report date;\n  2. a retailer listing in the public brand data for the same brand, retailer and country with status `listed`\n     and evidence `checked`, not a distributor. With a start month or year (`since`), its evidence date is the\n     earlier of the first day of that month or year and its check date. Without `since`, only the check date is\n     known, and it is the most recent check, not the first: such a listing counts as dated evidence only when its\n     check date is on or before visible_on (it then shows the brand was already on sale), with the check date as\n     its evidence date. A later check date without `since` is \"undated on-sale evidence\": it never makes an\n     announcement fulfilled, and it keeps the row pending only while that check date is on or before the deadline\n     (status 5 below).\n  Listings with evidence other than `checked` come from the event files and are covered by rule 1.\n- Scope: online-only evidence (an event with scope `online`, or a listing of kind `online`) does not count as\n  evidence for an announcement whose scope is `in_store` or `both`. Any other evidence counts.\n- Each piece of dated evidence has an earliest possible date and a latest possible date. A month counts from its\n  first day to its last day (\"month precision\"), a year from 1 January to 31 December (\"year precision\"). The\n  earliest possible date is the earlier of the start of the listing month or year and the report or check date;\n  the latest possible date is the earlier of the end of that month or year and the report or check date. A piece\n  of evidence without a month or year has the report or check date as both.\n- Evidence date E = the earliest possible date over all dated evidence. Confirmed date L = the latest possible date\n  over all dated evidence, taking the smallest such value: the first day by which some evidence shows the brand was\n  certainly on sale. E is never after L. The deadline is always compared with L, and the lead is always counted\n  from E, so imprecise dates can only make a result look worse, never better.\n- Deadline = the last day of the announced month plus 90 days; when the announcement gives no month, the report\n  date plus 90 days.\n- Status. Write V for visible_on, D for the deadline, E for the evidence date (only when there is dated evidence)\n  and T for the calculation date. The first rule that applies decides:\n  1. `withdrawn`, in either of two cases. (a) A correction in `events/corrections.jsonl` with action `remove` for\n     the same brand, retailer and country and the same source URL as the announcement (URLs compared after\n     removing tracking parameters); the date of the correction does not matter, and a correction with another\n     source URL never withdraws. An `online_only` correction is never a withdrawal. (b) A verified delisting for\n     the same brand, retailer and country dated on or after V and on or before D, when there is no dated on-sale\n     evidence with E before the delisting date. A delisting dated before V or after D never withdraws. The scope\n     rule above applies to delistings too: an online-only delisting (scope `online`) never withdraws an\n     announcement whose scope is `in_store` or `both`.\n  2. `already_listed`: L is on or before D, and E is on or before V. No lead is counted.\n  3. `fulfilled`: L is on or before D, and E is after V. Lead = E minus V, in days.\n  4. `unfulfilled`, evidence not confirmed by the deadline: there is dated evidence but L is after D. No lead is\n     counted; the row is marked as having on-sale evidence that does not confirm a listing by the deadline, and\n     shows E.\n  5. `pending`: there is no dated evidence, and either there is undated on-sale evidence whose check date is on or\n     before D, or T is on or before D.\n  6. `unfulfilled`: every other case, that is, no dated evidence, T after D, and no undated on-sale evidence\n     checked on or before D.\n  Unfulfilled means no on-sale evidence in our data that confirms a listing on or before the deadline, not that\n  the brand is not on sale.\n- A row whose deadline had already passed when it became visible is marked as such.\n- Headline: the number of fulfilled announcements and the median lead among them (hidden announcements\n  included). Fewer than 10 announcements that are no longer pending is not enough to draw a conclusion; the page\n  then says \"Sample n=..., not enough to draw a conclusion\" instead of presenting the median as a result.\n\n## 5. Metric B: detection lag\n\n- Every in-scope event (listed, announced or delisted): lag = published_at minus the report date, in days.\n- Reported: the number of events, the median (the mean of the two middle values when the count is even) and the\n  90th percentile by the nearest-rank method (the value at position ceil(0.9 x n) in ascending order).\n- Always shown split by how the event entered the data: `daily review` (files named `verified-YYYY-MM-DD.jsonl`)\n  and `one-off batch` (the initial reviewed set and files named `verified-YYYY-MM-DD-<label>.jsonl`, which collect\n  older reports on purpose). Also grouped by the month of published_at. The overall figure is published but never\n  shown on its own without the split.\n- Any group with fewer than 10 events is marked as not enough to draw a conclusion.\n\n## 6. Backfill\n\n- Events published on or before the day this file reached the main branch are calculated with exactly the same\n  rules and are marked \"backfilled\". They are not an out-of-sample test: these rules were written while those\n  events could already be seen. The page states the backfill range and the known biases, including that the\n  initial reviewed set has a fixed date by rule rather than from history, and that one-off batches collect old\n  reports, which makes detection lag long by construction.\n- Before the first calculation, the history of every event file was checked: each `events/verified-*.jsonl` file\n  was added in one commit and never changed; the initial reviewed set was changed only on 2026-10-19.\n\n## 7. Integrity and recalculation\n\n- Each calculation reads these rules from the main branch, not from a working copy, and checks that every commit\n  that touched this file left it identical to the version first added. It refuses to run otherwise.\n- The calculation is deterministic: the same main branch, the same public brand data and the same calculation\n  date give the same output. It is published daily as `data/track_record.json`, on the page and as a download,\n  with every row, the anonymous figures for hidden events and the dates used; the page gives a short program that\n  recomputes the figures from that file.\n- The SHA-256 of this file is written into the data and shown on the page.\n"
   }
  ]
 },
 "ref": "origin/main",
 "ref_commit": "f7e0e7129c3770955e782c88fce3fea71e09d6de",
 "as_of": "2026-11-02",
 "registered_on": "2026-10-31",
 "rules_version": 1,
 "site_live": "2026-10-26",
 "min_n": 10,
 "deadline_days": 90,
 "backfill": {
  "n": 90,
  "from": "2026-10-19",
  "to": "2026-10-30"
 },
 "announcement_lead": {
  "n": 3,
  "counts": {
   "fulfilled": 0,
   "already_listed": 0,
   "pending": 2,
   "unfulfilled": 1,
   "withdrawn": 0
  },
  "resolved": 1,
  "fulfilled": 0,
  "median_lead_days": null,
  "enough": false,
  "rows": [
   {
    "brand": "medicube",
    "slug": "medicube",
    "retailer": "Walmart",
    "country": "US",
    "scope": "in_store",
    "announced_month": "2026-06",
    "reported": "2026-05-20",
    "source_url": "https://www.cosinkorea.com/news/article.html?no=57493",
    "published_at": "2026-10-19",
    "backfilled": true,
    "visible_on": "2026-10-26",
    "deadline": "2026-09-28",
    "deadline_passed_when_visible": true,
    "evidence_date": "",
    "evidence_precision": "",
    "evidence_kind": "",
    "evidence_source_url": "",
    "lead_days": null,
    "later_delisted_on": "",
    "evidence_after_deadline": false,
    "status": "unfulfilled",
    "rules_version": 1
   }
  ],
  "hidden": {
   "n": 2,
   "counts": {
    "fulfilled": 0,
    "already_listed": 0,
    "pending": 2,
    "unfulfilled": 0,
    "withdrawn": 0
   },
   "rows": [
    {
     "status": "pending",
     "lead_days": null,
     "published_at": "2026-10-19",
     "visible_on": "2026-10-26",
     "backfilled": true
    },
    {
     "status": "pending",
     "lead_days": null,
     "published_at": "2026-10-30",
     "visible_on": "2026-10-31",
     "backfilled": true
    }
   ]
  }
 },
 "detection_lag": {
  "n": 90,
  "median_days": 183.5,
  "p90_days": 731,
  "enough": true,
  "by_batch": [
   {
    "batch": "daily review",
    "n": 5,
    "median_days": 3,
    "p90_days": 6,
    "enough": false
   },
   {
    "batch": "one-off batch",
    "n": 85,
    "median_days": 216,
    "p90_days": 738,
    "enough": true
   }
  ],
  "by_month": [
   {
    "month": "2026-10",
    "n": 90,
    "median_days": 183.5,
    "p90_days": 731,
    "enough": true
   }
  ],
  "rows": [
   {
    "brand": "Aestura",
    "slug": "aestura",
    "retailer": "Sephora",
    "country": "CA",
    "status": "listed",
    "reported": "2025-07-25",
    "published_at": "2026-10-19",
    "lag_days": 451,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=55768"
   },
   {
    "brand": "Aestura",
    "slug": "aestura",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2025-07-25",
    "published_at": "2026-10-19",
    "lag_days": 451,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=55768"
   },
   {
    "brand": "AMUSE",
    "slug": "amuse",
    "retailer": "Nordstrom",
    "country": "US",
    "status": "listed",
    "reported": "2026-08-31",
    "published_at": "2026-10-19",
    "lag_days": 49,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=99659"
   },
   {
    "brand": "AMUSE",
    "slug": "amuse",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2026-08-31",
    "published_at": "2026-10-19",
    "lag_days": 49,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=99659"
   },
   {
    "brand": "Anua",
    "slug": "anua",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2025-02-20",
    "published_at": "2026-10-19",
    "lag_days": 606,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=54346"
   },
   {
    "brand": "Arencia",
    "slug": "arencia",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2025-08-26",
    "published_at": "2026-10-19",
    "lag_days": 419,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=96662"
   },
   {
    "brand": "Biodance",
    "slug": "biodance",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2025-03-10",
    "published_at": "2026-10-19",
    "lag_days": 588,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=50047"
   },
   {
    "brand": "Cell Fusion C",
    "slug": "cell-fusion-c",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2026-08-21",
    "published_at": "2026-10-19",
    "lag_days": 59,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=53367"
   },
   {
    "brand": "Centellian24",
    "slug": "centellian24",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2026-05-06",
    "published_at": "2026-10-19",
    "lag_days": 166,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=98705"
   },
   {
    "brand": "Cosnori",
    "slug": "cosnori",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2026-04-20",
    "published_at": "2026-10-19",
    "lag_days": 182,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=52603"
   },
   {
    "brand": "Dr.FORHAIR",
    "slug": "dr-forhair",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2023-10-12",
    "published_at": "2026-10-19",
    "lag_days": 1103,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=46605"
   },
   {
    "brand": "Dr.FORHAIR",
    "slug": "dr-forhair",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2024-06-17",
    "published_at": "2026-10-19",
    "lag_days": 854,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=48253"
   },
   {
    "brand": "Dr.FORHAIR",
    "slug": "dr-forhair",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2026-07-29",
    "published_at": "2026-10-19",
    "lag_days": 82,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=99365"
   },
   {
    "brand": "fwee",
    "slug": "fwee",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2025-08-11",
    "published_at": "2026-10-19",
    "lag_days": 434,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=51035"
   },
   {
    "brand": "Goodal",
    "slug": "goodal",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2023-02-16",
    "published_at": "2026-10-19",
    "lag_days": 1341,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=44949"
   },
   {
    "brand": "Hanyul",
    "slug": "hanyul",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2025-05-13",
    "published_at": "2026-10-19",
    "lag_days": 524,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=95864"
   },
   {
    "brand": "Healing Bird",
    "slug": "healing-bird",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2026-05-08",
    "published_at": "2026-10-19",
    "lag_days": 164,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=57403"
   },
   {
    "brand": "Huxley",
    "slug": "huxley",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2024-10-18",
    "published_at": "2026-10-19",
    "lag_days": 731,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=94235"
   },
   {
    "brand": "Ilso",
    "slug": "ilso",
    "retailer": "Nordstrom",
    "country": "US",
    "status": "listed",
    "reported": "2026-07-23",
    "published_at": "2026-10-19",
    "lag_days": 88,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=57930"
   },
   {
    "brand": "Ilso",
    "slug": "ilso",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2026-04-20",
    "published_at": "2026-10-19",
    "lag_days": 182,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=52603"
   },
   {
    "brand": "Jung Saem Mool",
    "slug": "jung-saem-mool",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2026-08-11",
    "published_at": "2026-10-19",
    "lag_days": 69,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=99458"
   },
   {
    "brand": "Kundal",
    "slug": "kundal",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2026-02-01",
    "published_at": "2026-10-19",
    "lag_days": 260,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=52112"
   },
   {
    "brand": "ma:nyo",
    "slug": "ma-nyo",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2024-07-31",
    "published_at": "2026-10-19",
    "lag_days": 810,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=52435"
   },
   {
    "brand": "ma:nyo",
    "slug": "ma-nyo",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2025-02-20",
    "published_at": "2026-10-19",
    "lag_days": 606,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=49924"
   },
   {
    "brand": "ma:nyo",
    "slug": "ma-nyo",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2024-04-24",
    "published_at": "2026-10-19",
    "lag_days": 908,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=51573"
   },
   {
    "brand": "medicube",
    "slug": "medicube",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2026-10-19",
    "published_at": "2026-10-19",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=58536"
   },
   {
    "brand": "medicube",
    "slug": "medicube",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2026-05-20",
    "published_at": "2026-10-19",
    "lag_days": 152,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=57493"
   },
   {
    "brand": "medicube",
    "slug": "medicube",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2025-11-20",
    "published_at": "2026-10-19",
    "lag_days": 333,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=56370"
   },
   {
    "brand": "medicube",
    "slug": "medicube",
    "retailer": "Walmart",
    "country": "US",
    "status": "announced",
    "reported": "2026-05-20",
    "published_at": "2026-10-19",
    "lag_days": 152,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=57493"
   },
   {
    "brand": "Menokin",
    "slug": "menokin",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2026-04-20",
    "published_at": "2026-10-19",
    "lag_days": 182,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=52603"
   },
   {
    "brand": "mixsoon",
    "slug": "mixsoon",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2025-02-20",
    "published_at": "2026-10-19",
    "lag_days": 606,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=54349"
   },
   {
    "brand": "Numbuzin",
    "slug": "numbuzin",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2025-08-26",
    "published_at": "2026-10-19",
    "lag_days": 419,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=96662"
   },
   {
    "brand": "Peripera",
    "slug": "peripera",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2023-02-16",
    "published_at": "2026-10-19",
    "lag_days": 1341,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=44949"
   },
   {
    "brand": "Rael",
    "slug": "rael",
    "retailer": "CVS",
    "country": "US",
    "status": "listed",
    "reported": "2024-10-28",
    "published_at": "2026-10-19",
    "lag_days": 721,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=94302"
   },
   {
    "brand": "Rael",
    "slug": "rael",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2024-10-28",
    "published_at": "2026-10-19",
    "lag_days": 721,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=94302"
   },
   {
    "brand": "Rael",
    "slug": "rael",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2024-10-28",
    "published_at": "2026-10-19",
    "lag_days": 721,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=94302"
   },
   {
    "brand": "Rael",
    "slug": "rael",
    "retailer": "Walgreens",
    "country": "US",
    "status": "listed",
    "reported": "2024-10-28",
    "published_at": "2026-10-19",
    "lag_days": 721,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=94302"
   },
   {
    "brand": "Rael",
    "slug": "rael",
    "retailer": "Walmart",
    "country": "US",
    "status": "listed",
    "reported": "2024-10-28",
    "published_at": "2026-10-19",
    "lag_days": 721,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=94302"
   },
   {
    "brand": "Re:NK",
    "slug": "re-nk",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2026-10-08",
    "published_at": "2026-10-19",
    "lag_days": 11,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.yna.co.kr/view/AKR20261008058500030"
   },
   {
    "brand": "Rejuran",
    "slug": "rejuran",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2026-03-17",
    "published_at": "2026-10-19",
    "lag_days": 216,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=98233"
   },
   {
    "brand": "S.Nature",
    "slug": "s-nature",
    "retailer": "Nordstrom",
    "country": "US",
    "status": "listed",
    "reported": "2024-11-13",
    "published_at": "2026-10-19",
    "lag_days": 705,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=49252"
   },
   {
    "brand": "SKIN1004",
    "slug": "skin1004",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2024-12-26",
    "published_at": "2026-10-19",
    "lag_days": 662,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=49566"
   },
   {
    "brand": "SKIN1004",
    "slug": "skin1004",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2024-09-21",
    "published_at": "2026-10-19",
    "lag_days": 758,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cncnews.co.kr/news/article.html?no=9545"
   },
   {
    "brand": "TIRTIR",
    "slug": "tirtir",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2025-08-11",
    "published_at": "2026-10-19",
    "lag_days": 434,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=51035"
   },
   {
    "brand": "Torriden",
    "slug": "torriden",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2026-05-26",
    "published_at": "2026-10-19",
    "lag_days": 146,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=52854"
   },
   {
    "brand": "Unove",
    "slug": "unove",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2026-01-26",
    "published_at": "2026-10-19",
    "lag_days": 266,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=97823"
   },
   {
    "brand": "VT Cosmetics",
    "slug": "vt-cosmetics",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2025-08-26",
    "published_at": "2026-10-19",
    "lag_days": 419,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=96662"
   },
   {
    "brand": "VT Cosmetics",
    "slug": "vt-cosmetics",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2025-08-11",
    "published_at": "2026-10-19",
    "lag_days": 434,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=51035"
   },
   {
    "brand": "medicube",
    "slug": "medicube",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2026-10-20",
    "published_at": "2026-10-26",
    "lag_days": 6,
    "batch": "daily review",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=53744"
   },
   {
    "brand": "Refilld",
    "slug": "refilld",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2026-10-22",
    "published_at": "2026-10-26",
    "lag_days": 4,
    "batch": "daily review",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=53755"
   },
   {
    "brand": "Rejuran",
    "slug": "rejuran",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2026-10-23",
    "published_at": "2026-10-26",
    "lag_days": 3,
    "batch": "daily review",
    "backfilled": true,
    "source_url": "https://www.cosmorning.com/news/article.html?no=53762"
   },
   {
    "brand": "Rejuran",
    "slug": "rejuran",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2026-10-23",
    "published_at": "2026-10-26",
    "lag_days": 3,
    "batch": "daily review",
    "backfilled": true,
    "source_url": "https://www.jangup.com/news/articleView.html?idxno=100237"
   },
   {
    "brand": "Centellian24",
    "slug": "centellian24",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/centellian-24-madeca-cream-time-reverse-set-signature-edition/p/BB_8806109107730?variantCode=8806109107730"
   },
   {
    "brand": "Dr. Melaxin",
    "slug": "dr-melaxin",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/dr-melaxin-tx-cream/p/BB_8809886481413?variantCode=8809886481413"
   },
   {
    "brand": "Dr.Althea",
    "slug": "dr-althea",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/dr-althea-147-barrier-cream/p/BB_8809447256795?variantCode=8809447256795"
   },
   {
    "brand": "haruharu wonder",
    "slug": "haruharu-wonder",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/haruharu-wonder-black-rice-probiotics-barrier-essence/p/BB_8809532221967?variantCode=8809532221967"
   },
   {
    "brand": "ma:nyo",
    "slug": "ma-nyo",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/ma-nyo-pure-soybean-cleansing-oil/p/BB_8800370240240?variantCode=8800370240240"
   },
   {
    "brand": "medicube",
    "slug": "medicube",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/medicube-pdrn-pink-collagen-capsule-cream/p/BB_8800256118885?variantCode=8800256118885"
   },
   {
    "brand": "Mediheal",
    "slug": "mediheal",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/mediheal-hyper-collagen-mask-4-pack/p/BB_8809936743539?variantCode=8809936743539"
   },
   {
    "brand": "Menokin",
    "slug": "menokin",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/menokin-moist-hyaluronic-acid-30-seconds-quick-bubble-mask/p/BB_8809739131809?variantCode=8809739131809"
   },
   {
    "brand": "Numbuzin",
    "slug": "numbuzin",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/numbuzin-no-5-vitamin-concentrated-serum/p/BB_8809652581774?variantCode=8809652581774"
   },
   {
    "brand": "rom&nd",
    "slug": "rom-and-nd",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/rom-and-nd-glasting-melting-balm-nude-series/p/BB_8809625248239?variantCode=8809625248222"
   },
   {
    "brand": "Round Lab",
    "slug": "round-lab",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/round-lab-1025-dokdo-toner/p/BB_8809657114731?variantCode=8809657114731"
   },
   {
    "brand": "SKIN1004",
    "slug": "skin1004",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/skin1004-madagascar-centella-toning-toner-210ml/p/BB_8809576261141?variantCode=8809576261141"
   },
   {
    "brand": "TIRTIR",
    "slug": "tirtir",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/tirtir-mask-fit-red-cushion/p/IB83?variantCode=8809928133867"
   },
   {
    "brand": "Torriden",
    "slug": "torriden",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/torriden-dive-in-low-molecular-hyaluronic-acid-mask-pack-1/p/BB_8809504742865?variantCode=8809504742865"
   },
   {
    "brand": "VT Cosmetics",
    "slug": "vt-cosmetics",
    "retailer": "Shoppers Drug Mart",
    "country": "CA",
    "status": "listed",
    "reported": "2026-10-28",
    "published_at": "2026-10-28",
    "lag_days": 0,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.shoppersdrugmart.ca/vt-reedle-shot-100/p/BB_8809695678363?variantCode=8809695678363"
   },
   {
    "brand": "belif",
    "slug": "belif",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2026-03-23",
    "published_at": "2026-10-30",
    "lag_days": 221,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.geconomy.co.kr/news/article.html?no=317998"
   },
   {
    "brand": "CNP",
    "slug": "cnp",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2026-02-12",
    "published_at": "2026-10-30",
    "lag_days": 260,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://cncnews.co.kr/news/article.html?no=10726"
   },
   {
    "brand": "Dr.Groot",
    "slug": "dr-groot",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2026-08-19",
    "published_at": "2026-10-30",
    "lag_days": 72,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://m.ddaily.co.kr/page/view/2026081909323326099"
   },
   {
    "brand": "EQQUALBERRY",
    "slug": "eqqualberry",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2026-10-19",
    "published_at": "2026-10-30",
    "lag_days": 11,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://economist.co.kr/article/view/ecn202610190032"
   },
   {
    "brand": "Hanskin",
    "slug": "hanskin",
    "retailer": "Ulta Beauty",
    "country": "US",
    "status": "listed",
    "reported": "2026-03-19",
    "published_at": "2026-10-30",
    "lag_days": 225,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.mannpublications.com/mannabouttown/2026/03/19/hanskin-lands-in-1400-ulta-beauty-stores-bringing-glass-skin-hydration-to-the-u-s/"
   },
   {
    "brand": "I DEW CARE",
    "slug": "i-dew-care",
    "retailer": "Walgreens",
    "country": "US",
    "status": "listed",
    "reported": "2024-10-22",
    "published_at": "2026-10-30",
    "lag_days": 738,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://chaindrugreview.com/i-dew-care-now-available-at-walgreens-stores/"
   },
   {
    "brand": "I'M MEME",
    "slug": "i-m-meme",
    "retailer": "Walgreens",
    "country": "US",
    "status": "listed",
    "reported": "2026-05-10",
    "published_at": "2026-10-30",
    "lag_days": 173,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://lifestyle.kbew98country.com/story/214925/im-meme-brings-viral-k-beauty-to-walgreens-nationwide-all-products-under-20/"
   },
   {
    "brand": "IOPE",
    "slug": "iope",
    "retailer": "Sephora",
    "country": "CA",
    "status": "listed",
    "reported": "2026-03-16",
    "published_at": "2026-10-30",
    "lag_days": 228,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://retail-insider.com/retail-insider/2026/03/iope-debuts-in-canada-through-exclusive-sephora-retail-partnership/"
   },
   {
    "brand": "KAJA",
    "slug": "kaja",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2026-09-21",
    "published_at": "2026-10-30",
    "lag_days": 39,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.modernretail.co/operations/target-gets-k-beauty-brands-to-think-beyond-sephora-ulta-with-new-beauty-studio/"
   },
   {
    "brand": "Laka",
    "slug": "laka",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2026-02-24",
    "published_at": "2026-10-30",
    "lag_days": 248,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://retailboss.co/korean-beauty-brand-laka-makes-u-s-debut-sephora/"
   },
   {
    "brand": "Milk Touch",
    "slug": "milk-touch",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2026-10-30",
    "published_at": "2026-10-30",
    "lag_days": 0,
    "batch": "daily review",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=58627"
   },
   {
    "brand": "MISSHA",
    "slug": "missha",
    "retailer": "Costco",
    "country": "CA",
    "status": "listed",
    "reported": "2026-04-28",
    "published_at": "2026-10-30",
    "lag_days": 185,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/mobile/article.html?no=57342"
   },
   {
    "brand": "MISSHA",
    "slug": "missha",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2026-04-28",
    "published_at": "2026-10-30",
    "lag_days": 185,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/mobile/article.html?no=57342"
   },
   {
    "brand": "Nature Republic",
    "slug": "nature-republic",
    "retailer": "Costco",
    "country": "US",
    "status": "listed",
    "reported": "2025-05-14",
    "published_at": "2026-10-30",
    "lag_days": 534,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.cosinkorea.com/news/article.html?no=55153"
   },
   {
    "brand": "Nooni",
    "slug": "nooni",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2026-09-18",
    "published_at": "2026-10-30",
    "lag_days": 42,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.venturesquare.net/1114940/"
   },
   {
    "brand": "ohora",
    "slug": "ohora",
    "retailer": "Target",
    "country": "US",
    "status": "listed",
    "reported": "2024-02-26",
    "published_at": "2026-10-30",
    "lag_days": 977,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.venturesquare.net/914834"
   },
   {
    "brand": "Sulwhasoo",
    "slug": "sulwhasoo",
    "retailer": "Sephora",
    "country": "US",
    "status": "listed",
    "reported": "2025-04-17",
    "published_at": "2026-10-30",
    "lag_days": 561,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.apgroup.com/int/ko/news/2025-04-17-1.html"
   },
   {
    "brand": "TOCOBO",
    "slug": "tocobo",
    "retailer": "Walgreens",
    "country": "US",
    "status": "listed",
    "reported": "2026-03-23",
    "published_at": "2026-10-30",
    "lag_days": 221,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.smarttoday.co.kr/ko-kr/articles/105502"
   },
   {
    "brand": "TONYMOLY",
    "slug": "tonymoly",
    "retailer": "Walmart",
    "country": "US",
    "status": "listed",
    "reported": "2026-05-08",
    "published_at": "2026-10-30",
    "lag_days": 175,
    "batch": "one-off batch",
    "backfilled": true,
    "source_url": "https://www.hankyung.com/article/202605083350i"
   }
  ],
  "hidden": {
   "n": 4,
   "rows": [
    {
     "lag_days": 20,
     "published_at": "2026-10-19",
     "batch": "one-off batch",
     "backfilled": true
    },
    {
     "lag_days": 419,
     "published_at": "2026-10-19",
     "batch": "one-off batch",
     "backfilled": true
    },
    {
     "lag_days": 15,
     "published_at": "2026-10-30",
     "batch": "one-off batch",
     "backfilled": true
    },
    {
     "lag_days": 82,
     "published_at": "2026-10-30",
     "batch": "one-off batch",
     "backfilled": true
    }
   ]
  }
 }
}
