How do I check an anchor rod survey against the anchor rod plan with AI before steel erection?
Before steel shows up, the surveyor shoots every anchor rod and the field team has to compare those shots with the anchor rod plan: rod count per column, where the group center landed versus the design location, whether any single rod drifted out of its pattern, and whether projection above concrete matches the plan. Done by eye on a marked-up print, the misses are a group that is shifted as a whole, a design offset from grid that gets read as an error (or an error read as the design offset), a missing rod, and short projection that only shows up when the nut will not thread. Have Claude or ChatGPT read the survey file and the anchor rod plan schedule into matching tables, and have Copilot in Excel or Gemini in Google Sheets compute the offsets against tolerances you type from your own contract documents. Whether a rod is acceptable, and what the fix is, stays with the engineer of record and the erector.
Superintendent · Construction · Claude · ChatGPT · Microsoft Excel · Microsoft Copilot · Google Sheets · Gemini
Content updated · 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 reads the anchor rod survey and the anchor rod plan schedule into matching tables and proposes column matches for unclear shots; Copilot or Gemini computes rod counts, measured group centers against design centers (including design offsets from grid), each rod's deviation from its pattern and projection above concrete, and flags anything outside the tolerances you typed, unsurveyed columns and survey points with no design column. Before steel shows up, the surveyor shoots every anchor rod and the field team has to compare those shots with the anchor rod plan: rod count per column, where the group center landed versus the design location, whether any single rod drifted out of its pattern, and whether projection above concrete matches the plan. Done by eye on a marked-up print, the misses are a group that is shifted as a whole, a design offset from grid that gets read as an error (or an error read as the design offset), a missing rod, and short projection that only shows up when the nut will not thread. Have Claude or ChatGPT read the survey file and the anchor rod plan schedule into matching tables, and have Copilot in Excel or Gemini in Google Sheets compute the offsets against tolerances you type from your own contract documents. Whether a rod is acceptable, and what the fix is, stays with the engineer of record and the erector. A person still checks: every flag against the survey file and the current anchor rod plan revision before steel ships; tolerances come from your contract documents, and acceptance and fixes stay with the engineer of record and the erector.
AI tie-in
Tool: Claude or ChatGPT, then Copilot in Excel or Gemini in Google Sheets
Claude or ChatGPT reads the anchor rod survey and the anchor rod plan schedule into matching tables and proposes column matches for unclear shots; Copilot or Gemini computes rod counts, measured group centers against design centers (including design offsets from grid), each rod's deviation from its pattern and projection above concrete, and flags anything outside the tolerances you typed, unsurveyed columns and survey points with no design column.
Prompt 1
Read this anchor rod survey [upload CSV or PDF] and this anchor rod plan schedule [paste: column mark, design center offset X and Y from grid, rod count, rod pattern, required projection]. Build a Survey table with one row per rod: column mark as written, rod number, X, Y, top-of-rod elevation, top-of-concrete elevation. Copy values exactly and write NOT SHOWN instead of guessing, and propose a column match with a confidence word (clear, likely, unsure) for any unclear shot. Do not supply tolerances from memory and do not decide whether a rod is acceptable.
Prompt 2
EXAMPLE DATA ONLY. Here are my Design, Tolerances and Survey tabs [paste the example rows]. Write Excel formulas (or a step-by-step Copilot plan) that count rods per column, compute the measured group center as the average rod X and Y, the center offset from the design center including any design offset, each rod's deviation from its pattern position about the measured center, and projection in inches, and flag anything outside my tolerances, columns with no survey, survey points with no design column, and rod-count mismatches (skip geometry flags for those). Use only my data and tolerances.
Human check: Every flag against the survey file and the current anchor rod plan revision before steel ships; tolerances come from your contract documents, and acceptance and fixes stay with the engineer of record and the erector.
The problem
Check an anchor rod survey against the anchor rod plan with AI before steel erection. This is a common, time-consuming task for a superintendent.
What this workflow does
Before steel shows up, the surveyor shoots every anchor rod and the field team has to compare those shots with the anchor rod plan: rod count per column, where the group center landed versus the design location, whether any single rod drifted out of its pattern, and whether projection above concrete matches the plan. Done by eye on a marked-up print, the misses are a group that is shifted as a whole, a design offset from grid that gets read as an error (or an error read as the design offset), a missing rod, and short projection that only shows up when the nut will not thread. Have Claude or ChatGPT read the survey file and the anchor rod plan schedule into matching tables, and have Copilot in Excel or Gemini in Google Sheets compute the offsets against tolerances you type from your own contract documents. Whether a rod is acceptable, and what the fix is, stays with the engineer of record and the erector.
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 survey you entered with the plan and tolerances you typed. Survey error, a shot on the wrong rod, or a plan revision the field never got can all create false flags, and a clean row says nothing about rod embedment, grade, or damaged threads. Acceptance, field fixes and any redesign stay with the structural engineer of record and the erector.
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
Follow the steps
- From the anchor rod plan, build a Design tab with one row per column: column mark, design group center offset from the grid intersection in X and Y (zero when the group is centered on grid), rod count, rod pattern (rod positions relative to the group center) and required projection above top of concrete.
- Type a Tolerances tab yourself from the project specifications and your own licensed copy of the standard the contract references: group center tolerance, rod-to-pattern tolerance and projection tolerance. The AI must not fill these in from memory.
- Get the survey file for the anchor rods (point number, column mark or description, X and Y measured from the same grid lines the plan uses, top-of-rod elevation, and the top-of-concrete shot at each pier). Use an AI account your company allows for project data.
- Have Claude or ChatGPT read the survey into a Survey tab with one row per rod: column mark as written, rod number within the group, X, Y, top-of-rod elevation, and top-of-concrete elevation. It copies values exactly, writes NOT SHOWN instead of guessing, and proposes a column match for any shot whose description is unclear. You confirm the matches.
- Have Copilot in Excel or Gemini in Google Sheets compute, per column: surveyed rod count versus design count, measured group center (average of rod X and Y) and its distance from the design center including any design offset, each rod's distance from its pattern position about the measured center, and projection (top of rod minus top of concrete, in inches) versus required. Flag anything outside your tolerances, columns with no survey, and survey points with no design column.
- Walk the flagged list with the superintendent and the erector before the steel ships, send anything that needs a fix to the engineer of record, and keep the comparison with the survey as the pre-erection record.
Try a small example
EXAMPLE DATA ONLY — fictional columns, shots and placeholder tolerances for practice, not from a real project, a published trial or any standard. Type your own tolerances from your contract documents. Paste the Sample input into Copilot or Gemini with the Starter prompt, then compare your flags to Expected output.
Sample input
Design tab (example; X, Y in inches from the grid intersection) Column | Design center X | Design center Y | Rods | Pattern | Required projection (in) A-1 | 0 | 0 | 4 | square, rods at +/-3 in | 7.00 A-2 | 0 | 0 | 4 | square, rods at +/-3 in | 7.00 B-1 | 0 | 0 | 4 | square, rods at +/-3 in | 7.00 B-2 | +2.00 | 0 | 4 | square, rods at +/-3 in | 7.00 C-1 | 0 | 0 | 4 | square, rods at +/-3 in | 7.00 C-2 | 0 | 0 | 6 | X +/-3 in, Y -6/0/+6 in | 9.00 Tolerances tab (placeholders I typed, NOT from any standard) Group center 0.40 in | Rod to pattern 0.20 in | Projection +/-0.75 in Survey tab (example; rods listed SW, SE, NE, NW; elevations in feet) Column | Rod | X | Y | Top of rod | Top of concrete A-1 | 1 | -2.95 | -3.05 | 100.585 | 100.00 A-1 | 2 | 3.05 | -2.95 | 100.580 | 100.00 A-1 | 3 | 3.00 | 3.05 | 100.585 | 100.00 A-1 | 4 | -3.00 | 2.95 | 100.580 | 100.00 A-2 | 1 | -2.45 | -2.80 | 100.585 | 100.00 A-2 | 2 | 3.55 | -2.85 | 100.585 | 100.00 A-2 | 3 | 3.50 | 3.20 | 100.590 | 100.00 A-2 | 4 | -2.50 | 3.15 | 100.585 | 100.00 B-1 | 1 | -3.00 | -3.00 | 100.585 | 100.00 B-1 | 2 | 3.00 | -3.00 | 100.585 | 100.00 B-1 | 3 | 3.35 | 3.00 | 100.585 | 100.00 B-1 | 4 | -3.00 | 3.00 | 100.585 | 100.00 B-2 | 1 | -1.00 | -3.00 | 100.520 | 100.00 B-2 | 2 | 5.00 | -3.00 | 100.515 | 100.00 B-2 | 3 | 5.05 | 3.00 | 100.520 | 100.00 B-2 | 4 | -1.00 | 3.05 | 100.520 | 100.00 C-2 | 1 | -3 | -6 | 100.700 | 99.95 C-2 | 2 | 3 | -6 | 100.700 | 99.95 C-2 | 3 | 3 | 0 | 100.705 | 99.95 C-2 | 4 | -3 | 0 | 100.700 | 99.95 C-2 | 5 | -3 | 6 | 100.700 | 99.95 D-3 | 1 | -3 | -3 | 100.585 | 100.00 D-3 | 2 | 3 | -3 | 100.585 | 100.00 D-3 | 3 | 3 | 3 | 100.585 | 100.00 D-3 | 4 | -3 | 3 | 100.585 | 100.00
Starter prompt
EXAMPLE DATA ONLY (not from a real project). Design tab: A-1 | center 0,0 | 4 rods | 6 in square pattern | projection 7.00 in; A-2, B-1, C-1 the same; B-2 | center +2.00 in X, 0 Y | 4 rods | 6 in square | 7.00 in; C-2 | center 0,0 | 6 rods | 6 in by 12 in pattern | 9.00 in. Tolerances tab (placeholder numbers I typed, not from any standard): group center 0.40 in, rod-to-pattern 0.20 in, projection plus or minus 0.75 in. Survey tab: one row per rod with X, Y in inches from the grid intersection and top-of-rod and top-of-concrete elevations in feet. Write Excel formulas (or a step-by-step Copilot plan) that compute rod count, measured group center, center offset from the design center including the design offset, each rod's deviation from its pattern position, and projection in inches, and flag anything outside my tolerances, plus columns with no survey and survey points with no design row. Use only my data; do not decide whether a rod is acceptable.
Expected output
Expected flags on this example (illustrative — verify every formula yourself)
A-1: center (0.025, 0.000), offset 0.03 in; worst rod 0.06 in; projection 6.96 to 7.02 in → no flag
A-2: center (0.525, 0.175), offset 0.55 in > 0.40 → GROUP CENTER OFFSET (whole group shifted; rods are fine relative to each other, 0.04 in)
B-1: center (0.088, 0.000), offset 0.09 in; rod 3 (NE) is 0.26 in from its pattern position > 0.20 → ROD OUT OF PATTERN
B-2: center (2.013, 0.012) vs design (+2.00, 0), offset 0.02 in → no center flag. If the +2.00 in design offset is left off the Design tab, this column falsely shows a 2.01 in offset, which is the classic mistake. Projection (100.515 to 100.520 − 100.00) × 12 = 6.18 to 6.24 in vs 7.00 → SHORT PROJECTION on all four rods (0.76 to 0.82 in short)
C-1: on the plan, no survey rows → NOT SURVEYED
C-2: 5 rods surveyed vs 6 on the plan → ROD COUNT MISMATCH (the NE rod is missing from the survey or the field). Do not trust center or pattern checks for this group until the missing rod is resolved; with one rod missing the average center moves to (−0.60, −1.20) and every rod looks 1.34 in off. Projection 9.00 to 9.06 in → OK
D-3: survey rows with no Design row → NO DESIGN COLUMN (wrong label, or a plan revision the sheet does not have)
Suggested Excel logic (write against your own sheet layout)
- Count: COUNTIF(Survey[Column], Design[Column]) vs Design[Rods].
- Measured center: AVERAGEIF(Survey[Column], col, Survey[X]) and the same for Y.
- Center offset: SQRT((MeasX − DesignX)^2 + (MeasY − DesignY)^2), flag when > your group center tolerance.
- Rod deviation: SQRT(((X − MeasX) − PatternX)^2 + ((Y − MeasY) − PatternY)^2) using a Pattern tab keyed on column and rod number; flag when > your rod tolerance.
- Projection (in): (TopOfRod − TopOfConcrete) × 12; flag when ABS(projection − required) > your projection tolerance.
- Skip center and pattern flags when the count check fails, and say so in the row.
Same check as a short Python script (our own code; reads two CSVs you export)
import csv, math
from collections import defaultdict
TOL_CENTER, TOL_ROD, TOL_PROJ = 0.40, 0.20, 0.75 # type yours from your contract documents
design = {r["Column"]: r for r in csv.DictReader(open("design.csv"))}
pattern = defaultdict(dict) # pattern.csv: Column,Rod,PX,PY
for r in csv.DictReader(open("pattern.csv")):
pattern[r["Column"]][r["Rod"]] = (float(r["PX"]), float(r["PY"]))
rods = defaultdict(list)
for r in csv.DictReader(open("survey.csv")):
rods[r["Column"]].append(r)
for col in sorted(set(design) | set(rods)):
if col not in design: print(col, "NO DESIGN COLUMN"); continue
if col not in rods: print(col, "NOT SURVEYED"); continue
d, rs = design[col], rods[col]
for r in rs:
proj = (float(r["TopRod"]) - float(r["TopConc"])) * 12
if abs(proj - float(d["Proj"])) > TOL_PROJ: print(col, "rod", r["Rod"], f"PROJECTION {proj:.2f} in")
if len(rs) != int(d["Rods"]): print(col, f"ROD COUNT {len(rs)} vs {d['Rods']}, skip geometry"); continue
mx = sum(float(r["X"]) for r in rs) / len(rs); my = sum(float(r["Y"]) for r in rs) / len(rs)
off = math.hypot(mx - float(d["CX"]), my - float(d["CY"]))
if off > TOL_CENTER: print(col, f"GROUP CENTER OFFSET {off:.2f} in")
for r in rs:
px, py = pattern[col][r["Rod"]]
dev = math.hypot(float(r["X"]) - mx - px, float(r["Y"]) - my - py)
if dev > TOL_ROD: print(col, "rod", r["Rod"], f"OUT OF PATTERN {dev:.2f} in")
Do not mark any rod accepted or rejected — 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 survey you entered with the plan and tolerances you typed. Survey error, a shot on the wrong rod, or a plan revision the field never got can all create false flags, and a clean row says nothing about rod embedment, grade, or damaged threads. Acceptance, field fixes and any redesign stay with the structural engineer of record and the erector.
- 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 reads the anchor rod survey and the anchor rod plan schedule into matching tables and proposes column matches for unclear shots; Copilot or Gemini computes rod counts, measured group centers against design centers (including design offsets from grid), each rod's deviation from its pattern and projection above concrete, and flags anything outside the tolerances you typed, unsurveyed columns and survey points with no design column. A person still checks: Every flag against the survey file and the current anchor rod plan revision before steel ships; tolerances come from your contract documents, and acceptance and fixes stay with the engineer of record and the erector.
How do I how do I check an anchor rod survey against the anchor rod plan with AI before steel erection??
From the anchor rod plan, build a Design tab with one row per column: column mark, design group center offset from the grid intersection in X and Y (zero when the group is centered on grid), rod count, rod pattern (rod positions relative to the group center) and required projection above top of concrete. Type a Tolerances tab yourself from the project specifications and your own licensed copy of the standard the contract references: group center tolerance, rod-to-pattern tolerance and projection tolerance. The AI must not fill these in from memory. Get the survey file for the anchor rods (point number, column mark or description, X and Y measured from the same grid lines the plan uses, top-of-rod elevation, and the top-of-concrete shot at each pier). Use an AI account your company allows for project data. 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, 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.
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.