Material Takeoff & BOM Pricer
the small GC or trade contractor pricing a bid off a takeoff and a price list, instead of opening the takeoff spreadsheet and looking up every item’s price by hand.
Point it at a material takeoff and a unit-price list and it prices every line with waste and markup, defaulting to 10 percent waste and 15 percent markup, then hands you a Bill of Materials totalled by category and ready to drop in the bid.
$49 a month for the shop. You get the pricer, the category roll-up, the unpriced-items callout, and all three output files. Cancel any day, and every BOM you’ve already run stays on your disk, because it was never held anywhere else.
The bid’s due tomorrow
The takeoff’s done. You’ve got the count of every stick, box, and fitting the job needs, sitting in a spreadsheet. Now the slow part starts. You open the price list in another window, look up each item, type the price in, add waste on the ones you remember to, add markup, and re-total by category so the GC can value-engineer one line without you rebuilding the whole thing.
Miss the waste on a few rows and the margin’s already gone before you win the job. Fat-finger a unit price and you either leave money on the table or price yourself out. Every one of those errors is invisible until the job’s running and the material’s costing more than the bid said it would.
Two files, one command
- Two CSVs: the takeoff with
item,category,qty, andunit, and your price list withitemandunit_price. - Run it. Each takeoff line joins to its price by item name, matched without caring about case or extra spaces, and any item with no matching price is set aside instead of crashing the run.
- It inflates each quantity by your waste percent, multiplies by the unit price, adds markup on top, rolls the extended totals up by category and grand total, and writes
PRICED_BOM.mdplus abom.csvyou paste straight into the estimate.
What it does
- Inflates the quantity by
WASTE_PCTbefore pricing, default 10, so the offcuts and breakage are baked into the number instead of eating your margin on site. - Applies
MARKUP_PCTon top of the wasted material cost, default 15, so markup rides on what you actually buy, not the bare count. - Any item with no matching price defaults to zero and lands in an unpriced-items callout, so nothing silently prices at zero and slips into the bid.
- Matches item names case- and whitespace-insensitive, so
2x4 SPFand2X4 SPFtie to the same price instead of both falling through as unpriced. - Rolls totals up by category, so the framing number and the electrical number sit apart when the GC asks you to cut one.
- Writes
bom.csvline by line, ready to paste into the estimate you’re already sending out. - A
validatecommand confirms both files exist and the config’s right before a run, so you catch a wrong path before you’re mid-bid at 11pm.
Who runs this, and who doesn’t
Built for the small GC or trade contractor, 1 to 15 people, pricing bids off a takeoff and a price list instead of an estimating department.
Not for you if you already run takeoff and pricing inside an assembly-based estimator like PlanSwift. That software measures off the plan set and prices it in the same place, and if you’ve paid for it you don’t need a separate pricer. This is for the shop whose takeoff is a spreadsheet and whose price list is another one.
What it replaces
Excel is the real incumbent, and it’s better at what a spreadsheet is good at: you see every formula, tweak one cell, and lay the bid out however your customers read it. PlanSwift and Bluebeam are better still at the takeoff itself, measuring quantities right off the drawings.
What none of them do without you wiring it up by hand is the join between a fresh takeoff and your current prices, with waste and markup applied the exact same way every time. Change a price once in the list and the next bid picks it up. The spreadsheet makes you paste it into forty rows and hope you got them all.
Where your prices stay
Both CSVs are read off the disk and never leave it. The priced BOM is the only thing written, and only under OUTPUT_FOLDER, with every path checked by assertWithinRoot and output at 0600. bom.json holds the machine-readable version if you feed the totals into something else. There’s no account and no upload, because there’s no network code in the tool. The prices you load stay yours, on your machine.
$49 a month, and the first BOM
$49 a month for the shop. Copy .env.example to .env, set the takeoff path, the price-list path, an output folder, and your waste and markup percents. Run it. The first priced BOM lands in a couple of minutes on a normal takeoff, and the unpriced-items list tells you on the spot which prices you’re still missing. Cancel any day and the BOMs stay on your disk.
Security and privacy
Handles client job-cost data (material takeoffs, supplier unit prices). Security is designed in.
Principles
– Local-first. TAKEOFF_CSV/PRICES_CSV are read from disk and never transmitted anywhere; nothing in this tool touches the network. Nothing is uploaded, no telemetry, no cloud dependency.
– Non-destructive. Source CSVs are only read, never modified or deleted.
– Least privilege. Reads TAKEOFF_CSV/PRICES_CSV, writes only under OUTPUT_FOLDER.
Protections implemented (v0.1.0)
– Path-traversal defense — every output filename is sanitized (safeSegment) and every write is checked with assertWithinRoot(), so the priced BOM can’t be written outside OUTPUT_FOLDER.
– Fail-fast config validation — clear errors for missing/invalid TAKEOFF_CSV/PRICES_CSV/OUTPUT_FOLDER/WASTE_PCT/MARKUP_PCT before any file is touched.
– Restrictive permissions — the generated report (PRICED_BOM.md, bom.json, bom.csv) is written 0600.
– Defensive parsing — the CSV parser and currency parser never throw on malformed input (missing fields default to empty string, unparseable amounts default to 0); a bad row degrades the pricing (surfaced as an “unpriced item” or a 0 quantity) rather than crashing the run.
– Secrets discipline — .env and generated BOM/ output are git-ignored; no secrets or client data in the repo.
Distribution / AV trust
Known limitations / roadmap
– Item matching is exact-name only (case/whitespace-insensitive) in v0.1.0 — a typo’d or differently-worded item name will not match its price row and will price at $0 (surfaced in the “Unpriced items” section of PRICED_BOM.md for manual review, not silently dropped).
– WASTE_PCT and MARKUP_PCT are flat, portfolio-wide percentages, not per-category — a job with very different waste profiles per trade (e.g. tile vs. lumber) may need to be run in separate passes; per-category overrides are on the roadmap.
– PRICES_CSV assumes one price per item (single supplier); multi-supplier price lists with best-price selection are on the roadmap.
Reporting
Report suspected vulnerabilities privately to the maintainer before public disclosure.
Frequently asked questions about Material Takeoff & BOM Pricer
What does material takeoff & BOM pricer software do?
Material takeoff & BOM pricer software takes a material takeoff, which is the list of items and quantities a job needs, and turns it into a priced bill of materials. You bring in the takeoff showing each item, its quantity, and its unit, along with a price list. The tool applies a waste factor and a markup to each line, then totals everything by category or phase. What you get back is a priced bill of materials that tells you what the materials for a job actually cost and what you should charge for them.
This is the estimating step that small shops usually grind out in Excel. Someone types the takeoff into a spreadsheet, looks up prices, guesses at waste, adds a markup, and hopes the formulas hold. It works until a price list changes or a formula breaks, and then the estimate quietly goes wrong. Material takeoff & BOM pricer software does the same math in a consistent, repeatable way so the priced list reflects your real costs every single time you run it, not just when the spreadsheet happens to be right.
The estimates and price lists behind a bid are records worth keeping. The IRS guidance on how long to keep records explains that the documents supporting your income and expenses generally must be kept for at least three years, and a priced bill of materials is part of the paper trail behind a job’s costs. Holding the takeoff, the pricing, and the result together means the record is there when a job’s profit or a tax figure is questioned later, rather than lost in a spreadsheet that was overwritten on the next bid.
Speed is a real part of the value. When a bid is due, retyping a takeoff into a spreadsheet and hand-pricing every line is exactly the slow, error-prone work that makes contractors either rush the estimate or turn the job down. Doing the pricing in a purpose-built tool turns an evening of spreadsheet work into a short task, which means you can bid more jobs and bid them with numbers you trust rather than numbers you hope are close.
Supplier prices move, and that is where a saved price list earns its keep. When lumber or copper jumps, you update the price list once and every new estimate reflects the change, instead of quietly bidding at last year’s numbers because the old spreadsheet was never touched. Bidding stale prices is one of the quietest ways to lose money on a job, since the shortfall does not appear until you are buying material at the counter. Keeping pricing current in one place is how you avoid that surprise at the supplier and protect the margin you counted on.
The workflow is short by design. Import the takeoff and a price list, set your waste and markup, and get the priced BOM with totals by category. You skip the manual retyping and the fragile spreadsheet formulas. To see how the tool fits alongside the other tools built for contractors and trades, look at the field service and trades hub. The goal is a fast, accurate priced material list without buying and learning a full estimating suite you do not need.
How does material takeoff & BOM pricer software help me keep estimating records?
A bid is only as defensible as the records behind it. When you price a job, the takeoff, the price list, the waste factors, and the markup are the documents that explain how you arrived at the number. If those live in a spreadsheet that gets overwritten on the next job, the reasoning behind an old bid is gone. Material takeoff & BOM pricer software keeps each priced bill of materials as a record, so the basis for a job’s material cost stays intact and available when you need to look back at it.
Retention is the reason this matters beyond convenience. The IRS record retention guidance for small businesses describes how long a business should hold the documents that support its income and expenses, generally at least three years and longer in certain cases. A priced BOM is exactly that kind of supporting document, since it feeds directly into what a job cost and what you charged. Keeping it in a consistent form means the record is retrievable when an accountant or an examiner asks how a figure was built rather than being reconstructed from memory.
Organized estimating records also help you learn from past jobs. When this year’s bid on a similar project can be compared to last year’s priced list, you can see how material costs and waste have moved. That history is only useful if it was preserved, and material takeoff & BOM pricer software stores each priced BOM so it stays available instead of vanishing into a replaced spreadsheet. The record serves both compliance and better bidding at the same time, from the same saved file.
There is also the question of what a good record contains. It is not enough to keep the final total. A defensible estimating record shows the quantities, the unit prices, the waste, and the markup that produced the number, so anyone reviewing it can see the reasoning rather than a bare figure. Because the tool keeps those pieces together on each priced BOM, the record explains itself, which is exactly what makes it hold up when a job’s costs are questioned.
Consistency across whoever builds the bid is part of the value. When two people in a shop each keep their own spreadsheet, they apply waste and markup differently, and the same job can come out priced two ways depending on who touched it. A shared tool applies the same rules to everyone’s estimates, so a bid reflects the company’s pricing rather than one estimator’s habits. That uniformity also makes the records easier to compare later, because every priced list was built the same way against the same price list rather than a personal version.
You do not have to run a filing system to get this. The tool holds each priced material list in a form you can hand to your bookkeeper or pull up when a question arises. The compliant record is a byproduct of pricing your jobs through one place. To follow the full path from a takeoff to a stored priced BOM, read the Material Takeoff & BOM Pricer product page and see how the record is assembled and kept for the years you may need it.
Where does my pricing and job data live with this tool?
Your price lists and markups are competitive information. What you pay for materials and how much you add on top are numbers you would not want a competitor or a client to see, so it is fair to ask where a pricing tool keeps that data. Material takeoff & BOM pricer software is built to keep your takeoffs, price lists, and priced bills of materials together under your control rather than scattering them across shared spreadsheets and email attachments that are hard to track or lock down.
The FTC guide Protecting Personal Information gives small businesses a plain framework that applies here: take stock of the sensitive data you hold, scale down to what you need, lock down what remains, dispose of what is past its use, and plan ahead. Keeping your pricing in one tool supports each step. You know what cost and markup data you are holding, you keep only what the estimating needs, and you can retire old price lists once they no longer reflect the market you actually buy in today.
Consolidating the data also limits how many copies of your pricing float around. When markups and costs live in one place instead of a dozen spreadsheet versions emailed between people, there are fewer chances for that competitive information to leak. Fewer copies in fewer hands is one of the simplest ways to keep your pricing yours, and a focused tool makes that the default rather than something you have to police by hand across everyone’s inbox.
This is not abstract for a small contractor. Your markup is the number that keeps you in business, and a competitor who learns it can undercut you on the next bid. Material takeoff & BOM pricer software that keeps your price lists and margins in one controlled place means a routine estimating task never becomes the accidental leak of the one number you most need to protect. Handling pricing carefully is the same as handling your margin carefully.
Consider how a leak actually happens in a small shop. A markup lives in a shared spreadsheet, someone emails a copy to a client by mistake, or a former employee keeps a version on a personal laptop, and suddenly your margin is in the open. Material takeoff & BOM pricer software that keeps pricing in one controlled place removes the loose copies that make those accidents possible. The fewer versions of your price list and markup that exist, the fewer chances there are for one to end up somewhere it should not. Treating your pricing data with the same care you would give a customer’s personal information is simply treating your own margin as the asset it is.
Protecting your pricing and building accurate bids are not competing goals. The same organized system that produces a priced BOM is also the one that is easiest to secure and to clean up when a price list is retired. To see how the tool handles takeoffs, price lists, and results, walk through the Material Takeoff & BOM Pricer overview and look at how your data is held from import to finished estimate, all in one place you own and control.
How is this different from PlanSwift, STACK, or an Excel estimate?
PlanSwift and STACK are full takeoff and estimating platforms. They measure quantities off drawings, carry large assemblies, and price a whole set of plans, and they charge accordingly. For a big estimating department that depth earns its cost. For a small shop that mostly needs to turn an existing takeoff into a priced list, paying platform prices for measurement features you will rarely touch is hard to justify, which is why so many small contractors still price jobs in Excel week after week.
Material takeoff & BOM pricer software sits deliberately between those two worlds. It does not try to measure your drawings for you. It takes the takeoff you already have, applies waste and markup line by line, and produces a priced bill of materials with totals by category. That narrower scope is the point, because the pricing step is where small shops actually spend their time and where a fragile spreadsheet most often introduces the errors that turn a profitable bid into a losing one.
Adoption is part of the comparison too. A full platform assumes someone will learn it, configure the assemblies, and keep them current, which is time a small shop rarely has. A tool that prices a takeoff you already produced is something you can use on the next bid without a training project. The cheapest platform is the one that sits unused after the trial, and a focused pricer avoids that trap by doing one familiar job well.
Against Excel, the difference is consistency and records. A spreadsheet works until a formula breaks or a price gets missed, and then the estimate is wrong in a way nobody notices until the job is underway. A dedicated tool applies the same math every time. It also keeps each priced BOM as a retained record, which matters because the IRS guidance on record retention expects the documents behind your job costs to be kept for years, not overwritten on the very next bid you build.
Total cost of ownership is the fair way to compare. A platform’s sticker price is only part of what it costs you, once you add the hours spent configuring assemblies, training staff, and maintaining a system built for bigger shops. Material takeoff & BOM pricer software aimed at the pricing step alone carries almost none of that overhead, because it does one familiar job and asks little to get started. For a small contractor, the tool you actually use on the next bid is worth more than the powerful platform gathering dust after the trial. Matching the tool to the work you truly do is how a small shop spends wisely rather than impressively.
The trade is honest. If you need to measure complex plans from scratch, a full platform may be worth it. If your real need is a fast, accurate priced material list from a takeoff you already have, a focused pricer is the tighter and cheaper fit. Compare it against the other options on the field service and trades page and match the tool to the step you actually spend your time on when a bid is due at the end of the week.
Can material takeoff & BOM pricer software apply waste factors and markup per line?
Yes, and handling waste and markup at the line level is what makes the priced bill of materials accurate. A flat percentage across a whole job hides the fact that different materials behave differently. Lumber and tile carry more waste than boxed fixtures, and you may mark up specialty items differently from commodity stock. Material takeoff & BOM pricer software lets you set waste and markup per line, so each item is priced the way it should be rather than by a single blunt average smeared across everything on the list.
Waste factor matters because you buy more than the takeoff quantity. Cuts, breakage, and offcuts mean the material you purchase exceeds the material installed, and if your estimate ignores that, you eat the difference. Applying a waste factor per line brings the purchased quantity in line with reality, so the job does not run short and your cost reflects what you will actually spend at the supplier rather than an idealized count that assumes nothing is ever wasted on a real site.
Markup per line does the same for your margin. A uniform markup either leaves money on cheap commodity items or prices specialty work out of the running. Setting markup by line lets you price each category the way the market expects while protecting the margin you need. The tool then totals everything by category or phase, so you can see where the cost and the margin sit across the whole job rather than only at the bottom line where problems hide.
Per-line control also makes the estimate easier to adjust when something changes. If a supplier raises the price of one material or you decide a category needs a different markup, you change that line and the totals update, instead of rebuilding a spreadsheet and hoping every dependent formula still points where it should. That is the everyday benefit of doing the pricing in a tool rather than a worksheet: small changes stay small instead of risking the whole bid.
The priced bill of materials also doubles as a buying list. Because material takeoff & BOM pricer software already holds every item, quantity, and adjusted amount, the same document that priced the job tells you what to order and how much, waste included. That saves a second pass of figuring purchase quantities by hand, and it reduces the risk of ordering short and stalling a crew or ordering long and eating the excess. One document that prices the bid and guides the purchase keeps the estimate and the buy in agreement, which is exactly where small shops tend to lose track when the two live in separate places.
Because the priced BOM records the waste and markup you applied, it also serves as a defensible record of how the bid was built. The IRS record-keeping guidance expects the documents supporting your job costs to be kept for years, and a priced list showing your per-line assumptions is a strong example. To see how waste and markup are set and rolled into the totals, walk through the Material Takeoff & BOM Pricer product page and follow a takeoff to a finished priced BOM.
| Attributes | Value |
|---|---|
| Deployment |
Cloud |
| Platform |
Web |
| License Type |
Subscription |
| Billing Period |
Monthly |
| Target Customer |
Contractors & Trades |
| Free Trial |
Yes |
Frequently bought together
-
Auto-Repair Estimate & History Desk
$65.00 -
Change Order Manager
$39.00 -
Construction Takeoff Lite / Drawing Annotator
$65.00 -
Crew Timesheet-to-Job-Cost
$39.00 -
Estimate & Quote AI
$39.00 -
Job Costing & Profit Analyzer
$39.00






