# OCR Construction Documents: Pay Apps, RFIs, Daily Logs

- Author: Schema Law (https://www.schemalaw.com/)
- Published: 2026-09-11T11:06:04Z
- Updated: 2026-10-11T19:22:20Z
- Category: Practice areas
- Canonical: https://www.schemalaw.com/blog/ocr-construction-documents

> How to OCR construction documents in a claim: pay applications as tables, change orders and RFIs by number, daily logs, drawings, and a delay chronology.

To OCR construction documents for a claim, group the project records by series before converting: pay applications, change orders, RFIs, submittals, daily logs, drawings and specifications. Export the billing pages and logs as tables, make the numbered correspondence searchable by its number, and type the handwritten site records from the image.

The examples use an invented project. Kestrel Builders was general contractor on a 48-unit apartment building for Marrow Street Lofts LLC. The job finished eleven weeks late, each side blames the other, and the project files have arrived as 9,000 scanned pages on a drive.

Permit dates and billing dates have to be read as one set. Search the converted file for the building permit, each change order, and the certificate of occupancy, and confirm those dates on the scan. A mechanic's lien claim often uses the same dates, including substantial completion. If a daily log cites a zoning ordinance or a variance, flag that page for the construction claim.

## What records does a construction dispute pull out of the job trailer?

A construction dispute pulls out the records that show what was promised, what was built, when, and what was paid. Those are the contract and its drawings and specifications, the schedule, the payment applications, the change orders, the RFI and submittal files, meeting minutes, daily logs, photos and correspondence.

Project paper is organized by series. Each series has its own numbering, its own log and its own form, and that is the handle to sort a scanned production by.

| Series | How it is numbered | Convert to | What you will ask of it |
| --- | --- | --- | --- |
| Payment applications with schedule of values | Application number and period-end date | Spreadsheet | What was billed and certified, line by line, month by month |
| Change orders and change order requests | Sequential number | Searchable PDF, plus a log in a spreadsheet | What changed, for how much, for how many days |
| Requests for information | Sequential number | Searchable PDF, plus a log | Who asked what, when, and when the answer came |
| Submittals and transmittals | Number, sometimes tied to a specification section | Searchable PDF, plus a log | When each was sent, returned, and with what action |
| Meeting minutes | Meeting number and date | Searchable PDF | What was said to be late, and by whom |
| Daily logs and field reports | Date | Typed transcription or spreadsheet | Weather, crews on site, work done, problems |
| Schedules and updates | Data date | Searchable PDF; the table if you need dates | Planned against actual |
| Drawings | Sheet number and revision | Searchable PDF of title blocks and notes | Which revision was current on a given day |
| Specifications (project manual) | Section number | Searchable PDF | What the contract required |
| Letters, notices and emails | Date | Searchable PDF | Notice, and each side's position at the time |

Before converting anything, list what you received against that table and count the gaps. A run of RFIs numbered 1 to 112 with 61 and 62 absent is a question for the other side, and it is easier to ask before you have built on the set.

The drawings that were bound into the contract as exhibits are a contract question first. The post on [OCR for contract exhibits](https://www.schemalaw.com/blog/ocr-contract-exhibits) covers drawings, forms and attachments in an agreement.

## Payment applications and schedules of values as tables

A payment application is a cover sheet with a table behind it, and the table is what you convert. The schedule of values lists each portion of the work with its value, what was billed before, what is billed this period and what remains. Export it to a spreadsheet and test every row's arithmetic.

On projects using American Institute of Architects forms, the pair is G702 and G703. The institute's [summary of G702, Application and Certificate for Payment](https://help.aiacontracts.com/hc/en-us/articles/1500009387461-Summary-G702-1992-Application-and-Certificate-for-Payment) says the forms "require the contractor to show the status of the contract sum to date, including the total dollar amount of the work completed and stored to date, the amount of retainage (if any), the total of previous payments, a summary of change orders, and the amount of current payment requested." Its [summary of G703, Continuation Sheet](https://help.aiacontracts.com/hc/en-us/articles/1500009387861) says that document "breaks the contract sum into portions of the work in accordance with a schedule of values prepared by the contractor", and notes that the institute "does not publish a standard schedule of values form". Other owners, lenders and public agencies use their own forms, so read the column headings on the pages you have.

### Converting one application

1. Pull the application out of the production as its own file: cover sheet, continuation sheets, and any lien waivers or backup behind them.
2. Write down the totals printed at the foot of the continuation sheet.
3. Convert and export to Excel. Schema Law's Excel export puts each table on its own sheet. Excel and CSV are part of every plan, and the [pricing page](https://www.schemalaw.com/pricing) lists how many pages each plan converts.
4. Stack the continuation sheets into one table and remove repeated headings and "continued" lines.
5. Add two columns: the application number and the period-end date.
6. Test the rows and the totals.

### The tests

Take one line from Kestrel's application 9.

| Column on the form | Structural steel |
| --- | --- |
| Scheduled value | 612,000 |
| Work completed, previous applications | 428,400 |
| Work completed, this period | 91,800 |
| Materials stored | 0 |
| Total completed and stored to date | 520,200 |
| Percent complete | 85% |
| Balance to finish | 91,800 |
| Retainage at 5% | 26,010 |

Four formulas test it: previous plus this period plus stored should equal the total (428,400 + 91,800 + 0 = 520,200); the total divided by the scheduled value should equal the percentage (85%); scheduled value less the total should equal the balance (91,800); and the total times the retainage rate should equal retainage (26,010). A row that fails any of the four has a misread digit, or an error the contractor made, and the page image tells you which.

Then test the columns: each column's sum should equal the printed total, and the total on the continuation sheet should equal the matching figure on the cover sheet.

### Across the months

With every application in one workbook, a further test becomes possible. Each line's "previous applications" figure in application 9 should equal its "total completed" figure in application 8. Where it does not, either a page was misread or the contractor rebilled or adjusted a line, and the second possibility is something the lawyer will want to see. Sort by line and then by application number and add a column for the difference.

How a converter finds the columns on a ruled form, and what makes them merge, is explained in the guide to [converting a scanned PDF to Excel](https://www.schemalaw.com/blog/scanned-pdf-to-excel#how-does-ocr-find-a-table-on-a-scanned-page).

## Change orders, RFIs and submittal logs

Change orders, RFIs and submittals are numbered series, so the number is how you find them. Convert each series to searchable PDF, keep one file per numbered item or bookmark each one, and convert the log that tracks the series to a spreadsheet so you can sort it by date.

### Change orders

The institute's [summary of G701, Change Order](https://help.aiacontracts.com/hc/en-us/articles/1500009384382-summary-g701-2017-change-order) describes that form as one "used for implementing changes in the work agreed to by the owner, contractor, and architect", and says a completed one "indicates agreement upon all terms of the change, including any changes in the contract sum (or guaranteed maximum price) and contract time." Whatever form your project used, capture from each change order its number, date, the description, the dollar change, the change in days, the revised completion date if stated, and who signed. Days and dollars go into blanks on the form and may be written by hand, so read them from the image.

A change order's backup can run longer than the order: a subcontractor's quote, marked-up drawings, labor and material breakdowns. Keep the backup with its order and note the page range.

### Requests for information

The institute's [summary of G716, Request for Information](https://help.aiacontracts.com/hc/en-us/articles/1500009444782-Summary-G716-2004-Request-for-Information-RFI) says the form "asks the requesting party to list the relevant drawing, specification or submittal reviewed in attempting to find the information", and that "Neither the request nor the response received provides authorization for work that increases the cost or time of the project." For a delay claim the dates on an RFI carry the weight: date sent, date a reply was requested, date answered.

### Searching for a number

A search for an RFI by number can fail for reasons that have nothing to do with recognition quality. The same item may be written "RFI 47", "RFI-047", "RFI #47" and "Request for Information No. 47" in different documents. Search for each form. Then search for the subject, such as "embed plate" or the grid line, because meeting minutes and letters may refer to the problem without the number.

### The logs

RFI logs, submittal logs and change order logs are tables printed from project management software or kept in a spreadsheet and then printed. Clean print gives recognition its best chance, with two cautions. Long description cells wrap onto several lines, which can split one entry across rows. And a wide log printed small on a sideways page packs many narrow columns together, where dates sit close enough to merge. After export, check that the number of rows equals the highest item number, less any gaps you can see on the page.

A log is the party's own summary. Where a log date and the date on the document disagree, record both and cite the document.

## Can OCR read superintendent daily logs and field reports?

Partly. OCR reads the printed parts of a daily log form and any log that was typed. It is weaker on the handwriting that fills a paper log, and how it does on one superintendent's hand is something you learn only by testing those pages. Plan to type the entries that matter from the image.

A daily log is the closest thing the project has to a diary. The form asks for things such as the date, the weather, each trade on site with a headcount, equipment, deliveries, visitors, work performed and problems or delays. Field reports from an architect, engineer or testing agency follow a similar pattern with observations in place of headcounts.

### What to pull from each day

| Field | Why it matters to a delay claim |
| --- | --- |
| Date and day of week | The spine of the chronology |
| Weather and temperature | Supports or undercuts a weather delay |
| Trades on site and headcount | Shows who was working and who had left |
| Areas worked | Ties activity to the schedule |
| Deliveries | Material that arrived late shows up here first |
| Inspections and visitors | Who saw the condition, and when |
| Problems noted | The superintendent's words at the time, before there was a dispute |
| Signature | Who vouches for the entry |

### A workable method

1. Scan logs in date order, both sides, and confirm no dates are missing against a calendar.
2. Run OCR on the full set to produce searchable PDF. Even partial text helps: printed dates and trade names on the form become findable.
3. Mark the date range in dispute. For Kestrel that is 2 March to 17 April 2026.
4. Within that range, type each day's entry into a spreadsheet, one row per day, with the fields from the table and the page number.
5. Outside the range, rely on search and spot reading.
6. Write unclear words as you see them with a marker such as "[illegible]", and never guess a headcount.

The post on [OCR for handwritten notes](https://www.schemalaw.com/blog/ocr-handwritten-notes) explains what handwriting recognition can and cannot do.

### Logs kept in an app

Where a contractor kept daily reports in software and printed them for production, the pages are typed, which is the kind of page recognition handles best, and each may carry photos with captions. Check whether the printout shows when the entry was created or last edited, and ask for that information if it does not.

### Certified payroll and crew hours

On a public job, payroll records sit beside the daily logs. The Department of Labor's page on [Form WH-347](https://www.dol.gov/agencies/whd/forms/wh347) describes it as an optional form that contractors and subcontractors on federal or federally assisted construction contracts can use to submit certified weekly payrolls, and says covered contractors must submit payroll information weekly. A certified payroll is a table of workers, classifications, daily hours and rates, so it exports to a spreadsheet, and the headcounts on it can be set against the headcounts in the daily log for the same week. Turning crew timesheets and payroll into rows of hours is covered in the post on [timesheets to Excel](https://www.schemalaw.com/blog/timesheets-to-excel).

## Drawing title blocks, revision notes and specification sections

Treat drawings and specifications differently. A specification is ordinary typed text and converts like any long document. A drawing sheet is a picture with small lettering, and what you can reasonably get from it is the title block, the revision table and the general notes, enough to index the set.

### Drawings

A full-size sheet scanned whole makes a very large image in which the lettering is tiny relative to the page. Three things follow.

- **Resolution decides everything.** If the note text is unreadable when you zoom in on the scan, no software will read it. Ask for the sheets at full size or as the original PDFs from the design software, which carry real text.
- **File size.** A set of full-size scans can be large. Schema Law accepts files up to 20 MB, so a drawing set may need to go up as separate sheets. The post on [converting a large scanned PDF online](https://www.schemalaw.com/blog/convert-large-scanned-pdf-to-word-online) covers shrinking and splitting an oversized scan.
- **Text runs in several directions.** Title blocks along the right edge, dimensions along walls and labels on angled lines are rotated. Rotated lettering can defeat recognition, so test a sheet before you count on searching the set.

For each sheet, record the sheet number, sheet title, the latest revision number and date, and the description beside each revision. A revision table that reads "3, 14 Jan 2026, Revised embed plates at grid C" is evidence of when the design changed. Those few fields per sheet, typed into a drawing index, do more for a claim than recognized text of the whole sheet.

Callouts and keynote numbers on the drawing itself are the hard case: short numbers scattered over line work. The post on patent files discusses the same problem under [whether formulas, sequence listings and patent drawings survive OCR](https://www.schemalaw.com/blog/ocr-patent-documents#do-formulas-sequence-listings-and-patent-drawings-survive-ocr).

### Specifications

The project manual is hundreds of pages of typed, numbered sections, and a clean copy of it is straightforward to convert. Its section numbers are your search keys. The Construction Specifications Institute, which publishes the MasterFormat standard, says in its [standards overview](https://www.csiresources.org/standards/overview) that MasterFormat works "by organizing specifications into work results that contractors can price, procure, and build". Check the table of contents of your own project manual for the numbering it uses, since a submittal or RFI that cites a section number can then be matched to the requirement with a search.

After converting the manual, bookmark each section and test a few searches: a section number, a product name, and a phrase such as "shop drawings". Addenda issued during bidding change the text, so convert those too and note which sections each one touches.

## How do you build a delay chronology from converted project records?

Build a delay chronology as a spreadsheet with one row per dated event, each tied to a source page, then sort by date. Feed it from every series: RFIs, change orders, daily logs, minutes, letters and pay applications. The value comes from seeing different records side by side on the same days.

### Columns

| Column | Example |
| --- | --- |
| Date | 12 Mar 2026 |
| Event | Steel erector leaves site |
| In the words of the document | "Ironvale pulled crew, waiting on RFI 47 answer" |
| Record type | Daily log |
| Author | Kestrel superintendent |
| Activity or area | Level 2 framing, grid C |
| Related item | RFI 47 |
| Source | KB-004418 |
| Typed from handwriting? | Yes |

### Steps

1. Start with the dates nobody disputes: notice to proceed, the contract completion date, each change order's date and days, and the actual completion date.
2. Add every row from the RFI, submittal and change order logs for the period, using the document's date where it differs from the log's.
3. Add the daily log rows you typed for the disputed range.
4. Search the minutes and letters for each related item number and subject, and add a row for each mention.
5. Add the pay application percentages for the affected lines, one row per application, as a measure of progress.
6. Sort by date and read it through.

### What it shows

For Kestrel, the sorted rows around one issue read like this.

| Date | Event | Source |
| --- | --- | --- |
| 3 Mar | RFI 47 sent: embed plates at grid C conflict with rebar; reply requested by 10 Mar | RFI 47 |
| 10 Mar | Minutes: architect "reviewing with structural engineer" | Meeting 22 minutes |
| 12 Mar | Steel crew leaves site | Daily log |
| 31 Mar | Application 9: structural steel at 85% | Pay application 9 |
| 2 Apr | RFI 47 answered with revised detail | RFI 47 response |
| 6 Apr | Steel crew returns | Daily log |
| 20 Apr | Change order 9 signed: 14 days added | Change order 9 |

The request waited 30 days for an answer, 23 beyond the date requested. The crew was off site for 25 days. The change order granted 14. Each of those numbers comes from subtracting two dates in the sheet, and each date has a page behind it. Whether the gap between 25 and 14 is anyone's liability depends on the contract, the schedule analysis and facts a chronology cannot hold. What it does is put the question in front of the lawyer and the scheduling expert with the pages attached.

### Before anyone relies on it

- Every row has a source, and the source was opened and read.
- Rows typed from handwriting are marked and were checked by a second reader.
- Dates were read from the image, with the month and day order confirmed for each record type.
- Quoted words match the page exactly, misspellings included.
- The same event reported in two records appears as two rows, not one merged row.

Schema Law's home page says recognition is strongest on clean print and weaker on faint faxes, stamps over text and handwriting, and that nothing marks a passage as uncertain. A job file has all three. The [how it works section](https://www.schemalaw.com/#how-it-works) describes seeing the result page by page so you can check it against the original before you export, which is the moment to catch a wrong date.

## Try it on a real document

Upload a scanned PDF and export it as Word, a searchable PDF or plain text on the free plan. Your documents are never used to train an AI model. [Start free](https://www.schemalaw.com/api/auth/google)
