PLB-410 · Lesson 4 of 12 · 28 min

Complex DWV sizing problems

The sizing questions that cost candidates the most marks are not hard because the tables are hard. They are hard because they stack several simple steps: count the fixtures, convert them to loads, add the loads in the right places, size each branch, size the stack for both its total and its worst interval, size the building drain at its slope, then size the vents. A mistake at any step carries through to the answer, and the exam's wrong options are usually the answers produced by the most common mistakes.

Luis gave Maya a practice building to work through every Saturday for three weeks, changing one thing each time. It was a three-storey building on a Hamilton side street: a café on the ground floor and two apartments on each of the two floors above, with one stack serving the apartments. "If you can size this building start to finish in fifteen minutes," he said, "you can answer any drainage question on the exam in two."

This lesson uses simplified practice tables so that the method stands out. Real code tables have more rows and more footnotes, but the steps are identical, and the exam questions are built on the steps.

The practice tables

All the problems in this lesson use the tables below. Fixture unit values follow the practice values used since PLB-120. Pipe sizes are given in millimetres with the inch size in brackets where it helps.

Simplified practice table of fixture unit values used in this course.
FixtureFixture units
Lavatory1
Kitchen sink, domestic2
Bathtub or shower2
Dishwasher, domestic2
Clothes washer, domestic3
Water closet, flush tank, private4
Floor drain2
Simplified practice drainage sizing table used in this course (maximum fixture units).
SizeHorizontal branch, max FUStack total, max FUStack, max FU per branch intervalBuilding drain at 1 in 100Building drain at 1 in 50
38 mm342--
50 mm6106--
75 mm2048203642
100 mm16050090180216
150 mm6201900350700840
200 mm---16001920

Three rules go with the tables. A water closet needs a drain of at least 75 mm. A drain never reduces in size in the direction of flow. A stack is never smaller than the largest horizontal branch connected to it.

Step 1: count and convert

The first step is a fixture schedule: every fixture, where it is and which branch it drains to. Writing it out takes a minute and prevents the most common error on the exam, which is missing a fixture or counting one twice. Maya used a short table with one row per branch.

Fixture schedule for the practice building.
LocationFixturesLoad
One apartmentWater closet, lavatory, bathtub, kitchen sink, dishwasher, clothes washer4 + 1 + 2 + 2 + 2 + 3 = 14
One floor (two apartments) on one branchTwo apartments28
Café, ground floorTwo water closets, two lavatories, a three-compartment sink counted as 6, two floor drains8 + 2 + 6 + 4 = 20

Note the café sink. Commercial fixtures often have their own values, and a question will give them. Maya's practice table did not list a three-compartment sink, so Luis gave it a value of 6 in the problem statement. On the exam, any load not in the table will be given in the question or an extract.

Step 2: size the branches

Worked problem

Branch sizing on an apartment floor

Each apartment floor has one horizontal branch carrying both apartments to the stack. What size is the branch? Would a separate branch for each apartment change the answer?

Show solution
  1. \[\text{floor branch load} = 2 \times 14 = 28\ \text{FU}\]
  2. \[28 > 20 \to 75\ \text{mm too small}; \quad 28 \le 160 \to 100\ \text{mm}\]
  3. \[\text{one apartment} = 14 \le 20 \to 75\ \text{mm, with a water closet allowed on } 75\ \text{mm}\]

Answer: A shared floor branch must be 100 mm. Separate branches for each apartment could each be 75 mm, but then each floor has two branch connections to the stack, which affects the stack check.

The second part of the example is typical of exam questions that ask what changes when one detail changes. Splitting the load lets each branch be smaller, but the total on the stack is the same. Whether the stack check changes depends on how the table defines a branch interval.

Step 3: size the stack for total and interval

A stack is checked twice. The total load on the stack must not exceed the stack total for its size. The load entering in any one branch interval, which is a vertical section of stack at least about one storey high into which branches connect, must not exceed the per-interval limit. A stack can pass the total check and fail the interval check, especially in a short building with heavy floors. The interval check is the one candidates forget.

Worked problem

Checking the apartment stack

The stack receives 28 fixture units from each of the two apartment floors. The café does not connect to the stack. Size the stack.

Show solution
  1. \[\text{total} = 2 \times 28 = 56\ \text{FU}\]
  2. \[75\ \text{mm}: 56 > 48\ \text{total fails}; \quad 28 > 20\ \text{interval fails}\]
  3. \[100\ \text{mm}: 56 \le 500\ \text{and}\ 28 \le 90 \to \text{passes}\]
  4. \[\text{largest branch} = 100\ \text{mm} \to \text{stack} \ge 100\ \text{mm}\]

Answer: The stack is 100 mm. Both checks and the largest-branch rule point to the same answer here, but they do not always agree, so all three must be checked.

Luis changed the problem the next Saturday: each apartment floor drained through two separate 75 mm branches of 14 each. The total stayed at 56, which fails 75 mm. But in a variation with only one apartment per floor and four floors, the total of 56 still fails 75 mm, while each interval of 14 would pass. Working the variations taught Maya that the two checks catch different problems.

