KoldOps
June 11, 2026 · KoldOps

Submittal Substrates for Commercial GCs: From "Lost in Procore" to "Approved with Citations in 60 Seconds"

A commercial GC processes hundreds of submittals per mid-sized project. The review chain runs sub → GC → architect → engineer → owner. Most submittals get lost in the loop. A submittal substrate makes the chain queryable, the conditions extractable, and the status defensible.

A commercial general contractor processes 400 to 1,500 submittals on a mid-sized project. Each one travels a review chain (sub → GC → architect → engineer → owner) and returns with a status, a markup, and often "approved as noted" conditions that constrain installation. Most submittals get returned, filed, and never reasoned across. A submittal substrate makes the chain queryable, the conditions extractable, the status defensible, and the long-pole submittals visible weeks before they delay the schedule. This piece is the depth treatment for commercial GCs and specialty contractors.

If you have not read the parent pillar yet, start there: Why Construction AI Projects Stall.

Why submittals are the highest-pain document class

Submittals have four properties that combine to make them the most expensive document type to manage poorly on a commercial project.

  1. Volume is high. Hundreds per project, occasionally thousands on complex industrial or institutional work.
  2. The review chain is long. Sub prepares. GC reviews and forwards. Architect reviews. Sometimes the engineer of record reviews. Sometimes the owner reviews. The chain has 3 to 5 hops and each hop adds 5 to 15 business days.
  3. Revisions are common. A submittal often returns "revise and resubmit" once or twice before achieving "approved" or "approved as noted." Each revision restarts a portion of the chain.
  4. "Approved as noted" conditions are constraints. The architect writes a note. "Approved as noted: provide stainless fasteners in lieu of galvanized at all exterior conditions." If that note is missed during installation, the work gets rejected at inspection and torn out.

The combination is brutal. A mid-sized project has a submittal log with 800 entries, each at one of 12 status values, with conditions hidden in PDF markups, in 4 different systems (the GC's Procore, the architect's Newforma, the engineer's shared drive, the owner's portal). The project manager spends 4 to 8 hours per week chasing submittal status, surfacing long-poles, and explaining to the field why a particular installation has a condition the field forgot about.

What a submittal substrate looks like

Each submittal is one markdown document in the substrate. The YAML front-matter captures the structured status and references. The body captures the substantive content. Example:

---
submittal_number: 05500-001
spec_section: 05500
trade: structural-steel
title: connection design calculations
csi_division: 05
status: approved-as-noted
status_date: 2026-05-22
review_chain:
  - role: sub
    party: example-steel-co
    sent_date: 2026-04-18
  - role: gc
    party: example-gc
    received_date: 2026-04-19
    forwarded_date: 2026-04-22
  - role: architect
    party: example-architect
    received_date: 2026-04-22
    returned_date: 2026-05-15
    disposition: revise-and-resubmit
  - role: sub
    party: example-steel-co
    revision: rev-1
    sent_date: 2026-05-18
  - role: gc
    party: example-gc
    received_date: 2026-05-19
    forwarded_date: 2026-05-19
  - role: architect
    party: example-architect
    received_date: 2026-05-19
    returned_date: 2026-05-22
    disposition: approved-as-noted
conditions:
  - id: cond-001
    text: provide moment-connection details for grid line C-3 at L4 prior to fabrication release
    installation_impact: high
    addressed_in: submittal 05500-001-rev2
  - id: cond-002
    text: confirm bolt grade A325 at all field connections; A490 not approved
    installation_impact: high
    addressed_in: field-implementation
referenced_drawings:
  - sheet: S-201
    revision: rev-3
  - sheet: S-202
    revision: rev-3
referenced_rfis:
  - rfi-047
  - rfi-051
related_submittals:
  - 05500-002
  - 05500-003
schedule_constraint:
  required_by: 2026-05-30
  reason: fabrication-release-window
  actual_completion: 2026-05-22
  variance_days: -8
---

# Submittal narrative

