
Automating the Roller Shade Takeoff Process — Findings from initial technical validation | 7/25/26
What I tested, what I found, and what it means for the build.
Takeoff bottleneck & estimator goals
Real sample data from DPS_Sandoval
Tag extraction, dimensions, AI accuracy, competitive landscape
What's ready vs. what needs validation
Takeoff averages 4–6 hours per bid which is a time-consuming step in estimating. That time is better spent on site visits and higher-value work.
Objective: remove Bluebeam from the workflow
80% of projects are "simple," 20% are complex. The simple bucket is the near-term automation target. The highest-leverage starting point.
Real data from the DPS_Sandoval plan set — AC102 shade plan sheet, finish schedule, and your completed CSV takeoff. Not a hypothetical.
Goal: determine what's reliably automatable vs. what still requires human input.
Extracted shade tags directly from the file's vector text layer, not OCR, not an image guess. Real embedded data.
5× RWS-1A + 3× RWS-1B = 8 total, matching your CSV exactly (ML1 qty 5, ML2 qty 2, ML3 qty 1).
Fully deterministic with zero hallucination risk. The system reads real embedded text rather than interpreting pixels.
I searched the full vector text layer for the actual width/height numbers (48, 64, 78, 104). They don't exist as text anywhere in this file. The finish schedule explicitly lists shade sizing as "VARIES; REQUIRES VERIFICATION IN FIELD."
Your estimators are deriving dimensions themselves, not reading them off a table, which was as described in our meeting.
Dimension automation is not a "read the PDF better" problem. It's a "measure geometry against a calibrated scale" problem which is a different engineering challenge entirely.
Raw LLM-reads-an-image approaches eyeball pixel distances against a flattened picture, not measuring against real scale. This is why general-purpose AI underperforms on this specific task.
Separate two jobs: deterministic code handles geometry/measurement math; AI handles language tasks — reading labels, matching shade types, flagging ambiguous cases.
At ~77% confidence, Kreo returned close to the known 8 shades. Width accuracy landed within 1–3" of the known 48" dimension strong for majority-size shades.
One shade missed the wider RWS-1B (~78" class). Lowering threshold from 50% → 23% to recover it nearly doubled detections (33 → 65). No single threshold cleanly returns all 8 with zero noise.
Confirmed via their own rep that no existing tool solves this end-to-end today. No API. Still requires a manual component. Faster than Bluebeam, but not the automated fix Lutek needs. Worth knowing as a Bluebeam alternative — separate from what we're building.
Tested directly against the real Sandoval file. Width-only per documentation (height never populated). Strong width accuracy (within 1–3") on detected shades. However, the precision/recall tradeoff requires a downstream review/filtering layer, not just a slider adjustment.
A clear comparison of what each piece of the architecture can and can't do on its own:
Neither Claude nor Kreo solves the problem alone. The proposed system leverages their combined strengths: Kreo for raw geometric measurement and Claude for reading tags, filtering output, and flagging missing data.
Proven and ready for build: automated shade tag counting and classification. This eliminates manual tallying with zero hallucination risk.
Validated approach, needing broader testing: dimension derivation via vector-geometry measurement against the drawing's own scale reference. This is technically sound but requires confirming across a wider sample of your real bids before full build.
We are explicitly not pursuing a Bluebeam-dependent architecture, aligning with your goal of removing Bluebeam from the workflow entirely.
Where dimensions are genuinely unrecoverable from the drawing (e.g., "VARIES" fields), the system will flag these for field verification, directly supporting your goal of freeing up time for site visits, not replacing them.
Automated shade tag counting and classification. Eliminates manual tallying. Zero hallucination risk.
Dimension derivation via vector-geometry measurement against the drawing's own scale reference. Technically sound but needs broader sample confirmation.
Where dimensions aren't recoverable ("VARIES" fields), the system flags for field verification with additional context from site visits.
Phase 2 of the system will build upon the foundational elements to deliver a comprehensive solution, automating several critical steps in the estimation process:
Pulling plan sets directly from BuildingConnected, eliminating manual file downloads and ensuring new bids enter the pipeline seamlessly.
Automatically identifying relevant sheets (e.g., shade plans, schedules) within a plan set to focus processing only on necessary pages.
Measuring shade dimensions directly from drawing geometry with high accuracy, building on our validated testing methodology.
Clearly flagging shades where size information is genuinely absent from the drawing for efficient field verification, rather than guessing.
A user-friendly interface displaying every result with a clear confidence level, empowering your team to trust or double-check with efficiency.
Delivering results in the precise layout and format your general contractors already expect, streamlining communication.
Continuously validating system accuracy against real bid outcomes over time to ensure proven, reliable performance.
A scoped, paid pilot phase to validate the dimension-extraction approach across a representative sample of simple-bucket bids — not just one file.
One clean sample file tells us the approach can work. It doesn't tell us it will work across the variation you described: different title block formats, missing scale references, inconsistent drawing quality, et.
Pricing a full system off a single sample risks under-scoping or overpromising. A pilot protects both sides: you get a validated number before committing budget; I get real variance data before committing engineering time.
Objective: validate that the vector-geometry measurement approach — proven on one file — generalizes reliably across a representative sample of Lutek's typical "simple" bids, before committing to the full build price.
Lutek provides 3-5 real "simple" bid packages (PDF plan sets + completed CSV takeoffs as ground truth), weighted toward typical volume, not best-case files.
Tag counting accuracy, scale-calibration feasibility per file, and whether the precision/recall tradeoff holds, and whether a rules-based filter can clean up Kreo's raw output reliably.
A written accuracy report per sample with confidence-tagged results: what can be automated now, what still needs field verification, and why.
1 week from receiving sample files. To be confirmed based on Lutek's bandwidth.
$3,500 — paid, non-refundable, but fully credited toward Phase 2 build if you proceed. Reflects genuine technical R&D beyond a standard audit.
$20,000–$35,000 upfront + $2,000–$4,000+/month ongoing
Covering: third-party API costs, review-dashboard maintenance, and confidence-tagging system upkeep.
Proceed to full build proposal with a firm, defensible price
Report back honestly on which bid types remain human-assisted vs. automated, and adjust scope/price accordingly. No obligation to proceed until this is known.
All findings above are based on one validated sample file (DPS_Sandoval). The pilot phase exists specifically to confirm these results generalize. This is presentation-ready as "strong initial findings," not as a validated production accuracy rate across Lutek's full simple-bid volume.
Tag extraction is deterministic and reliable. The dimension gap is real and confirmed. Generic AI tools have a measurable accuracy ceiling.
Whether vector-geometry measurement generalizes across real bid variation, different formats, missing scale references, inconsistent drawing quality.
A paid, scoped pilot protects both sides before committing to a full build. Strong initial findings. Clear next step. No guesswork.
Lutek Shading Systems Findings & Pilot Proposal