Help

← comtradeviewer.org

Comtrade Viewer Help

Read relay event records. Inspect waveforms. Measure timing. Compute power quantities.
Records never leave your device — everything runs locally.

COMTRADE .cfg + .dat Single-file .cff Beckwith OSC ATP/EMTP PL4 SEL CEV / EVE / EVZIP SEL MSR / CMSR S&C IntelliRupter WFC ZIP Archives

File Formats

Comtrade Viewer reads nine record formats, and can also open a plain .zip containing any mix of them. All are loaded the same way — tap Open Record and select the file(s).


Quick Start

  1. Tap Open Record and pick a file (or pair of files) from the Files app.

  2. The channel list appears. Tap any analog or digital channel to select it.

  3. Tap the blue Plot › button at the top right to view the waveforms.

  4. On the plot screen: pinch to zoom, drag to pan, double-tap to fit the full record. Drag the A and B cursor handles to measure timing and amplitude — press a handle for half a second to grab it.

  5. Swipe from the left edge of the screen (or use the Android back gesture) to return to the channel list.


Reading the Plot

Each selected analog channel gets its own lane with the channel name on the left, a colored trace, and a horizontal axis at the bottom showing time in seconds or milliseconds.

Digital channels get shorter lanes with a dashed gray baseline. Colored dots appear at samples where the digital is asserted (=1).

The A (red) and B (green) cursors mark two points in time. The left margin of each lane shows the trace value at A and B — by default the instantaneous sample, or a calculated value such as RMS or a phasor (see Cursor Readout Modes). The bottom strip shows the absolute times and the difference (Δ) between the two cursors, including the count of fundamental cycles between them.

Tap the file-info row at the top of the channel list to see record details — station, device, samples, sample rate, timestamps, and format.


Plot Screen Gestures

🤏

Pinch

Zoom in/out on the time axis.

👆

Drag (one finger)

Pan left/right along the time axis.

👆👆

Double-tap

Auto-scale to fit the entire record.

◀

Swipe from left edge

Return to the channel list.

↔

Press and hold A or B handle

Hold for half a second to grab the cursor, then drag to move it.

📐

Tap P

Toggle the phasor diagram (left of A/B handles).

🔢

Tap the readout chip

INST ▾, in the bottom-left corner of the plot, opens Readouts & scale: the cursor readout mode, and under Vertical scale the amplitude range and whether lanes share one scale per unit. Tapping any A/B readout or the mode header does the same. RMS records, which have no readout modes, show a Y ▾ chip for the vertical scale instead.

⚡

Tap Fault

Fault direction and the relay's own report, with Full fault analysis › for type and location. Visible only when a terminal is defined. See Fault Analysis.

📏

Tap RX

Toggle the impedance (R-X) diagram. Visible only when a terminal is defined. P and RX are mutually exclusive; tapping the active one closes the panel.

👇

Press and hold (phasor/RX)

Show magnitude, angle, R/X readout. Release to dismiss.


Channel Customization


Terminal Calculations

A terminal is a 3-phase point in the system, defined by 6 channels: three voltages and three currents. Once defined, Comtrade Viewer can plot derived power and zero-sequence quantities alongside the raw waveforms. It also calculates apparent impedances, viewable on the R-X diagram, and symmetrical-component voltage and current phasors, viewable on the phasor diagram.

Defining a Terminal

When a record contains at least 3 voltage and 3 current channels, a Define Terminal banner appears above the channel list. Tap it to open the terminal-define modal:

Tap Save. The banner summarizes your terminal, and a Calculated section appears in the channel list between Analog and Digital. Select any calculated channel to plot it.

Calculated Channels

In Wye mode, these quantities are available:

In Delta voltage mode, only system-level quantities are available:

Per-phase P/Q and V0 are not physically defined when only line-to-line voltages are recorded, so they are not offered.

Sign Conventions and Units

Active and reactive power use the inductive-positive convention. Power units are derived automatically from the source channel units (V × A → W; kV × A → kW; kV × kA → MW). The display formatter chooses an SI prefix that keeps the value in a readable range (1.299 MW, 750.0 kvar, etc.).

