Written by: JJ Tan, Founder, Jelly | Last updated: 22 June 2026
Key Takeaways
- Inaccurate invoice extraction corrupts SKU references, stock counts, and dish costs, costing UK restaurants 4–10% of inventory value each year.
- A seven-step hybrid pipeline combining layout analysis, OCR, LLM extraction, and rules-based validation raises field-level accuracy to 95% and beyond.
- Key controls include input-quality standards, multi-page table continuity, SKU and quantity validation, price × quantity checks, and per-field confidence routing.
- Continuous supplier-specific model adaptation and live export to inventory and POS systems keep dish costing accurate without manual intervention.
- Book a demo, schedule a chat with Jelly to see the full pipeline running on your own supplier invoices in under 30 minutes.
Step 1: Set Input-Quality Rules for Photos and Emailed PDFs
- Accept invoices via two channels only: direct supplier email to a dedicated inbox, or a photo captured in-app at the point of delivery.
- Require a minimum scan resolution of 300 DPI for any photographed document.
- Keep the full page in frame with no cropped columns or folded corners.
- Avoid photographing invoices under harsh kitchen lighting or at an angle. Use flat, even light to reduce shadow distortion.
- Request digital PDFs from suppliers wherever possible. On clean digital PDFs from major food distributors, field-level accuracy reaches 99%+; on scanned or handwritten documents, accuracy depends heavily on input quality.
Failure example: A head chef photographs a four-page Brakes invoice on a busy Friday morning. The bottom-right corner is obscured by a thumb. The extraction engine misses the final six line items entirely, understating the week's protein spend by £340 and overstating the apparent GP margin by 1.8 percentage points.
Step 2: Detect Tables and Line Items on Multi-Page Invoices
Once input quality is under control, the next risk sits in how the system finds and rebuilds tables across pages.
- Confirm your extraction engine explicitly supports multi-page continuity. Tables that begin on page two and conclude on page three must be treated as a single data object.
- Verify the engine handles variable column counts. Foodservice invoices often mix pack-size, catch-weight, and unit-price columns within the same document.
- Test the engine against invoices with no visible grid lines. Vision AI invoice processing extracts line items from visually complex tables and maps relationships such as quantities to unit prices to totals without predefined templates.
- Validate that page-break rows are not duplicated or dropped during table reconstruction.
- Run a proof-of-concept on your five most structurally complex supplier invoices before committing to any platform. Many OCR platforms still struggle with multi-page line-item continuity, making this a required test case during any proof-of-concept evaluation.
Failure example: A two-page Bidfood invoice carries a table that breaks mid-row at the page boundary. The extraction engine treats the continuation row as a new header, duplicates the column labels, and drops the final 12 line items. Inventory records for those SKUs remain unchanged for the entire week.
Step 3: Apply SKU-Format and Quantity Validation Rules
- Maintain a master ingredient database with every valid supplier SKU in its exact format. This database acts as the source of truth for validation.
- Before checking against that database, apply regular-expression checks to every extracted SKU. Flag any value that does not match the expected alphanumeric pattern for that supplier. Regular-expression and format checks can validate SKU existence against a product database; failed fields should be flagged for human review or rescanning.
- Once the format passes, cross-reference extracted SKUs against the master list on every invoice. Route unmatched codes to a review queue rather than auto-posting to inventory.
- Validate quantity fields against expected units such as kg, each, or case per SKU. A quantity of 0.5 for a line item that only ships in whole cases signals an extraction error, not a delivery.
- Set a tolerance threshold for quantity variance against the most recent purchase order. Differences above 5% trigger a review flag.
Failure example: OCR reads a supplier SKU of "CH1O23" instead of "CH1023" due to a font ambiguity between the letter O and the digit 0. The SKU fails the database lookup, but without a validation rule the system creates a phantom ingredient entry. Inventory now carries two separate records for the same 5 kg chicken portion, doubling the apparent stock level.
Jelly's automated invoice scanning handles this at source. Every line item, including quantity, SKU, price, and tax, is extracted and cross-referenced automatically, so phantom entries and unmatched SKUs surface as alerts rather than silent errors in your stock count.
See Jelly's invoice scanning on your own supplier documents and watch SKU validation run on real data.
Step 4: Run Price × Quantity Checks and Unit-Conversion Logic
- After extraction, recalculate every line total independently. Extracted unit price multiplied by extracted quantity must equal the extracted line total within a £0.01 rounding tolerance. This step catches cases where one field is read correctly and another is not.
- When the recalculated total diverges from the stated total, treat that line as unreliable. At least one field, such as price, quantity, or total, is wrong, so flag the line and do not auto-post it to inventory or accounts payable.
- Standardise all units to a single base unit per ingredient category before the line total check. For example, convert all weight-based items to kilograms and all volume-based items to litres.
- Build a unit-conversion table for each supplier's pack-size notation. A "CS12x750ml" entry must resolve to 9 litres before the price-per-litre calculation runs.
- Validate the invoice subtotal against the sum of all line totals. A discrepancy of more than £0.05 flags the entire document for review. Effective line-item extraction must support tolerance rules that compare line-item sums against the stated invoice total.
Failure example: A wine supplier invoices 6 × 75cl bottles at £8.40 per bottle. The extraction engine reads the pack notation as a single unit and posts a unit price of £8.40 against a quantity of 1. The line total no longer matches the invoice, and the per-bottle cost feeding dish costing becomes £50.40 instead of £8.40, inflating the wine-flight GP calculation by 83%.
Step 5: Use Confidence Scores and Route Low-Trust Fields to Review
- Assign a confidence score to every extracted field, not just the document as a whole.
- Apply differentiated thresholds by field criticality. Price and quantity fields require 95%+ confidence to auto-accept, and SKU fields require 98%+. Critical fields such as totals and account numbers require 98%+ confidence or human review, while quantities and dates accept 95%+.
- Route any field below its threshold to a targeted human-review queue. Display the original invoice image alongside the extracted value so the reviewer corrects only the flagged field.
- Log every correction and feed those corrections back into threshold calibration on a weekly basis. A three-threshold confidence framework with per-field scoring routes only uncertain line-item extractions for targeted review, enabling a system with 95% field-level accuracy to reach 99.9% pipeline-level accuracy after human correction.
- Sample 2–5% of auto-accepted documents monthly to verify that confidence thresholds remain calibrated as supplier invoice layouts evolve.
Failure example: An extraction engine assigns a single document-level confidence score of 91% to a 38-line invoice and auto-accepts it. Three individual line items, all carrying confidence scores of 72% at field level, post incorrect prices to inventory. The errors are not discovered until month-end stock reconciliation, by which time two affected dishes have been sold at a 4% lower margin than planned.
| Confidence Band | Score Range | Action | Inventory Example |
|---|---|---|---|
| Green | 95–100% | Auto-accept and post | Chicken breast SKU, price, and quantity all match, so the line posts to stock immediately. |
| Amber | 80–94% | Route to human review queue | Unit price extracted as £12.40 with confidence at 87%. A reviewer confirms or corrects before posting. |
| Red | Below 80% | Reject and request rescan or re-send | Handwritten delivery note quantity is unreadable, so the supplier is asked to resubmit a digital PDF. |
Jelly's Price Alert feature operates at this layer. Every time a line item posts with a price that differs from the previous invoice for that SKU, Price Alert flags the change instantly and gives chefs and finance managers the data needed to challenge supplier price creep and claim credit notes before the next delivery.
Step 6: Normalise Data and Export to Inventory and POS
- Map every validated line item to its canonical ingredient record in your inventory system using the verified SKU as the primary key.
- Normalise supplier-specific product descriptions to your internal ingredient names before export. "Fillet Steak 28-Day Aged 200g" and "Aged Beef Fillet 200g" must resolve to the same inventory record.
- Export structured data such as JSON to your inventory system and accounting platform at the same time. Parallel export prevents timing mismatches between stock levels and payables.
- Confirm that unit conversions applied in Step 4 carry through to the inventory update. Stock levels must increment in the same base unit used for dish costing.
- Validate the export by reconciling the total invoice value posted to accounts payable against the sum of line-item costs posted to inventory. Any variance above £0.10 triggers an alert. Intelligent field mapping applies predefined rules to verify calculations, validate totals and tax on extracted line items before exporting structured data for ERP or inventory integration.
Failure example: A validated invoice exports to the accounting system correctly, but the inventory update runs 40 minutes later due to a sequential processing queue. A chef runs a stock count in the intervening window. The count shows pre-invoice stock levels, triggers a false low-stock alert, and causes an unnecessary emergency order worth £280.
Jelly works alongside Square, Lightspeed, EPOS Now, and Toast to close this gap. The moment a validated invoice posts, ingredient costs update across every recipe that uses those SKUs, and the GP margin for every affected dish recalculates live, with no manual refresh and no lag.
Watch live dish-cost updates on your own menu and see how ingredient price changes flow through to GP margins in real time.
Step 7: Adapt the Model to Each Supplier Layout
- Tag every invoice by supplier and layout version. Track extraction accuracy separately per supplier rather than as a single aggregate metric.
- After processing 10–20 invoices from the same supplier, review per-supplier accuracy. AI invoice systems develop reliable extraction patterns for a vendor's specific formats after processing 10–20 invoices, enabling near-perfect line-item accuracy for high-volume repeat suppliers.
- Feed every human correction from Step 5 back into the extraction model as labelled training data for that supplier's layout.
- When a supplier changes their invoice template, such as a new column order, added VAT breakdown, or revised SKU format, flag the first divergent invoice for full human review and treat it as a new layout version that needs re-calibration.
- Set a quarterly review cadence to audit per-supplier accuracy rates and retire any extraction rules that no longer match current invoice formats.
Failure example: A produce supplier quietly reformats their invoice in January, moving the unit-price column two positions to the right. The extraction model, trained on the previous layout, continues reading the description column as unit price for six weeks. Every affected line item posts an incorrect cost to inventory and dish costing until the quarterly audit catches the drift.
Common Restaurant Invoice Failures and How to Catch Them
Line items split across pages. A table row begins on page three and concludes on page four, with the unit price on the second page. Single-page extraction engines drop the continuation row entirely. The catching rule: enforce multi-page table continuity checks that hold open any row without a line total until a matching continuation appears or the document ends.
Handwritten delivery notes and amendments. A driver crosses out a printed quantity and writes a corrected figure by hand. Traditional template-based OCR tools generally cannot process handwritten annotations, so the printed incorrect quantity posts to inventory. The catching rule: flag any line where a handwritten annotation sits next to a printed field and route it to human review before posting.
Mid-period VAT-rate changes. A supplier invoice spans a VAT rate change date, with some lines at 20% and others at 0% for zero-rated food items. A single-rate VAT assumption inflates the net ingredient cost for zero-rated lines. The catching rule: validate VAT amount per line against the extracted net value using the applicable rate. Any line where VAT amount divided by net value does not equal a recognised UK VAT rate of 0%, 5%, or 20% routes to review.
Next Steps: Put the Seven-Step Pipeline to Work
The seven steps above form a complete, repeatable pipeline that any finance manager or head chef can brief to a supplier or implement within one working week. Each step addresses a specific failure mode such as input quality, table detection, SKU validation, math checks, confidence routing, normalisation, and continuous adaptation, and together they raise invoice line-item extraction accuracy to the 95%+ benchmark discussed earlier.
Jelly is the only platform built specifically for UK restaurants, pubs, and boutique hotels that combines all four pipeline layers, including layout analysis, OCR, LLM extraction, and rules-based validation, with native POS integrations that work alongside Square, Lightspeed, EPOS Now, and Toast, one-click Xero export, and live dish costing that updates the moment a validated invoice posts. Operators are live and receiving Price Alerts within 24 hours of their first invoice. At £129 per site per month, there are no per-user fees and no variable charges.
Cairn Lodge Hotel cut food costs by 5% within a month. Amber restaurant saves £3,000–£4,000 every month. The Howard Arms reached 80% gross profit after switching from manual processes.
See the full seven-step pipeline on your invoices and watch your own supplier documents run through Jelly's extraction engine in under 30 minutes.
Frequently Asked Questions
What accuracy benchmark should UK restaurants target for invoice line-item extraction?
The practical production target is 95% field-level accuracy as a minimum, with high-volume repeat suppliers reaching 98–99% as the model adapts to each supplier's layout. Below 95%, cumulative SKU and price errors corrupt inventory records fast enough to distort weekly food-cost reporting. Jelly's hybrid pipeline, which combines layout analysis, OCR, LLM extraction, and rules-based validation, is designed to reach and sustain 95%+ from the first week of use, with accuracy improving as the model adapts over time.
How does Jelly handle invoices from multiple suppliers with different formats?
Jelly processes invoices from any supplier regardless of format, whether that is a digital PDF emailed directly to your Jelly inbox, a photographed paper invoice, or a structured file from a major distributor. The extraction engine does not require per-supplier templates. It adapts to each supplier's layout through continuous model learning, so accuracy improves with every invoice processed. Supplier-specific SKU formats, pack-size notations, and VAT treatments all run through the same pipeline without manual configuration from the operator.
How quickly can a restaurant go live and start seeing value from Jelly?
Operators are live within 24 hours of their first invoice. The onboarding process involves directing suppliers to send invoices to a dedicated Jelly email address or photographing existing invoices into the app. Price Alerts and spending insights are available immediately. Connecting a POS system that works alongside Square, Lightspeed, EPOS Now, or Toast takes approximately five minutes via the Integrations tab. Live dish costing and GP margin visibility are active as soon as the first invoices have been processed and recipes have been built in the Kitchen section, which typically takes one working session.
Does Jelly integrate with Xero, and how does the accounting export work?
Yes. Jelly integrates directly with Xero via a one-click push. Every digitised invoice, with all line items, quantities, prices, and tax values validated, exports to Xero without manual re-entry. Operators using Jelly report a 90% reduction in bookkeeping time as a result. Sage integration is on the product roadmap. The Xero export runs alongside the inventory update, so accounts payable and stock records stay in sync without sequential processing delays.
How does Jelly handle data security for invoice and financial information?
Jelly processes invoice data on a secure cloud platform. Invoice images, extracted line-item data, and pricing information are stored and transmitted securely. Access is role-based, so owners, finance managers, and head chefs each see the data relevant to their function. Because Jelly replaces manual spreadsheet workflows and email chains, it reduces the number of unsecured touchpoints through which sensitive supplier pricing and financial data would otherwise pass. For operators with specific data residency questions, the Jelly team addresses these directly during the onboarding conversation.