A riser diagram of the practice building. A single stack rises through two apartment floors, each with a horizontal branch labelled with its load. At the base, the stack turns into the building drain, which also receives a branch from the café on the ground floor. Loads are added at each junction and the size of each section is labelled. A vent stack runs beside the soil stack and connects at the base and above the top branch.
The practice building riser with loads and sizes. Loads add up in the direction of flow.

Step 4: size the building drain

The building drain carries the stack and the café. Loads add up where pipes join, and each section of drain is sized for the load it carries at that point. Downstream of the last connection, the drain carries everything.

Worked problem

Building drain at two slopes

The building drain receives the apartment stack (56 FU) and, further downstream, the café branch (20 FU). Size the drain downstream of both at 1 in 100 and at 1 in 50.

Show solution
  1. \[\text{load} = 56 + 20 = 76\ \text{FU}\]
  2. \[1\ \text{in}\ 100: 76 > 36 \to 75\ \text{mm fails}; \quad 76 \le 180 \to 100\ \text{mm}\]
  3. \[1\ \text{in}\ 50: 76 > 42 \to 75\ \text{mm fails}; \quad 76 \le 216 \to 100\ \text{mm}\]

Answer: The building drain is 100 mm at either slope. It also cannot be smaller than the 100 mm stack it receives. Slope matters only near the limits; it would change the answer for a load of, say, 40 fixture units on 75 mm.

Slope questions often hide in the limits. A load of 40 fixture units on a 75 mm building drain fails at 1 in 100 (maximum 36) but passes at 1 in 50 (maximum 42). An exam question that gives a slope and a load close to a limit is testing whether you read the right column.

Step 5: pumped and continuous flows

Some loads do not come from fixtures. A sewage ejector, a sump pump connected to a sanitary drain where permitted, or an air conditioning condensate line discharges a flow rather than a fixture load. Codes convert these flows into fixture units so that they can be added to the rest. In this course, each litre per second of pumped or continuous flow counts as about 32 fixture units.

Worked problem

Adding an ejector

The café adds a basement washroom served by a sewage ejector that pumps 1.0 L/s into the building drain upstream of the café branch. What is the new load downstream, and does the drain size change at 1 in 100?

Show solution
  1. \[\text{ejector} = 1.0\ \text{L/s} \times 32 = 32\ \text{FU}\]
  2. \[\text{load} = 56 + 20 + 32 = 108\ \text{FU} \le 180 \to 100\ \text{mm still passes}\]

Answer: The load rises to 108 FU, and 100 mm still carries it. Forgetting to convert the pumped flow, or adding 1 instead of 32, is the error the wrong options are built on.

Step 6: size the vents

Vent stacks are sized from the drainage load they serve and their developed length, the length measured along the pipe from where the vent starts to where it ends, at the stack vent or through the roof. A longer vent has more friction, so the table allows less load or needs a larger size as the length grows. The practice vent table in this course gives the maximum developed length for each vent size and drainage load.

Simplified practice vent stack table used in this course: maximum developed length.
Vent sizeLoad up to 40 FULoad up to 160 FULoad up to 500 FU
50 mm30 m--
75 mm120 m60 m30 m
100 mmno limit240 m120 m

Worked problem

Sizing the vent stack

The vent stack serves the 56 FU apartment stack and has a developed length of 18 m. What is its minimum size? What if the building had six apartment floors, a load of 168 FU, and a vent of 35 m?

Show solution
  1. \[56 > 40 \to \text{use the } 160\ \text{FU column}; \quad 50\ \text{mm not allowed}\]
  2. \[75\ \text{mm}: 18\ \text{m} \le 60\ \text{m} \to \text{passes}\]
  3. \[168 > 160 \to \text{use the } 500\ \text{FU column}: 75\ \text{mm allows } 30\ \text{m} < 35\ \text{m} \to 100\ \text{mm}\]

Answer: The vent stack is 75 mm for the three-storey building. In the six-floor variation, the load moves into the next column and the length exceeds the 75 mm limit, so it becomes 100 mm.

The column choice is a reverse lookup: the load column to use is the first one whose heading is equal to or greater than the load. A load of 56 is read in the 160 column, not the 40 column, even though 56 is closer to 40.

A calculator for checking your work

Maya wrote the steps into a small program that sizes branches, stacks, building drains and vent stacks from the practice tables. She used it only to check answers she had worked by hand, never instead of working them, because the exam does not come with a computer. Writing it, though, forced her to state each rule precisely, which was the best study she did that month.

# DWV sizing calculator using the simplified practice tables in this course
SIZES  = ['38 mm', '50 mm', '75 mm', '100 mm', '150 mm']
BRANCH = [3, 6, 20, 160, 620]          # max load, horizontal branch
STACK  = [4, 10, 48, 500, 1900]        # max total on stack
INTVL  = [2, 6, 20, 90, 350]           # max per branch interval
DRAIN  = {"1 in 100": [None, None, 36, 180, 700], "1 in 50": [None, None, 42, 216, 840]}
COLS = (40, 160, 500)                  # vent table load columns
NL = float("inf")                      # no limit
VLEN = {1: [30, None, None], 2: [120, 60, 30], 3: [NL, 240, 120]}   # max length in m; None = not allowed

