Two cities write the footage down, and the price ignores it
Published 2026-08-11 · records retrieved 2026-08-11 · our band fixed as of 2026-07 · how we build these numbers
Run your own numbers in the sewer line calculator →
Record after record on this site has failed the same way. The public file carried a dollar figure and nothing to divide it by, so the number could not be turned into anything a calculator produces. A per-foot band needs feet, and permit files almost never write feet down.
These two do. Plumbers filing in San Francisco and in Everett, Washington type the run into the description — replace approx 35' of sewer lateral via pipeburst, 6 foot sewer repair in backyard — and a declared dollar amount sits on the same row. This is the denominator the format has been waiting for.
It does not work. Across 213 filings in two cities the declared value barely moves with the stated length, and the per-foot figure you get by dividing one by the other is mostly a picture of the divisor. That is a harder result than the missing-denominator ones, because it is not a defect of the file. It is a statement about the job.
1. What these records are
San Francisco Department of Building Inspection — Plumbing Permits, resource a6aw-rudh at data.sfgov.org. Five fields do the work: permit_number, description, valuation, issued_date and status. Its metadata carries licenseId: PDDL — the Open Data Commons Public Domain Dedication and License, version 1.0, linked from the dataset itself. Retrieved 2026-08-11.
City of Everett, Washington — Trakit permits, resource 3w3u-656c at data.everettwa.gov. Fields permitno, permitdesc, jobvalue, issueddate. Its license is unverified: both license and licenseId are null, and the city's open-data terms page returns HTTP 403 to an automated request, so we have not read the terms. Everett is second here for that reason. Nothing below depends on it — it is the corroboration, and removing it leaves the verdict where it is.
Both files carry owner, applicant and contractor names, addresses and coordinates. None of those columns is selected below, no filing is quoted with an address attached, and every figure on this page is a group statistic. The two short description fragments quoted above are typical strings, chosen to show the format of the length token; neither is joined to anything. The population queries carry a ceiling date so that next month's reader counts our population and not a larger one. That ceiling is not perfect: San Francisco back-fills, and the count above rose by 2 between our first pull and our last, both rows carrying an issue date well inside the window. Every count on this page is stated as of the retrieval date at the top.
# San Francisco — population
curl -s -G 'https://data.sfgov.org/resource/a6aw-rudh.json' \
--data-urlencode '$select=count(1)' \
--data-urlencode "\$where=upper(description) like '%SEWER%' \
AND issued_date < '2026-08-11'"
# => [{"count_1":"39339"}]
# the rows the analysis reads. No street number, street name, block,
# lot, parcel or location column is requested. Every filter named in
# section 3 runs locally on this file, so the 174 length-bearing rows
# and the 146 survivors are both reproducible from it.
curl -s -G 'https://data.sfgov.org/resource/a6aw-rudh.csv' \
--data-urlencode '$select=permit_number,issued_date,status,valuation,description' \
--data-urlencode "\$where=upper(description) like '%SEWER%'" \
--data-urlencode '$limit=100000' > sf_sewer.csv
# City of Everett — population
curl -s -G 'https://data.everettwa.gov/resource/3w3u-656c.json' \
--data-urlencode '$select=count(1)' \
--data-urlencode "\$where=upper(permitdesc) like '%SEWER%' \
AND issueddate < '2026-08-11'"
# => [{"count_1":"6514"}]
curl -s -G 'https://data.everettwa.gov/resource/3w3u-656c.csv' \
--data-urlencode '$select=permitno,issueddate,jobvalue,permitdesc' \
--data-urlencode "\$where=upper(permitdesc) like '%SEWER%'" \
--data-urlencode '$limit=50000' > everett_sewer.csv
2. What these records measure — and what they quietly do not
The length is a sentence, not a field. Neither city has a column for it. Both have a free-text description, and a minority of filers happen to put a number and a unit in it. Extracting that means matching text, and matching text means judgment calls: a filing reading “5' spot repair 4' deep” contains two numbers and one of them is a depth. Section 3 states the rule used. It will not be right on every row.
The dollar figure is declared at intake. Neither dataset's column metadata says whether valuation or jobvalue is a contract total or a figure produced for fee assessment, and the descriptions make plain that the scope is frequently wider than the pipe. In the San Francisco cohort 42% of filings also replace a house trap and 35% mention the sidewalk, the curb or the property line — work our calculator prices on separate lines, or does not price at all. Everett's cohort is dominated by spot repairs that also install cleanouts.
The cohorts are not the same job. San Francisco's median filing states 20 feet; Everett's states 7. Everett is largely a spot-repair file and San Francisco largely a lateral-replacement one, and that difference does most of the work in the per-foot columns below. Both are still the product our calculator prices — a residential sewer line, dug or lined, on private property.
Only permitted work appears, and only permitted work that felt like writing a sentence. The filings that state a length are a small and self-selected slice: 174 of 7,737 recent San Francisco filings and 73 of 2,006 in Everett. Whether long-run replacements are less likely to state a length than short ones — which would bend everything below — is not testable from inside either file. And sewer-line.json carries no state or metro index at all, so both cities meet the identical national band.
3. The cohort, and what we dropped
The same seven rules ran on both files. Issued 2020-01-01 or later, because a 2009 declaration priced against a 2026 band measures inflation. A declared value above zero, then above $500, which removes the placeholder filings both cities carry — San Francisco's valuation column contains rows reading exactly 1. Exactly one length-looking token in the description, so that a filing naming two numbers is dropped rather than guessed at; tokens sitting next to deep, depth, diameter, wide or down are not counted as lengths. A single-trade scope, so filings that also name a bathroom, a kitchen, a remodel, a water heater, a repipe or a storm drain are dropped. A stated length between 4 and 150 feet. And finally one row per permit number.
In San Francisco, 39,339 dated filings mention a sewer. 7,737 were issued in 2020 or later, 904 of those carry a positive declared value, and 174 of those state exactly one length. Dropping bundled scopes leaves 164, the length window leaves 155, the $500 floor leaves 151, and de-duplicating permit numbers leaves 146, issued between 2020-01-03 and 2026-08-06.
In Everett, 6,514 dated filings mention a sewer, 2,006 from 2020 onward, 1,177 with a positive job value, 73 stating exactly one length. No filing in that 73 was bundled or marked void; the length window removes 6 and nothing else removes anything, leaving 67, issued between 2020-05-01 and 2026-08-05.
Two things about those funnels are worth saying out loud. The first is how narrow they are: 1.9% of recent San Francisco sewer filings and 3.3% of Everett's survive to be counted, almost all of the loss coming at the point where a description has to contain a number. The second is that the length is why the sample exists at all, so the sample cannot tell us whether stating a length is correlated with the size of the job.
4. The distribution and our band on the same axis
Our published open-trench band is $50 / $85 / $125 per installed foot — pipe, labor and basic excavation, with restoration, camera and permit itemized separately. Pipe bursting is $60 / $130 / $200 and CIPP lining $80 / $160 / $250, and the trenchless methods additionally carry a flat $1,000–$3,000 mobilization that open trench does not.
Divide each filing's declared value by its own stated length and split the result by how long the run was:
| Stated length | San Francisco — $ per stated foot (p25 / median / p75) | Everett — median $ per stated foot |
|---|---|---|
| 4–10 ft | $376 / $800 / $1,055 (n=19) | $1,000 (n=40) |
| 10–20 ft | $200 / $333 / $500 (n=49) | $500 (n=6) |
| 20–35 ft | $133 / $242 / $330 (n=50) | $181 (n=8) |
| 35–60 ft | $155 / $185 / $372 (n=16) | $261 (n=7) |
| 60–150 ft | $111 / $138 / $193 (n=12) | $184 (n=6) |
San Francisco's median per-foot figure falls by a factor of 5.8 from the shortest bucket to the longest. Nobody believes a four-foot repair is six times harder per foot than a hundred-foot replacement. What that column is measuring is the divisor.
Fit the obvious model instead — declared value against stated length, straight line — and both cities say the same thing:
| Least squares | Length explains | Theil–Sen slope | |
|---|---|---|---|
| San Francisco (n=146) | $4,813 + $128 × feet | 5% of the spread | $100 per foot |
| Everett (n=67) | $4,883 + $214 × feet | 32% of the spread | $115 per foot |
Both slopes land inside our band. The outlier-resistant estimates — $100 and $115 per foot — sit between our low of $50 and our high of $125, and the least-squares slopes bracket the top of it. That is the closest thing to a confirmation available here, and it is not one, because a slope is not how the calculator uses the number. It multiplies the rate by the whole run and calls the product the job. On this evidence the run is the smaller half: at San Francisco's median 20 feet, our typical rate accounts for $1,700 of a $5,000 median filing, and even our high accounts for $2,500.
The intercepts are the other half, and they are where honesty costs us the result. San Francisco's is $4,813 with a standard error of $1,381; Everett's is $4,883 with a standard error of $1,263. Those two point estimates land $70 apart, which reads like a discovery and is a coincidence — each interval swallows the other several times over. What the pair does support is a sign and an order of magnitude: a residential sewer job in either city starts in the thousands before the first foot is priced, and our data carries nothing of the kind for an open trench. Our entire fixed load there is the camera inspection and the permit, $900 at the typical.
One more thing neither file explains. Everett's median declared value is $6,250 against San Francisco's $5,000, on a median stated length of 7 feet against 20. The cheaper metro declares more money for a third of the pipe. Connection or system-development charges rolled into jobvalue, the cleanout installs that recur in Everett's descriptions, or a plain difference in what applicants think the box is asking for would all produce that, and the file cannot distinguish them. It is a good reason not to take a number out of here.
5. Verdict
Verdict
(C) Comparison rejected — the two files that state a run length show the declared price barely tracking it, so a per-foot band has nothing to be checked against.
The band above is the band as it stood when this check ran, fixed as of the 2026-07 stamp on our sewer-line data, which predates the 2026-08-11 retrieval. It is unchanged by this record.
Rejecting the comparison is not the same as passing it. Our band is $50 to $125 per foot — two and a half times from end to end — and adding restoration, camera and permit gives a 20-foot job under concrete a range of $1,825 to $5,750. A range that wide will contain a great many real filings, and containing them would prove nothing about the arithmetic. That is why this page reports a shape rather than a score.
What we will not do is take the fixed component from here. Two high-cost West Coast markets, standard errors of about $1,300, and a sample that exists only because somebody typed a number into a text box do not add up to a national floor. The next check this needs is named and specific: a low-cost jurisdiction whose permit file also states run lengths. If its intercept lands near these, the calculator gains a fixed line and this page gets a dated correction under it.
6. If you are replacing a sewer lateral in either jurisdiction
Ask every bidder for two numbers instead of one: what the job costs before the first foot, and what each foot adds. The files above say those are different questions and that most of your bill is in the first. A bidder who answers only in dollars per foot has given you a rate whose meaning changes with the length of your run — which is exactly why the short jobs in San Francisco's own permit file read at $800 a foot.
Then ask where the run ends. In San Francisco, 35% of these filings touch the sidewalk, the curb or the property line, and 42% replace the house trap — a fitting most of the country does not have. Both change who permits the work and who restores the surface. If your quote stops at the property line and the failure is under the pavement, you have priced part of a job.
Elsewhere: swap the portal domain, the resource identifier and the column names, and the queries above run on most Socrata permit files. Read the description column before the money column. If it never contains a number and a unit, no amount of rows will give you a price per foot — and if it does, check whether the price moves with it before you trust the division.
Frequently asked questions
How much does a sewer lateral replacement cost per foot in San Francisco?
There is no single answer in the permit file, and that is the finding. Across 146 San Francisco filings that state a run length, the declared value divided by the stated length runs $150 at the 25th percentile, $267 at the median and $458 at the 75th. But that figure is almost entirely an artifact of the divisor: the same cohort splits by run length into a median of $800 per foot on jobs of 4 to 10 feet and $138 per foot on jobs of 60 to 150 feet. The short jobs are not six times harder. They are the same fixed setup spread over fewer feet.
If the price does not scale with length, what does a per-foot rate mean?
At most it is the slope — what each additional foot adds once the crew is on site — and on this evidence the slope is the smaller half of the bill. Least squares puts it at $128 per foot in San Francisco and $214 in Everett; the outlier-resistant Theil–Sen estimate puts it at $100 and $115. Those land inside our published open-trench band of $50 to $125 per installed foot. What does not survive is the way a calculator uses that rate, which is to multiply it by the whole run and call the product the job.
Why not just add a fixed setup charge to the sewer calculator?
Because the two files that would set the number are both high-cost markets. San Francisco is San Francisco and Everett is metropolitan Seattle, and the intercepts they imply carry standard errors of about $1,300 apiece — $4,813 give or take $1,381 in one city, $4,883 give or take $1,263 in the other. Two expensive West Coast jurisdictions agreeing within their own noise is not a national floor. The check that would license one is a low-cost jurisdiction whose permit file also states run lengths, and we have not found it.
Does a declared permit value mean what the homeowner paid?
Not reliably, and neither file says. Both columns are filled in by the applicant at intake. Neither dataset's metadata states whether the figure is a contract total or a number produced for fee assessment, and the descriptions show the scope is often wider than the pipe: 42% of the San Francisco cohort also replaces a house trap and 35% touches the sidewalk, curb or property line, both of which our calculator itemizes separately. Read these as what permitted sewer work declares in two cities, not as quotes.