How to Reconcile Flight Itinerary DataWithout the Manual Entry

The employee is back from the client site, and the flight itinerary PDF is sitting in your queue — flight numbers, departure and arrival airports, a fare breakdown, tax lines, a 13-digit ticket number. Every field your travel and expense (T&E) process needs is on the page, and someone still has to retype it into the expense system. Business travel is not a small-volume problem: the Global Business Travel Association (GBTA) projects 1.84 billion business trips in 2026 and a record $1.71 trillion in global spending. The itinerary is the receipt for the largest single line on most T&E budgets, and it was never designed to be read by software — which is exactly why manual entry survives there. Approval paperwork sits upstream of every one of those receipts, so converting a travel authorization to Excel gives finance the approved dates and cost estimates the itinerary is later reconciled against.

Stop typing data by hand — let AI read it for you
Upload an image or PDF — structured spreadsheet data in 10 seconds
Try It Now →
Editorial hero image with the blog title How to Reconcile Flight Itinerary Data Without the Manual Entry in dark blue, above three flat-vector icons labelled Any Airline Layout, Fare Per Segment and Traced to the Source, on a light gradient background with blue geometric line ornaments in the corners.

Key Takeaways

  1. Rekeying flight data from a multi-segment itinerary into an expense system costs at least three minutes — and the itinerary receipt is the one T&E document with no allowance shortcut.
  2. Each airline prints the same fare, tax, and ticket-number data in a different layout — a position-based template dies on the second itinerary, and every mistyped ticket number erodes your IRS accountable-plan substantiation.
  3. Name your columns once — Record Locator, Total Paid, Ticket Number — and the same set reads any airline's itinerary by field meaning; the fare split that no card charge shows lands in the spreadsheet in a single pass.

What's Actually on a Flight Itinerary

Three-column comparison of the documents an airline sends: Booking Confirmation and Trip Receipt marked with amber crosses and the labels Summary only and Post-flight charges only, while the E-Ticket Receipt is highlighted in green with a tick and the label This is the receipt.

An e-ticket itinerary receipt contains every field your expense process needs — the problem is that it is formatted for a traveler, not for a spreadsheet. Before you can extract anything, it helps to know which of the three documents airlines send counts as the receipt: the booking confirmation (an itinerary summary with the record locator and flight times), the e-ticket receipt (the fare breakdown, tax lines, and the 13-digit ticket number), and the trip receipt (final charges after the flight is flown). For expense reconciliation, the e-ticket receipt is the document that matters — it is the one that substantiates what was paid. The boarding pass is the travel-day companion to all three, carrying passenger name, flight number, gate, boarding time, and seat — and it has its own boarding pass screenshot extraction walkthrough when those fields need to land in a sheet.

The fields on that receipt are standardized by the airline industry's reservation infrastructure, even though the page layouts are not. Each booking carries a record locator (also called a PNR, for passenger name record) — a six-character reference like "K7FQ2M" that ties the itinerary, the ticket, and the payment together across airline systems. Around it sit the data points your T&E process actually consumes:

FieldWhat it isWhy T&E needs it
Record locator (PNR)6-character booking referenceCross-references the booking tool, the airline, and the card charge
Passenger nameName as printed on the ticketMatches the traveler and the cardholder
Flight number & datee.g. UA 123, 2026-09-14Substantiates the time element of the expense
Origin / destination airportse.g. SFO – ORDSubstantiates the place element
Booking class / fare basise.g. "V", "LSA21V"Policy check on premium cabins and refundable fares
Base farePrice before taxes and feesThe number most card charges never show
Taxes & fees breakdownSecurity, airport, carrier-imposed linesExplains why the card charge never equals the advertised fare
Total paidFare + taxes + feesMatches the corporate card or reimbursement transaction
Ticket number13-digit e-ticket numberThe audit-trail anchor for refunds, changes, and disputes
Baggage allowanceChecked bag rules for the fareJustifies separately paid bag fees

Here is the catch that keeps this data trapped: there is no industry-standard page layout. IATA defines the data in a PNR, but each airline, global distribution system (GDS), and booking tool renders its own document. A United e-ticket receipt does not look like a Delta one, which does not look like the itinerary your Concur Travel booking generates — which is why any workflow built on "the flight number is in the top-left corner" fails on the second airline.

Why the Manual Path Fails — and What It Costs

The manual path doesn't just cost time; it breaks the audit trail that reimbursement depends on. If your team uses SAP Concur, Navan, or Expensify, booking data often flows in automatically — but the airfare line still lands with blanks where the fare breakdown, ticket number, and tax lines belong, especially when a trip was booked outside the corporate channel or paid on a personal card. Someone retypes them. That is where reconciliation trouble starts.

The failure modes are familiar to anyone who has closed a T&E cycle. A transposed flight number or a date entered from the wrong leg of a multi-segment itinerary means the expense no longer matches the booking — and if it doesn't match, an auditor or a card-feed algorithm flags it, and the employee gets asked to resubmit. A recurring complaint on r/Accounting describes exactly this loop: an employee asked to expense the same flight six times because the accounts payable team kept losing the receipt between systems. The complaint isn't about typing speed — it's about the document never becoming data that stays attached to the transaction.

The compliance stakes make this more than an efficiency annoyance. Under IRS rules, a reimbursement is only tax-free to the employee if the company runs an accountable plan — which requires that every expense be substantiated with the amount, the time, the place, and the business purpose. The IRS lays this out in Publication 463: a receipt (or other documentary evidence) for each expense, plus a record made at or near the time of the expense. A mistyped fare or a missing ticket number quietly erodes that substantiation across hundreds of trips. And the pressure on T&E accuracy is rising: in the 2025 Deloitte Corporate Travel Study, 54% of travel managers ranked cost among their top three constraints on travel — the more scrutiny spend gets, the more the receipts need to be right.

None of this is news to the travelers either. A thread on r/SAP about Concur puts the employee-side experience plainly: the system "has gotten so slow, it's PAINFUL to do an expense report of any sort." The fix isn't a faster UI — it's removing the retyping step so the itinerary data arrives already structured.

Define the Column Set: What Your Output Table Should Hold

The output table is defined by the columns you name — and for flight itineraries, the right column set covers booking, fare, and compliance in a single row per segment. This is the core of Custom Column Extraction: instead of telling a tool where on the page to look (the approach that dies on the second airline's layout), you type the column names you want — "Record Locator," "Flight Number," "Total Paid" — and an AI vision model locates each value by understanding what the field means, wherever it sits on the document.

Concept diagram of Custom Column Extraction: two differently laid out e-ticket receipt cards labelled United and Delta feed one output row, while three typed column names (Record Locator, Flight Number, Route) point by arrow to the extracted values K7FQ2M, UA 123 and SFO / ORD under a green Template-Free badge.

For a flight itinerary batch, a column set that covers a full T&E close looks like this — you can copy it as-is:

Column name to typeWhat the AI extracts
Record LocatorThe 6-character PNR (e.g. K7FQ2M)
Passenger NameName on the ticket
Flight Numbere.g. UA 123
Flight DateDeparture date of the segment
Departure Airport / Arrival AirportIATA codes, e.g. SFO / ORD
Departure Time / Arrival TimeLocal times as printed
Booking ClassFare class letter (e.g. V) — policy checks on premium cabins
Base Fare / Taxes & Fees / Total PaidThe three-level fare split, kept in separate columns
CurrencyISO code of the ticket — critical for international trips
Ticket Number13-digit e-ticket number
Baggage AllowanceIncluded bags (e.g. 1 x 23kg)
Trip PurposeInferred — see below

Two of those columns do more than read the page. A computed column performs a calculation during extraction: for a multi-segment ticket, a column named Fare Per Segment (Total Paid / Number of Segments) splits a single fare across the legs automatically, so each segment's row is independently allocable. And an inferred column classifies what the document never states: define "Trip Purpose" with options "Client Visit / Conference / Internal Meeting / Training / Personal," and the AI reads the itinerary — the route, the booking context, the surrounding report — and assigns each trip a purpose. Extraction and classification happen in the same pass, which is the difference between a table of numbers and a reimbursable record.

The column names you define once become the headers of your final spreadsheet — and the same set works across every airline, GDS, and booking tool in the batch, because each column is matched by meaning, not by position on the page.

Get the Itineraries Into One Place

Before extraction, the collection step decides whether the batch is complete — and it's the step most workflows don't plan for. Itineraries arrive in three shapes: PDFs forwarded from email, screenshots from airline apps or booking tools, and confirmations downloaded from corporate travel portals. Some of your travelers will upload them; some will forget until the card statement arrives. The collection design is what catches both.

Two mechanisms close the gap. An Email Inbox gives the team a dedicated forwarding address: travelers forward their itinerary PDFs (or the airline's own emails) and the attachments land in the processing queue automatically, with no upload page and no login. Combined with the "auto-process" setting, a bound extraction template starts reading each itinerary the moment mail arrives — a month of flight emails converts as they come in, instead of in a panic at month-end. For travelers who prefer a link, a Collection Link generates a shareable URL with a short verification code: anyone can open it and drop in their itinerary — screenshot, PDF, whatever they have — no account required. Both channels feed the same queue, so the batch assembles continuously during the month.

Source quality follows a simple order: a PDF from an email is the cleanest input; a flat, well-lit screenshot of the itinerary page works nearly as well; a hurried photo of a phone screen taken at an angle in airport light is workable but worth a verification pass. A realistic expectation to set: clear PDFs and screenshots produce high-confidence extraction, and poor captures shift the work from "typing" to "spot-checking."

Process the Batch: One Pass, One Spreadsheet

Batch processing turns a month of itineraries into a single spreadsheet in one pass — five to ten seconds per document, with the columns defined once. You upload every itinerary at once (the PDFs, the screenshots, the app captures), and the output is one Excel file where each row is one flight segment and each column is one defined field. No merging, no column realignment, no copy-paste between files. ImageToTable.ai processes a page in five to ten seconds against roughly three minutes of average manual entry — a meaningful comparison at a hundred itineraries, where it's the difference between a lunch break and a workday.

Two-column comparison: on the left a keyboard icon with the number 3 min per itinerary, the lines Values retyped by hand and Transposed digits get flagged, and an amber cross; on the right a spreadsheet with lightning icon with 5-10 sec per itinerary, one Excel file one row per segment, a Review Mode tag and a green tick.

This is the moment the data becomes checkable. Review Mode lets a finance reviewer hover over any extracted cell and see exactly where the value came from on the original document — the fare basis, the tax line, the ticket number — highlighted on the itinerary image. Click any extracted value and the source region lights up; click a region on the document and it jumps to the matching cell. That layer matters for airfare specifically, because a wrong tax total propagates straight into the card reconciliation. Turn on auto-annotate after processing and every new extraction arrives with its verification map already built.

JPG/PNG/PDF AI Extraction

Files are processed securely and not stored.

From Spreadsheet to Reimbursement: Closing the Loop

Extraction ends at the spreadsheet; reconciliation begins there — and the extracted rows are built to feed your expense system, not sit beside it. The workbook you get from the batch is the structured version of what your T&E platform's OCR would have produced only for a clean receipt: fare, taxes, ticket number, route, dates, and trip purpose, all in columns. That structure is what makes the closing steps fast.

For a Concur or Navan shop, the extracted table maps directly onto the airfare line items: the record locator and ticket number give the card-feed matching something to anchor on, the total paid ties to the corporate card transaction, and the fare split explains why the charge never equals the advertised fare. For a smaller team on Expensify or Zoho Expense, the same workbook serves as the import source — rows in, categories attached, reimbursements approved. The point isn't that extraction replaces the expense platform; it's that expense report data arrives pre-structured instead of arriving as a PDF someone has to transcribe.

The compliance picture closes the same way. Each extracted row now carries the four substantiation elements an accountable plan demands: amount (base fare, taxes, total), time (flight date), place (origin and destination airports), and purpose (the inferred column). The GSA per-diem framework that many firms use for meals and lodging — $110/day standard CONUS lodging and $68/day for meals and incidentals in fiscal year 2026 — covers those categories on an allowance basis; airfare has no per-diem shortcut, so the itinerary receipt is the one travel receipt that always has to be real, complete, and legible.

The itinerary receipt is the only business travel expense with no allowance-based shortcut: per-diem covers meals and lodging, but airfare must always be substantiated with the actual document. That single fact is why flight itinerary extraction — not receipt scanning, not allowance automation — is the highest-leverage automation in the T&E cycle.

Stop typing data by hand — let AI read it for you
Upload an image or PDF — structured spreadsheet data in 10 seconds
Try It Now →

What Breaks in Practice (and How to Handle It)

The realistic failure points aren't exotic — multi-segment fares, currency mismatches, and change fees — and each has a defined handling. A clean batch of email PDFs runs almost without review; the exceptions are where the workflow earns its keep.

Multi-segment itineraries. A round trip is two flight numbers on one receipt; a trip with a connection is more. The extraction reads each segment line and produces one row per segment, with the computed "Fare Per Segment" column splitting the single fare across legs — so the reviewer can verify that two segments plus taxes equal the total before approving.

Itinerary currency vs. card currency. A Frankfurt–Chicago ticket priced in euros hits a card charged in dollars. The extracted "Currency" column keeps the original amount and ISO code intact, so the team converts at a policy-defined rate instead of whichever rate the typist happened to use — eliminating a recurring source of "this doesn't match the card statement" flags.

Totals-only receipts. Some booking tools and airlines send a summary showing the total without the fare breakdown. The extraction captures what's visible and leaves the fare-split columns empty — surfacing the gap instead of inventing numbers. The fix is to pull the full e-ticket receipt from the airline's portal (usually retrievable by entering the record locator), not to guess the split.

Changes, refunds, and low-quality captures. After a change, the itinerary and the trip receipt can disagree — the extracted rows give you both, side by side, so the difference is visible rather than buried. And on a poorly angled photo of a phone screen, accuracy drops: the honest expectation is that clean inputs extract at the tool's ~99% printed-text accuracy, while rough captures need a spot-check in Review Mode — still an order of magnitude faster than typing from scratch.

FAQ

Does this work with itineraries from any airline or booking tool?

Yes. Because the extraction matches fields by meaning rather than by template position, there's no per-airline configuration — a United e-ticket receipt, a Delta one, and a booking-tool itinerary from Concur Travel or Navan all flow through the same column definitions. Clear PDFs and flat screenshots extract with the highest accuracy; the layout differences between airlines don't matter to the extraction.

What if an itinerary shows only the total, not the fare breakdown?

The workflow extracts what the document shows and leaves the missing fare-split columns empty, flagging the gap rather than guessing. To get the full breakdown, pull the e-ticket receipt from the airline's portal using the record locator — most airlines let you retrieve it online — and process that document instead. This is worth doing for large fares, because the split between base fare and taxes is what makes a card charge reconcilable.

Can the extracted spreadsheet feed into Concur or Navan?

It works alongside them. Expense platforms are approval, policy, and reimbursement engines — they're not built to read a multi-airline, multi-format itinerary stack. The extracted workbook is structured input: the row for each segment carries the fare split, ticket number, dates, route, and trip purpose, which you can import or paste as the airfare line items instead of transcribing them. Smaller teams on Expensify or Zoho Expense use the same workbook directly. The cleaner the input data, the fewer manual overrides your platform needs.

How do I handle trips booked in another currency?

Keep the original amount and ISO currency code in the extracted table — the "Currency" column preserves what the ticket says. Convert at a single policy-defined rate (booking-date rate is the most defensible) rather than at whichever exchange rate the person typing happened to use. That consistency is what keeps multi-currency batches reconcilable against card feeds.

What about employees who booked personally and are asking for reimbursement?

The itinerary is still the receipt — the extraction captures the fare, taxes, and ticket number the same way, and the passenger-name column confirms the ticket belongs to the claimant. This is where a collection link sent to traveling staff pays off: the employee uploads the itinerary from their phone at the airport, and the data lands in your queue instead of being reconstructed from a forwarded PDF weeks later.

The flight itinerary is the last high-value receipt in finance that still gets retyped — not because the data is hard to read, but because each airline renders it differently, and every workflow built on "where the field sits on the page" breaks on the second airline. Once you define the columns you need and let the extraction read the document by meaning, the retyping step disappears, the fare split survives into the spreadsheet, and the reconciliation loop closes on data that matches the card — not on whatever survived transcription. That's the difference between a T&E close that takes a day and one that takes an afternoon.

📮 contact email: [email protected]