> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wayak.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Outage management

> Detect outages from SCADA events, coordinate dispatch response, and escalate unresolved incidents automatically

When an outage occurs, every minute of delay extends the impact — lost revenue, customer dissatisfaction, and potential safety hazards. Outage management requires rapid detection, accurate scope assessment, efficient crew dispatch, and clear escalation when restoration timelines slip. Manual coordination across SCADA alarms, dispatch boards, and communication channels introduces delays at every step.

Wayak automates the outage response workflow from detection to resolution. A playbook monitors SCADA events for outage indicators, correlates alarms to identify the affected area, dispatches the appropriate crew, and escalates if restoration exceeds the target window. An agent gives dispatchers and operations managers real-time visibility into outage status, crew locations, and estimated restoration times.

***

## What you need

<CardGroup cols={2}>
  <Card title="Data sources" icon="database">
    * **SCADA system** — real-time alarm events, breaker status, voltage readings, and fault indicators
    * **Dispatch database** — outage tickets, crew assignments, estimated restoration times, and work order status
    * **GIS (geographic information system)** — network topology, asset locations, customer counts per segment, and feeder maps
  </Card>

  <Card title="Knowledge spaces" icon="book-open">
    * **Outage response procedures** — upload your storm/outage playbooks, crew dispatch rules, priority ranking criteria, and escalation timelines
    * **Safety protocols** — upload field safety requirements, energized-line procedures, and clearance protocols
  </Card>
</CardGroup>

**Semantic layer:** Define these in your ontology before setting up the agent.

| Component | Name     | Definition                                                                                                                      |
| --------- | -------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Object    | Outage   | Maps to the `outages` table in the dispatch database. Represents a confirmed service interruption with scope, cause, and status |
| Object    | Crew     | Maps to `crews` in the dispatch database. Represents a field team with location, skillset, and availability status              |
| Metric    | SAIDI    | System Average Interruption Duration Index — total customer-minutes of interruption / total customers served, measured monthly  |
| Metric    | SAIFI    | System Average Interruption Frequency Index — total customer interruptions / total customers served, measured monthly           |
| Dimension | Cause    | Classifies outages by cause (weather, equipment failure, animal contact, vegetation, third-party damage)                        |
| Dimension | Priority | Ranks outages by priority (critical infrastructure, hospital/emergency, residential high-count, residential low-count)          |

<Tip>
  See [building a semantic layer](/quickstart/build-semantic-layer) for a step-by-step guide.
</Tip>

***

## Agent setup

<Steps>
  <Step title="Create the agent">
    Go to **Agent Space** → **New agent**.

    | Field    | Value                                                                                                                                |
    | -------- | ------------------------------------------------------------------------------------------------------------------------------------ |
    | **Name** | Outage Operations Analyst                                                                                                            |
    | **Role** | Outage Management Specialist                                                                                                         |
    | **Goal** | Provide real-time outage status, support dispatch decisions with scope and crew data, and track restoration progress against targets |
  </Step>

  <Step title="Set the description">
    > You are an outage management specialist who monitors service interruptions across the distribution network. You correlate SCADA alarms to determine outage scope, identify affected customers and critical facilities, and track crew deployment and restoration progress. You flag outages that exceed restoration targets for escalation. You present data concisely for fast decision-making during storm and emergency events. You never dispatch crews directly — you provide dispatchers with the information they need to make optimal assignments.
  </Step>

  <Step title="Scope data access">
    Grant access to:

    * SCADA system (alarm events, breaker status, fault indicators)
    * Dispatch database (outage tickets, crew assignments, work orders)
    * GIS (network topology, customer counts, asset locations)
    * Outage response procedures knowledge space
    * Safety protocols knowledge space
    * Outage and Crew objects, SAIDI and SAIFI metrics
  </Step>

  <Step title="Add skills">
    <AccordionGroup>
      <Accordion title="Outage status briefing">
        **Trigger:** User asks for the current outage status or a specific outage update.

        1. Query the dispatch database for all active outages with their current status, scope, and assigned crews.
        2. Pull the latest SCADA readings for the affected areas to verify continued interruption.
        3. Retrieve customer counts and critical facility flags from the GIS for each outage area.
        4. Check each outage's elapsed time against the restoration target from the outage response procedures knowledge space.
        5. Return a status briefing with each outage's ID, location, cause, customers affected, assigned crew, elapsed time, and restoration target status.
      </Accordion>

      <Accordion title="Crew availability check">
        **Trigger:** User asks which crews are available or which crew to send to a new outage.

        1. Query the dispatch database for all crews with their current assignment status and location.
        2. Filter for crews with the required skillset (e.g., high-voltage, underground, substation).
        3. Calculate travel time from each available crew's current location to the outage site using GIS data.
        4. Rank available crews by travel time and match priority.
        5. Return a ranked list of available crews with skillset, current location, estimated travel time, and current assignment.
      </Accordion>

      <Accordion title="Outage impact analysis">
        **Trigger:** User asks about the impact of current or historical outages on reliability metrics.

        1. Query the dispatch database for outage records over the requested time period.
        2. Calculate SAIDI and SAIFI using the customer interruption data from the GIS.
        3. Break down the metrics by cause, region, and month.
        4. Compare against regulatory targets and prior-year performance.
        5. Return an impact analysis with current metrics, year-to-date trend, regulatory target status, and the top contributing outage events.
      </Accordion>
    </AccordionGroup>
  </Step>
</Steps>

***

## Automation

### Playbook: Outage detection and escalation

<Steps>
  <Step title="Set the trigger">
    Set the trigger to **Event — New alarm** on the SCADA system. The playbook fires when a fault or breaker-open alarm is received.
  </Step>

  <Step title="Build the workflow">
    The workflow detects outages, assesses scope, and coordinates the response:

    1. **Query** the SCADA alarm event details, including the affected equipment, fault type, and timestamp.
    2. **Query** the GIS for the network topology downstream of the affected equipment to determine the outage scope (number of customers, critical facilities).
    3. **Condition** — check if a related outage ticket already exists in the dispatch database (e.g., a downstream alarm for an already-known outage). If so, update the existing ticket and skip crew dispatch.
    4. **Action** — create a new outage ticket in the dispatch database with the scope, priority (based on customer count and critical facilities), and estimated restoration time per the outage response procedures.
    5. **Action** — identify the nearest available crew with the required skillset and assign them to the outage ticket.
    6. **Condition** — set a timer for the restoration target. If the outage is not resolved within the target window, trigger an escalation step.
    7. **Delivery** — notify dispatch and management of the new outage and crew assignment.
  </Step>

  <Step title="Configure delivery">
    * **Slack** — post new outage alerts to `#outage-dispatch` with location, scope, priority, and assigned crew
    * **Email** — notify the on-call supervisor of any critical-priority outages (hospitals, emergency services)
    * **Slack escalation** — if restoration exceeds the target window, post to `#ops-management` with the outage details and elapsed time
  </Step>

  <Step title="Test and activate">
    Click **Run now** to test with a recent SCADA event, then toggle to **Active**.
  </Step>
</Steps>

***

## What's next

<CardGroup cols={2}>
  <Card title="Regulatory compliance reporting" icon="arrow-right" href="/use-cases/energy/regulatory-compliance-reporting">
    Automate the compilation of regulatory submissions from operations data and compliance documents.
  </Card>

  <Card title="All Energy & Utilities use cases" icon="list" href="/use-cases/energy">
    See the full list.
  </Card>
</CardGroup>
