How to Format Material Takeoffs for Budgeting Software
A practical guide to formatting CSV files that import cleanly into AI GC. Covers project line items, cost databases, and supplier lists — with real before/after examples from architecture firms.
Especially important for Solo plan users: if you're not using Revit, CSV imports are how you get your data into AI GC.
Why CSV Format Matters
A CSV file is just a plain text file where each line is a row and commas separate the columns. Sounds simple, but there are a hundred small ways to break it.
The parser only knows what you tell it — if your formatting is ambiguous, the parser guesses wrong and your data lands in the wrong columns or doesn't import at all.
This guide covers the most common mistakes we see in real architecture firm CSV files, with side-by-side examples of broken vs working versions.
The Three Rules
Follow these three rules and the vast majority of import problems disappear.
Quote fields that contain commas
Wrap text in double quotes if it might contain commas
First row is always column headers
No title rows, no merged cells, no decoration
Save as UTF-8 CSV
Not Excel format, not anything fancy
If You're Using Revit: Just Upload the .TXT File
This is the single most useful tip in this entire guide.
When you export materials from Revit as a schedule, Revit gives you a .txt file by default. That TXT file is already correctly formatted — every field is wrapped in proper double quotes, commas inside material names are handled correctly, and the encoding is right.
The problem starts when you open that TXT in Excel and re-save it as CSV. Excel strips the quotes, mangles the encoding, and breaks the formatting. The exact same data goes from working to broken in one click.
AI GC accepts both .csv and .txt files. Just drag your Revit TXT export directly into the upload area. No Excel step. No conversion. No problems.
If you must edit the file first (to clean up material names or remove categories you don't want), open it in a plain text editor like Notepad, VS Code, or TextEdit — not Excel.
Real Example: Before & After
This is a real Floor Material Takeoff from an architecture firm. We'll show you exactly what's wrong and how to fix it.
Floor Material Takeoff, Material: Name,Material: Area , Aluminum 1100-O,13 Asphalt, Pavement, Dark Grey,901 Concrete, Cast-in-Place gray,12161 Concrete, Cast-in-Place, Gray,1190 GLASS FLOOR,54 Mulch, Brown Mix,3453 Pea Stone - Grey,1249 Plywood, Sheathing,15215 Roofing, EPDM Membrane,6812 Slab, Screed,2139 Structure, Wood Truss Joist/Rafter Layer,15239 Travertine,1065
What's wrong:
- 1.Title row at the top — “Floor Material Takeoff,” is not column data, but the parser thinks it is.
- 2.Empty row — the blank row between headers and data confuses some parsers.
- 3.Commas in material names aren't quoted — “Asphalt, Pavement, Dark Grey” is one name with three commas. The parser sees four columns instead of two.
- 4.BOM character at the start of the file — added by Excel, causes some parsers to choke.
What the parser actually sees:
Material Name,Area SF Aluminum 1100-O,13 "Asphalt - Pavement - Dark Grey",901 "Concrete - CIP - Gray",12161 "Concrete - CIP - Gray Light",1190 Glass Floor,54 "Mulch - Brown Mix",3453 Pea Stone - Grey,1249 "Plywood - Sheathing",15215 "Roofing - EPDM Membrane",6812 Slab - Screed,2139 "Structure - Wood Truss Joist Rafter Layer",15239 Travertine,1065
What changed:
- Removed the title row — first row is now column headers.
- Removed the empty row — data starts immediately after headers.
- Replaced commas with hyphens in material names. Or wrap in double quotes — both work.
- Cleaned column headers — colons removed, clear naming.
- Saved as UTF-8 without BOM.
Result: every row imports cleanly, every quantity lands in the right column, every material name is preserved.
Revit TXT Export vs Excel CSV
Compare these two exports of the exact same data. The TXT version handles commas correctly because every field is wrapped in quotes. The CSV version doesn't.
"Material: Name","Material: Area" "Aluminum 1100-O","13" "Asphalt, Pavement, Dark Grey","901"
Material: Name,Material: Area Aluminum 1100-O,13 Asphalt, Pavement, Dark Grey,901
AI GC accepts both .csv and .txt files. If you're exporting from Revit, just upload the .txt file directly and skip the Excel step entirely.
Choosing the Right Delimiter
A delimiter is the character that separates columns. CSV stands for Comma Separated Values, but you have options:
Our recommendation: Use comma with proper quoting. AI GC auto-detects all four delimiters — you don't have to tell us which one you used.
File Encoding: Save as UTF-8
When you save a CSV from Excel, Numbers, or Google Sheets, you'll get an option for file encoding. Always pick UTF-8 (or “Comma Separated Values UTF-8” in Excel).
Special characters in material names — ° (degree symbol), narrow spaces, em-dashes, foreign characters — only render correctly in UTF-8. Other encodings show garbled characters that break the import.
About the BOM character: The invisible at the start of UTF-8 files from Excel is technically valid but causes issues with some parsers. AI GC strips it automatically, but if you see weird characters in the first column header, that's the BOM.
The Three Import Types
AI GC handles three different kinds of CSV uploads. Each has its own expected schema. You can use our smart detection to figure out which type your file is, or download a template if you're starting from scratch.
Project Line Items
The materials in ONE specific project's budget. A complete bill of materials for a building.
Required columns:
Recommended columns:
Material Name,CSI Division,Quantity,Unit,Unit Cost,Tier,Supplier,Lead Time "Concrete - CIP - 4000 PSI",03,142,CY,285.00,Mid-Range,Quikrete,14
Cost Database
Your firm's standard price book for materials you use across projects. A reference catalog of pricing without project-specific quantities.
Required columns:
Recommended columns:
Material Name,CSI Division,Tier,Unit,Unit Cost,Supplier,Region "Concrete - CIP - 4000 PSI",03,Mid-Range,CY,285.00,Quikrete,Southwest
Supplier List
The vendors and contractors your firm works with. Contact info, specialties, locations.
Required columns:
Recommended columns:
Company Name,Specialty,Email,Phone,Website,City,State,Preferred "Quikrete Las Vegas",Concrete,sales@quikrete-lv.com,702-555-0100,quikrete.com,Las Vegas,NV,yes
Column Name Aliases (We Auto-Detect These)
You don't have to use our exact column names. AI GC auto-detects common variations using fuzzy matching. If your column names are close enough, we'll match them automatically. If not, we'll show a confirmation modal where you can map them manually.
| Field | Recognized variations |
|---|---|
| Material Name | Material, Material Name, Item, Description, Product |
| Quantity | Qty, Quantity, Amount, Count |
| Unit | Unit, Units, UOM, Measure |
| Unit Cost | Unit Cost, Cost, Price, Unit Price, $/Unit, Rate |
| CSI Division | CSI Division, CSI, Division, Trade Code, Trade |
| Supplier | Supplier, Vendor, Source, Company, Manufacturer |
| Email, E-mail, Contact Email | |
| Phone | Phone, Tel, Telephone, Contact Phone |
| Website | Website, URL, Web, Site |
| Specialty | Specialty, Discipline, Industry, Trade, Category |
| Tier | Tier, Quality, Grade, Level |
| Lead Time | Lead Time, Lead Time (days), Days, Delivery |
| Waste % | Waste %, Waste, Waste Factor, Loss |
Common Mistakes to Avoid
Title rows above the data
The first row should be column headers, not "Project Budget Q2 2026". Delete any title rows or merged cells at the top.
Empty rows between headers and data
Some parsers stop reading at the first empty row. No blank rows between headers and data.
Excel auto-formatting numbers
Excel converts numbers to scientific notation (1.5E+04) or strips leading zeros from CSI codes (03 → 3). Format columns as Text before saving.
Mixed quoting
Don't quote some fields and not others in the same column. Pick a style and apply it consistently.
Currency symbols in cost columns
Use plain numbers like 285.00, not $285.00. Strip currency symbols before importing.
Commas as thousands separators
1,500 is two columns to a CSV parser. Use 1500 for numeric values.
Trailing whitespace
"Concrete " (with a trailing space) imports as a different material from "Concrete". Trim whitespace.
Inconsistent material naming
"Concrete", "concrete", "CONCRETE", and "Conc." all import as different materials. Pick one style.
Saving as .xlsx instead of .csv
Our parser only reads CSV and TXT files. Excel binary files (.xlsx, .xls) need to be saved as CSV first.
Date format inconsistency
If your file has dates, use ISO format (2026-04-11) not regional formats (4/11/26 vs 11/4/26).
How AI GC Handles Imports
Auto-detection
We read the first few rows and figure out what type of file it is (line items, cost database, or supplier list).
Column matching
We auto-map column headers using the aliases above.
Confirmation
We show you what we detected and let you confirm or adjust before anything is written.
Import
We process the file and give you a summary of what was imported.
Error reporting
If any rows fail, we tell you exactly which ones and why.
You never have to figure out “is this a line items file or a cost database?” — we figure it out for you.
Import Checklist
Run through this checklist before your first upload. Your progress is saved locally.