How AI report reading reads a file
This is the detail behind AI report reading. Which files a fixed parser reads and which ones the AI reads. What gets checked, and in what order. Where your file goes, and the limits. Every result is advisory and waits for your registered surveyor.
Not open yet. Pilot firms run it on a real report with me first.
Advisory software: it flags items for your registered surveyor to review. It doesn't sign off survey work.
FORMATS
Fixed parsers first. The AI only reads the rest.
- 12d .rpt
- Fixed parser on my server, no AI
- 12d .fld
- Fixed parser on my server, no AI
- Trimble JobXML (.jxl, .xml)
- Fixed parser on my server, no AI
- PDF with a text layer
- The AI copies the text into the checking format
- CSV
- The AI copies the text into the checking format
- TXT
- The AI copies the text into the checking format
When a file doesn't fit
- A structured file the parsers can't use goes to the AI instead: an unknown 12d layout, a .fld with lengths that aren't in metres, a JobXML the parser refuses, or a JobXML with no coordinates and no setups.
- A PDF with no text layer is turned away. There's no text recognition.
- A JobXML with DTD or entity declarations is refused.
AI REPORT READING · HOW IT WORKS
Four steps, and the last one is yours.
Read
Fixed parsers read 12d .rpt, 12d .fld and Trimble JobXML. For a PDF, CSV or text report, the AI copies the text into the checking format and nothing else.
Which reader gets which file is in the Formats table above.
Reconcile
The file is checked against itself: traverse legs against the printed perimeter, declared record counts, and the coordinate system, datum, zone and units. Where the AI read a file, the fixed parser's values win.
Before any advisory check runs, the file is checked against itself:
- Traverse legs against the printed perimeter
- The angle count against the legs
- The record counts the file declares
- Your coordinate-system choice: GDA2020 / MGA zones 46–59, GDA94 / MGA zones 48–58, or local
- A missing datum, zone or units
- Coordinates against the MGA band
- Observation targets with no coordinates
Any blocking issue stops the checks there and marks the run for your surveyor.
Check
The advisory checks run, coordinate system first: prism constant, heights, backsight orientation, MGA zone, scale factor and more. A misclosure is checked only when the file prints one.
The reference-frame check runs first. If the frame is invalid, every tolerance check is skipped. Then:
- Prism constant
- Height consistency
- Backsight orientation
- Coordinate range
- Datum, CRS and geoid metadata
- Wrong MGA zone
- Scale factor
- GNSS quality
- Duplicate points
- RL jumps
- Linework geometry
Traverse misclosure is checked only when the file prints a closure.
A level loop is checked only when the file prints a loop misclose.
Hold for your surveyor
Every run is saved for review and labelled with who read it: the fixed parser or the AI. Nothing is confirmed until your registered surveyor confirms it.
- The run is saved as pending review.
- It's labelled “Read by parser. Review before use.”, or “AI-extracted. Review before use.” where the AI read the file.
- An admin reviews it once: accept or reject, with a note.
- Accepting records only that it was looked at.
- Nothing is confirmed until your registered surveyor confirms it.
The review screen


WHERE YOUR FILE GOES
12d and JobXML files never reach the AI.
- 12d .rpt, 12d .fld, JobXML
- Read on my server by fixed parsers. Their contents don't go to the AI.
- PDF, CSV, TXT
- The file name and up to 40,000 characters of its text go to Anthropic, which copies them into the checking format. A scanned PDF with no text layer isn't read.
- Explanations
- Up to 3 per run, sent with the check's id and status only: no values and no coordinates. The summary sends counts only.
- What I keep
- The run and its results, for review. Your original file isn't stored.
LIMITS
The limits.
- Upload size
- 50 MB
- Text sent to the AI
- Up to 40,000 characters (longer text is cut, and the cut is recorded)
- Time to read a file
- 120 s
- PDF length
- Up to 200 pages
- Explanations
- Up to 3 per run
AI REPORT READING · SCOPE, STATED PLAINLY
What it does today, and what it doesn't yet.
Does today
- Yes: Reads 12d .rpt, 12d .fld and Trimble JobXML with fixed parsers, no AI
- Yes: Copies PDF (with a text layer), CSV and text reports into the checking format with AI
- Yes: Checks the file against itself before any advisory check runs
- Yes: Runs the advisory checks and holds every run for review
- Yes: Labels every result with who read it, parser or AI, and as advisory, for your registered surveyor
Not yet
- Not yet: Open to every firm (pilot firms first)
- Not yet: As-built reports
- Not yet: Level runs (only a printed loop misclose is checked)
- Not yet: Scanned PDFs (no text recognition)
- Not yet: Tested on real client reports (pilot firms help close this)
AI report reading is advisory. It reads a file, checks it and flags items for review. It doesn't sign off survey work. Every result stays a decision for your registered surveyor.
Safety & scope
SurveyMarkup helps prepare and review working information. Every professional decision remains with the registered surveyor, and original data and final outputs require qualified review.
Assistance only - professional review remains required.
Sources
GDA2020 46–59 · GDA94 48–58
MGA zones you can choose for a file, per datum
When you state a file's coordinate system, my code accepts MGA zones 46–59 on GDA2020 and 48–58 on GDA94, the zones each datum defines, or a local grid; any other zone is refused.
My code
Stated on: surveymarkup.com.au/docs/ai-report-reading#steps (on this page)19 October 2026 · three runs
When I captured the review screen images, and how many runs they show
I captured my real admin review screen showing real pipeline output on the synthetic files demo_site_local.jxl, FICTIONAL-SITE-LOCAL-field-to-office.jxl and fictional_12d_field.fld, each read by the parser; sign-in was mocked and no AI provider was called.
Sample run
Stated on: surveymarkup.com.au/docs/ai-report-reading#review-screen (on this page)40,000 characters
Most file text AI report reading sends
AI report reading sends at most 40,000 characters of a file's text; longer text is cut off and the cut is reported with the run.
My server settings
Stated on: surveymarkup.com.au/privacy#ai3 per run
Most finding explanations per report-reading run
A report-reading run asks for an explanation of at most 3 findings.
My code
Stated on: surveymarkup.com.au/privacy#ai50 MB
Largest file AI report reading accepts
My server refuses any upload over 50 MB, and AI report reading uses the same limit as every other upload.
My server settings
Stated on: surveymarkup.com.au/docs/ai-report-reading#limits (on this page)120 s
Longest the AI is given to read a file
My server gives the AI's reading call 120 seconds for a file, then stops waiting for it.
My server settings
Stated on: surveymarkup.com.au/docs/ai-report-reading#limits (on this page)Up to 200 pages
Longest PDF AI report reading reads
My server's PDF reader turns away a PDF of more than 200 pages before reading its text.
My server settings
Stated on: surveymarkup.com.au/docs/ai-report-reading#limits (on this page)50 427 523 590
Australian Business Number (ABN)
This is my ABN as a sole trader; ABN Lookup on the Australian Business Register shows it, with the SurveyMarkup business name registered against it.
Law or regulator · checked 19 October 2026
Source: abr.business.gov.au/ABN/View?abn=50427523590 (external site)0.2.0 · 5 October 2026
ControlAdjust release on offer and its release date
ControlAdjust 0.2.0 was built on 5 October 2026, and it is the version I offer now; the changelog lists what changed in it.
My decision · 11 October 2026
Stated on: surveymarkup.com.au/tools/controladjust#changelog19 free tools
Number of free browser tools
I count the free tools from the same tool list that builds the tools page, so the number changes when I add or retire a tool.
My code
Stated on: surveymarkup.com.au/tools