Impedances: primary or secondary ohms. Impedances are in the same ohms as the record — primary or secondary. The R-X diagram labels them Ω pri, Ω sec, or plain Ω when the record doesn't say; in that case set Recorded values in Define Terminal. Relay settings (Z1MAG and the like) are secondary ohms: Zsec = Zpri × CTR / PTR. With both ratios set in Define Terminal, the R-X diagram's Select sheet can show either.


Cursor Readout Modes

The A/B values in the left margin can show more than the instantaneous sample. Tap the readout chip (INST ▾, bottom-left corner of the plot), any A/B readout, or the mode header to open Readouts & scale and pick a mode. The same sheet holds the Vertical scale controls (amplitude range and lane scales, also in Settings). Changes apply immediately, so you can watch the values update above the sheet.

How the values are calculated

Every calculated mode uses a window of one cycle that ends at each cursor, the way a relay sees the signal. After a sudden change such as fault inception, the reading takes one cycle to settle — that is expected, not an error. The window is shown behind each cursor as a shaded band (see Settings → Cursors & readouts → Show calculation window), so you can see exactly which samples were used.

Header and chip

In a calculated mode the chip turns blue and shows the mode (RMS ▾, FUND ▾, H3 ▾, THD ▾). A small header pinned to the top-left of the plot shows the mode and angle reference on its first line (FUND · ∠ VA) and the frequency in use on its second (60 Hz · line).

Frequency

The window length follows the source chosen under Frequency in the sheet — line frequency, a Hz channel, or a frequency measured from the waveform. It is shared with the phasor diagram. See Frequency Tracking; it matters a great deal when the system was far from nominal.

Angles

Fund angles are measured from the phasor diagram's 0° reference channel. If none is set, the first selected voltage channel is used. The header shows which channel, e.g. ∠ VA.

When a value can't be calculated

The readout shows — within the first cycle of the record, when the sample rate is too low, or when the window would span a change in sample rate. RMS, phasor, harmonic and THD calculations don't apply to some channels — Hz channels, DC channels such as the station battery, no signal inputs, calculated (terminal) channels and channels with non-AC units. Those keep showing their actual value in every mode. On RMS-envelope records (SEL MSR/CMSR) the values are already RMS, so the readout modes are not offered.


Frequency Tracking

Every phasor, Fund, Harmonic and THD value comes from a one-cycle DFT, and "one cycle" is only right if the frequency is right. Near nominal the difference is negligible. Far from nominal it is not: a 60 Hz window on a 45 Hz signal reads magnitudes up to 25% low and the angles between phases up to 15° off. The usual cause is a generator that has tripped and is coasting down while its field, not yet decayed, keeps feeding the fault.

The measured frequency is an estimate. The app works it out from the recorded voltage waveform. It is not the relay's own frequency measurement, and like every method — the relay's included — it is least reliable during a fault, when the voltage is disturbed.

Choose the source under Frequency in the cursor readout sheet, or Frequency reference in the phasor / RX Select sheet — they are the same setting:

You choose the channel; the app never picks or switches one for you. It can't tell what is wired to the relay. A VS input may be a VT on the other side of the breaker, and a line VT may still be fed from the remote end after the local breaker opens. Measure on a VT you know sees the machine or system you are analysing.

How the estimate works

Finding the period. The app compares the voltage waveform with a copy of itself shifted by a trial delay. The delay at which the two line up best is one period, and the frequency follows from it. Because the comparison uses every sample over two cycles, harmonics and noise have little effect. This is the method published by Bogdan Kasztenny of Schweitzer Engineering Laboratories — A New Method for Fast Frequency Measurement for Protection Applications, 13th IET DPSP, 2016: https://selinc.com/api/download/113977/?lang=en

Smoothing. The raw estimate is then smoothed. Choose how under Smoothing in the cursor readout sheet (shown when a Measure source is selected):

The cost of holding. A held value doesn't change, so if the frequency really is changing during the fault — a coasting machine slowing down — the held value falls behind. To limit this the hold never lasts longer than 0.2 s; after that the app measures again. At an 18 Hz/s run-down, the held value can be about 3.6 Hz out by the time it releases. For a machine coasting down through a fault, Metering is usually the better choice.

