Reporting periods and emission limits
A permit does not judge single minutes. It judges averages over defined periods, for example one hour or one day, against an emission limit value (ELV). This page explains how the product builds those averages, how it selects the limit for each period, and why a report shows stored values.
The product follows the averaging chain of EN 17255-1, the European standard for data acquisition and handling systems in emission monitoring. The lineage view shows the section of the standard for each level.
Regimes
A regime defines the compliance rules for the aggregation jobs. It specifies:
- Which time periods to aggregate, for example rolling 24 hours or a calendar month.
- Which emission limits apply.
- How the product finds compliance. For example, the average must be below a threshold, or a percentage of exceedances is permitted.
Each aggregation job uses a regime. One emission source can have jobs in more than one regime. The regime connects the aggregated data to the regulatory framework of your facility.
The averaging chain
The regime of the emission source defines the intervals, for example 10 minutes, hourly and daily. A scheduled job calculates each interval when it ends. A batch run can calculate it again for a past period. See When the product calculates the averages.
The report column configuration selects which short-term value a column shows: STA, SSTA or VSTA.
STA, the short-term average
The STA is the average of the first-level data values in one interval, for example from 10:00 to 11:00. The interval includes its start and excludes its end. The STA keeps a quality for the period. The quality shows, for example, that the plant was not in reportable mode or that too few valid values were available.
SSTA, the standardized value
Permits state concentration limits at a reference oxygen content. The SSTA converts the STA concentration to the reference oxygen content that the aggregation job sets:
SSTA = STA × (21 − O2_ref) / (21 − O2_measured)
O2_measured is the oxygen STA of the same period, in percent.
VSTA, the validated value
Every measurement method has an uncertainty. The regulations let the operator subtract it before the comparison with the limit. The VSTA is the SSTA minus this uncertainty. The regime selects one of two deduction methods:
Relative: VSTA = SSTA − (uncertainty % × SSTA)
ELV-based: VSTA = SSTA − (uncertainty % × selected ELV)
In both methods, a negative result becomes zero.
In the ELV-based method, the product uses these default percentages: 20% for NOx and SO2, 10% for CO and 0% for other components. The regime can set a different percentage for each component.
The ELV-based method needs a concentration limit. In an ELV-based regime, a component without any concentration limit, for example CO2 or methane, gets no VSTA. Its regulatory number is a mass, which the product calculates from the STA.
LTA, the long-term average
The daily LTA is the mean of the valid hourly VSTA values of the day. It does not subtract the uncertainty a second time. A day is valid only if it has enough valid hours. The default minimum is six valid hours. The regime can change this threshold.
Weekly, monthly and yearly LTA values do not read the daily LTA. They read the short-term collections of the period directly. For an emission tag, the LTA is the mean of the SSTA values of the period minus the uncertainty. For a process tag, the LTA is the mean of the STA values, without a deduction.
An LTA of this type is valid only if valid short-term values cover enough of the period. The default minimum coverage is 10%. The regime setting OtherLtaMinCoveragePercent can change this threshold.
The product compares the LTA values with the emission limit values. If an LTA is more than the limit, the product raises an exceedance event for compliance tracking.
Worked example
An ELV-based regime has an hourly NOx limit of 200 mg/Nm³. The uncertainty for NOx is 20%. The deduction is therefore 0.20 × 200 = 40 mg/Nm³ in every hour.
| Hour | SSTA (mg/Nm³) | Deduction | VSTA (mg/Nm³) |
|---|---|---|---|
| 10:00 to 11:00 | 150 | 40 | 110 |
| 11:00 to 12:00 | 180 | 40 | 140 |
| 12:00 to 13:00 | 30 | 40 | 0 |
The third hour gives 30 − 40 = −10. The product stores 0, because a negative result becomes zero.
The same hours in a Relative regime with 10% give 135, 162 and 27. The deduction then follows the value, not the limit.
Suppose these three hours are the only operating hours of the day. The daily LTA is then not valid under the default rule, because the day has fewer than six valid hours. The report shows that state. It does not show a number that looks like a compliant day.
When the product calculates the averages
Recurrent jobs calculate the STA and LTA values on a cron schedule. Each job belongs to one emission source and processes specific measurement tags, for example NOx, CO₂ and O₂. After you activate a job, it runs in the background on its schedule. It needs no manual action, and it keeps the data current throughout the day.
STA jobs normally run every hour. At midnight, plant local time, the STA job starts the daily LTA from the VSTA values of the day.
Your administrator configures the schedule for each job in the Jobs Manager. To calculate the averages again for a past period, use a batch run.
How the product selects the emission limit
A permit can set different limits for different operation. For example, a turbine can have one limit on gas and another limit on liquid fuel, or a different limit at low load. The product therefore selects the limit for each period. It does not use one fixed number.
An ELV record belongs to one emission source, one tag and one interval, for example hourly. A daily limit is a separate record, even when its value equals the hourly limit. Each record can also have:
- An operating condition. The condition contains one or more criteria. All criteria must be true. A criterion reads the fuel mode, a threshold on a tag such as load, or the plant status.
- A validity window. The complete period must lie inside the window.
A record without a condition is the unconditional fallback.
For each period, the product selects the limit like this:
- Keep the records whose validity window contains the complete period.
- If some records have a fuel criterion and the period is co-fired (dual fuel), stop. The period is unresolved, also when a fallback exists. This step does not apply when you selected a limit for the combined average (see below).
- Evaluate each condition against the signals of that period.
- Prefer a matching condition with more criteria over one with fewer criteria.
- If several equally specific conditions match, use the lowest limit and flag the tie.
- If no condition matches, use the unconditional fallback.
- If there is no fallback and the fuel changed during the period, the period is unresolved.
The product can also calculate separate gas and liquid averages for the same source. A minute counts for gas or liquid only when the plant uses that fuel alone. Minutes in dual-fuel operation belong to neither partition. The combined average always covers the whole operating period. For the combined average, you can select one limit for each component. The product then uses only that limit and ignores its fuel criteria. The validity window and the other criteria still apply.
Some periods do not resolve to one limit. In automatic selection, a co-fired hour with fuel-specific limits is unresolved. An hour with a fuel switch, fuel-specific limits and no fallback is also unresolved. The product then uses the strictest candidate limit, marks the result as unresolved, and sends an event so that you can review the hour.
The product stores the selected limit with each VSTA value. Thus a report can show which limit applied in each hour.
When limits exist for the component but none applies to the period, the VSTA gets the quality "no applicable limit". The product does not fall back to the Relative method. To close this gap, configure the missing limit and run the period again.
OTNOC hours
OTNOC means "other than normal operating conditions". Examples are start-up, shut-down and partial-load hours. Some permits require the operator to report the number of these hours.
The product counts OTNOC hours from operating conditions that you assign to an emission source. You decide what OTNOC means for your plant. For example, the condition "operating hours greater than 0 and less than 1" counts every hour with partial operation.
For each hour, the counter has one of three results:
| Result | Stored value | Meaning |
|---|---|---|
| A condition matches | 3600 seconds | One OTNOC hour |
| No condition matches | 0 | No OTNOC hour |
| The evidence is incomplete | No value | The counter is unavailable for this hour. This is not the same as zero. |
A report sums the stored seconds and shows them as hours. The counter is information only. It does not change the reportable status of an hour, the emission values or the selected limit.
Why a report reads stored values
In the stored mode, a report shows the SSTA and VSTA values that the aggregation job stored. It does not calculate them again when you open the report. This design has three reasons:
- One number of record. The value in the report is the value that the job calculated and stored, with its selected limit and its uncertainty percentage. Two reports of the same period show the same number.
- Honest gaps. If a period has no stored VSTA, the report shows a gap with the quality "no validated value". It does not show a number from a different calculation, and it does not show zero.
- Controlled recalculation. A changed limit or condition does not change stored values. To use the new configuration, run the affected periods again in a batch run. Then generate a new report.
The report applies only a display conversion to the stored value, for example from ppm to mg/Nm³.
Regimes that calculate at report time
Each regime has a report source mode. The mode controls how a report gets the combined SSTA and VSTA values:
- Stored mode: the report reads the values that the aggregation job stored. The product gives this mode to all new regimes.
- Dynamic mode: the report calculates the combined values from the stored STA values when you generate the report. A regime without a mode setting, for example an older regime, uses this mode.
Fuel-specific values always use the stored values. A super administrator selects the mode for each regime.
In the dynamic mode, a changed limit or condition can change a new report without a batch run. The report still needs the stored STA values of the period.
Quality codes in reports
Every aggregated value carries a quality indicator. The indicator shows how reliable the input data was. The quality goes through the aggregation chain. If the raw data for a period has gaps or flagged readings, the STA and LTA values from it show that.
Quality indicators show next to the values in the report. To see which inputs affected a value, trace the reported value.
A report keeps missing, invalid and non-reportable periods apart from a real zero. These codes are the most common:
| Code | Name | What to do |
|---|---|---|
| 192 | Good | Nothing. |
| 99 | Plant not in reportable mode | Nothing. The plant was stopped or not in a reportable mode. The hour does not count as invalid. |
| 96 | No value | Examine the input data for the period. |
| 92 | No validated value | Run a batch run for the period. |
| 91 | No applicable limit | Configure the limit for the period. Then run a batch run. |