Intelligent Document Processing at Scale with AI-Powered Tax Compliance and Invoice Analysis

syngenta · Other · 2025 · source Agentic: no · promotional bias: med · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Enterprise invoice and policy-compliance document processing

Syngenta needed to extract richer content from invoices and related documents at global scale, then compare that content against tax, vendor, procurement, and expense policies. Legacy OCR and basic ML supported only enough invoice fields for SAP three-way match, while tax compliance in Argentina still required manual checking of thousands of invoices against complex state- and product-specific tax policies.

Constraints:

Architecture

Syngenta built Wingman, an intelligent document processing pipeline around SAP, S3, Redshift, Glue, Amazon Bedrock Data Automation, Amazon Bedrock, Claude, OpenSearch Serverless, and Power BI. SAP ERP runs on EC2; invoice and business data are extracted into Redshift and documents are archived in S3. Glue jobs feed posted SAP data into OpenSearch. PDFs flow into Bedrock Data Automation, which performs OCR plus LLM-based linearization into structured JSON. The structured document output and policy context are sent to Amazon Bedrock, primarily Claude, to compare invoice details against tax policy and generate suggestions and explanations. Results are stored in OpenSearch and shown in Power BI dashboards alongside SAP postings.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  SAP_ERP_on_EC2["SAP ERP on EC2"] --> Redshift_analytics_lake["Redshift analytics lake"]
  SAP_ERP_on_EC2 --> S3_document_archive["S3 document archive"]
  Redshift_analytics_lake --> Glue_ETL_jobs["Glue ETL jobs"]
  Glue_ETL_jobs --> OpenSearch_Serverless["OpenSearch Serverless"]
  S3_document_archive --> Amazon_Bedrock_Data_Automation["Amazon Bedrock Data Automation"]
  Amazon_Bedrock_Data_Automation --> Document_JSON_output["Document JSON output"]
  Document_JSON_output --> Amazon_Bedrock_comparison_layer["Amazon Bedrock comparison layer"]
  Tax_policy_context["Tax policy context"] --> Amazon_Bedrock_comparison_layer
  Amazon_Bedrock_comparison_layer --> Model_experimentation_loop["Model experimentation loop"]
  Amazon_Bedrock_comparison_layer --> Wingman_suggestion_records["Wingman suggestion records"]
  Wingman_suggestion_records --> OpenSearch_Serverless
  OpenSearch_Serverless --> Power_BI_Wingman_dashboard["Power BI Wingman dashboard"]
  Power_BI_Wingman_dashboard --> Tax_and_legal_reviewers["Tax and legal reviewers"]
  Tax_and_legal_reviewers --> Tax_policy_update_workflow["Tax policy update workflow"]
  Tax_policy_update_workflow --> Tax_policy_context
  AP_chatbot_workflow["AP chatbot workflow"] --> Amazon_Bedrock_comparison_layer
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
SAP ERP on EC2 Source system for posted invoice data and business process records. Redshift analytics lake, S3 document archive
Redshift analytics lake Receives regular SAP table extracts for analytics and dashboard context. SAP ERP on EC2, Glue ETL jobs
S3 document archive Stores offloaded invoice PDFs and other SAP documents for document processing. SAP ERP on EC2, Amazon Bedrock Data Automation
Glue ETL jobs Move SAP-posted data from Redshift into OpenSearch Serverless. Redshift analytics lake, OpenSearch Serverless
Amazon Bedrock Data Automation Fully managed OCR plus LLM service that linearizes documents and outputs structured JSON. S3 document archive, Document JSON output, Confidence and grounding metadata
Document JSON output Structured representation of invoices and other documents generated by BDA. Amazon Bedrock Data Automation, Amazon Bedrock comparison layer
Tax policy context Syngenta policy summary of Argentine tax law used for invoice comparison. Amazon Bedrock comparison layer, Tax policy update workflow
Amazon Bedrock comparison layer Model platform where Claude compares structured document content with policy context and generates suggestions. Document JSON output, Tax policy context, Model experimentation loop, Wingman suggestion records
Model experimentation loop Experiments with Nova, Anthropic models, and prompt caching for page-level cost and accuracy. Amazon Bedrock comparison layer
Wingman suggestion records AI-generated tax classifications, mismatch flags, explanations, and other document insights. Amazon Bedrock comparison layer, OpenSearch Serverless, Power BI Wingman dashboard
OpenSearch Serverless Stores SAP data and Wingman suggestions for dashboard retrieval. Glue ETL jobs, Wingman suggestion records, Power BI Wingman dashboard
Power BI Wingman dashboard Presents SAP postings, AI suggestions, match indicators, invoice drilldowns, confidence, and explanations to tax/legal users. OpenSearch Serverless, Tax and legal reviewers
Tax and legal reviewers Review Wingman output and use dashboards for Argentina tax compliance workflows. Power BI Wingman dashboard, Tax policy update workflow
Tax policy update workflow Planned phase where Wingman monitors tax law changes and proposes policy updates for human validation. Tax policy context, Tax and legal reviewers
AP chatbot workflow Planned AP desktop path for running single invoices or batches through Wingman before processing. Amazon Bedrock comparison layer, Tax and legal reviewers