The derived frequency lane. While a Measure source is chosen, the plot gains a lane labelled f ← VB (or whichever source you picked). It is the app's own estimate, not a recorded channel, so it is drawn dashed with an italic label. It sits just below the channel it is measured on, and is listed in the channel list under Derived — untick it there to hide the lane while still measuring with it. Under its label is the rate of change between the cursors, e.g. −16.6 Hz/s: the straight-line rate between the two points, so put both cursors on the part of the decline you care about. Gaps are stretches where nothing could be measured. Tap its label to change its colour.

Bumps at fault inception and clearing. These events shift the voltage's phase by a few degrees. While the phase moves, the waveform's apparent frequency moves with it, so with Metering or Tracking the lane shows a brief bump even though the system stayed at nominal. That is what the waveform did, and every frequency method sees it. Relay-like smoothing holds through it instead.

The second line of the readout header, and a caption in a bottom corner of the phasor / RX diagram, show what is in use — e.g. 45.60 Hz · meas VB. (held) means the value is being held — through a fault in Relay-like mode, or because nothing was measurable at the cursor; (nominal) means the cursor is before the first measurement, so the record's stated frequency is assumed; (fallback) means nothing could be measured at all and line frequency is in use.

The ⚠ warning. With line frequency or a Hz channel selected, the app still estimates the frequency in the background — on the terminal voltages if a terminal is defined, otherwise on the channel named as the A-phase (or AB) voltage. If the two disagree by more than 1%, the header and the diagram show ⚠ with the estimate, and the readout sheet names the channel. The background check is slow and steady, so a fault on its own doesn't set it off — only a frequency that stays off nominal.

What the estimate can't fix:

None of this replaces judgment. Look at the waveforms, check that the frequency in the header is plausible, and check that balanced quantities look balanced. The tool gives you the numbers; whether they mean anything is your call.


Phasor (P) and Impedance (R-X) Diagrams

Tap P in the strip with the A/B handles to open the phasor diagram. It opens beside the waveforms — below them in portrait, to the right in landscape — and computes a one-cycle DFT phasor for each selected channel at cursor A. Move cursor A and the phasors update live.

Tap RX (only shown when a terminal is defined) for the impedance plane. It plots the positive-sequence impedance Z1 = V1 / I1 as a point with a line from the origin, on R (horizontal) / X (vertical) axes, also tied to cursor A. Z1 is shown at its absolute angle — no reference rotation. The ohms domain follows the recorded channels as-is (no CT/PT ratio applied, so secondary inputs give secondary ohms). Press and hold for R, X, |Z1| and the impedance angle.

The diagram is only as good as the frequency it is computed at. Near nominal the error is small. Far from nominal — a coasting generator, an island — magnitudes and the angles between phases can be badly wrong. Watch for ⚠ in the diagram's bottom corner, and see Frequency Tracking.

Fault Analysis (single-ended) EXPERIMENTAL

Fault Analysis works on the record open in the viewer: which direction the fault was, what type it was, and — with line data — how far along the line. It needs a terminal (three voltages and three currents of one line), so the Fault chip appears once one is defined. One tap runs everything automatically.

The summary

Tapping Fault first shows the basics:

Full fault analysis › opens the full result; ‹ Summary returns. Close keeps the result; Clear removes it and its plot markings. On the plot, a dotted line marks fault inception and, in the full view, the analyzed window is shaded. The Fault chip is blue while a result exists.

The full result

Warnings appear above the numbers for: a reverse fault, a weak fault signal, noisy pre-fault currents, methods disagreeing by more than 10 % of the line, a location outside the line, a very short fault, or ohms that can't be put on the record's side.

How it works

1. Finding the fault. Inception is the first sample where the one-cycle change in current (or voltage) rises clearly above the record's background, with currents rising or voltages sagging — so a breaker opening is not mistaken for a fault. The fault ends at the first of: a faulted phase's current collapsing (pole open), voltages and currents back to pre-fault for a cycle (cleared elsewhere), or 60 cycles.

