Interactive resource
Use the working tool for this page
This page has a matching worksheet, calculator or comparison resource. It runs in your browser: enter your own measured values and keep the evidence behind every result.
Open resourceIt preserves data coverage, missing intervals and measurement basis so the curve can support capacity, trim, fleet, rental and energy decisions without disguising gaps as real demand.
1. Purpose and Engineering Decision
A chronological trend answers when demand changed. A duration curve answers how often high, medium and low demand occurred. This separates short peaks from persistent base demand and exposes the portion of the operating year that occupies each demand band.
The tool is useful for compressor-capacity review, base/trim selection, fleet-dispatch studies, peak-rental planning, storage screening and energy modelling. It must not be used to infer chronology, event sequence or recovery time; those remain properties of the original time-series data.
Decision | |
|---|---|
Capacity screen | Hours demand exceeds a selected flow threshold |
Base / trim review | Exceedance demand levels such as E10, E50 and E90 |
Peak-duty review | Robust peak metrics plus maximum observed value |
Fleet analysis | |
Rental / temporary-air review | Hours above permanent plant capacity |
Data-quality review | Valid hours, missing hours, gap register and coverage % |
2. Required Asset - Duration Curve Generator and Missing Data Rules
The curve cannot be considered complete unless the user can see how much of the scheduled period was actually represented by valid data.
Required asset | Minimum function |
|---|---|
Duration Curve Generator | Sort valid demand points descending, preserve time weight, calculate cumulative hours and exceedance % |
Missing Data Rules | Detect gaps, classify missing intervals, prevent silent filling and report coverage |
Import Audit | Accepted rows, rejected rows, duplicates, invalid timestamps, negative/invalid flows |
Basis Register | Flow unit/reference basis, timezone, sampling interval, pressure band if used |
Export | Duration table + summary metrics + gap register + assumptions |
3. Data Input Model
Field | Requirement / note |
|---|---|
Timestamp | Required; parse to one declared timezone |
Demand flow | |
Flow unit | m3/min, m3/h, cfm or selected common basis |
Pressure | Optional but valuable for separating pressure-duty bands |
Compressor state | Optional; useful for distinguishing intentional zero from missing signal |
Package kW | Optional; enables demand-power pairing for later energy tools |
Quality flag | Good / suspect / invalid / manually excluded |
Source | Flow meter, controller, estimator or imported historian tag |
4. Time Weighting
Duration curves must represent time, not row count. For regularly sampled data, each valid record receives the sampling interval as its time weight. For irregular data, the tool assigns each point a valid interval only up to the configured maximum gap threshold.
Weight_i = Valid Time represented by sample i
T_valid = Sum(Weight_i)
If a timestamp-to-next-timestamp interval exceeds the maximum allowed gap, the excess interval is recorded as missing rather than credited to the preceding measurement. This prevents a stale value from being carried across an instrumentation outage.
5. Missing-Data Rules
Condition | |
|---|---|
Single missing sample inside otherwise regular data | Mark gap; no silent interpolation |
Short gap below user-approved imputation limit | May be filled only if user selects method and tool records imputed hours |
Long gap | Remain missing; exclude from observed duration curve |
Duplicate timestamp | Keep one according to explicit duplicate rule; report duplicate count |
Zero flow with healthy meter / confirmed stopped plant | Treat as valid zero demand |
Zero flow during sensor fault / communication loss | Treat as missing, not demand |
Negative flow where impossible | Invalid; exclude and report |
Outlier / spike | Retain by default with flag; do not auto-delete |
Manual exclusion | Preserve original row and reason in audit trail |
Recommended imputation choices are none, forward-hold for very short stable gaps, or linear interpolation for short gaps where the user explicitly accepts the assumption. The tool must never interpolate across a known plant start/stop, shift boundary, compressor trip or major process transition without explicit user action.
6. Coverage Metrics
Coverage (%) = Valid Observed Time / Scheduled Analysis Time x 100
Missing Time = Scheduled Analysis Time - Valid Observed Time
The primary duration curve uses valid observed time as its denominator. If the user elects an imputation method, an additional imputed-coverage figure is shown separately rather than overwriting the raw coverage result.
Metric | Meaning |
|---|---|
Scheduled hours | Full requested analysis window |
Valid observed hours | Directly represented by accepted measurements |
Imputed hours | Filled only by an explicit user-selected method |
Missing hours | Not represented by valid or accepted imputed data |
Raw coverage % | Valid observed / scheduled |
Effective coverage % | (valid + imputed) / scheduled, clearly labelled |
7. Duration Curve Construction
Each accepted flow value is paired with its time weight. The engine sorts pairs by demand from highest to lowest, then accumulates hours. Equal demand values may be grouped to reduce output size without changing total represented time.
Cumulative Hours_j = Sum(Weight_i for all Q_i >= Q_j)
Exceedance_j (%) = Cumulative Hours_j / T_valid x 100
The x-axis therefore represents hours or percent of valid observed time for which demand was equaled or exceeded; the y-axis represents demand flow on the declared reference basis.
8. Exceedance Demand Metrics
Metric | Interpretation |
|---|---|
Q_E1 | Demand equaled/exceeded for 1% of valid time - robust high-demand indicator |
Q_E10 | Demand equaled/exceeded for 10% of valid time |
Q_E50 | Median exceedance demand |
Q_E90 | Demand equaled/exceeded for 90% of valid time - low/base-demand indicator |
Q_max | Maximum accepted observation; sensitive to single spikes |
Q_mean | Time-weighted average demand |
The tool should use the E-prefix to avoid confusion with statistical percentile naming conventions.
9. Demand Volume and Mean Flow
Total Reference Volume = Sum(Q_i x Weight_i)
Q_mean = Total Reference Volume / T_valid
When Q is in m3/min and time is in minutes, the integrated result is m3 on the same reference basis. The calculator should convert time units internally so that volume integration remains dimensionally correct.
10. Load Factor and Peak Definition
Load Factor = Q_mean / Q_peak_basis
The user chooses the peak basis: maximum observation, Q_E1, Q_E5 or another declared exceedance level. Using a robust peak metric can prevent one isolated meter spike from making the load factor appear artificially low. The selected peak definition must be printed with the result.
11. Reference Test Case A - Regular 15-Minute Data
Assume eight valid 15-minute readings: 40, 35, 30, 30, 25, 20, 15 and 5 m3/min. Total valid time is 2 hours. The sorted sequence is already descending.
Demand m3/min | Cumulative h | Time equaled/exceeded |
|---|---|---|
40 | 0.25 | 12.5% |
35 | 0.50 | 25.0% |
30 | 0.75 | 37.5% |
30 | 1.00 | 50.0% |
25 | 1.25 | 62.5% |
20 | 1.50 | 75.0% |
15 | 1.75 | 87.5% |
5 | 2.00 | 100.0% |
Time-weighted average demand is 25.0 m3/min. The maximum 40 m3/min occurs for only 0.25 h, while demand of at least 20 m3/min persists for 1.50 h.
12. Reference Test Case B - Missing Interval
A 24-hour analysis window contains 22.5 hours of valid observations, 0.5 hour of explicitly accepted short-gap interpolation and 1.0 hour of unresolved missing data.
Coverage item | Result |
|---|---|
Scheduled period | 24.0 h |
Valid observed | 22.5 h |
Imputed | 0.5 h |
Missing | 1.0 h |
Raw coverage | 93.8% |
Effective coverage | 95.8% |
The raw duration curve is based on 22.5 observed hours.
13. Reference Test Case C - Capacity Exceedance Hours
A plant has 6,000 valid annual operating hours. Its duration curve shows demand above 55 m3/min for 240 hours and above 45 m3/min for 1,050 hours.
Threshold | Hours exceeded | Share of valid time |
|---|---|---|
55 m3/min | 240 h | 4.0% |
45 m3/min | 1,050 h | 17.5% |
This information can support decisions such as whether permanent capacity should cover the full peak, whether a trim machine is justified, or whether short seasonal peaks could be handled by temporary capacity.
14. Reference Test Case D - Robust Peak vs Single Spike
A dataset contains one isolated 85 m3/min point, while Q_E1 is 63 m3/min and mean demand is 38 m3/min.
Peak basis | Load factor |
|---|---|
Maximum 85 m3/min | 0.447 |
Q_E1 = 63 m3/min | 0.603 |
15. Demand Bands for Fleet and Energy Analysis
Band example | Output |
|---|---|
0-20 m3/min | Hours + mean flow |
20-40 m3/min | Hours + mean flow |
40-60 m3/min | Hours + mean flow |
>60 m3/min | Hours + mean flow |
Band boundaries are user inputs or imported from compressor operating envelopes. They should not be hard-coded.
16. Pressure and Quality Segmentation
Where the plant operates multiple pressure or air-quality systems, a single combined duration curve can be misleading.
Segmentation | Reason |
|---|---|
Pressure band | High-pressure demand should not automatically be added to lower-pressure capacity |
Area / meter | Identifies persistent local demand |
Shift / production mode | Separates weekday, weekend, campaign or batch behaviour |
Air-quality zone | Prevents ordinary service-air demand from distorting critical-quality system sizing |
17. Chronology Warning
Sorting destroys the original order of events. Two plants can have the same duration curve but very different transient behaviour.
18. Data Quality and Outlier Review
Check | Required behaviour |
|---|---|
Flatline sensor | Flag long repeated-value runs for review |
Step change after meter replacement | Flag basis/calibration change |
Unrealistic spike | Retain with suspect flag unless user excludes |
Timestamp reversal | Reject or sort only after duplicate/order audit |
Unit change mid-file | Block combined curve until normalized |
Reference-condition change | |
Pressure-setpoint change | Allow segmented analysis |
19. Input Validation and Guardrails
Condition | Required behaviour |
|---|---|
No valid timestamps | Block calculation |
No valid flow values | Block calculation |
Coverage below user threshold | Generate only with prominent low-coverage warning |
Unknown sampling interval in row-count mode | Require timestamps or explicit interval |
Irregular gap above threshold | Record missing; do not extend preceding value |
Negative flow where unsupported | Exclude + audit |
Mixed flow bases | |
Duplicate timestamps unresolved | Block final curve |
More than configured record limit | Aggregate safely while preserving time weights |
20. Output Specification
Output | Display rule |
|---|---|
Duration curve | Demand vs exceedance hours / % |
Coverage summary | Scheduled, valid, imputed and missing hours |
Exceedance metrics | Q_E1, Q_E10, Q_E50, Q_E90 + user-selected levels |
Mean / integrated volume | Time-weighted |
Peak metrics | Maximum plus selected robust peak |
Threshold hours | Hours above user-entered capacity levels |
Demand bands | Hours + mean flow per band |
Gap register | Start, end, duration, treatment |
Confidence / warnings | Always visible |