The morning I was glad I'd kept every email
In November 2023, I stood in a rented warehouse outside Long Beach, California, with a moisture meter in one hand and a supplier spec sheet in the other. We had 38 prefab ADU units stacked in front of us, delivered two days earlier for an affordable housing project in Southern California. The client's funding deadline was 14 weeks out.
The moisture reading on the cedar siding panels came back at 18.4%. Our contract spec said 12–15%. The lower edge of that range was already a compromise I'd pushed for.
I'd flagged the moisture content three times during supplier matching. Each time, I was told the same thing: "Within industry standard."
The batch was not within our standard. We rejected it.
That decision cost us 9 weeks and roughly $47,500 in overages. It also saved the client the design life of the building. Both numbers matter.
How we got here: the sourcing problem nobody warned me about
The client came to us in September 2023. They'd been approved for a mixed-income development with a portion of units built as prefab ADUs — what most of us now just call accessory dwelling units. The affordable housing piece was funded through a state program with a hard delivery window. Miss it, lose the funding. Not ideal, but workable.
This was my first project on the sourcing side. Up to that point, my job had been quality and brand compliance: I reviewed deliverables, samples, and spec sheets before they went to clients. But sourcing is where everything I do gets tested, and the timeline on this one was unforgiving.
Everything I'd read about supplier matching said the same thing: get multiple quotes, compare apples to apples, negotiate hard on price. Conventional wisdom. In practice, the funny thing about a 14-week timeline is that you don't get to negotiate hard. You get to decide fast.
"Had two days to decide. Normally I'd run a full spec audit on each supplier, but there was no time. We went with the lowest quote based on faith in one reference and a sample that looked good under warehouse lighting."
That reference was real. That sample was real. What wasn't real? The production run matched neither.
The three quotes (and why we picked the wrong one)
We ran our normal Lindal Cedar Homes sourcing workflow — shortlist suppliers against a client spec sheet, require factory audits and sample pulls before production starts. Nice workflow on paper.
The three quotes, roughly:
- Supplier A (Guangdong, China): $18,200 per unit, FOB. Standard cedar siding spec, 12–15% moisture content required, panel alignment tolerance 1/8 inch.
- Supplier B (Zhejiang, China): $24,400 per unit, delivered to port. Same spec, plus third-party inspection at factory.
- Supplier C (Oregon, U.S.): $31,000 per unit, delivered. Higher labor, higher cedar cost, shorter transit.
On unit price, A wins by a mile. On TCO — and I'll get to this — A lost by a wide margin.
Here's the thing: our client pushed hard for A. Funding was tight. The board wanted the number that fit the spreadsheets. I signed off on A with three conditions: factory audit before production, moisture content verification at 20% sampling rate, and a $40,000 holdback until final inspection. All three made it into the contract.
Two of the three got followed. Guess which one didn't.
What the audit missed
The pre-production audit in October went well. Clean facility. Good photos. Our inspector confirmed the kiln drying logs looked consistent. Production started in early November.
When the first 10 units arrived in Long Beach, they looked fine. When I unboxed unit #7, something felt off about the panel joints — a visible gap along the long edge, maybe 3/16 of an inch. Our spec called for 1/8 inch max. The vendor's QC lead had signed off. His interpretation of the spec? "Industry standard is 1/4 inch."
That's the thing about "industry standard." It's a real phrase, but it's not a spec. It's a defense.
I pulled the moisture meter next. 18.4% on the first panel. 17.9% on the second. Across the batch of 38 units, average was 17.2%. The whole run measured above our spec.
To be clear: under FTC advertising guidelines (ftc.gov), a vendor's claims about product specifications need to be truthful and substantiated. "Within industry standard" is not a substantiated claim when there's a signed contract spec on the table. It's a category of wording, not a measurement.
Here's where the TCO conversation started. We had options:
- Accept the batch. Deploy with a structural risk and a strong likelihood of callbacks once the panels dried and moved in the field.
- Reject the batch. Vendor redoes at their cost — but that adds 6–9 weeks and eats our buffer.
- Partial accept. Use the three units that tested in-spec, redo the rest.
We went with #3, then realized the R&R on the rest was going to blow through the buffer anyway. Reverted to #2. Full rejection.
What TCO actually looked like on this project
The client's original comparison was simple: A at $18,200/unit vs C at $31,000/unit. That's a $12,800-per-unit delta — $486,400 over 38 units. That number got A approved.
Here's the TCO we actually paid:
- Supplier A unit cost (walked): $0 — batch rejected, redo at vendor cost.
- Redo labor and materials: $0 to us, but 9 weeks lost.
- Storage of rejected batch: $4,200
- Return shipping and re-delivery: $11,600
- Third-party re-inspection: $3,800
- Expedited freight to hit the funding deadline: $19,200
- Internal rework labor and overtime: $6,700
- Client relationship credit (we offered it): $2,000
Direct cash overage: $47,500. Plus 9 weeks we will not get back.
Had we gone with Supplier C at $31,000/unit from day one — delivered on time, with the factory inspection already included and a 4–5 week transit that left us a buffer — we would have paid roughly $486,000 more in unit cost. Over 38 units, that's $12,800 per unit.
And look — $486,000 is not small. I'm not going to pretend C was the obviously right financial call. Here's the honest version: when we reran the analysis after the project closed, Supplier B won. Effective cost on B with rework risk and delay probabilities weighted in landed around $27,500/unit. Supplier A, with the same weighting, landed around $28,000. C was still the most expensive at roughly $32,400/unit.
We should have gone with B. I knew that after the analysis. I did not know it in September. That's the difference between the quote you look at and the number you actually pay.
The lesson I actually learned
Two things.
First: "within industry standard" is not a spec, and any supplier who says it during a mismatch is telling you something about their QC culture. When I flagged the moisture spec in September, I should have walked. I didn't. Time pressure does that.
Second: Is building a modular home cheaper? Yes. Repeatedly. Which is exactly why procurement conversations need to stop at unit price. On affordable housing projects specifically — where funding cycles are tight and a 4-week delay can kill a project — the cost of a supplier miss is not marginal. It's existential to the deal.
For anyone evaluating the best prefab ADU options for affordable housing in the U.S., or sourcing prefab houses for affordable housing projects at scale, the unit-price conversation is the entry point. It is not the decision.
Here's the TCO framework our team now uses before any bulk order. It's not complicated:
- Unit cost, including any spec-upgrade surcharges
- Freight, port, and drayage — quoted all-in, not door-to-door approximations
- Inspection costs (factory and destination)
- Buffer weeks × daily carry cost (funding interest, storage, site readiness)
- Rework probability × typical rework cost
- Delay probability × delay cost (funding cliff, opportunity cost)
- Warranty and callback reserve
Run those numbers once, honestly, and the cheapest quote rarely stays the cheapest. Sometimes the mid-tier wins. Sometimes the domestic supplier wins. Usually it depends.
The hidden costs are where the whole analysis lives (storage, re-inspection, expedited freight — the ones I always forget to add until they hit). After this project, I don't skip them. The unit prices we saw from Chinese suppliers that fall (this was back in 2023) were roughly comparable to 2024 quotes — but the ancillary costs moved around a lot, and they're what really shifted my thinking.
What I will tell you from this project: I now calculate TCO before I compare any vendor quotes. The unit price still matters. It's just the first number, not the last one.
And the moisture meter? I bought my own now. The one I used that morning in Long Beach lives in the trunk of my car. It's been to six audits since. It's the cheapest insurance I own.