2. Fault type. From the angles between sequence currents, with Δ meaning fault minus pre-fault (shifted a whole number of cycles):

3. Direction. The incremental directional element is based on the TD32 element developed by Bogdan Kasztenny at Schweitzer Engineering Laboratories and described in the SEL-T401L Instruction Manual. It is this app's own implementation of that principle, not a reproduction of the relay's logic, and its results may differ from the relay's. For each faulted loop, using the first cycle after inception: Δv is the loop voltage minus its value one cycle earlier, and ΔiZ the same for the replica current (loop current through a 1 Ω model at the line angle; ground loops include Z0/Z1). Both are low-pass filtered.

Torque = ∫ −Δv · ΔiZ dt. Forward when it exceeds |ZF| · ∫ ΔiZ² dt, reverse when below −ZR · ∫ ΔiZ² dt, held for ⅛ cycle.

Forward faults see Δv = −Zsource · ΔiZ, reverse faults the opposite sign, so fault resistance and load don't matter. The element needs the line energized and steady for the cycle before the fault and enough Δv and Δi; otherwise the full result falls back to negative-sequence direction, z2 = Re[V2 · conj(I2 · 1∠θ)] / |I2|² (forward if negative).

4. Location. For the faulted loop (two-phase-to-ground faults use the phase-to-phase loop):

Z1 is the whole-line positive-sequence impedance. Four methods share one equation and differ only in the polarizing current IP, assumed in phase with the current in the fault resistance:

m = Im[ V · conj(IP) ] / Im[ Z1 · I · conj(IP) ] (per unit; distance = m × line length)

Two more for comparison:

Each method is evaluated every 1/16 cycle across the window (from 1¼ cycles after inception to the end of the last stable fault type) and the median is reported. Apparent fault resistance (negative-sequence method): RF = Re[ (V − m · Z1 · I) / IF ], with IF = 3 · IP for ground faults and IP for phase faults.

Line data

For SEL records, Z1MAG, Z1ANG, Z0MAG, Z0ANG and LL come from the settings in the record (secondary ohms). Line data enters or overrides them for this record, as primary or secondary ohms; the app converts with the CT and VT ratios (from the record or Define Terminal) when the record is on the other side. Z0 is needed only for ground faults — without it, the k0 from Define Terminal is used if set. Without Z1 you still get type, direction and the loop impedance in ohms.

Limits

Single-ended location can't see the remote end's current, so fault resistance with infeed, a nonhomogeneous system, mutual coupling with a parallel line, untransposed lines, series capacitors and tapped load all bias it. Expect a few percent of line length at best, more for resistive ground faults. Faults shorter than about 1¼ cycles read long. A weak fault signal (voltage sag under 5 % and current change under half the load) or currents already carrying over 20 % harmonics or noise are flagged and lower the confidence; the numbers are still shown. A cross-country fault can look like a two-phase-to-ground fault from one end. The double-ended Incremental Fault Locator avoids most of these.

References


Fault Locate (double-ended) EXPERIMENTAL

Open it from the Incremental Fault Locator button on the start screen, before any record is loaded. It works on its own pair of records and shares nothing with the viewer.

The method is the incremental-quantity, time-domain, double-ended locator of Kasztenny & Smelich (SEL, TP7224-01, 2025). The change in voltage at an assumed fault location can be computed from either end of the line, and at the true location the two estimates agree sample for sample, transients included. A least-errors-squared fit over the A–B window solves for the location in closed form.

Two consequences follow, and they are the reason to prefer this over a conventional impedance calculation. All three phase-to-phase loops are solved together, so there is no faulted-loop selection and evolving faults cause no trouble. And the zero-sequence line impedance is never used, so soil resistivity, mutual coupling with parallel circuits and Z0 setting error drop out of the answer entirely. Ground faults are located from phase-to-phase quantities alone.