Data flow

Invoices and related SAP documents are archived from SAP into S3, while SAP tables are extracted into a Redshift analytics lake. Glue ETL sends SAP-posted data to OpenSearch Serverless. Invoice PDFs are processed by Amazon Bedrock Data Automation into structured JSON/linearized document output. That output, plus tax-policy context compiled by Syngenta, is sent to Amazon Bedrock using Anthropic Claude to determine suggested tax classifications, mismatches, explanations, and other document insights. OpenSearch stores both SAP data and Wingman suggestions, and Power BI dashboards show SAP values, AI suggestions, match/mismatch indicators, invoice details, confidence scores, and explanations.

3 supporting quotes
“we have the ERP sitting in EC2 instances here in AWS and we have regular uh data table extraction to the red shift data lakeink for analytics purpose”transcript, stated
“we are moving the uh the invoices in a PDF format and we are feeding a new service which was released in December when GA in in December Amazon bedrock data automation BDA”transcript, stated
“the structured form of our document plus as well the tax the tax information the tax as Senta just Brett explained Sententa uh collected from the tax government”transcript, stated

Why this architecture

Syngenta chose a modular document-lake and LLM-comparison architecture because the same invoice content can support multiple business problems once it is extracted richly enough. BDA handles the document-to-JSON step, Bedrock/Claude performs policy comparison and explanation, OpenSearch/Power BI make the output auditable, and modularity lets the team swap models, tune BDA outputs, use prompt caching, and adapt Wingman to procurement, vendor master, expense, and tax use cases.

3 supporting quotes
“if you can leverage the the content of an invoice all the things that you wouldn't normally find in move into SAP you can solve a lot of business problems”transcript, stated
“what we envision is essentially creating a pipeline of of documents that we that we scan and we make available um in an invoice data lake”transcript, stated
“the choice of the architecture made by the by the Sententa team and their partner DXE was clearly to to have a modular architecture.”transcript, stated

Models used: Amazon Bedrock Data Automation · Anthropic Claude · Amazon Nova models evaluated · OCR plus LLM techniques · in-house LLM for other Syngenta internal processes

Scale

Alternatives considered (roads not taken)

Legacy OCR/basic ML invoice extraction

Rejected because: The existing pipeline extracted only enough information for SAP three-way match and could not unlock richer invoice-content use cases.

“the technology we use um these days is is relatively old technology OCRs basic ML”transcript, stated
“the the information we extract from the invoice is just enough to enable a three-way match in SAP”transcript, stated

Manual tax-policy checking

Rejected because: Manual invoice comparison against Argentina tax policy was boring, time-consuming, and error-prone.

“we check it manually and um and that takes a lot of time. You got people doing fairly boring work”transcript, stated
“You got people doing fairly boring work and just ticking through invoices and comparing it against the policy document. Um and this is just a perfect case of wingman.”transcript, stated

Inline expense compliance only

Rejected because: Syngenta was still debating whether inline Concur checks or periodic batch audits were the right operating model for expenses.

“you can do this in line within conquer as well or alternatively you can do it in batches maybe once every three months six months a year”transcript, stated
“we're having this debate internally but the good thing is we've got the capability within conquer or also through through wingman”transcript, stated

One fixed model and prompt strategy

Rejected because: The team experimented with Nova, Anthropic models, and prompt caching to optimize cost per page, accuracy, and performance.

“They did experiment with Nova, with Entropic and with different prompt caching technique in order to see how they could uh bring the cost down at the page level”transcript, stated

Patterns

batch-offline-processing (operations)

Wingman processes invoice PDFs and SAP extracts through ETL, BDA, Bedrock, OpenSearch, and Power BI, with both batch invoice processing and future AP batch checks.

