Excavation
Culvert Installation in Portland, Oregon
Cojo
July 9, 2026
6 min read
Culvert installation in Portland means placing a pipe under a driveway, road, or crossing so water can pass through instead of ponding or washing out the surface. In Portland's wet climate and clay-heavy Willamette Valley soil, a properly sized and installed culvert is what keeps a driveway from flooding every winter and a ditch from eroding. The work involves excavating the channel, bedding and placing the pipe, backfilling and compacting, and often armoring the inlet and outlet. In Portland it also means navigating permits and, near streams, fish-passage rules -- which is where many DIY culverts go wrong.
A culvert is a buried pipe that carries a ditch, creek, or drainage flow underneath something you need to drive or build on. It keeps water moving through a crossing rather than over it.
You typically need one in Portland when:
Get the size wrong and the culvert either backs water up during a storm or washes out at the ends. Sizing is not a guess -- it depends on the drainage area and expected flow, which is why local knowledge matters.
Portland's site conditions shape every culvert install. The metro sits on Willamette Valley clay, with the West Hills adding slope and the many creeks and drainageways adding regulatory weight. The practical effects:
Because culverts and other buried lines often share a corridor, culvert work frequently coordinates with other digs like utility trenching in Portland.
This is where Portland culvert work gets serious. Depending on where the crossing is:
Installing a culvert on a regulated stream without the right permits and design can mean fines and forced removal. A contractor who knows Portland's rules keeps the crossing legal and durable.
A proper install follows a clear sequence:
The bedding and compaction steps are where longevity is won or lost. A pipe set on soft clay without proper bedding will sag, misalign, and clog.
Portland's clay soil and combined-stormwater legacy mean runoff arrives fast and stays high through winter. Sizing starts with the drainage area feeding the crossing -- the acres of roof, pavement, and slope uphill -- and the peak flow a hard Willamette Valley storm can throw at it. On urban infill lots, added rooftops and driveways built upstream push more water at an old crossing than it was ever meant to carry, so a pipe that "used to work" is often undersized today.
A rough starting point for residential crossings, to be confirmed with a real drainage calculation:
| Situation | Typical pipe diameter |
|---|---|
| Small yard swale, low flow | 12 - 15 inches |
| Standard residential driveway ditch | 18 - 24 inches |
| Larger driveway or shared private road | 24 - 36 inches |
| Stream or high-runoff crossing | 36 inches and up (engineered) |
On soft clay, whatever the material, the bedding and the haunching alongside the pipe are what hold grade. A pipe set straight on wet clay sags no matter how strong the wall is.
Beyond the general fish-passage picture, Portland adds its own layer. The city's Bureau of Environmental Services governs stormwater and creek-adjacent work, and a driveway culvert in the public right-of-way typically needs a right-of-way or driveway-approach permit from the city -- or from Multnomah County in unincorporated pockets, or ODOT on a state route. Where a crossing touches a stream or wetland, Oregon DSL and a DEQ 1200-C erosion permit can apply on top of local review.
Expect the permit path to include:
That is a lot to line up, and it is where a licensed local contractor saves you time -- pulling the right permit the first time instead of getting red-tagged mid-dig.
Pricing depends on pipe diameter and length, depth, soil, access, and how much armoring and restoration the crossing needs. A short residential driveway culvert is modest; a large or stream-regulated crossing is not.
Industry Baseline Range: the excavation reflects an excavator or skid steer plus operator at $125 to $350+ per hour, with crushed gravel delivered at $45 to $110+ per cubic yard for bedding, spoils leaving as dump truck haul-off at $250 to $750+ per load, a $250 to $800+ mobilization, and a residential permit pull of $100 to $600+. Most small jobs carry a $500 to $1,500+ minimum callout. These are industry baseline ranges for planning only -- actual pricing depends on site conditions, soil, access, depth, haul-off, and current market conditions. Get a site-specific quote. For the full statewide breakdown, see culvert installation cost.
| Cost Component | Baseline Range |
|---|---|
| Excavator / skid steer + operator, hourly | $125 - $350+ per hour |
| Crushed gravel, delivered, per cu yd | $45 - $110+ per cu yd |
| Dump truck haul-off, per load | $250 - $750+ per load |
| Permit pull | $100 - $600+ (varies) |
| Mobilization | $250 - $800+ flat |
Real Portland crossings often run 2 to 3 times a simple estimate once clay bedding, unmarked utilities on an old urban lot, permit review, or a stream-regulated size and armored ends come into play. Imported rock for a stable bed on saturated ground and haul-off of soggy clay spoils are the two surprises that most often move the number.
Culvert installation in Portland is about sizing for real wet-season flow, meeting permit and fish-passage rules, and building a crossing on clay that will not sag or wash out. The pipe is cheap; the bedding, sizing, and compliance are what make it last. See the statewide picture in our Oregon excavation guide, review our excavation services, and request a free estimate so we can size and permit your Portland crossing.
What a French drain costs in Oregon for 2026: interior and exterior drains, yard drainage, and foundation waterproofing. See the breakdown and get a free quote.
Land clearing cost per acre in Oregon for residential, commercial, and farm sites. Pricing by terrain, brush density, and disposal. Get a free quote.
Compare drainage solutions for standing water in your yard, ranked by effectiveness and cost for Oregon's climate: French drains, regrading, dry wells, more.
Have a question about this topic? We'll respond within 24 hours.