The four steps

  1. Load a record from each end. You can select both at once in the file picker. Which record goes to which end does not matter — the fit is symmetric, and the result names the terminal it is measured from.

  2. Define the terminal at each end — three voltages and three currents. Current must be measured into the line at both ends; tick Invert current polarity if a relay's CTs look into the bus instead. Getting this wrong reports the fault near the wrong terminal rather than failing.

  3. Align the two records. Bring one record's fault inception onto the white centre line by dragging the top lane, then drag the bottom lane until the other record's inception sits on the same line. Only a few milliseconds of accuracy is needed — the calculation polishes the rest itself. Use the nudge buttons or type a value for fine adjustment.

  4. Bracket the fault with A and B, enter the line impedance, and tap Locate Fault.

Where to put cursors A and B

Useful window lengths: one cycle with transient-based relays, two with phasor relays, half a cycle for incipient cable faults. Longer is not better.

Line impedance

The whole-line positive-sequence impedance, entered either as a magnitude and angle or as R1 + jX1 — the toggle above the fields switches between them and converts what is already there. Both halves are required either way: the replica current uses the angle, not just the magnitude. An angle of 0 is a real entry, not a blank. Z0 is deliberately not requested.

When a record carries a settings block with Z1MAG and Z1ANG, these fields fill in automatically, along with the CT and VT ratios and the line length. The values stay editable. The panel above them shows what was found in each record, and says so plainly when a record has no settings block.

The ohms must be on the same side as the samples. This is the setting most likely to be wrong, and it is wrong by a factor of VTR/CTR — which shows up as a wildly out-of-range answer rather than a subtle one.

Reading the result

Two additions of this viewer, not part of the published method

An integral formulation is solved alongside the published instantaneous one. Integrating the voltage-drop equation turns the L·d(Δi)/dt term into L·Δi, so no numerical derivative is taken at all. Both estimates come from the same window and the same signals, and their agreement is a per-record measure of whether the numerics survived the sample rate — a central-difference derivative loses sin(θ)/θ of its gain, 2.5 percent at 32 samples per cycle, 6.9 percent at 12, and the integral form does not. The two estimates agreeing is the normal case and is not reported; a warning appears on the result only when they diverge. This is why no minimum sample rate is enforced: a low-rate record is not refused, it is cross-checked.

Both records are also resampled onto a common grid with band-limited (Lanczos-4) interpolation before the alignment polish. Its purpose is alignment resolution, not accuracy: two unsynchronised recorders at 16 samples per cycle have sampling instants up to half a sample apart, 0.52 ms or 11 electrical degrees, and a polish quantised to whole samples cannot correct any of it. No amount of interpolation recovers spectral content the recorder never captured.

Reference and status

B. Kasztenny and G. Smelich, "Locating Faults by Using Incremental Quantities: Introduction, Application Considerations, and Performance," Schweitzer Engineering Laboratories, SEL document TP7224-01, 52nd Annual Western Protective Relay Conference, October 2025. An earlier version appeared in Proc. 19th IET Conference on Developments in Power System Protection, Bilbao, 2025, pp. 6–13, doi:10.1049/icp.2025.1039. The authors report an average error of 1.1 percent of line length over 118 field records.

This feature is experimental. Results must be independently verified before any operational use.


Settings Reference

Open Settings via the gear icon next to the title in the top-left of the channel list. Settings persist across app restarts; Reset at the bottom of the screen returns them all to the defaults listed here.

Appearance

SettingDefaultNotes
ThemeAutoAuto follows the device's dark/light mode. Or choose Light or Dark.
Text sizeNormalSmall, Normal, Medium, Large or Extra large. Scales all text, including the labels and readouts drawn on the plot and diagrams; bottom sheets stay at normal size.

Bigger text widens the label and readout columns and narrows the waveform area — at Large and Extra large on a small phone, landscape, the Inst readout mode or Lane labels → Off give the waveforms more room.

Waveform Plot

SettingDefaultNotes
Analog lane height (px)60Vertical space for each analog channel. With Auto-fit lanes off this is the exact lane height; with it on it acts as a minimum.
Digital row height (px)22Vertical space for each digital channel.
Space between lanes (px)5Gap between adjacent lanes.
Amplitude rangeWhole recordWhat each lane's vertical scale is fitted to; independent of lane height and Auto-fit.