“we've got a PC for um for the batch processing of invoices. um and enabling us to sort of automate what we do manually.”transcript, stated
“desktop of folks in AP so they can run a single invoice or a batch of invoices um through Wingman to see if the tax calculations being correct”transcript, stated

structured-output-contract (interface)

BDA turns documents into structured JSON/linearized output, and Wingman records structured suggestions that can be displayed next to SAP data.

“as you are getting the insights here as a JSON format, we are sending that now to Amazon Bedrock”transcript, stated
“SAP data in the middle in blue the LLM suggestions or the wingman suggestions”transcript, stated

rag-retrieval (retrieval)

The system passes structured invoice content plus tax-policy context into Bedrock so the model can compare document facts against policy.

“the structured form of our document plus as well the tax the tax information”transcript, stated
“we compare um we compare the invoice against tax policy. But someone still needs to com to to compile this tax policy.”transcript, stated

model-routing (modeling)

Syngenta used Bedrock's model choice to experiment with Nova, Anthropic models, and prompt caching for cost and accuracy tradeoffs.

“with Amazon Bedrock, it's a choice of model. They did experiment with Nova, with Entropic and with different prompt caching technique”transcript, stated

human-in-the-loop-gate (workflow)

Tax and legal users review Wingman dashboards, and future tax-policy changes proposed by Wingman require human validation before policy updates.

“dashboards built in PowerBI uh that we um that the folks in in tax and legal and Argentina are using.”transcript, stated
“it proposes an update to this centa tax policy which a human will still need to validate.”transcript, stated

eval-driven-development (quality)

The architecture exposes confidence scores, grounding, match/mismatch indicators, and dashboard drilldowns so users can inspect model suggestions.

“it brings accuracy because you have confidence score uh built within the system”transcript, stated
“you have the confidence score you have the bounding boxes you have the visual grounding”transcript, stated

cost-aware-routing (operations)

Prompt caching and model experiments were used to reduce page-level cost while improving accuracy and performance.

“different prompt caching technique in order to see how they could uh bring the cost down at the page level but also how they could improve the accuracy and the performances”transcript, stated

Tradeoffs

Use a modular AWS architecture.

Chose BDA, Bedrock, OpenSearch, Glue, Redshift, S3, and Power BI as swappable modules over a monolithic invoice-processing system.

Rationale: Modularity lets the team tune BDA outputs, switch models, experiment with prompt caching, and extend Wingman to more use cases.

“the choice of the architecture made by the by the Sententa team and their partner DXE was clearly to to have a modular architecture.”transcript, stated
“Amazon Bedrock data automation which is a managed service where you can tune and tweak some custom and standard output”transcript, stated

Process invoices through LLMs for richer business insight.

Chose LLM-driven invoice content understanding over extracting only SAP three-way-match fields.

Rationale: Rich invoice understanding unlocks tax, procurement, vendor master, and expense compliance use cases beyond basic AP automation.

“with that pipeline of documents ments in an LLM, we can get much much greater insight into the content of the invoice”transcript, stated
“we have a few use cases um one on indirect spend reduction, one on vendor master data accuracy, uh one on T compliance expenses”transcript, stated

Start with Argentina tax compliance.

Chose a focused tax-policy comparison use case over scaling all document-processing use cases at once.

Rationale: Argentina tax was painful, policy-driven, and already manually checked, making it a good proof-of-concept before selecting more countries.

“where we started with with with this use case is in Argentina. Um, that we don't have that many use invoices to process”transcript, stated
“we've completed the PC for this. It works for Argentina uh and we're at the position now where we um we just need to decide which countries to go to next”transcript, stated

Expose suggestions to reviewers rather than silently changing postings.

Chose Power BI dashboards with SAP data, Wingman suggestions, and explanations over automatic correction without review visibility.

Rationale: Tax users need to see posted data, AI suggestions, mismatches, and explanations before acting.

“on the left the SAP data in the middle in blue the LLM suggestions or the wingman suggestions”transcript, stated
“the LLM is intelligent enough also to kind of describe why it's incorrect. All right, it provides a summary.”transcript, stated

Evaluate inline versus periodic expense compliance.

Chose keep both Concur inline and Wingman batch options open over forcing one compliance-check workflow immediately.

Rationale: Periodic audits may be enough for policy reminders and issue discovery, while inline checks catch issues earlier.

