{
  "$schema": {
    "description": "Aggregate counts of moderated public scam reports, grouped by lure. One object per lure in `data`.",
    "fields": {
      "lure": "taxonomy key, stable across releases",
      "lure_label": "human label for the key (display only)",
      "reports": "integer \u2014 moderated reports naming this lure",
      "channels": "integer \u2014 distinct channels this lure was reported on. Counted separately from `reports` on purpose: the earlier view grouped by lure AND channel, which split one lure with 3 reports into rows of 2 and 1 and hid the signal.",
      "loss_total": "number or null \u2014 sum of losses reporters STATED. Not audited, not verified per report.",
      "loss_currency": "ISO 4217 code for loss_total",
      "pillar_url": "path of the explainer for this lure, or null"
    },
    "caveats": [
      "Reports are self-reported by the public and moderated by a human.",
      "Figures are a floor, not a measurement of a lure's true volume.",
      "A phone identifier is clustered on its last 10 digits, so rare cross-country collisions are possible and are resolved by moderation.",
      "No personal data of any reporter is present in this file."
    ],
    "license": "CC BY 4.0"
  },
  "generated_at": "2026-08-06T14:39:25+00:00",
  "source": "https://howthescamworks.org/data/lures.json",
  "provenance": "no database at build time \u2014 empty document",
  "totals": {
    "lures": 0,
    "reports": 0,
    "identifiers": 0,
    "loss_total": null
  },
  "data": []
}