Whole record — fitted once to the entire record, and never changes as you pan or zoom, so heights stay comparable. Best for comparing fault transients to pre-fault steady state.

Visible window — re-fits to the data on screen as you zoom. Best for inspecting fine detail, but a lane holding only noise is stretched to fill its height (its axis limits show how small it really is).

Also on the plot's Y chip, whose sheet is titled Vertical scale.
Lane scalesOwnOwn scale per lane — each lane fits its own signal.

Shared by unit — every lane with the same unit shares one scale: all voltages together, all currents together, all Hz together (kV and V lanes are matched by converting units). A collapsed phase or a high fault current stands out at a glance. Only AC voltages and currents share: a DC or noise-only channel (station battery VDC, an unused input) keeps its own scale, as does a lane alone in its unit. A voltage far smaller than the others — under 1/20 of the largest, such as a secondary-volt channel beside primary kV — forms its own group rather than being squashed flat. Currents aren't split by size: fault current is often many times load, and that contrast is the point. Also on the plot's Y chip.

Every analog lane shows its y-axis limits just left of the axis line — the maximum at the top of the lane, the minimum at the bottom (e.g. 146 kV / −146 kV) — whatever the scaling mode. With Visible window a lane holding only noise is zoomed to fill its height; the limits show how small it really is. Where they appear follows Lane labels; a lane too short to fit both limits beside its name shows the range as a small tag inside the plot instead.
No-signal & DC handlingOnA recorded channel that only ever takes a handful of A/D steps is handled specially.

No signal (spans ≤ 10 steps near zero — an unused IN or VS input): drawn as a dimmed flat line on the scale of the real signals in its unit, tagged no signal; the channel list marks it too.
DC (not AC, and its level dwarfs its spread — e.g. the station battery VDC): its axis runs from zero to just past its level, so it shows as a steady line at its true value and a real sag still shows, but one-step flicker doesn't.

Turn this off to see every channel auto-scaled to its own raw range — for example to study a battery's ripple.
Auto-fit lanes to screenOnWhen the lanes together are shorter than the screen, they grow proportionally to fill it (the analog/digital height ratio is preserved, and Analog lane height becomes a floor). When off, each lane is exactly Analog lane height px tall and the rest of the screen stays blank. If the lanes are taller than the screen, the plot scrolls and this setting has no effect.
Show digitalsAllAll — every digital channel is selectable.
Active only — only digitals that change state somewhere in the record.
Active or asserted — digitals that change state OR stay asserted (=1) for the whole record.
Trace line width (px)1.5Thickness of plotted lines.
Monochrome tracesOffDraws all waveform traces and phasors in a single color (white on dark, black on light). Cursor lines and the A/B readouts keep their own colors. Turn on Show phasor labels in the phasor diagram's Select sheet to tell the phasors apart.
Pinch zoom sensitivity1.5×1×, 1.5×, 2×, or 3×. Multiplies the zoom factor of pinch gestures; 1× is a physical 1:1 pinch. Higher values zoom further for the same finger travel.
Show gridlinesOnHorizontal axes within each lane.
Lane labelsNames + axis limitsWhat the plot shows beside each lane.

Names + axis limits — the channel name in the left margin, with the y-axis maximum at the top of the lane and minimum at the bottom, beside the axis.
Names + range in plot — the name in the margin, and the range as a small tag inside the lane's top-left corner (e.g. ±146 kV).
Off — traces only: no names, limits or df/dt, and the plot widens into the freed margin. The A/B readouts still give exact values.

The channel name appears without its unit — the readouts beside it already show it — except in Harmonic and THD modes, where the readouts are in %, and when neither readout has a value.
"Why is there empty space below my waveforms?" Auto-fit lanes is off, so each lane uses exactly Analog lane height px and the remaining screen is intentionally blank. Turn Auto-fit lanes to screen back on to expand the lanes to fill the screen. Leave it off when you want a fixed lane height regardless of channel count (e.g. a consistent zoom for comparing records). Lane height and Auto-fit control vertical space; Amplitude range controls how the signal fills whatever space a lane has. Changing one never changes the other.

Phasor / RX Diagram

