Free guide5 min read

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.

1

Quote fields that contain commas

Wrap text in double quotes if it might contain commas

2

First row is always column headers

No title rows, no merged cells, no decoration

3

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.

❌ Before — the broken version (Excel-converted CSV)
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. 1.Title row at the top — “Floor Material Takeoff,” is not column data, but the parser thinks it is.
  2. 2.Empty row — the blank row between headers and data confuses some parsers.
  3. 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. 4.BOM character at the start of the file — added by Excel, causes some parsers to choke.

What the parser actually sees:

Row 5:“Aluminum 1100-O”area: 13✓ correct
Row 6:“Asphalt”area: “Pavement”✗ broken
Row 7:“Concrete”area: “Cast-in-Place gray”✗ broken
✅ After — the fixed version
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:

  1. Removed the title row — first row is now column headers.
  2. Removed the empty row — data starts immediately after headers.
  3. Replaced commas with hyphens in material names. Or wrap in double quotes — both work.
  4. Cleaned column headers — colons removed, clear naming.
  5. 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.

✅ Revit TXT export (correct)
"Material: Name","Material: Area"
"Aluminum 1100-O","13"
"Asphalt, Pavement, Dark Grey","901"
❌ Excel-converted CSV (broken)
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:

Comma (,)Standard. Problematic if your data contains commas.Recommended
Tab (\t)Great alternative. Almost no architecture data contains tabs.
Semicolon (;)Common in European Excel exports. Works fine.
Pipe (|)Never appears in real data. Bulletproof.

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.

1

Project Line Items

The materials in ONE specific project's budget. A complete bill of materials for a building.

Required columns:

Material NameQuantityUnitUnit Cost

Recommended columns:

CSI DivisionSupplierTierWaste %Lead Time
Sample row
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
2

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:

Material NameUnitUnit Cost

Recommended columns:

CSI DivisionTierRegionSupplierLast Updated
Sample row
Material Name,CSI Division,Tier,Unit,Unit Cost,Supplier,Region
"Concrete - CIP - 4000 PSI",03,Mid-Range,CY,285.00,Quikrete,Southwest
3

Supplier List

The vendors and contractors your firm works with. Contact info, specialties, locations.

Required columns:

Company NameSpecialty

Recommended columns:

EmailPhoneWebsiteCityStatePreferred
Sample row
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.

FieldRecognized variations
Material NameMaterial, Material Name, Item, Description, Product
QuantityQty, Quantity, Amount, Count
UnitUnit, Units, UOM, Measure
Unit CostUnit Cost, Cost, Price, Unit Price, $/Unit, Rate
CSI DivisionCSI Division, CSI, Division, Trade Code, Trade
SupplierSupplier, Vendor, Source, Company, Manufacturer
EmailEmail, E-mail, Contact Email
PhonePhone, Tel, Telephone, Contact Phone
WebsiteWebsite, URL, Web, Site
SpecialtySpecialty, Discipline, Industry, Trade, Category
TierTier, Quality, Grade, Level
Lead TimeLead Time, Lead Time (days), Days, Delivery
Waste %Waste %, Waste, Waste Factor, Loss

Common Mistakes to Avoid

1

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.

2

Empty rows between headers and data

Some parsers stop reading at the first empty row. No blank rows between headers and data.

3

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.

4

Mixed quoting

Don't quote some fields and not others in the same column. Pick a style and apply it consistently.

5

Currency symbols in cost columns

Use plain numbers like 285.00, not $285.00. Strip currency symbols before importing.

6

Commas as thousands separators

1,500 is two columns to a CSV parser. Use 1500 for numeric values.

7

Trailing whitespace

"Concrete " (with a trailing space) imports as a different material from "Concrete". Trim whitespace.

8

Inconsistent material naming

"Concrete", "concrete", "CONCRETE", and "Conc." all import as different materials. Pick one style.

9

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.

10

Date format inconsistency

If your file has dates, use ISO format (2026-04-11) not regional formats (4/11/26 vs 11/4/26).

See also: Revit Naming Convention Guide for consistent material naming inside Revit projects.

How AI GC Handles Imports

1

Auto-detection

We read the first few rows and figure out what type of file it is (line items, cost database, or supplier list).

2

Column matching

We auto-map column headers using the aliases above.

3

Confirmation

We show you what we detected and let you confirm or adjust before anything is written.

4

Import

We process the file and give you a summary of what was imported.

5

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.

7 steps