def first(limits, load, start=0):
    for i in range(start, len(limits)):
        if limits[i] is not None and load <= limits[i]:
            return i
    raise ValueError("load too large for table")

def branch(load, wc=False):
    return first(BRANCH, load, 2 if wc else 0)

def stack(total, worst_interval, largest_branch):
    i = max(first(STACK, total), first(INTVL, worst_interval), largest_branch)
    return i

def drain(load, slope, upstream):
    return max(first(DRAIN[slope], load), upstream)

def vent(load, length):
    col = first(COLS, load)
    for i in (1, 2, 3):
        lim = VLEN[i][col]
        if lim is not None and length <= lim:
            return i
    raise ValueError("no vent size fits")

apt = 4 + 1 + 2 + 2 + 2 + 3                 # one apartment
floor = 2 * apt
b = branch(floor, wc=True)
s = stack(2 * floor, floor, b)
cafe, ejector = 20, 32   # 1.0 L/s x 32
d = drain(2 * floor + cafe + ejector, "1 in 100", s)
v = vent(2 * floor, 18)
print(f"Apartment {apt}, floor branch {floor} -> {SIZES[b]}")
print(f"Stack total {2 * floor}, interval {floor} -> {SIZES[s]}")
print(f"Building drain {2 * floor + cafe + ejector} at 1 in 100 -> {SIZES[d]}")
print(f"Vent stack for {2 * floor} at 18 m -> {SIZES[v]}")
Output
Apartment 14, floor branch 28 -> 100 mm
Stack total 56, interval 28 -> 100 mm
Building drain 108 at 1 in 100 -> 100 mm
Vent stack for 56 at 18 m -> 75 mm

The sizes come out as index numbers into the list of pipe sizes, so the rule that a stack is never smaller than its largest branch becomes a simple maximum of index numbers. The same trick enforces the rule that a drain never reduces downstream.

For the vent lengths, the table is written as a list of rows. A vent that is longer than the 75 mm limit for its load column moves to the 100 mm row. Try changing the length to 70 and the load to 168 and check the program against the worked example above.

Horizontal offsets in stacks

One more common exam topic is an offset: a section of stack that moves sideways. An offset at 45 degrees or less from the vertical is treated as part of the vertical stack. A horizontal offset, more than 45 degrees from vertical, is sized as a building drain for the load above it, and the stack below the offset must be at least as large. Offsets also need venting attention in tall buildings, because they disturb the airflow in the stack. A question that mentions an offset is usually testing one of these two points.

A practical example: a 75 mm stack carrying 40 fixture units makes a horizontal offset at 1 in 50. As a building drain at that slope, 75 mm carries 42, so 40 passes. At 1 in 100, the limit is 36, so the offset would have to be 100 mm, and the stack below it could not drop back to 75 mm.

Common mistakes

  • MistakeMissing a fixture or counting a bathroom twice.

    InsteadWrite a fixture schedule with one row per branch before adding loads.

  • MistakeChecking only the stack total.

    InsteadCheck the total, the worst branch interval and the largest branch.

  • MistakePicking the column closest to the load.

    InsteadUse the first column or size whose limit is at least the load.

  • MistakeAdding pumped flow as if it were one fixture.

    InsteadConvert the flow into fixture units with the conversion factor.

  • MistakeReducing the drain or stack downstream.

    InsteadDrains never get smaller in the direction of flow.

Summary and key terms

  • Complex sizing problems are a chain of simple steps; an error early in the chain carries into the answer.
  • Count fixtures with a schedule, convert them to loads, and add loads where pipes join.
  • Branches are sized for their load, with a minimum size for water closets.
  • Stacks are checked for total, worst interval and largest connected branch.
  • Building drains are sized for the load at each point and the slope; slope matters near the table limits.
  • Pumped and continuous flows are converted into fixture units; vents are sized by load column and developed length.
Branch interval
A vertical section of stack, at least about one storey high, into which horizontal branches connect.
Fixture schedule
A list of fixtures and the branch each one drains to, used to add loads.
Developed length
The length measured along the pipe and fittings.
Offset
A section of stack that moves sideways; a horizontal offset is sized as a building drain.
Load column
The column of a vent table chosen by the drainage load served.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. A floor has three apartments of 14 FU each on one branch. What size is the branch?

    Show answer

    42 FU exceeds 20, so 100 mm.

  2. A 75 mm stack carries 46 FU in total, with 22 FU in one interval. Does it pass?

    Show answer

    No. The total passes (48), but the interval exceeds 20, so it must be 100 mm.

  3. What is the minimum building drain for 40 FU at 1 in 100? At 1 in 50?

    Show answer

    100 mm at 1 in 100, because 75 mm allows 36; 75 mm at 1 in 50, which allows 42.

  4. An ejector pumps 0.5 L/s. How many fixture units does it add?

    Show answer

    About 16.

  5. A vent stack serves 120 FU with a developed length of 70 m. What size?

    Show answer

    Use the 160 column: 75 mm allows 60 m, so 100 mm.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz