Skip to main content
Docs · AI report reading
PILOT · NOT OPEN YET

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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

Review queue · synthetic files
SurveyMarkup admin review queue: three synthetic runs read by the parser, each pending review
Run detail · fictional_12d_field.fld
SurveyMarkup admin review of a synthetic field file read by the parser: pending review, the coordinate system taken from the upload choice, and the reconciliation a surveyor reads before use
The real admin review screen, showing real pipeline output on synthetic files. Sign-in is mocked and no AI provider was called. Captured 19 October 2026.

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.
What reaches Anthropic, in full

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.

Docs hub

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

  1. 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: /docs/ai-report-reading#steps (on this page)
  2. 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: /docs/ai-report-reading#review-screen (on this page)
  3. 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: /privacy#ai
  4. 3 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: /privacy#ai
  5. 50 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: /docs/ai-report-reading#limits (on this page)
  6. 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: /docs/ai-report-reading#limits (on this page)
  7. 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: /docs/ai-report-reading#limits (on this page)
  8. 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)
  9. 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: /tools/controladjust#changelog
  10. 19 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: /tools