How to Extract French Expense Report
Data into Excel (2026 Guide)
According to the GBTA Foundation, one in five expense reports submitted to finance teams contains errors or missing information — each one costing an average of $52 and 18 minutes to correct. For French companies the complexity compounds: every expense line needs the right taxe sur la valeur ajoutée treatment, the correct Plan Comptable Général account code, and — for mileage — a calculation against the annual barème kilométrique published by the tax authority. Most PDF-to-Excel converters treat a note de frais (expense report) the same way they treat any document, unaware that a French expense report is a compliance document with rules that differ by expense type.
Key Takeaways
- Your PDF-to-Excel tool extracts date and amount from every expense line — as if a train ticket owes the same taxes as a client dinner.
- Under French tax law diesel recovers 80% TVA and petrol recovers 0% — but a tool that only extracts "amount" forces someone to manually re-code every single line.
- ImageToTable.ai structures output around French accounting logic — expense type classification, TVA rates per CGI article, kilometric allowances computed from the barème — so the Excel file arrives coded for the journal des achats.
Why French Expense Reports Need Different Extraction Logic
A French expense report (note de frais) carries data obligations that standard receipt-scanning tools were never designed to handle. Unlike a simple till receipt — where one line means one amount — a single note de frais can bundle a train ticket (TVA non-recoverable), a péage receipt (TVA 100% recoverable), a client restaurant bill (TVA recoverable at 20%), and a mileage claim calculated against the tax authority's barème kilométrique (kilometric scale). Each line needs a different compte comptable (account code) under the Plan Comptable Général (PCG, the French national chart of accounts), and each has its own rule for whether and at what rate the taxe sur la valeur ajoutée (VAT) is recoverable — codified in the Code Général des Impôts (CGI, the French General Tax Code).
Generic OCR tools flatten this distinction. They extract "amount" and "date" — which is fine for a simple reimbursement list — but they don't know that a gasoil receipt entitles your company to 80% TVA recovery while an essence receipt gets 0%, or that the barème kilométrique rate depends on the vehicle's puissance fiscale (fiscal horsepower) and annual distance tier. A tool needs to understand that these aren't just data points — they're transaction-level decisions with tax consequences.
The gap isn't about whether AI can read French documents — the vision models handle French text as fluently as English. It's about whether the extraction tool lets you structure the output around French accounting logic: named columns that map to PCG accounts, TVA amounts separated from HT (hors taxe) by expense type, and kilometric claims computed from a formula, not typed by hand.
The Fields That Matter for French Accounting Compliance
Before extracting anything, you need to know which fields a French accountant actually needs — and which ones carry tax implications. While there is no legally mandated template for a note de frais, the expense report must provide enough information to justify the expense to both the company and, in the event of a contrôle URSSAF (social security audit), to the authorities.
| Field | Why It Matters | Extraction Approach |
|---|---|---|
| Employee Name / Date | Basic traceability — who incurred the expense and when | Direct extraction from the report header |
| Expense Type (Nature de la dépense) | Determines the PCG account code and TVA treatment. Transport → 6251, accommodation → 6256, client meal → 6257, office supplies → 6064, client gift → 6234 | Inferred column: AI reads the description and supporting document, then classifies the expense type |
| Amount HT / TVA Rate / TVA Amount / Amount TTC | TVA amount goes to compte 44566 (TVA déductible sur achats de biens et services). The HT amount goes to the expense account. Getting these wrong means incorrect TVA declarations — and under Article 1727 of the CGI, interest on underpaid TVA accrues at 0.20% per month | Direct extraction from receipts and invoices attached to the report |
| Kilometric Distance / Vehicle Power Rating (CV) / Indemnité Kilométrique | The indemnité kilométrique (kilometric allowance) is calculated using the annual barème published by the French tax administration. A 4 CV vehicle covering under 5,000 km/yr: 0.606 €/km. The same vehicle over 20,000 km: 0.407 €/km. The allowance is exempt from social charges only within barème limits | Direct extraction for distance and CV; computed column for the allowance formula |
| PCG Account Code (Compte comptable) | The bridge between the expense report and the journal des achats (purchase journal). Every expense must debit a compte de charge (class 6) and credit the employee liability account (421) | Inferred or mapped column — AI assigns the code based on the expense type classification |
The comptabilisation (accounting entry) for a typical note de frais with a 100 € HT hotel night and a 40 € HT client restaurant meal looks like this in the general ledger: debit 6256 (Missions) for 100 €, debit 6257 (Réceptions) for 40 €, credit 421 (Rémunérations dues) for 150.60 € TTC. The hotel line has no TVA recovery (excluded under Article 206-IV-2-2° of Annexe II of the CGI); the restaurant line carries 8 € of recoverable TVA at 20%, debited to compte 44566. If your extraction output doesn't separate these correctly, someone downstream has to redo it.
Step-by-Step: Extracting Note de frais Data into Excel
The extraction process itself takes under a minute per report — what matters is setting up your columns so the output arrives structured for accounting, not as a flat data dump that needs an hour of reformatting in Excel.
The approach described here uses Custom Column Extraction: instead of training a template on sample documents or drawing rectangles around fields, you type the column names you want — "Employee Name", "Date", "Amount HT", "TVA Rate", "PCG Code" — and the AI locates each value anywhere on the document by understanding what the field means, not where it sits on the page. This is fundamentally different from template-based OCR, which breaks when a report layout changes or a receipt is photographed at an angle.
Upload your expense reports
Drag in scanned notes de frais, photographed receipts, printed justificatifs (supporting documents) — PDF, JPG, or PNG. If you have reports from multiple employees or multiple months, batch-upload them all at once. The tool processes them in parallel and merges the results into a single output table.
Define your columns for French accounting output
Type the field names you need: Employee Name, Date, Expense Type, Description, Amount HT, TVA Rate (%), TVA Amount, Amount TTC, Supplier, PCG Account Code. For the expense type column, use an inferred column — specify Expense Type (options: Transport/Accommodation/Meal/Mileage/Office Supplies/Client Gift/Other) and the AI reads each expense line's content and supporting receipt to determine the correct category. For mileage claims, add a computed column to calculate the indemnité from distance and CV.
Run the extraction and review
The AI reads each expense line and its attached justificatif, extracting the fields you defined. For the inferred expense type column, it reads context — a receipt from a Paris-Lyon train ticket plus a restaurant bill from the same date gets classified as "Transport" and "Meal" respectively. The results appear in a table where you can verify each row before export. A human review of 30 seconds per row replaces 3 minutes of manual data entry per row.
Export to Excel
One click exports all processed expense reports into a single XLSX file — each row is one expense line, each column is one of the fields you defined. The output is structured so an accountant can map it directly to the journal des achats: sort by PCG account code to batch the debit entries, filter by TVA rate to populate the TVA declaration, and sum by employee to generate reimbursement instructions through compte 421.
Files are processed securely and not stored.
For teams that receive expense reports from multiple people — field staff, sales representatives, remote employees — a Collection Link removes the email-back-and-forth entirely. You generate a shareable link (e.g., /c/xxxx), send it to each person who needs to submit expenses, and they upload their scanned note de frais and justificatifs directly into your processing queue — no registration or login required on their end. Files arrive in your account ready for batch extraction. This is covered in detail in our collection workflow guide.
Making TVA and Kilometric Allowances Work in Your Output
The hardest part of processing French expense reports isn't the extraction — it's getting the TVA and indemnité kilométrique calculations right for each expense type. Under Article 271 of the CGI, the general principle is that VAT on goods and services acquired for taxable operations is recoverable — but a cascade of specific exclusions in Annexe II of the CGI creates a patchwork that trips up both employees filling out reports and accountants coding entries.
| Expense Type | PCG Account | TVA Recovery | Reference |
|---|---|---|---|
| Train/plane ticket (billet train/avion) | 6251 | Non-recoverable | Annexe II CGI, Art. 206-IV-2-2° |
| Péages (motorway tolls) | 6251 | 100% | CGI Art. 271 |
| Parking (stationnement) | 6251 | 100% | CGI Art. 271 |
| Gas oil / diesel | 6251 | 80% (100% for utility vehicles) | CGI Art. 298-4 |
| Petrol / essence | 6251 | 0% | CGI Art. 298-4 |
| Electric vehicle charging | 6251 | 100% | CGI Art. 271 |
| Hotel (hébergement salarié) | 6256 | Non-recoverable | Annexe II CGI, Art. 206-IV-2-2° |
| Employee meal in mission | 6256 | Recoverable (10% or 20% depending on service) | CGI Art. 271 |
| Client meal (repas d'affaires) | 6257 | Recoverable at applicable rate | CGI Art. 271; BOFiP BOI-TVA-DED-30-10-10 |
| Indemnité kilométrique | 6251 | Not subject to VAT | URSSAF barème fiscal annuel |
For kilometric allowances, the calculation depends on the vehicle's puissance fiscale and total annual distance tier. A 4 CV vehicle up to 5,000 km: 0.606 €/km. Between 5,001 and 20,000 km: (d × 0.340) + 1,330 €. Beyond 20,000 km: 0.407 €/km. With a computed column, you define the formula once: extract the distance and CV from the report, and the AI calculates the indemnité directly in the output — no manual reference to the barème table required. For electric vehicles, apply the 20% majoration (increase) automatically by incorporating it into the computation rule. The barème for 2026 remains unchanged from 2025 and 2024; the last revaluation was in 2023 (+5.4%).
Watch the URSSAF ceilings: if your company reimburses above the barème rate, the excess is reintegrated into the social contribution base. For meals, the URSSAF exemption ceiling is approximately 21.10 € per meal (2026). For the forfait mobilités durables (sustainable mobility allowance), the ceiling is 600 € per year per employee, or 900 € when cumulated with public transport subscription reimbursement.
From Extracted Excel to Pennylane, Sage, or Cegid
An Excel file with correctly coded expense lines is halfway into your French accounting software — the remaining step depends on which platform you use, but the column structure you set up during extraction determines how frictionless this handoff is.
For Pennylane, the CSV import accepts expense lines mapped to PCG accounts — your output columns for Amount HT, TVA Amount, and Account Code slot directly into the journal des achats. Sage 100 and Cegid Loop support CSV imports with configurable field mapping, meaning your extraction column headers become the mapping reference. EBP Compta includes a native note de frais module that can import structured data with TVA breakdowns. For firms using Quadratus or Sage FRP 1000, the CSV output follows the same logic — structured rows with the correct account codes.
If your accounting workflow demands a different format, the same extraction can export to JSON for custom integrations — useful for firms with in-house ERP connectors or those using N2F, Cleemy, or Expensya as their expense management layer, where the extraction tool handles the data capture step upstream and feeds structured data into the existing platform.
For companies processing French invoices alongside expense reports, the same column-based extraction approach works on factures (invoices) — covered in our guide to French invoice data extraction, which covers SIREN/SIRET and TVA intracommunautaire fields. If a significant portion of your expense reports involves mileage, our guide on French payslip extraction covers URSSAF contribution handling that overlaps with expense-related social charge rules.
FAQ
Can AI distinguish between a French expense report and an English one?
Yes. The vision model reads the document content regardless of language — a receipt from a Paris restaurant is processed with the same accuracy as one from London. Define your column names in English and the AI extracts the corresponding values. For French-specific fields like TVA or Montant TTC, naming your column "TVA Amount" tells the AI to find the tax line — it doesn't need the document to be in English.
What about handwritten French expense reports?
The vision model handles handwritten text — including French cursive — across expense reports and handwritten justificatifs. Accuracy on handwriting is lower than on printed text (as with any OCR system), so a quick review pass is recommended for fully handwritten documents. For mixed printed-and-handwritten reports — the most common real-world format — accuracy is consistently high on the printed sections.
Does the tool file my TVA return?
No. The tool extracts and categorizes TVA amounts per expense line, producing output where each row carries its TVA treatment. The extracted data feeds into your TVA declaration — whether prepared in Excel, by your accountant, or through your accounting platform — but the actual filing (déclaration CA3 or CA12) remains your responsibility. The value is that TVA amounts are already separated from HT amounts per line, correctly mapped to compte 44566, eliminating the step where someone manually determines which expense lines carry recoverable TVA.
Can the tool apply the barème kilométrique automatically?
Yes, using computed columns. Define a column like Indemnité Kilométrique (if CV=4 and distance ≤5000 then distance×0.606; if CV=4 and distance>5000 and distance≤20000 then distance×0.340+1330; if CV=4 and distance>20000 then distance×0.407). The AI reads the distance and CV from the expense report and outputs the calculated indemnité. You can build separate formulas per CV tier or use a more compact expression. When the barème changes in a future year, you update the column definition — all subsequent extractions use the new rates.
What if an expense report has missing justificatifs?
The AI extracts whatever is present on the uploaded documents. If a justificatif is missing — say, a hotel invoice wasn't attached — the corresponding line will show the employee-entered information from the note de frais but lack the verified Amount HT and TVA breakdown that only a justificatif can provide. You'll see this during the review step. French accounting practice requires an attestation sur l'honneur (sworn statement) for lost receipts under certain conditions, but that workflow is separate from extraction.
Is my expense report data secure?
Files are processed through encrypted connections and are not stored after extraction completes. The output Excel file is downloaded directly to your computer. If you need to collect expense reports from multiple employees without sharing login credentials, the Collection Link feature generates a unique upload URL with verification code access — each uploader sees only their own files, and all submissions land in your processing queue.
What Changes When You Stop Manually Typing French Expense Reports
The gap between a scanned note de frais and a properly coded accounting entry has been a manual bottleneck for French finance teams — not because the data is hard to read, but because the rules differ by expense type and generic tools flatten those distinctions into a single "amount" column. When extraction is set up around French accounting logic — TVA per expense type, PCG codes assigned by nature de dépense, indemnités kilométriques calculated from the barème rather than typed from memory — the output arrives coded for the journal des achats, not requiring someone to re-categorize every line in Excel.
Try it on your own notes de frais. See if the stack that usually fills an afternoon becomes a 5-minute review — where you're checking numbers, not creating them.