{
  "schemaVersion": 1,
  "metroId": "philadelphia",
  "generatedAt": "2026-07-05T20:24:48.792Z",
  "alertCount": 13,
  "alerts": [
    {
      "severity": "warning",
      "metroId": "philadelphia",
      "sourceId": "philadelphia-library-family",
      "sourceName": "Free Library of Philadelphia Foundation Events",
      "sourceType": "html",
      "url": "https://freelibraryfoundation.org/events/",
      "status": "ok-template-fallback",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": "recurring-template",
      "recoveredEvents": 8,
      "liveEvents": 0,
      "fallbackEvents": 8,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://freelibraryfoundation.org/events/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "philadelphia",
      "sourceId": "philadelphia-parks-family",
      "sourceName": "Philadelphia Parks and Recreation Events",
      "sourceType": "eventList",
      "url": "https://www.phila.gov/departments/philadelphia-parks-recreation/#calendar",
      "status": "ok-template-fallback",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": "recurring-template",
      "recoveredEvents": 8,
      "liveEvents": 0,
      "fallbackEvents": 8,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://www.phila.gov/departments/philadelphia-parks-recreation/#calendar",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "philadelphia",
      "sourceId": "ticketmaster-philadelphia-family",
      "sourceName": "Ticketmaster Philadelphia Family Events",
      "sourceType": "ticketmaster",
      "url": "https://app.ticketmaster.com/discovery/v2/events.json",
      "status": "ok",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://app.ticketmaster.com/discovery/v2/events.json",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "application/json; source=ticketmaster; events=0; queries=1"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "philadelphia",
      "sourceId": "middletown-grange-fair",
      "sourceName": "Middletown Grange Fair",
      "sourceType": "html",
      "url": "https://middletowngrangefair.org/",
      "status": "ok",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://middletowngrangefair.org/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html;charset=utf-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "philadelphia",
      "sourceId": "wawa-welcome-america-2026",
      "sourceName": "Wawa Welcome America 2026 (Philadelphia July 4 / America250)",
      "sourceType": "officialTextEvents",
      "url": "https://july4thphilly.com/events/",
      "status": "ok",
      "issueType": "zero-in-window",
      "reason": "Source returned events, but none were in the planning window.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://july4thphilly.com/events/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "philadelphia",
      "sourceId": "union-transfer",
      "sourceName": "Union Transfer",
      "sourceType": "html",
      "url": "https://www.utphilly.com/events",
      "status": "http-error",
      "issueType": "fetch-failed",
      "reason": "Source fetch did not return a usable payload.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://www.utphilly.com/events",
          "status": "http-error",
          "httpStatus": 403,
          "contentType": "text/html"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "philadelphia",
      "sourceId": "johnny-brendas",
      "sourceName": "Johnny Brenda's",
      "sourceType": "html",
      "url": "https://www.johnnybrendas.com/events",
      "status": "ok",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://www.johnnybrendas.com/events",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "philadelphia",
      "sourceId": "helium-comedy-philly",
      "sourceName": "Helium Comedy Club",
      "sourceType": "html",
      "url": "https://philadelphia.heliumcomedy.com/events",
      "status": "ok",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://philadelphia.heliumcomedy.com/events",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=utf-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "philadelphia",
      "sourceId": "xponential-music-festival-2026",
      "sourceName": "XPoNential Music Festival 2026",
      "sourceType": "officialTextEvents",
      "url": "https://xpn.org/xpnfest/",
      "status": "ok",
      "issueType": "zero-in-window",
      "reason": "Source returned events, but none were in the planning window.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://xpn.org/xpnfest/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=utf-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "philadelphia",
      "sourceId": "manayunk-arts-festival-2026",
      "sourceName": "Manayunk Arts Festival 2026",
      "sourceType": "officialTextEvents",
      "url": "https://manayunk.com/mnyk-events/manayunk-art-festival/",
      "status": "ok",
      "issueType": "zero-in-window",
      "reason": "Source returned events, but none were in the planning window.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://manayunk.com/mnyk-events/manayunk-art-festival/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "philadelphia",
      "sourceId": "philadelphia-fringe-festival-2026",
      "sourceName": "Philadelphia Fringe Festival 2026",
      "sourceType": "officialTextEvents",
      "url": "https://phillyfringe.org/",
      "status": "ok",
      "issueType": "zero-in-window",
      "reason": "Source returned events, but none were in the planning window.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://phillyfringe.org/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "critical",
      "metroId": "philadelphia",
      "sourceId": "philadelphia-folk-festival-2026",
      "sourceName": "Philadelphia Folk Festival 2026",
      "sourceType": "officialTextEvents",
      "url": "https://folkfest.org/",
      "status": "ok",
      "issueType": "zero-extracted",
      "reason": "Source returned a payload but no events were extracted.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://folkfest.org/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    },
    {
      "severity": "warning",
      "metroId": "philadelphia",
      "sourceId": "wawa-welcome-america-2026",
      "sourceName": "Wawa Welcome America 2026",
      "sourceType": "officialTextEvents",
      "url": "https://july4thphilly.com/events/",
      "status": "ok",
      "issueType": "zero-in-window",
      "reason": "Source returned events, but none were in the planning window.",
      "recoveredBy": null,
      "recoveredEvents": 0,
      "liveEvents": 0,
      "fallbackEvents": 0,
      "lastKnownGoodEvents": 0,
      "fetchedAt": "2026-07-05T20:24:48.792Z",
      "fetches": [
        {
          "url": "https://july4thphilly.com/events/",
          "status": "ok",
          "httpStatus": 200,
          "contentType": "text/html; charset=UTF-8"
        }
      ]
    }
  ]
}
