Drainage Cleanout Layout (IPC 708)

Three triggers put cleanouts in a drain and they ADD, so counting from any one comes out low.

Run the calculator

Example

You enter

You get

Details, formula, and sources

Spacing not more than 100 ft along the horizontal run, a cleanout at every change of horizontal direction over 45 degrees, and one at the base of every waste or soil stack. The allowance that keeps a bendy run sane is the grouping rule -- where more than one such change happens within 40 ft of developed length, the cleanout at the FIRST serves them all, which caps the change-driven count at ceil(run/40) however many bends are drawn. A 240 ft run with nine bends and two stacks needs 10, not 13, because the cap governs at six. Also checks access, which is where cleanouts get value-engineered into uselessness: 18 in of clear space at the opening for 6 in and smaller, and 24 in of unobstructed pathway height in a crawl space -- one you cannot reach and turn does not count.

spacing cleanouts = max(0, ceil(run / max spacing) - 1), assuming the run begins at one; change cleanouts = min(changes - grouped away, ceil(run / 40)); stack cleanouts = one per waste or soil stack; total = the sum of the three. Access passes when a cleanout 6 in and smaller has at least 18 in of clear space at the opening and, in a crawl space, at least 24 in of unobstructed pathway height.

IPC 708 - horizontal drains provided with cleanouts not more than 100 ft apart; a cleanout at each change of horizontal direction greater than 45 degrees, with the cleanout at the first change serving all changes occurring within 40 ft of developed length; a cleanout at the base of each waste or soil stack; not less than 18 in of clear space at the opening of cleanouts 6 in and smaller; and not less than 24 in of unobstructed pathway height where a cleanout is located in a crawl space.

All four provisions are short prescriptive sentences reproduced in state and municipal adoptions and trade commentary. No table is reproduced and the spacing limit is an editable input.

Estimate. AHJ and licensed professional govern.

Field names used by the API: horizontal_run_ft, max_spacing_ft, direction_changes, stack_count, pipe_size_in, clear_space_in, crawl_height_in, spacing_cleanouts, change_cap, change_cleanouts, stack_cleanouts, total_cleanouts

Related tools