GeoPilotPipePilot DocumentationOpen PipePilot

Demand allocation

Go from a census population to junction base demands: population x lpcd, 15 percent losses, the right use of the peak factor, and the half-pipe-length method.

Most DPRs start from a population figure, not from metered demands. Project > Allocate Demands... turns a population into a total demand in the model's flow units, then spreads that total over the junctions. Every number it shows is the arithmetic itself, so it can be pasted into a DPR and checked line by line.

Step 1: the total demand

Choose From population x lpcd, or A known total flow if you already have the figure. For the population route enter:

FieldWhat to enter
PopulationThe population served, today or projected to the design year.
SupplyPer capita supply in lpcd. The buttons below fill the usual values: 135 (towns under 10 lakh, CPHEEO 2024 Table 2.4), 150 (10 lakh and above), 100 (source-constrained towns without sewerage), 55 (the JJM rural minimum).
Losses (NRW)Starts at 15%. CPHEEO 2024 s.2.8.2.3 measures supply at the consumer end, so 15% is added for system losses.
Peak factorStarts at 1. Leave it at 1 for an extended period run (see below).

For 8,000 people at 135 lpcd in an LPS model, the window shows:

  • 8,000 people x 135 lpcd = 1,080,000 L/day = 12.50 L/s
  • +15% NRW (losses) = 14.38 L/s

Losses are added as a percentage of the consumer-end supply, which is the manual's wording. Some DPRs instead divide by (1 minus losses), which gives a slightly larger figure; if your client expects that, enter the total directly as a known flow.

Where the peak factor goes

This is the most common mistake in Indian network models. EPANET multiplies every base demand by its time pattern, so:

  • Extended period run (24 hours or more): the base demand is the average demand, and the pattern supplies the peak. Keep the peak factor at 1. The CPHEEO peak factor is already built into the library patterns (2.5 urban, 3 rural).
  • Single snapshot run (Total Duration 0): there is no pattern to do the peaking, so multiply by the peak factor here: 2.5 for urban and 3 for rural supply (CPHEEO 2024 Table 2.7).

For the same town as a snapshot design check at a peak factor of 2.5:

  • 8,000 people x 135 lpcd = 1,080,000 L/day = 12.50 L/s
  • +15% NRW (losses) = 14.38 L/s
  • x 2.5 peak factor = 35.94 L/s (single-period design check)
If the model runs over time and you set a peak factor other than 1, the window warns you: the demand would be peaked once here and again by the pattern.

Projecting the population

Tick Project the population to a design year to forecast from a base census. Intermediate: base + 15 and Ultimate: base + 30 set the design year; CPHEEO 2024 Table 2.2 sets the ultimate stage for distribution pipes and elevated reservoirs at base year + 30. Check the scheme's own guideline for a fixed design year.

MethodFormulaSuits
Arithmetic increasePn = P + n xOlder, settled towns with constant growth per decade.
Geometric increasePn = P (1 + r)^nConstant percentage growth; tends to forecast highest.
Incremental increasePn = P + n x + n(n+1)/2 yGrowth that itself changes each decade.

Here n is the number of decades, x the mean increase per decade, r the growth rate per decade and y the mean change in the decadal increase. Paste past census counts (year and population, one per line) and PipePilot works out x, r and y; otherwise type them in. The window marks these as the standard textbook formulas: the CPHEEO section that states them has not been checked against the manual.

Step 2: spread it over the junctions

MethodHow the total is shared
Half pipe length (the default)Each junction gets half the length of every pipe it touches, and demand follows that length. The usual choice for a distribution network, because houses line the pipes.
Equal splitEvery junction gets the same demand. Quick, but ignores where people live.
Scale existingKeeps the current pattern of demands and scales it to the new total.
Service area (approximate)Each junction serves the map area nearer to it than to any other junction, counted on a coarse grid. Junctions on the edge of the network tend to get more.

Half pipe length, worked through. A reservoir R feeds a line of junctions J1, J2, J3 through pipes of 300 m (R to J1), 200 m (J1 to J2) and 100 m (J2 to J3). J1 gets 150 + 100 = 250 m, J2 gets 100 + 50 = 150 m, and J3 gets 50 m, 450 m in all. Spreading 9 L/s gives J1 5 L/s, J2 3 L/s and J3 1 L/s. The half of the first pipe at the reservoir counts for nobody, because tanks and reservoirs never take demand. Only pipes count: pumps and valves serve no frontage.

For the scope, choose Whole network, or Current region selection to allocate to one zone: draw the zone first with Select Region on the map. List any junctions to leave alone in Exclude junctions; they keep their current demand.

Step 3 and 4: preview and apply

  • The Preview shows the total check (assigned against asked, which should match), any notes (for example, junctions that get zero under the chosen method), a table of each junction's demand before and after, and a chart.
  • Apply writes every new base demand as one change and marks the last run out of date. Run again to see the effect.
  • After applying, Restore previous demands puts back the values in the Before column.
Allocate before you set up the 24 hour run, and allocate the average demand. Then Project > Set up a 24-Hour Run... adds the daily shape. See 24-hour and intermittent supply runs.