Three steps, and the middle one is the whole product.
There is no national feed of power interruptions. Each of the 132 cooperatives and utilities announces its own, usually as a Facebook post, often as a photo of a memo with the text in the caption. We watch the public pages we know about and store every post with its permalink and the time it was posted. The original text is kept forever and shown on every card, because our reading of it can be wrong and yours can check it.
No language model touches this. The parser is a set of rules, run in order, and each stage can decline to answer.
First, what kind of post is this? Keyword rules in English and Filipino separate a scheduled interruption (“scheduled power interruption”, “naka-iskedyul”, a maintenance memo) from an unscheduled one (“emergency”, “bumagsak ang linya”, a fault report) from a restoration notice (“power restored”, “naibalik na”). Anything else — a job posting, a bill reminder, a holiday greeting — is classified as not an advisory and dropped. The reason (maintenance, line upgrade, tree trimming, NGCP transmission, fault, weather) is matched the same way and left as “not stated” when nothing matches.
Advisories write dates a dozen ways: “September 5, 2026”, “05 Sept 2026”, “Sept. 5-7”, “bukas”. Each pattern is a separate rule, resolved against the post's own timestamp and always in Asia/Manila, so a post read at 2am does not shift a schedule by a day. Times handle ranges (“8:00 AM – 5:00 PM”), military time, and the common “8:00 – 5:00 PM” where only the second half carries a meridiem. A date range becomes one advisory per day, because you care about your day, not their memo. If no date is found, the advisory keeps its text and says “schedule not detected” rather than inventing one.
Place names are matched against the Philippine Standard Geographic Code gazetteer, scoped to the cooperative's own service area first. That scoping is what makes it work: a co-op in Batangas mentioning “Poblacion” means the Poblacion in its own franchise, not one of the two hundred others. Names are matched with accents and spelling variants folded together (“Sto. Niño”, “Santo Nino”). A name that resolves to more than one place inside the same co-op, or to none, is left unmatched rather than guessed.
Each stage contributes to a confidence score, and the score decides what happens next:
A card labelled not yet verified by a volunteer means the rules produced something, but not confidently enough to stand alone. Treat the original post as the truth and the parsed schedule as a hint. Every community submission starts in this state, no exceptions. Verified advisories carry no badge at all — the absence of the label is the signal, because most advisories are fine and a page of green ticks would be noise.
A card on this site is one of three things, and it always says which:
Pick your barangay and you get the advisories that cover it, from any cooperative. Web push alerts are live today; Messenger is planned. See how alerts work for the details. Only high-confidence, verified advisories will ever be sent.
Everything here is also available as an API and per-cooperative RSS.