Power Quality Events
Power Quality Events keeps every disturbance your power meters record: a voltage sag, swell or interruption, a current inrush, sag or swell, a transient or a frequency excursion. Each capture becomes a row you can filter and open, with the waveform the meter recorded, the half-cycle RMS trend drawn against the trigger threshold, statistics for every phase, the original COMTRADE files and a generated PDF report.
Workflow Stage: Report
Overview
Open Reports → Domain Specific and click View Events on the Power Quality Events card. The list lives at /reports/power-quality and each event has its own page below it. Two other routes lead to the same pages: a row in Alarm History that was raised by a meter upload opens the event it belongs to, and the AI Assistant links to an event whenever it cites one in an answer.
An event is one capture by one meter. The platform reads the meter's event files, works out what happened and how long it lasted, and keeps the result in a form you can query: how many sags a meter saw this quarter, which phase dipped the deepest, whether anyone acknowledged last night's interruption. The source today is the Acuvim 3 power meter, which posts its event files to a pipeline in the Collect stage; the events page is where that data is read.
Domain Specific appears only for Organizations that have the advanced reports feature enabled, like the other generator reports on it.
How Events Reach the Platform
The meter is set up to post each event it records to a pipeline endpoint over HTTPS, with a datasource field that names the meter (MSB1_Events, for example) and the file itself. One event arrives as two uploads. The COMTRADE archive (a .tar.gz holding a .CFG and a .DAT file) carries the sampled waveform: six analog channels, Va, Vb, Vc, Ia, Ib and Ic, typically 1.5 seconds at 3,840 samples per second around the trigger. The fastlog .csv is the meter's own RMS trend over the same window.
The archive is the event. When it arrives the platform parses the waveform, writes the event with its per-channel statistics and chart previews, renders the PDF report, records an alarm event and emails the meter's alarm group with the report attached. The CSV is stored and linked to the same event, nothing more: its column header does not reliably describe its columns, so no number on the page is taken from it. Whichever upload arrives first creates the row; the second completes it.
The filename tells the platform what the capture is. A name such as MSB1_2026-10-24T18-14-58.827330-0400_Vabc_VOLT_INTRP.tar.gz breaks down into the meter (MSB1), the trigger time with its UTC offset, the phases the meter flagged (Vabc) and the event token (VOLT_INTRP, a voltage interruption). The token is mapped to one of the event types below; a token the platform does not recognise is kept as the Meter event code and the event is filed as Unknown rather than dropped.
Setting Up the Pipeline
Events are received by a pipeline of the Acuvim 3 event report type. Open Settings → Pipelines, click New Pipeline, pick Acuvim 3 event report in the Create Pipeline dialog and click Continue. The type is fixed once the pipeline is created. Instead of a code editor, the configuration is a form.

Pipeline name and Enable pipeline behave as for any pipeline; a disabled pipeline rejects uploads. Under Email notifications, add one card in Meters for each meter that posts to this pipeline:
| Field | What it does |
|---|---|
| Datasource | The name the meter posts with, for example MSB1_Events. It also names the folder the meter's files are stored in. |
| Display name | The name events from this meter are labelled with on the list, the event page and the report. |
| Alternate names | Other names the meter writes into its filenames, separated by commas. Use it when a meter has been renamed, so its old captures and its new ones land under one display name. |
| Alarm group | Who is emailed when the meter records an event. |
| Asset | The Asset the meter's events are filed under; its Location sets the site on the report. |
A meter is matched by the name in its filename against each card's datasource, display name and alternate names, ignoring case. A match sets the meter name stored on the event and the alarm group that is notified. If no card matches the filename, the alarm group is taken from the card whose datasource equals the one the request carried, then from the Default alarm group; with neither, the event is recorded without an email. Names and alternate names must be unique across the cards.
File directory is the folder under which raw uploads and reports are stored on the Files page, one subfolder per meter. Leave it empty to use Energy-PQM.
The meter itself is pointed at the pipeline's endpoint. The URL and the authentication are the same as for any pipeline; see Sending Data to a Pipeline.
The Events List
The list shows every event in the Organization, newest first.

