{
  "city": "montreal-tours",
  "days": 30,
  "since": "2026-09-15T20:53:09.099Z",
  "count": 58,
  "sites": 19,
  "byKind": {
    "fixed": 17,
    "broke": 6,
    "grade_up": 15,
    "grade_down": 1,
    "blocked": 1,
    "unblocked": 2,
    "channel": 15,
    "vendor": 1,
    "assistant": 0
  },
  "changes": [
    {
      "id": 19241,
      "at": "2026-10-15T02:42:36.500Z",
      "domain": "parcolympique.qc.ca",
      "name": "Stade olympique",
      "page": "https://directindex.org/r/parcolympique.qc.ca",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140213,
        "prev": 102006,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 19240,
      "at": "2026-10-15T02:42:36.500Z",
      "domain": "parcolympique.qc.ca",
      "name": "Stade olympique",
      "page": "https://directindex.org/r/parcolympique.qc.ca",
      "kind": "grade_up",
      "what": "grade C to A (86%)",
      "detail": {
        "scan": 140213,
        "prev": 102006,
        "from": "C",
        "to": "A",
        "pct": 86.2
      }
    },
    {
      "id": 19239,
      "at": "2026-10-15T02:42:36.500Z",
      "domain": "parcolympique.qc.ca",
      "name": "Stade olympique",
      "page": "https://directindex.org/r/parcolympique.qc.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140213,
        "prev": 102006,
        "fix": "no_channel"
      }
    },
    {
      "id": 19238,
      "at": "2026-10-15T02:42:34.473Z",
      "domain": "museedespompiers.ca",
      "name": "Musée des Pompiers de Montréal",
      "page": "https://directindex.org/r/museedespompiers.ca",
      "kind": "grade_up",
      "what": "grade F to D (43%)",
      "detail": {
        "scan": 140212,
        "prev": 101671,
        "from": "F",
        "to": "D",
        "pct": 43.1
      }
    },
    {
      "id": 19171,
      "at": "2026-10-15T02:42:12.448Z",
      "domain": "ecomusee.qc.ca",
      "name": "Écomusée du Fier Monde",
      "page": "https://directindex.org/r/ecomusee.qc.ca",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 140184,
        "prev": 101423,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 19170,
      "at": "2026-10-15T02:42:12.448Z",
      "domain": "ecomusee.qc.ca",
      "name": "Écomusée du Fier Monde",
      "page": "https://directindex.org/r/ecomusee.qc.ca",
      "kind": "grade_up",
      "what": "grade C to B (71%)",
      "detail": {
        "scan": 140184,
        "prev": 101423,
        "from": "C",
        "to": "B",
        "pct": 70.8
      }
    },
    {
      "id": 19169,
      "at": "2026-10-15T02:42:12.448Z",
      "domain": "ecomusee.qc.ca",
      "name": "Écomusée du Fier Monde",
      "page": "https://directindex.org/r/ecomusee.qc.ca",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 140184,
        "prev": 101423,
        "fix": "booking_other"
      }
    },
    {
      "id": 19168,
      "at": "2026-10-15T02:42:12.448Z",
      "domain": "ecomusee.qc.ca",
      "name": "Écomusée du Fier Monde",
      "page": "https://directindex.org/r/ecomusee.qc.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140184,
        "prev": 101423,
        "fix": "no_channel"
      }
    },
    {
      "id": 19142,
      "at": "2026-10-15T02:42:05.760Z",
      "domain": "musee-mccord-stewart.ca",
      "name": "Musée McCord Stewart",
      "page": "https://directindex.org/r/musee-mccord-stewart.ca",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140173,
        "prev": 101563,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 19141,
      "at": "2026-10-15T02:42:05.760Z",
      "domain": "musee-mccord-stewart.ca",
      "name": "Musée McCord Stewart",
      "page": "https://directindex.org/r/musee-mccord-stewart.ca",
      "kind": "grade_up",
      "what": "grade C to B (85%)",
      "detail": {
        "scan": 140173,
        "prev": 101563,
        "from": "C",
        "to": "B",
        "pct": 84.6
      }
    },
    {
      "id": 19140,
      "at": "2026-10-15T02:42:05.760Z",
      "domain": "musee-mccord-stewart.ca",
      "name": "Musée McCord Stewart",
      "page": "https://directindex.org/r/musee-mccord-stewart.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140173,
        "prev": 101563,
        "fix": "no_channel"
      }
    },
    {
      "id": 19097,
      "at": "2026-10-15T02:42:01.163Z",
      "domain": "pacmusee.qc.ca",
      "name": "Pointe-à-Callière: Pavillon de l'Ancienne-Douane",
      "page": "https://directindex.org/r/pacmusee.qc.ca",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140147,
        "prev": 101324,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 19096,
      "at": "2026-10-15T02:42:01.163Z",
      "domain": "pacmusee.qc.ca",
      "name": "Pointe-à-Callière: Pavillon de l'Ancienne-Douane",
      "page": "https://directindex.org/r/pacmusee.qc.ca",
      "kind": "grade_up",
      "what": "grade D to B (79%)",
      "detail": {
        "scan": 140147,
        "prev": 101324,
        "from": "D",
        "to": "B",
        "pct": 78.5
      }
    },
    {
      "id": 19095,
      "at": "2026-10-15T02:42:01.163Z",
      "domain": "pacmusee.qc.ca",
      "name": "Pointe-à-Callière: Pavillon de l'Ancienne-Douane",
      "page": "https://directindex.org/r/pacmusee.qc.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140147,
        "prev": 101324,
        "fix": "no_channel"
      }
    },
    {
      "id": 19094,
      "at": "2026-10-15T02:42:01.316Z",
      "domain": "cosmodome.org",
      "name": "Cosmodôme",
      "page": "https://directindex.org/r/cosmodome.org",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 140146,
        "prev": 101384,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 19093,
      "at": "2026-10-15T02:42:01.316Z",
      "domain": "cosmodome.org",
      "name": "Cosmodôme",
      "page": "https://directindex.org/r/cosmodome.org",
      "kind": "unblocked",
      "what": "lets AI crawlers in again",
      "detail": {
        "scan": 140146,
        "prev": 101384
      }
    },
    {
      "id": 19092,
      "at": "2026-10-15T02:42:01.316Z",
      "domain": "cosmodome.org",
      "name": "Cosmodôme",
      "page": "https://directindex.org/r/cosmodome.org",
      "kind": "grade_up",
      "what": "grade D to C (62%)",
      "detail": {
        "scan": 140146,
        "prev": 101384,
        "from": "D",
        "to": "C",
        "pct": 61.5
      }
    },
    {
      "id": 19091,
      "at": "2026-10-15T02:42:01.316Z",
      "domain": "cosmodome.org",
      "name": "Cosmodôme",
      "page": "https://directindex.org/r/cosmodome.org",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 140146,
        "prev": 101384,
        "fix": "booking_other"
      }
    },
    {
      "id": 19090,
      "at": "2026-10-15T02:42:01.316Z",
      "domain": "cosmodome.org",
      "name": "Cosmodôme",
      "page": "https://directindex.org/r/cosmodome.org",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140146,
        "prev": 101384,
        "fix": "no_channel"
      }
    },
    {
      "id": 19089,
      "at": "2026-10-15T02:42:01.316Z",
      "domain": "cosmodome.org",
      "name": "Cosmodôme",
      "page": "https://directindex.org/r/cosmodome.org",
      "kind": "fixed",
      "what": "fixed: the server turned AI crawlers away at the door",
      "detail": {
        "scan": 140146,
        "prev": 101384,
        "fix": "edge_blocks"
      }
    },
    {
      "id": 19076,
      "at": "2026-10-15T02:41:59.968Z",
      "domain": "archeomusee.ca",
      "name": "Musée d'archéologie de Roussillon",
      "page": "https://directindex.org/r/archeomusee.ca",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140139,
        "prev": 101446,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 19075,
      "at": "2026-10-15T02:41:59.968Z",
      "domain": "archeomusee.ca",
      "name": "Musée d'archéologie de Roussillon",
      "page": "https://directindex.org/r/archeomusee.ca",
      "kind": "grade_up",
      "what": "grade C to B (80%)",
      "detail": {
        "scan": 140139,
        "prev": 101446,
        "from": "C",
        "to": "B",
        "pct": 80
      }
    },
    {
      "id": 19074,
      "at": "2026-10-15T02:41:59.968Z",
      "domain": "archeomusee.ca",
      "name": "Musée d'archéologie de Roussillon",
      "page": "https://directindex.org/r/archeomusee.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140139,
        "prev": 101446,
        "fix": "no_channel"
      }
    },
    {
      "id": 19068,
      "at": "2026-10-15T02:41:59.215Z",
      "domain": "canada.ca",
      "name": "Lieu historique national du Commerce-de-la-Fourrure-à-Lachine",
      "page": "https://directindex.org/r/canada.ca",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140133,
        "prev": 101709,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 19067,
      "at": "2026-10-15T02:41:59.215Z",
      "domain": "canada.ca",
      "name": "Lieu historique national du Commerce-de-la-Fourrure-à-Lachine",
      "page": "https://directindex.org/r/canada.ca",
      "kind": "grade_up",
      "what": "grade D to B (74%)",
      "detail": {
        "scan": 140133,
        "prev": 101709,
        "from": "D",
        "to": "B",
        "pct": 73.8
      }
    },
    {
      "id": 19066,
      "at": "2026-10-15T02:41:59.215Z",
      "domain": "canada.ca",
      "name": "Lieu historique national du Commerce-de-la-Fourrure-à-Lachine",
      "page": "https://directindex.org/r/canada.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140133,
        "prev": 101709,
        "fix": "no_channel"
      }
    },
    {
      "id": 19061,
      "at": "2026-10-15T02:41:58.956Z",
      "domain": "cca.qc.ca",
      "name": "Centre Canadien d'Architecture",
      "page": "https://directindex.org/r/cca.qc.ca",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140131,
        "prev": 101292,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 19060,
      "at": "2026-10-15T02:41:58.956Z",
      "domain": "cca.qc.ca",
      "name": "Centre Canadien d'Architecture",
      "page": "https://directindex.org/r/cca.qc.ca",
      "kind": "grade_up",
      "what": "grade D to B (74%)",
      "detail": {
        "scan": 140131,
        "prev": 101292,
        "from": "D",
        "to": "B",
        "pct": 73.8
      }
    },
    {
      "id": 19059,
      "at": "2026-10-15T02:41:58.956Z",
      "domain": "cca.qc.ca",
      "name": "Centre Canadien d'Architecture",
      "page": "https://directindex.org/r/cca.qc.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140131,
        "prev": 101292,
        "fix": "no_channel"
      }
    },
    {
      "id": 19055,
      "at": "2026-10-15T02:41:58.418Z",
      "domain": "museefrappier.org",
      "name": "Musée de la santé Armand-Frappier",
      "page": "https://directindex.org/r/museefrappier.org",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 140127,
        "prev": 101280,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 19054,
      "at": "2026-10-15T02:41:58.418Z",
      "domain": "museefrappier.org",
      "name": "Musée de la santé Armand-Frappier",
      "page": "https://directindex.org/r/museefrappier.org",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 140127,
        "prev": 101280,
        "fix": "booking_other"
      }
    },
    {
      "id": 19053,
      "at": "2026-10-15T02:41:58.418Z",
      "domain": "museefrappier.org",
      "name": "Musée de la santé Armand-Frappier",
      "page": "https://directindex.org/r/museefrappier.org",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140127,
        "prev": 101280,
        "fix": "no_channel"
      }
    },
    {
      "id": 19052,
      "at": "2026-10-15T02:41:57.332Z",
      "domain": "montrealsciencecentre.com",
      "name": "Centre des sciences de Montréal",
      "page": "https://directindex.org/r/montrealsciencecentre.com",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140125,
        "prev": 101192,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 19051,
      "at": "2026-10-15T02:41:57.332Z",
      "domain": "montrealsciencecentre.com",
      "name": "Centre des sciences de Montréal",
      "page": "https://directindex.org/r/montrealsciencecentre.com",
      "kind": "grade_up",
      "what": "grade F to C (62%)",
      "detail": {
        "scan": 140125,
        "prev": 101192,
        "from": "F",
        "to": "C",
        "pct": 61.5
      }
    },
    {
      "id": 19050,
      "at": "2026-10-15T02:41:57.332Z",
      "domain": "montrealsciencecentre.com",
      "name": "Centre des sciences de Montréal",
      "page": "https://directindex.org/r/montrealsciencecentre.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140125,
        "prev": 101192,
        "fix": "no_channel"
      }
    },
    {
      "id": 19046,
      "at": "2026-10-15T02:41:56.741Z",
      "domain": "aeroportvoyage.com",
      "name": "AeroportVoyage.com",
      "page": "https://directindex.org/r/aeroportvoyage.com",
      "kind": "vendor",
      "what": "vendor: none to Calendly",
      "detail": {
        "scan": 140122,
        "prev": 101229,
        "from": null,
        "to": "calendly"
      }
    },
    {
      "id": 19045,
      "at": "2026-10-15T02:41:56.741Z",
      "domain": "aeroportvoyage.com",
      "name": "AeroportVoyage.com",
      "page": "https://directindex.org/r/aeroportvoyage.com",
      "kind": "channel",
      "what": "direct channel: none to vendor on own site",
      "detail": {
        "scan": 140122,
        "prev": 101229,
        "from": null,
        "to": "saas"
      }
    },
    {
      "id": 19044,
      "at": "2026-10-15T02:41:56.741Z",
      "domain": "aeroportvoyage.com",
      "name": "AeroportVoyage.com",
      "page": "https://directindex.org/r/aeroportvoyage.com",
      "kind": "grade_up",
      "what": "grade D to C (55%)",
      "detail": {
        "scan": 140122,
        "prev": 101229,
        "from": "D",
        "to": "C",
        "pct": 55.4
      }
    },
    {
      "id": 19043,
      "at": "2026-10-15T02:41:56.741Z",
      "domain": "aeroportvoyage.com",
      "name": "AeroportVoyage.com",
      "page": "https://directindex.org/r/aeroportvoyage.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140122,
        "prev": 101229,
        "fix": "no_channel"
      }
    },
    {
      "id": 19042,
      "at": "2026-10-15T02:41:56.602Z",
      "domain": "arsenalcontemporary.com",
      "name": "L'Arsenal",
      "page": "https://directindex.org/r/arsenalcontemporary.com",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 140121,
        "prev": 101258,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 19041,
      "at": "2026-10-15T02:41:56.602Z",
      "domain": "arsenalcontemporary.com",
      "name": "L'Arsenal",
      "page": "https://directindex.org/r/arsenalcontemporary.com",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 140121,
        "prev": 101258,
        "fix": "booking_other"
      }
    },
    {
      "id": 19040,
      "at": "2026-10-15T02:41:56.602Z",
      "domain": "arsenalcontemporary.com",
      "name": "L'Arsenal",
      "page": "https://directindex.org/r/arsenalcontemporary.com",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140121,
        "prev": 101258,
        "fix": "no_channel"
      }
    },
    {
      "id": 19039,
      "at": "2026-10-15T02:41:56.395Z",
      "domain": "mbam.qc.ca",
      "name": "Musée des Beaux-Arts de Montréal",
      "page": "https://directindex.org/r/mbam.qc.ca",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140119,
        "prev": 101158,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 19038,
      "at": "2026-10-15T02:41:56.395Z",
      "domain": "mbam.qc.ca",
      "name": "Musée des Beaux-Arts de Montréal",
      "page": "https://directindex.org/r/mbam.qc.ca",
      "kind": "grade_up",
      "what": "grade D to B (79%)",
      "detail": {
        "scan": 140119,
        "prev": 101158,
        "from": "D",
        "to": "B",
        "pct": 78.5
      }
    },
    {
      "id": 19037,
      "at": "2026-10-15T02:41:56.395Z",
      "domain": "mbam.qc.ca",
      "name": "Musée des Beaux-Arts de Montréal",
      "page": "https://directindex.org/r/mbam.qc.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140119,
        "prev": 101158,
        "fix": "no_channel"
      }
    },
    {
      "id": 19033,
      "at": "2026-10-15T02:41:55.549Z",
      "domain": "centrededesign.com",
      "name": "Centre de design de l'UQAM",
      "page": "https://directindex.org/r/centrededesign.com",
      "kind": "blocked",
      "what": "now turns an AI crawler away at the edge",
      "detail": {
        "scan": 140116,
        "prev": 101244
      }
    },
    {
      "id": 19032,
      "at": "2026-10-15T02:41:55.549Z",
      "domain": "centrededesign.com",
      "name": "Centre de design de l'UQAM",
      "page": "https://directindex.org/r/centrededesign.com",
      "kind": "grade_down",
      "what": "grade D to F (38%)",
      "detail": {
        "scan": 140116,
        "prev": 101244,
        "from": "D",
        "to": "F",
        "pct": 38
      }
    },
    {
      "id": 19031,
      "at": "2026-10-15T02:41:55.549Z",
      "domain": "centrededesign.com",
      "name": "Centre de design de l'UQAM",
      "page": "https://directindex.org/r/centrededesign.com",
      "kind": "broke",
      "what": "new finding: the server turned AI crawlers away at the door",
      "detail": {
        "scan": 140116,
        "prev": 101244,
        "fix": "edge_blocks"
      }
    },
    {
      "id": 19027,
      "at": "2026-10-15T02:41:54.953Z",
      "domain": "expobarbie.ca",
      "name": "Barbie Expo",
      "page": "https://directindex.org/r/expobarbie.ca",
      "kind": "grade_up",
      "what": "grade D to C (55%)",
      "detail": {
        "scan": 140111,
        "prev": 101263,
        "from": "D",
        "to": "C",
        "pct": 55.4
      }
    },
    {
      "id": 19026,
      "at": "2026-10-15T02:41:54.797Z",
      "domain": "parc-mille-iles.qc.ca",
      "name": "Centre d'exploration du Parc de la Rivière-des-Mille-Îles",
      "page": "https://directindex.org/r/parc-mille-iles.qc.ca",
      "kind": "channel",
      "what": "direct channel: none to third party",
      "detail": {
        "scan": 140110,
        "prev": 101242,
        "from": null,
        "to": "other"
      }
    },
    {
      "id": 19025,
      "at": "2026-10-15T02:41:54.797Z",
      "domain": "parc-mille-iles.qc.ca",
      "name": "Centre d'exploration du Parc de la Rivière-des-Mille-Îles",
      "page": "https://directindex.org/r/parc-mille-iles.qc.ca",
      "kind": "broke",
      "what": "new finding: booking through an unrecognised third party",
      "detail": {
        "scan": 140110,
        "prev": 101242,
        "fix": "booking_other"
      }
    },
    {
      "id": 19024,
      "at": "2026-10-15T02:41:54.797Z",
      "domain": "parc-mille-iles.qc.ca",
      "name": "Centre d'exploration du Parc de la Rivière-des-Mille-Îles",
      "page": "https://directindex.org/r/parc-mille-iles.qc.ca",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140110,
        "prev": 101242,
        "fix": "no_channel"
      }
    },
    {
      "id": 19023,
      "at": "2026-10-15T02:41:53.383Z",
      "domain": "mam.quebec",
      "name": "Musée de l'aviation de Montréal",
      "page": "https://directindex.org/r/mam.quebec",
      "kind": "channel",
      "what": "direct channel: none to own site",
      "detail": {
        "scan": 140107,
        "prev": 101175,
        "from": null,
        "to": "first_party"
      }
    },
    {
      "id": 19022,
      "at": "2026-10-15T02:41:53.383Z",
      "domain": "mam.quebec",
      "name": "Musée de l'aviation de Montréal",
      "page": "https://directindex.org/r/mam.quebec",
      "kind": "grade_up",
      "what": "grade F to C (59%)",
      "detail": {
        "scan": 140107,
        "prev": 101175,
        "from": "F",
        "to": "C",
        "pct": 58.5
      }
    },
    {
      "id": 19021,
      "at": "2026-10-15T02:41:53.383Z",
      "domain": "mam.quebec",
      "name": "Musée de l'aviation de Montréal",
      "page": "https://directindex.org/r/mam.quebec",
      "kind": "fixed",
      "what": "fixed: no booking or ordering path at all",
      "detail": {
        "scan": 140107,
        "prev": 101175,
        "fix": "no_channel"
      }
    },
    {
      "id": 18988,
      "at": "2026-10-15T02:41:51.457Z",
      "domain": "avoldoiseau.ca",
      "name": "École de pilotage À Vol d'Oiseau",
      "page": "https://directindex.org/r/avoldoiseau.ca",
      "kind": "unblocked",
      "what": "lets AI crawlers in again",
      "detail": {
        "scan": 140092,
        "prev": 101126
      }
    },
    {
      "id": 18987,
      "at": "2026-10-15T02:41:51.457Z",
      "domain": "avoldoiseau.ca",
      "name": "École de pilotage À Vol d'Oiseau",
      "page": "https://directindex.org/r/avoldoiseau.ca",
      "kind": "grade_up",
      "what": "grade D to C (60%)",
      "detail": {
        "scan": 140092,
        "prev": 101126,
        "from": "D",
        "to": "C",
        "pct": 60
      }
    },
    {
      "id": 18986,
      "at": "2026-10-15T02:41:51.457Z",
      "domain": "avoldoiseau.ca",
      "name": "École de pilotage À Vol d'Oiseau",
      "page": "https://directindex.org/r/avoldoiseau.ca",
      "kind": "fixed",
      "what": "fixed: the server turned AI crawlers away at the door",
      "detail": {
        "scan": 140092,
        "prev": 101126,
        "fix": "edge_blocks"
      }
    }
  ]
}