“maybe once every three months six months a year that may be enough also to uh identify where you have a compliance issue”transcript, stated
“or also through through wingman um using the LLM capabilities”transcript, stated

Gotchas (what bit them)

Legacy invoice automation was too shallow for new business problems.

Root cause: OCR/basic ML extracted only enough fields for SAP three-way matching.

Resolution: Wingman builds a richer invoice data lake and LLM pipeline to understand broader invoice content.

“the document processing capabilities that we've got now are pretty dumb, right? Um, just enough, as I said, to to enable a three-way match.”transcript, stated
“just enough, as I said, to to enable a three-way match. But what we've learned is that if and this is the one message”transcript, stated

Argentina tax classification was complex and manual.

Root cause: Tax law varies by state and product type, so invoices had to be manually compared against policy documents.

Resolution: Wingman extracts invoice content, compares it to Syngenta tax policy, and explains mismatches.

“tax law in Argentina is kind of complicated. It's it's it's different by state and it's and it's different by what you buy”transcript, stated
“wingman can take a look at the invoice, understand what it is that we bought, right? compare it against the um compare it against the Sententa tax policy”transcript, stated

Correcting vendor data mid-flow interrupts invoice processing.

Root cause: Incorrect vendor names or bank details stop the process and require AP staff to contact the vendor and repair the workflow.

Resolution: Wingman can compare extracted invoice vendor details against SAP MDG before processing begins.

“One thing that's going to interrupt it for sure is if the if the vendor name or the vendor bank details or something on the on the invoice”transcript, stated
“compare that with what's in SAP MDG, right? And if it's a match, great. the invoice go through.”transcript, stated

Expense compliance operating mode was unresolved.

Root cause: Syngenta had both inline Concur and periodic batch-audit options, each with different workflow implications.

Resolution: The team kept both capabilities available while debating which operating model to implement.

“you can do this in line within conquer as well or alternatively you can do it in batches maybe once every three months six months a year”transcript, stated
“we're having this debate internally but the good thing is we've got the capability within conquer or also through through wingman”transcript, stated

Dashboard screenshots used fake sandbox numbers.

Root cause: The demo exposed tax and supplier information, so values were sanitized.

Resolution: The presenter explicitly warned that numbers in the screenshots were fake and supplier details were blacked out.

“the numbers are obviously >> Yeah, the numbers are fake >> from the sandbox, right?”transcript, stated
“we've got um supply details blacked out for confidentiality.”transcript, stated

Tax policy itself has to stay current.

Root cause: Wingman compares invoices against a compiled Syngenta tax policy, but someone still has to update that policy when tax law changes.

Resolution: A planned phase has Wingman monitor Argentina tax law and propose policy updates for human validation.

“someone still needs to com to to compile this tax policy. And that's a summary of Argentina tax law.”transcript, stated
“when there's a change in tax law, it proposes an update to this centa tax policy which a human will still need to validate.”transcript, stated

Evaluation

Syngenta evaluates Wingman through proof-of-concept completion, dashboard use by Argentina tax/legal users, match/mismatch comparisons against SAP postings, confidence scores, visual grounding, explanations, and model experiments around cost per page, accuracy, and performance. The speaker reports a completed POC for Argentina and technical capability proven for procurement spend reduction, but does not provide a formal confusion matrix or exact accuracy percentage in the transcript.

Metrics: POC completion for Argentina tax · match and mismatch counts in Power BI · confidence scores · visual grounding · LLM explanations · cost per page · accuracy · performance · country scaling readiness

3 supporting quotes
“we've completed the PC for this. It works for Argentina uh and we're at the position now where we um we just need to decide which countries to go to next”transcript, stated
“You can see the the the diagrams on the left hand side where we've got a match and where we have not got a match.”transcript, stated
“cost down at the page level but also how they could improve the accuracy and the performances”transcript, stated

Outcomes

Syngenta reports 90 countries, more than 30,000 employees, about one million invoices per year, about two and a half million invoice-related documents per year, and roughly 4,000 Argentina invoices per month for the tax use case. The demo screenshots used fake sandbox numbers.

3 supporting quotes
“we've proven the technical capability for this and the next step is to um next step is to scale it up.”transcript, stated
“dashboards built in PowerBI uh that we um that the folks in in tax and legal and Argentina are using.”transcript, stated
“wingman actually it's an Argentina it should be in pesos so um it's highlighted that ARS should be the correct currency.”transcript, stated