SettingDefaultNotes
Phasor thicknessMediumLine weight of the arrows in the phasor and R-X diagrams: Small, Medium, or Large.
V1MEM compensationOnIn raw SEL event reports the relay's memory voltage V1MEM is updated only once per processing interval, so it is recorded as a staircase whose values belong at the end of each step — as recorded, its phasor appears to lead V1 by about 45°. With this on, the app measures that offset from the record's own pre-fault cycles (where V1MEM equals V1) and corrects V1MEM's phasor in the phasor diagram and Fund readouts; the trace is never changed. A compensated V1MEM is drawn dashed, with V1MEM compensated in the diagram's corner; the offset goes to the Log. It is a fixed time shift, so a memory that genuinely drifts from V1 during an event still shows. Off matches SEL's SynchroWAVe.

Cursors & readouts

SettingDefaultNotes
A/B handle positionBottomPlace cursor handles at the bottom or top of the plot screen. Time labels always stay at the bottom.
Cursor A colorTheme defaultPick from 16 swatches or tap Reset to return to the theme default.
Cursor B colorTheme defaultPick from 16 swatches or tap Reset to return to the theme default.
Show calculation windowShadedHow the one-cycle window behind each cursor is shown when the readouts are in a calculated mode (RMS, Fund, Harmonic, THD).

Shaded — a translucent band in the cursor's color behind the traces.
Outline — dashed edges with a bracket along the top, no fill.
Off — hidden.

Nothing is drawn in Inst mode.
Window shadingNormalSubtle, Normal, or Strong. Shown only when the window is Shaded. Each step is tuned separately for light and dark themes, so it looks similar in both.
Magnitude precision3Magnitudes in the A/B readouts to 3 significant digits (e.g. 402 A, 1.80 kA) or 4 (401.8 A).

This is display rounding, not a claim of accuracy: the whole chain — instrument transformers, relay inputs, the calculation — is typically good to around 1%, so three digits roughly matches what a reading is worth in absolute terms. A fourth digit is real resolution and useful for relative comparisons in one record (A vs B, phase vs phase), not as an absolute value.

Readouts never show more decimals than the channel itself can resolve — its A/D step, measured from the data — so a channel recording in 1 mA steps reads −3 mA, not −3.00 mA (calculated RMS and phasor values average a cycle, so they may keep one decimal more). Frequencies always show 0.01 Hz (59.99 Hz).
Angle precision0.1°0.1° or 1°. Whole degrees save more room; 0.1° helps when comparing nearly equal angles. Both settings are also on the cursor readout sheet, as Precision.

Other

SettingDefaultNotes
Show ε for values below0.0001Values smaller than this display as ε instead of a tiny number. Reduces noise in cursor readouts.
Default line frequency (Hz)60 HzFallback line frequency used only when a record contains no embedded frequency value. Set to 50 once if you mostly work on 50 Hz systems.
This record's line frequency (Hz)From recordThe frequency actually used by the DFT calculations and cursor cycle counts for the current record. Defaults to: the record's embedded value → your default line frequency → 60 Hz. Edit to override for the current record only (e.g., when a record's stated 60 Hz is actually drifting at 59.7). If a Hz channel or a Measure source is chosen as the frequency reference (in the phasor picker or the cursor readout sheet), it takes priority for phasor calculations and calculated cursor readouts. See Frequency Tracking.
Help—View Help › opens the help in the app.
Hide samples on start screenOffTurn on to remove the Or try a sample record list and the Sample fault location link from the start screen.
Diagnostic log—View Log › shows app messages and any errors encountered. Useful for reporting bugs (see Troubleshooting).

To email a record to support, tap the record information row (just beneath the top button) to open Record Details, then tap Email to Support to open a pre-addressed email you can edit and send.


Troubleshooting

If a record fails to load or computed channels look wrong:

  1. Open Settings → tap View Log.
  2. Look for entries tagged [load] (file loading), [calc] (terminal calculations), or [dft] (DFT engine).
  3. Tap Copy to put the log on the clipboard, then email it to feedback@comtradeviewer.org along with the record file (if non-confidential).

Common Messages


About