[Sub's submittal cover letter and table of contents]

# Architect's markup summary

The architect approved the submittal subject to the conditions
listed in front-matter. Condition 1 was satisfied in revision 2
of this submittal package. Condition 2 is a field-implementation
requirement that has been flagged to the field superintendent and
included in the next pre-installation meeting agenda.

# Field-implementation notes

[Field super's notes on how condition 2 is being implemented]

The YAML is what the agent queries against. The markdown body is what the agent reads when context is required. The same document serves the submittal log, the conditions report, the long-pole tracking, and the audit trail.

The queries that become possible

Once the submittal substrate is populated for a project, queries that were previously multi-hour binder hunts become single queries. Examples:

  • "List every submittal currently with the architect for more than 14 days." Status query against the substrate, surfaces the long-poles before they delay the schedule.
  • "For every submittal with status approved-as-noted, list the conditions and their installation status." The conditions list that was previously buried in PDF markups becomes a project-wide checklist. The field super has one place to verify nothing is missed.
  • "Which submittals are linked to RFI 047, and what is the current status of each?" The cross-reference network becomes navigable. An open RFI's downstream impact is visible.
  • "For pay app 8, generate the schedule of values backup with the submittal-approval evidence for each line item that requires it." The pay-app substrate (a separate but related buildout) pulls from the submittal substrate to assemble the supporting documentation automatically.
  • "For closeout, list every submittal in division 23 that is required for the O&M manual and flag any that are missing or out of date." Closeout readiness becomes a substrate query, not a 3-week binder review.
  • "For the next weekly OAC meeting, summarize submittal status changes in the last 7 days, flagged by long-pole status and by trade impact." Replaces the project engineer's manual weekly report assembly.

Each of these queries existed as a real project-management need before the substrate. The substrate did not invent the need. It made the answer cheap and consistent.

The buildout sequence

KoldOps installs submittal substrates as fixed-scope engagements anchored to one pilot project. The project should be in the middle 50 to 70 percent of its submittal-processing phase (most of the substrate value comes from the active submittal volume, not from already-closed packages). The sequence:

  1. Business System Review (2 weeks). Map the current submittal flow. Where do submittals originate (Procore, Newforma, email, sub's portal), where do they land, what status states are in use, what the project's existing submittal log looks like.
  2. Substrate buildout (4 to 6 weeks). Stand up the ingestion pipeline that mirrors Procore (or whichever project-management system) into markdown with YAML front-matter. Backfill the current open submittals plus 3 to 6 months of closed history for context. Set up the conditions extractor that pulls "approved as noted" text from architect markups into structured front-matter.
  3. Pilot against real project workflows (4 weeks). The project engineer uses the substrate for the weekly OAC meeting submittal report. The field super uses the conditions list at pre-installation meetings. The PM uses the long-pole query for schedule reviews.
  4. Expansion to additional projects. The GC's team runs the buildout pattern on subsequent projects with KoldOps as advisor. The substrate template stabilizes after the first 2 to 3 projects.

Total time from contract to a production substrate on the pilot project: 6 to 10 weeks. Project-management time saved on the covered submittal workflow: typically 4 to 8 hours per week on a mid-sized project. The conditions-tracking value is harder to quantify but commonly prevents at least one inspection-driven tear-out per project.

Where the substrate gets its data

The substrate is not a replacement for Procore, Newforma, ACC, e-Builder, or whichever project-management system is in use. It is a mirror plus an enrichment layer. The ingestion sources, in order of typical importance:

  • The project-management system API. Procore, ACC, Newforma, e-Builder, and similar systems all expose submittal data via API. The substrate ingestion pulls the structured fields directly and extracts the unstructured content (markups, condition text) from the attached PDFs.
  • Email. A meaningful fraction of submittal review still happens in email, especially on smaller projects or with subs whose workflow is email-native. The substrate ingestion includes an inbox watcher for the project email address.
  • The architect's transmittals. Where the architect uses Newforma and the GC uses Procore, the transmittals arrive as emails or downloads. The substrate ingestion handles either.
  • The owner's portal. On institutional and public work, the owner often runs their own portal with parallel submittal tracking. The substrate ingestion pulls from that as a third source where applicable.

The substrate reconciles the sources, flags discrepancies (Procore says "approved," the architect's transmittal says "approved as noted," the owner's portal shows no status update), and produces one canonical record per submittal that the agent and the project team query against.

Frequently asked

We already have Procore. Why do we need a substrate?

Procore is the project management system. It is excellent at workflow and at single-document storage and retrieval. It is not, by itself, a substrate the agent can reason across. Procore's API returns submittals and their metadata; it does not extract "approved as noted" conditions, it does not maintain the cross-document network linking submittals to RFIs to drawings, and its native AI features are limited to summarization of single documents. The substrate sits alongside Procore, pulls from its API, and provides the cross-document reasoning surface. Procore stays.

What about the architect's Newforma and the owner's portal?

The substrate ingests from all three. The reconciliation step is where the value compounds. A discrepancy that would otherwise be discovered weeks later (during pay-app review or at closeout) shows up the morning after it appears, and the project engineer addresses it before it grows.

Can the conditions extractor reliably parse architect markups?

Yes for typed text and most stamps. The conditions extractor uses a combination of OCR plus structured-output extraction with an LLM. Accuracy on standard "approved as noted" formats is high (95%+). Handwritten margin notes are extracted with lower confidence and flagged for human verification. The substrate reports its own confidence so low-quality extractions go to a review queue rather than silently entering the conditions list.

Will the substrate be defensible in dispute or claim?

Yes. The substrate maintains a complete audit trail of every submittal's status changes, with named approvers, dates, and the underlying source documents preserved in object storage. The reconstructible timeline is more defensible than what most projects produce today, where the truth has to be assembled from three systems by an analyst.

Can this be applied to RFIs and change orders as well?

Yes. The submittal substrate is the highest-pain document class, but the same pattern applies to RFIs, change orders, daily reports, and inspections. Once the submittal substrate is producing value on the pilot project, expansion to RFIs is the standard next step (RFIs share the review-chain structure and benefit from the same network reasoning).

What's next

If you are a commercial or industrial GC with a project actively processing submittals, run the substrate audit against your submittal flow. 15 minutes. The score will tell you how much project-management time is wasted on retrieval that should be one query.

If the audit confirms a substrate gap, the next step is a Business System Review. Fixed scope, written report, no further commitment. We map your submittal flow across Procore, Newforma, and the project email, score the substrate as it stands, identify the highest-ROI pilot project, and hand back a prioritized buildout plan.

For the broad framing on construction-specific substrate work, see Why Construction AI Projects Stall. For the substrate philosophy, see Decision-State, Airlocked to Code-State.