Each row carries Fired At (the trigger time), the Meter, the Event Type, the Asset, the Duration with its duration class badge for voltage events, the Largest Excursion (the phase with the widest peak-to-peak swing among the channels of the event's own quantity, so a current event names a current phase) and whether a Report is available. Clicking a row opens the event.
The search box matches the meter, the asset or the source file name. The filter row narrows the list by Meter, Type, duration Class, Asset and the Fired date range, and Clear all resets them together. Hovering an event type or asset tag offers Filter events like this, and the asset tag also offers Open asset. The toolbar has the usual column and density toggles and an export button that writes the current page to CSV, including the source file name and whether the duration was clipped.
Event Types and Duration
The event type comes from the meter's filename token. For voltage events and current inrush the platform also measures how long the disturbance lasted, using the band IEEE 1159 defines for that type relative to the RMS before the trigger.
| Event type | Meter token | Measured band |
|---|---|---|
| Voltage Sag | VOLT_SAG | Voltage below 90% of the pre-trigger RMS |
| Voltage Swell | VOLT_SWELL | Voltage above 110% |
| Voltage Interruption | VOLT_INTRP, VOLT_INTERRUPT | Voltage below 10% |
| Current Inrush | CURR_INRUSH | Current above 110% of the pre-trigger RMS |
| Current Sag | CUR_SAG | No duration |
| Current Swell | CUR_SWELL | No duration |
| Transient | TRANSIENT | No duration |
| Frequency Event | FREQ_EVENT | No duration |
| Manual Trigger | MANUAL_TRIGGER | No duration |
| Manual Fast Log | MANUAL_FASTLOG | No duration |
| Unknown | anything else | No duration |
The duration is measured from the waveform, not from the meter's own event log. The platform computes a one-cycle RMS along the capture for each phase the filename names (Vabc means all three voltages, Ib means one current), finds where that RMS crosses the band, and reports the span from the earliest crossing out to the latest crossing back. The Capture card keeps the full window the meter recorded; the duration is the disturbance inside it. When the disturbance is still outside the band at the end of the capture (or already outside at its start), the true duration is longer than the capture shows, and the value is printed as a lower bound such as ≥ 1.02 s.
Current sags and swells get no duration because the meter triggers them against its configured nominal current, which the capture does not carry; the platform shows the statistics and the chart but leaves the duration blank rather than guess a nominal.
Voltage events are also given their IEEE 1159 duration class: Instantaneous under 0.5 s, Momentary from 0.5 s to 3 s, Temporary from 3 s to one minute, and Sustained beyond that. An interruption has no instantaneous class, so a short interruption is momentary. The class appears as a badge next to the duration and is a filter on the list. Current events have no class.
Reading an Event
The event page answers four questions in the order an engineer asks them: how long, how deep, which phase, and whether anyone has handled it.

The header names the event type, the meter, the trigger time and the linked Asset. Older and Newer step through the same meter's events in time order, and Open Alarm Event opens the alarm event this capture raised.
Three cards lead the page. Duration repeats the measured span with its class and lists each phase's own duration. Residual RMS (for sags and interruptions) or Peak RMS (for swells and inrush) gives the worst phase as a percentage of its pre-trigger RMS, with every measured phase underneath: a residual of 0.05% means the voltage was effectively gone. Alarm shows the state of the alarm event the upload raised: Acknowledged and when, Awaiting acknowledgement, Cleared without acknowledgement, or No alarm event when the pipeline did not raise one, with an Open button to the alarm event itself.
The chart opens on the RMS view: the half-cycle RMS of every channel against time from the start of the window, volts on the left axis and amps on the right. Dashed threshold lines mark the band for each phase the meter named (90% of that phase's pre-trigger RMS for a sag, 10% for an interruption, 110% for a swell or inrush), and the shaded span is the measured disturbance. Hover for the values at a point, drag or scroll inside the plot to zoom, and use the slider underneath to move the window.

Waveform switches to the sampled values themselves, downsampled for the browser, with the same shading and zoom. The RMS view is drawn from data the platform now stores with every archive; an event captured before that view existed shows only the waveform until its archive is uploaded again.
Capture, Files and Channel Statistics

Capture records the window the meter captured: Window start and Window end, the number of Samples, the Sample interval and Sample rate, the measured Event start and Event end, the Source (Acuvim 3), the Meter event code as it appeared in the filename, and the Source file itself.
Files holds the three files tied to the event. Raw capture (CSV) is the fastlog, Waveform (COMTRADE) is the archive the statistics and charts were built from, and Event report (PDF) is the generated report. Each has a Download button; the report can also be opened in a new tab with Open. When one of them was never received, the row says so instead.
Channel statistics has one row per channel, with the phases that crossed the band sorted first. The default columns are the comparison an engineer reaches for: Pre-trigger RMS, Min RMS, Max RMS, the Residual (minimum RMS as a percentage of pre-trigger), the phase's own Duration, and the RMS over the whole capture. The columns toggle adds the plain sample statistics: Min, Max, Average, Std Dev, Peak-to-Peak, First and Last.
Uploading Event Files by Hand
A meter that was offline during an event, or an event exported by hand from the meter's own web interface, never reached the pipeline. Upload events at the top of the list sends such files through the pipeline after the fact, so they get the same row, report, alarm event and email as a meter upload.

Pick the Pipeline (preselected when the Organization has one Acuvim 3 pipeline) and the Meter datasource, either one of the datasources configured on that pipeline or a name typed in. When the first file you add names a configured meter, the datasource is filled in for you. The datasource applies to every file in the upload. Asset files the events under an Asset. Email the alarm group for each event is on by default; turn it off for a backfill so the group does not receive one email per file. Alarm events are written either way.
Drop or select one or more Event files from the same meter. A COMTRADE archive (.zip, .tar.gz or .tgz) produces the event, the report and the alarm event; a fastlog .csv is stored and linked only. Files are processed one after another, each with its own progress ring, and a file that fails stays in the list with its error so it can be retried. Uploading an archive for an event that already exists refreshes that event rather than creating a second one. The dialog remembers the pipeline, datasource and asset from the last successful upload until you leave the page, so a folder of captures only needs the files.
If the Organization has no enabled Acuvim 3 pipeline, the dialog explains that and offers Open pipelines.
Alarms, the Digest and the Assistant
Every archive upload also writes a manually raised event into Alarm History, worded like "Utility Meter MSB-1 event file for Voltage Interruption", filed under the meter's Asset and bound to the PDF report. The meter's alarm group receives the email with the report attached. Acknowledging that event in Alarm History is what the Alarm card on the event page reflects, and clicking the row in Alarm History opens the power quality event rather than the generic event page.
When the Organization recorded power quality events during the week, the Weekly Digest email adds a Power Quality section with the number of events by type and the meters that recorded the most.
The AI Assistant reads the same events. Ask it "did we have a sag last night?" or "how deep was the dip on MSB-1?" and it lists the matching events with their duration, class and residual RMS, cites them, and offers a button to the event page.
Permissions
The list and the event pages are part of the Reports area and follow its access. Upload events is shown to users who can read pipelines, because the dialog lists the Organization's Acuvim 3 pipelines; the pipeline itself is configured under Settings → Pipelines. The Open button on the Alarm card and Open Alarm Event in the header need permission to read active alarms or alarm history.
Related Workflow Stages
The events themselves are collected in the Collect stage: a pipeline receives the meter's uploads, and the Edge Server plays no part. The stored captures and reports sit on the Files page, and the alarm events they raise are worked in Alarms like any other. The other documents in the Report stage are described on the Reports page.





