---
title: How do I check Bluebeam takeoff item codes against my rate database with AI before I price? | AEC Agents
url: https://aecagents.si/use-cases/bluebeam-item-codes-vs-rate-database
description: Takeoffs built in Bluebeam Revu often carry custom item codes on each markup, then the Markups List exports to CSV or Excel so quantities can look up unit rates in a controlled rate database. The silent failures are codes that appear on markups but not in rates, codes sitting in rates never used on this takeoff, unit mismatches, blank codes, duplicate markups and quantities that look off for the unit. Have Claude or ChatGPT normalize the Markups CSV and the rate table into matching columns, and have Copilot in Excel or Gemini in Google Sheets flag every mismatch before anyone prices. Whether a rate is correct, and what the bid price should be, stays with the estimator.
last_modified: 2026-11-11
source: AEC Agents (free, open workflows; not engineering advice)
---

[AI assists](https://aecagents.si/use-cases/bluebeam-item-codes-vs-rate-database#honesty-labels)Workflow guide · not independently tested

# How do I check Bluebeam takeoff item codes against my rate database with AI before I price?

Takeoffs built in Bluebeam Revu often carry custom item codes on each markup, then the Markups List exports to CSV or Excel so quantities can look up unit rates in a controlled rate database. The silent failures are codes that appear on markups but not in rates, codes sitting in rates never used on this takeoff, unit mismatches, blank codes, duplicate markups and quantities that look off for the unit. Have Claude or ChatGPT normalize the Markups CSV and the rate table into matching columns, and have Copilot in Excel or Gemini in Google Sheets flag every mismatch before anyone prices. Whether a rate is correct, and what the bid price should be, stays with the estimator.

[Estimator](https://aecagents.si/roles/estimator) · Construction · Claude · ChatGPT · Bluebeam Revu · Microsoft Excel · Microsoft Copilot · Google Sheets · Gemini

Content updated 11 November 2026 · Tool links listed below; vendor features and pricing change, so confirm with the vendor

## Short answer

Use Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets: Claude or ChatGPT normalizes a Bluebeam Markups List CSV and a rate-database table into matching item-code columns; Copilot or Gemini flags codes on markups missing from rates, unused rate codes, unit mismatches, blank codes, duplicate markups and quantity sanity issues before anyone prices. Takeoffs built in Bluebeam Revu often carry custom item codes on each markup, then the Markups List exports to CSV or Excel so quantities can look up unit rates in a controlled rate database. The silent failures are codes that appear on markups but not in rates, codes sitting in rates never used on this takeoff, unit mismatches, blank codes, duplicate markups and quantities that look off for the unit. Have Claude or ChatGPT normalize the Markups CSV and the rate table into matching columns, and have Copilot in Excel or Gemini in Google Sheets flag every mismatch before anyone prices. Whether a rate is correct, and what the bid price should be, stays with the estimator. A person still checks: every flag against the PDF takeoff and the controlled rate book before pricing; unit rates, extensions and the bid price stay with the estimator.

## AI tie-in

**Tool:** Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets

Claude or ChatGPT normalizes a Bluebeam Markups List CSV and a rate-database table into matching item-code columns; Copilot or Gemini flags codes on markups missing from rates, unused rate codes, unit mismatches, blank codes, duplicate markups and quantity sanity issues before anyone prices.

### Prompt 1

```
Read this Bluebeam Markups List export [upload CSV or paste]. Build a Markups table with one row per markup: markup ID if present, item code as written, description, quantity, unit, page or sheet. Copy values exactly and write BLANK or NOT SHOWN instead of guessing. Then normalize codes the same way on this rate table [paste: item code, description, unit, unit rate] without inventing codes or rates. Do not price anything.
```

### Prompt 2

```
EXAMPLE DATA ONLY. Here are my Rates and Markups tabs [paste the example rows]. Write Excel formulas (or a step-by-step Copilot plan) that normalize item codes, match each markup to a rate row, and flag: code in Markups missing from Rates, code in Rates unused on this takeoff, unit mismatch, blank codes, duplicate markup IDs, duplicate identical takeoff rows, and zero or negative quantities. Use only my data; do not invent rates or decide a bid price.
```

**Human check:** Every flag against the PDF takeoff and the controlled rate book before pricing; unit rates, extensions and the bid price stay with the estimator.

## The problem

Check Bluebeam takeoff item codes against a rate database with AI. This is a common, time-consuming task for a estimator.

## What this workflow does

Takeoffs built in Bluebeam Revu often carry custom item codes on each markup, then the Markups List exports to CSV or Excel so quantities can look up unit rates in a controlled rate database. The silent failures are codes that appear on markups but not in rates, codes sitting in rates never used on this takeoff, unit mismatches, blank codes, duplicate markups and quantities that look off for the unit. Have Claude or ChatGPT normalize the Markups CSV and the rate table into matching columns, and have Copilot in Excel or Gemini in Google Sheets flag every mismatch before anyone prices. Whether a rate is correct, and what the bid price should be, stays with the estimator.

**How it works:** AI drafts or analyzes. A person operates the tools, checks the work, and takes action.

**Your checkpoint:** The workbook only compares the Markups export with the rate table you entered. A missing code can be a typo, a new assembly or a stale rate book, so a flag is a question for the estimator, not a price. Unit rates, extensions and the bid price stay with the estimator under the company's estimating procedures.

## Before you start

- Access to the named tool; confirm license, version and cost with the vendor.
- A small, non-confidential sample to try the workflow on first.
- A qualified person to review the output before it is used.

### Tools and access

- [Claude (Anthropic)](https://www.anthropic.com/claude)
- [ChatGPT](https://chatgpt.com/)
- [Bluebeam Revu](https://www.bluebeam.com/)
- [Microsoft Excel](https://www.microsoft.com/microsoft-365/excel)
- [Microsoft Copilot](https://www.microsoft.com/microsoft-365/copilot)
- [Google Sheets](https://workspace.google.com/products/sheets/)
- [Gemini](https://gemini.google.com/)

## Follow the steps

1. In Bluebeam Revu, finish the takeoff with a consistent Subject or custom column for the item code on every markup, then export the Markups List to CSV or Excel (code, description, measurement, unit, page, and any custom columns you use).
2. Export or open the controlled rate database as a Rates tab: item code, description, unit, unit rate, and effective date or revision if you keep one. Use an AI account your company allows for bid data.
3. Have Claude or ChatGPT read the Markups export into a Markups tab with one row per markup: item code as written, description, quantity, unit, page or sheet, and markup ID if present. It copies values exactly and writes NOT SHOWN or BLANK instead of guessing. Have it normalize codes the same way on the Rates tab (trim spaces, consistent case) without inventing codes.
4. Have Copilot in Excel or Gemini in Google Sheets join Markups to Rates on the normalized code and flag: code on a markup missing from Rates, code in Rates unused on this takeoff, unit on the markup different from the rate unit, blank or NOT SHOWN codes, duplicate markup IDs or identical code-page-quantity rows, and quantity sanity checks you define (zero, negative, or far outside a simple range you typed).
5. Review every flag against the PDF and the rate book. Fill missing codes or add missing rate rows yourself; do not let the AI invent a rate.
6. Only after codes and units line up, look up rates and price. Keep the flagged workbook with the bid backup.

## Try a small example

EXAMPLE DATA ONLY — fictional codes and quantities for practice, not from a real project or a published trial. Paste the Sample input into Copilot or Gemini with the Starter prompt, then compare your flags to Expected output.

### Sample input

```
Rates tab (example)
Item code | Description | Unit | Unit rate
HW-CU-20 | copper hanger 3/4 | EA | 4.85
HW-CU-24 | copper hanger 1 | EA | 5.40
PP-PVC-4 | PVC pipe 4 in | LF | 12.75
PP-PVC-6 | PVC pipe 6 in | LF | 18.90
CT-CONC-5 | concrete pad 5 in | SF | 9.25
IN-R19-W | batt insulation R19 wall | SF | 1.15
DR-HM-3070 | hollow metal door 3-0 x 7-0 | EA | 485
FL-VCT-12 | VCT floor tile 12x12 | SF | 3.60

Markups tab (example Markups List export)
Markup ID | Item code | Description | Qty | Unit | Page
M-101 | HW-CU-20 | copper hanger 3/4 | 42 | EA | A-201
M-102 | HW-CU-24 | copper hanger 1 | 18 | EA | A-201
M-103 | PP-PVC-4 | PVC pipe 4 in | 260 | LF | P-101
M-104 | PP-PVC-6 | PVC 6 inch | 95 | LF | P-101
M-105 | CT-CONC-5 | concrete pad 5 in | 120 | CY | S-102
M-106 | (blank) | batt insulation R19 wall | 1800 | SF | A-301
M-107 | IN-R19-W | batt insulation R19 wall | 1800 | SF | A-301
M-108 | DR-HM-3680 | hollow metal door 3-6 x 8-0 | 4 | EA | A-601
M-109 | FL-VCT-12 | VCT floor tile 12x12 | 0 | SF | A-401
M-110 | PP-PVC-4 | PVC pipe 4 in | 260 | LF | P-101
M-101 | HW-CU-20 | copper hanger 3/4 | 42 | EA | A-201
```

### Starter prompt

```
EXAMPLE DATA ONLY (not from a real project). Rates tab:
HW-CU-20 | copper hanger 3/4 | EA | 4.85
HW-CU-24 | copper hanger 1 | EA | 5.40
PP-PVC-4 | PVC pipe 4 in | LF | 12.75
PP-PVC-6 | PVC pipe 6 in | LF | 18.90
CT-CONC-5 | concrete pad 5 in | SF | 9.25
IN-R19-W | batt insulation R19 wall | SF | 1.15
DR-HM-3070 | hollow metal door 3-0 x 7-0 | EA | 485
FL-VCT-12 | VCT floor tile 12x12 | SF | 3.60
Markups tab (from Markups List export):
M-101 | HW-CU-20 | copper hanger 3/4 | 42 | EA | A-201
M-102 | HW-CU-24 | copper hanger 1 | 18 | EA | A-201
M-103 | PP-PVC-4 | PVC pipe 4 in | 260 | LF | P-101
M-104 | PP-PVC-6 | PVC 6 inch | 95 | LF | P-101
M-105 | CT-CONC-5 | concrete pad 5 in | 120 | CY | S-102
M-106 | (blank) | batt insulation R19 wall | 1800 | SF | A-301
M-107 | IN-R19-W | batt insulation R19 wall | 1800 | SF | A-301
M-108 | DR-HM-3680 | hollow metal door 3-6 x 8-0 | 4 | EA | A-601
M-109 | FL-VCT-12 | VCT floor tile 12x12 | 0 | SF | A-401
M-110 | PP-PVC-4 | PVC pipe 4 in | 260 | LF | P-101
M-101 | HW-CU-20 | copper hanger 3/4 | 42 | EA | A-201
Write Excel formulas (or a step-by-step Copilot plan) that normalize item codes, match each markup to a rate row, and flag: code in Markups missing from Rates, code in Rates unused on this takeoff, unit mismatch, blank codes, duplicate markup IDs, duplicate identical takeoff rows, zero or negative quantities, and quantities that look wrong for the unit (for example CY on an SF rate). Use only this example data; do not invent rates or decide a bid price.
```

### Expected output

```
Expected flags on this example (illustrative — verify every formula yourself)
M-105 CT-CONC-5 unit CY vs rate SF → UNIT MISMATCH (quantity may also be wrong for the intended unit)
M-106 blank item code → BLANK CODE (description looks like IN-R19-W; confirm before assigning)
M-108 DR-HM-3680 → CODE IN MARKUPS MISSING FROM RATES (rate book has DR-HM-3070 only)
M-109 qty 0 → QUANTITY SANITY (zero quantity)
M-110 and M-103 same code/qty/page → DUPLICATE TAKEOFF ROW (confirm whether two runs or a true double-count)
M-101 appears twice with same ID → DUPLICATE MARKUP ID
DR-HM-3070 and HW unused? HW-CU-20/24, PP-PVC-4/6, IN-R19-W, FL-VCT-12 used; DR-HM-3070 in Rates with no markup → CODE IN RATES UNUSED ON THIS TAKEOFF (informational; not an error by itself)

Suggested Excel logic (write against your own sheet layout)
- Normalize codes: TRIM + UPPER (or your company case rule) into CodeKey on both tabs.
- Match: XLOOKUP/VLOOKUP CodeKey from Markups into Rates for unit and rate.
- Flag MISSING RATE when CodeKey is non-blank and XLOOKUP returns no row.
- Flag UNUSED RATE when a Rates CodeKey has COUNTIF on Markups = 0 (review list, not a defect).
- Flag UNIT MISMATCH when Markups unit <> Rates unit (after your unit synonym map, if any).
- Flag BLANK CODE when item code is blank / NOT SHOWN.
- Flag DUPLICATE ID when COUNTIF(Markup ID) > 1; Flag DUPLICATE ROW when code+page+qty repeats and you have not marked intentional splits.
- Flag QTY SANITY when qty <= 0 or (optional) outside a min/max you typed for that unit.
Do not invent a unit rate or a bid price — only flag for human review.
```

## Check the result

- Every value, citation or quantity traces back to a source document.
- Missing information is marked as missing, not filled in.

## Limits and recovery

- The workbook only compares the Markups export with the rate table you entered. A missing code can be a typo, a new assembly or a stale rate book, so a flag is a question for the estimator, not a price. Unit rates, extensions and the bid price stay with the estimator under the company's estimating procedures.
- Check your organization’s data policy before sharing project files with third-party tools.

**Stop or switch when:** The source cannot be verified, permissions are missing, or the result contains unsupported facts.

## Frequently asked questions

How does AI help with this?

Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets: Claude or ChatGPT normalizes a Bluebeam Markups List CSV and a rate-database table into matching item-code columns; Copilot or Gemini flags codes on markups missing from rates, unused rate codes, unit mismatches, blank codes, duplicate markups and quantity sanity issues before anyone prices. A person still checks: Every flag against the PDF takeoff and the controlled rate book before pricing; unit rates, extensions and the bid price stay with the estimator.

How do I how do I check Bluebeam takeoff item codes against my rate database with AI before I price??

In Bluebeam Revu, finish the takeoff with a consistent Subject or custom column for the item code on every markup, then export the Markups List to CSV or Excel (code, description, measurement, unit, page, and any custom columns you use). Export or open the controlled rate database as a Rates tab: item code, description, unit, unit rate, and effective date or revision if you keep one. Use an AI account your company allows for bid data. Have Claude or ChatGPT read the Markups export into a Markups tab with one row per markup: item code as written, description, quantity, unit, page or sheet, and markup ID if present. It copies values exactly and writes NOT SHOWN or BLANK instead of guessing. Have it normalize codes the same way on the Rates tab (trim spaces, consistent case) without inventing codes. The full step list is above.

Does this use an AI agent or regular software?

It is labeled AI assists: AI drafts or analyzes. A person operates the tools, checks the work, and takes action.

What tools do I need?

Claude, ChatGPT, Bluebeam Revu, Microsoft Excel, Microsoft Copilot, Google Sheets, Gemini. Confirm license, version and cost with the vendor, and try it on a small non-confidential sample first.

Has this workflow been tested?

Workflow guide · not independently tested. Written from vendor documentation and practitioner use. Labels apply to the steps described here, not every feature of a product. Links were checked when the page was written.

## Where to go next

- [How do I get an AI first pass on quantity takeoffs, then check scale and scope?](https://aecagents.si/use-cases/ai-takeoff)
- [How do I draft remodel and home-builder estimates faster with AI estimating software?](https://aecagents.si/use-cases/residential-estimating)
- [How do I measure groundworks, drainage and concrete from civil drawings with AI takeoff?](https://aecagents.si/use-cases/civil-takeoff)
- [All Estimator workflows](https://aecagents.si/roles/estimator)
- [All Estimating and takeoff workflows](https://aecagents.si/tasks/estimating-takeoff)

## Evidence and maintenance

Written from vendor documentation and practitioner use. Labels apply to the steps described here, not every feature of a product. Links were checked when the page was written.

- [Claude (Anthropic) (vendor site)](https://www.anthropic.com/claude)
- [ChatGPT (vendor site)](https://chatgpt.com/)
- [Bluebeam Revu (vendor site)](https://www.bluebeam.com/)
- [Microsoft Excel (vendor site)](https://www.microsoft.com/microsoft-365/excel)
- [Microsoft Copilot (vendor site)](https://www.microsoft.com/microsoft-365/copilot)
- [Google Sheets (vendor site)](https://workspace.google.com/products/sheets/)
- [Gemini (vendor site)](https://gemini.google.com/)

## Put it to work

Start with a small sample and keep the original record open while you verify the result.

## Know what does the work.

Agent executes
:   An AI agent calls connected tools to carry out bounded actions. You set permissions and review the result.

AI assists
:   AI drafts or analyzes. A person operates the tools, checks the work, and takes action.

Conventional automation
:   Rules or specialist software perform the task. No AI agent is required.
