{
  "description": "K-means archetypes of monthly scan shape over the first 12 months for dynamic QR codes created January-June 2024 that were scanned at least once in that window. Vectors are normalized by each code's own 12-month total (shape, not size).",
  "metadata": {
    "cohort": "dynamic codes created 2024-01..2024-06, >=1 scan within first 12 months, full population",
    "exclusions": "Visualead accounts; internal idclient 15; anonymous bucket idclient 1 (registered-account cohort)",
    "k_chosen": 4,
    "k_grid": [
      4,
      5,
      6,
      7,
      8
    ],
    "naming": "archetype names are rule-based proposals pending editorial review",
    "sampling_rate": 1.0,
    "seed": 42,
    "silhouette_at_chosen_k": 0.5429,
    "silhouette_by_k": {
      "4": 0.5429,
      "5": 0.5207,
      "6": 0.5264,
      "7": 0.5385,
      "8": 0.5388
    },
    "stability_check": {
      "min_cosine": 0.9906,
      "paired_cosines": [
        1.0,
        0.9999,
        0.9998,
        0.9906
      ]
    },
    "suppression": "cross-tab cells with <100 codes suppressed (66 cells)"
  },
  "rows": [
    {
      "archetype": "one-month wonder",
      "code_share": 0.5421,
      "codes": 61055,
      "m0": 0.945,
      "m1": 0.019,
      "m10": 0.0021,
      "m11": 0.0032,
      "m2": 0.008,
      "m3": 0.0053,
      "m4": 0.0046,
      "m5": 0.0037,
      "m6": 0.0029,
      "m7": 0.0022,
      "m8": 0.0021,
      "m9": 0.0021,
      "median_total_hits": 3.0,
      "scan_share": 0.1161
    },
    {
      "archetype": "evergreen workhorse",
      "code_share": 0.3055,
      "codes": 34408,
      "m0": 0.1316,
      "m1": 0.0497,
      "m10": 0.082,
      "m11": 0.0949,
      "m2": 0.0469,
      "m3": 0.1034,
      "m4": 0.0957,
      "m5": 0.0897,
      "m6": 0.0763,
      "m7": 0.0765,
      "m8": 0.0747,
      "m9": 0.0785,
      "median_total_hits": 15.0,
      "scan_share": 0.7404
    },
    {
      "archetype": "campaign burst (month 1)",
      "code_share": 0.0959,
      "codes": 10796,
      "m0": 0.2317,
      "m1": 0.6275,
      "m10": 0.0062,
      "m11": 0.0091,
      "m2": 0.0494,
      "m3": 0.0212,
      "m4": 0.0162,
      "m5": 0.0115,
      "m6": 0.0079,
      "m7": 0.0074,
      "m8": 0.0064,
      "m9": 0.0056,
      "median_total_hits": 8.0,
      "scan_share": 0.1082
    },
    {
      "archetype": "campaign burst (month 2)",
      "code_share": 0.0565,
      "codes": 6362,
      "m0": 0.1672,
      "m1": 0.0923,
      "m10": 0.0076,
      "m11": 0.01,
      "m2": 0.5635,
      "m3": 0.0722,
      "m4": 0.0267,
      "m5": 0.0177,
      "m6": 0.0131,
      "m7": 0.0105,
      "m8": 0.0103,
      "m9": 0.0087,
      "median_total_hits": 8.0,
      "scan_share": 0.0354
    }
  ],
  "source": "sql/96_lifecycle_vectors_full_2024_*.sql, scripts/build_lifecycle_archetypes.py (build signature-20260612).",
  "title": "The lives of a dynamic QR code: lifecycle archetypes (2024 H1 cohort)"
}