
GITNUXSOFTWARE ADVICE
Data Science AnalyticsTop 10 Best Batch OCR Software of 2026
Ranked top Batch Ocr Software for bulk document OCR, quality checks, and speed, with tools like Google Cloud Vision, Azure AI, and Amazon Textract.
How we ranked these tools
Core product claims cross-referenced against official documentation, changelogs, and independent technical reviews.
Analyzed video reviews and hundreds of written evaluations to capture real-world user experiences with each tool.
AI persona simulations modeled how different user types would experience each tool across common use cases and workflows.
Final rankings reviewed and approved by our editorial team with authority to override AI-generated scores based on domain expertise.
Score: Features 40% · Ease 30% · Value 30%
Gitnux may earn a commission through links on this page — this does not influence rankings. Editorial policy
Editor’s top 3 picks
Three quick recommendations before you dive into the full comparison below — each one leads on a different dimension.
Google Cloud Vision API
Asynchronous batch OCR-style text detection with per-region bounding box output
Built for large-scale OCR pipelines needing structured text extraction for search and indexing.
Microsoft Azure AI Vision
Editor pickDocument OCR style text extraction with structured results and visual analysis in Azure AI Vision
Built for teams needing batch OCR plus image understanding in Azure workflows.
Amazon Textract
Editor pickAnalyzeDocument for forms and tables with structured JSON results
Built for teams needing batch OCR plus table and form extraction at scale.
Related reading
Comparison Table
This comparison table ranks batch OCR platforms by integration depth, data model, and the automation and API surface used for bulk ingestion and document workflows. It also inventories admin and governance controls such as RBAC, provisioning options, and audit log coverage, plus how each service represents OCR outputs through a defined schema. The goal is to make tradeoffs clear across throughput, configuration patterns, extensibility options, and sandboxing for test runs.
Google Cloud Vision API
API-firstProvides OCR and document text detection for batch processing via a managed API and integrates with Cloud Storage and Pub/Sub for scalable workflows.
Asynchronous batch OCR-style text detection with per-region bounding box output
Google Cloud Vision API stands out for combining OCR with broader visual understanding like text detection, label-style classification, and document parsing signals. It supports batch processing via Google Cloud’s asynchronous and batch-style workflows, making it practical for high-volume document intake.
Detected text can be returned with structured bounding boxes and page-level organization, which helps downstream indexing and search. Integration into larger Google Cloud systems enables building repeatable pipelines for extracting text from images and scanned documents.
- +High-accuracy OCR with bounding boxes and structured text results
- +Document-focused text detection works well on scans and photos
- +Strong integration options with Google Cloud storage and pipelines
- +Scales to large OCR batches with asynchronous processing patterns
- –Requires cloud setup, service configuration, and credentials management
- –Best results depend on preprocessing and image quality control
- –Complex document extraction workflows need more engineering effort
Accounts payable operations teams
Extract invoice text from scanned PDFs
Faster invoice data capture
E-commerce catalog operations
Read product text from packaging photos
Improved search and matching
Show 2 more scenarios
Document intelligence engineering teams
Batch process receipts at scale
Higher throughput document ingestion
Uses asynchronous batch workflows to extract text from many uploads and organize results by page.
Compliance and records teams
OCR archived forms for retrievability
Better internal document retrieval
Processes scanned documents and produces structured text outputs for downstream review and indexing.
Best for: Large-scale OCR pipelines needing structured text extraction for search and indexing
More related reading
Microsoft Azure AI Vision
enterprise OCRDelivers OCR capabilities through Azure AI Vision services for large-scale batch extraction with SDK support and event-driven ingestion patterns.
Document OCR style text extraction with structured results and visual analysis in Azure AI Vision
Microsoft Azure AI Vision stands out for combining document-style OCR with deep image analysis services in a single Azure stack. It supports batch processing through Azure AI Vision APIs that can extract text, detect and tag visual content, and return structured results for downstream automation.
The service integrates directly with Azure data stores and workflow tools, which helps teams operationalize vision output at scale. Its batch OCR use case is best when the workflow needs both text extraction and broader visual understanding on the same images.
- +Strong OCR accuracy with structured text extraction outputs
- +Batch-friendly API design supports high-volume document ingestion
- +Works well with Azure pipelines for automation and storage
- –Batch OCR requires application orchestration and storage plumbing
- –Tuning and error handling take effort for mixed-quality scans
- –Extra vision capabilities can increase integration complexity
Customer support automation teams
Process screenshots with text and tags
Faster ticket triage
Accounts payable operations teams
Batch OCR invoices with layout fields
Reduced manual data entry
Show 2 more scenarios
Retail merchandising analytics teams
Read product labels and classify images
More accurate cataloging
Retail teams combine text extraction with visual tagging to update inventory attributes automatically.
Document processing engineering teams
Detect forms and extract fields at scale
Stable pipeline outputs
Engineers run batch vision jobs that return structured output for document workflows.
Best for: Teams needing batch OCR plus image understanding in Azure workflows
Amazon Textract
managed OCRExtracts text from scanned documents and supports batch jobs for forms and tables using the Amazon Textract APIs.
AnalyzeDocument for forms and tables with structured JSON results
Amazon Textract stands out for extracting text, forms fields, and tables directly from images and PDFs via managed OCR APIs. Batch OCR runs asynchronously so large document sets can be processed without interactive polling.
Document intelligence features include form key-value detection and table structure output that supports downstream indexing. Output is delivered as JSON with bounding boxes and confidence scores for auditability.
- +Strong table extraction with structured cell boundaries and relations
- +Form field detection returns key-value pairs with confidence scores
- +Asynchronous batch jobs handle large document volumes reliably
- +JSON output includes geometry for precise overlay and review
- –Preprocessing and layout variability can still require custom tuning
- –Complex workflows need additional AWS orchestration for routing
Accounts payable teams
Extract invoice fields from scanned PDFs
Reduced manual invoice data entry
Legal operations teams
Index contract text and tables at scale
More reliable document search
Show 2 more scenarios
Document automation engineering
Transform batch documents into downstream JSON
Cleaner ingestion into systems
Asynchronous batch OCR outputs consistent structures for ETL pipelines that normalize fields across sources.
Records management teams
OCR archives and retrieve fields later
Faster retrieval of archived records
Extracted text and table structure improve retrieval accuracy for archived records with mixed formats.
Best for: Teams needing batch OCR plus table and form extraction at scale
More related reading
Kofax
document captureAutomates document capture and OCR at scale with batch-oriented workflows for ingesting, extracting, and routing documents.
Document processing workflow orchestration that applies OCR within an end-to-end capture pipeline
Kofax stands out for enterprise-grade document capture that combines batch OCR with automated classification and post-processing. Its OCR workflows typically integrate with Kofax platforms for ingestion, document preparation, and downstream data extraction.
Batch OCR accuracy is supported by configurable document processing steps that target real-world forms, invoices, and mixed document sets. Operations teams get repeatable pipelines for high-volume backfile digitization where consistent output and routing matter.
- +Batch OCR designed for enterprise document ingestion and extraction workflows
- +Configurable document processing steps support mixed forms and scan quality variance
- +Integration focus enables OCR outputs to feed classification and downstream automation
- –Workflow setup can be complex for teams without document automation experience
- –Tuning OCR accuracy often requires iterative configuration and validation on sample sets
- –Best results depend on disciplined data capture and document preparation practices
Best for: Enterprises digitizing high-volume document batches with automated extraction and routing needs
Rossum
document AIUses OCR and document understanding to process batches of document images and PDFs and returns structured data for downstream analytics.
Document type training for accurate field extraction beyond raw OCR text
Rossum stands out for turning batch document ingestion into an automated extraction workflow using machine learning and configurable document templates. It supports high-volume OCR with field mapping, validation, and post-processing so teams can export structured data rather than only images or plain text. Batch handling is designed around document types and repeatable layouts, which reduces manual labeling once the model is trained for the target document set.
- +Configurable extraction workflow that outputs structured fields from batch documents
- +Model training and template setup improve consistency across repeatable document types
- +Validation and review flows help catch OCR and mapping errors before export
- –Onboarding requires thoughtful document type definition and labeling effort
- –Less flexible for highly unique layouts that do not repeat across batches
- –Workflow configuration can feel complex compared with simple OCR tools
Best for: Operations teams automating repeatable invoice and document data extraction at scale
Docsumo
invoice OCRExtracts data from invoices, receipts, and PDFs in batch workflows using OCR-powered document processing and structured output.
Template-based field extraction for consistent structured outputs
Docsumo turns batches of documents into structured fields using AI extraction plus configurable templates. It supports OCR-style processing for scanned files and automates classification and data capture workflows around common document types like invoices and receipts.
Extraction results export into downstream systems via integrations and APIs, reducing manual copy-paste for high-volume document intake. The main differentiator is template-driven field mapping that aims to stay consistent across document batches rather than only returning raw text.
- +Template-driven extraction maps fields across large document batches
- +Good support for invoice and receipt style document workflows
- +Exports and integrations fit document processing pipelines
- +Automated classification reduces manual document sorting effort
- –Field accuracy depends on document quality and consistent layouts
- –Template setup takes time for new document types
- –Less suited for pure OCR text mining without structure
Best for: Teams automating invoice and receipt extraction from scanned batches
More related reading
RossOCR
open-source batch OCRRuns OCR in batch using an open-source pipeline centered on a deep-learning OCR stack that processes folders of images into text outputs.
Single-call recognition with optional text detection and language model selection
EasyOCR stands out by turning a local OCR pipeline into a simple Python workflow that batches images through trained deep learning models. It supports English by default and can load additional language models to OCR many common document layouts.
Batch OCR works by running detection and recognition repeatedly across files, then exporting results in structured text formats. Output quality depends on image preprocessing and model choice for the script and layout complexity.
- +Batch OCR runs fully in Python with straightforward loops over image files
- +Language-specific model loading supports multiple scripts beyond English
- +EasyText-style outputs include recognized text with bounding boxes when detection is enabled
- +Open model execution keeps OCR steps transparent and tunable
- –Command-line batching offers limited workflow automation compared with dedicated batch suites
- –OCR accuracy drops on low-resolution images without external preprocessing steps
- –GPU acceleration requires environment setup that complicates nontechnical deployments
Best for: Developers batch-processing mixed image sets for text extraction into files or JSON
Tesseract OCR
open-source OCRProvides batch OCR via command-line processing of images and PDFs for bulk text extraction with configurable language packs.
Multilingual OCR via downloadable traineddata language packs
Tesseract OCR stands out for being a mature, open-source OCR engine that can be embedded into automated batch pipelines. It supports multi-page batch processing via command-line workflows and produces structured text output for downstream indexing or extraction.
Accuracy varies by language data quality and image preprocessing needs, especially for skewed, low-resolution scans. It is strongest when workflows can include image cleanup steps like binarization, rotation, and denoising before OCR.
- +Command-line batch OCR with consistent, scriptable outputs
- +Wide language and model coverage through traineddata files
- +Reliable text extraction from high-contrast scanned documents
- –Image preprocessing is often required for consistent results
- –No native job scheduler or UI for batch orchestration
- –Layout handling is limited compared with document-first OCR
Best for: Teams batch-processing scanned documents using scripts and preprocessing
More related reading
OCRmyPDF
PDF OCRAdds OCR layers to PDFs in bulk by processing large numbers of files and producing searchable PDFs for analytics pipelines.
Configurable OCR preprocessing plus direct text-layer embedding into output PDFs
OCRmyPDF turns existing PDFs into searchable documents by running OCR and embedding text back into the same PDF structure. Batch processing is handled via its command-line workflow, which fits pipelines that need to OCR many files in sequence or through scripts.
It supports common OCR backends and can enhance scans with preprocessing like deskew and image cleanup before text extraction. The tool is best suited to teams comfortable with command execution and file-based automation rather than a point-and-click batch UI.
- +Batch-friendly command-line flow for processing large PDF collections
- +Writes OCR output directly into searchable PDF text layers
- +Supports preprocessing options like deskew and cleanup for scanned documents
- –Requires command-line usage and scripting for reliable batch automation
- –Less ideal for interactive review workflows and manual correction
- –OCR quality depends heavily on scan quality and chosen OCR settings
Best for: Operations teams automating searchable PDFs in file pipelines
EasyOCR
python OCRPerforms OCR on images with code-first batch execution over directories for extracting text into machine-readable outputs.
Single-call recognition with optional text detection and language model selection
EasyOCR stands out by turning a local OCR pipeline into a simple Python workflow that batches images through trained deep learning models. It supports English by default and can load additional language models to OCR many common document layouts.
Batch OCR works by running detection and recognition repeatedly across files, then exporting results in structured text formats. Output quality depends on image preprocessing and model choice for the script and layout complexity.
- +Batch OCR runs fully in Python with straightforward loops over image files
- +Language-specific model loading supports multiple scripts beyond English
- +EasyText-style outputs include recognized text with bounding boxes when detection is enabled
- +Open model execution keeps OCR steps transparent and tunable
- –Command-line batching offers limited workflow automation compared with dedicated batch suites
- –OCR accuracy drops on low-resolution images without external preprocessing steps
- –GPU acceleration requires environment setup that complicates nontechnical deployments
Best for: Developers batch-processing mixed image sets for text extraction into files or JSON
Conclusion
After evaluating 10 data science analytics, Google Cloud Vision API stands out as our overall top pick — it scored highest across our combined criteria of features, ease of use, and value, which is why it sits at #1 in the rankings above.
Use the comparison table and detailed reviews above to validate the fit against your own requirements before committing to a tool.
How to Choose the Right Batch Ocr Software
This buyer's guide covers batch OCR and document text extraction choices across Google Cloud Vision API, Microsoft Azure AI Vision, Amazon Textract, Kofax, and Rossum. It also compares developer and script-driven options like Tesseract OCR, OCRmyPDF, and EasyOCR.
Evaluation criteria center on integration depth, data model design, automation and API surface, and admin and governance controls. The guide includes a ranked selection methodology, tool-specific decision steps, and common mistakes tied to each tool’s constraints.
Batch OCR pipelines that convert many documents into searchable text or structured fields
Batch OCR software runs OCR over large document sets using scripts or managed APIs, then returns machine-readable output for indexing, search, and downstream extraction. The core jobs are asynchronous processing, structured outputs with bounding boxes or geometry, and document-level organization that downstream systems can consume.
Google Cloud Vision API and Microsoft Azure AI Vision fit teams that want OCR-style text detection in a broader cloud stack where images and text results need to flow into storage and event-driven workflows. Amazon Textract is built for batch extraction where forms and tables must return structured JSON that includes geometry and confidence for auditability.
Integration, data model, automation surface, and governance controls for OCR at scale
Batch OCR tools only become production-grade when the OCR output lands in a data model that matches downstream systems. Integration depth matters because ingestion, orchestration, and output handling often determine throughput and reprocessing behavior.
Automation and API surface matter because batch OCR is usually handled by asynchronous jobs, event ingestion, or command-line pipelines. Admin and governance controls matter because audit logs, identity controls, and repeatable configuration determine how OCR runs are tracked and corrected across large backlogs.
Asynchronous batch OCR with geometry-rich structured output
Google Cloud Vision API provides asynchronous batch-style text detection with per-region bounding box output, which makes overlay review and downstream indexing straightforward. Amazon Textract also delivers asynchronous batch jobs that return JSON with bounding boxes and confidence, which supports audit workflows for large volumes.
Document OCR style extraction that couples text with visual analysis
Microsoft Azure AI Vision is designed around document OCR style text extraction with structured results plus visual analysis outputs inside Azure AI Vision. This reduces integration friction when OCR results must be combined with broader image understanding for the same document batch.
Form and table structure for key-value and cell-level extraction
Amazon Textract highlights AnalyzeDocument for forms and tables that returns structured JSON with fields like key-value pairs and table cell boundaries. This matters when the target output is not just plain text but also reliably structured fields for downstream automation.
Template-driven field mapping for repeatable document types
Rossum focuses on document type training and template-like configuration so the batch run produces structured fields instead of only OCR text. Docsumo similarly uses template-driven field extraction aimed at consistent structured outputs for invoice and receipt style documents.
End-to-end capture orchestration around OCR rather than OCR alone
Kofax is oriented around document capture workflows that apply OCR within an end-to-end pipeline that includes classification and post-processing. This is a fit when governance and routing around the extraction must be centralized in an ingest-to-output workflow.
Operational file pipeline support for searchable outputs
OCRmyPDF writes OCR output directly into searchable PDF text layers and supports batch processing through a command-line workflow, which fits file-based automation. Tesseract OCR and EasyOCR also support batch execution patterns, but they lean more toward script-driven text extraction where preprocessing and layout handling are controlled by the pipeline.
A decision framework for selecting batch OCR based on output structure and integration depth
Start with the required output structure, because the best fit differs between geometry-first text mining and structured extraction for forms, tables, invoices, and receipts. Google Cloud Vision API and Azure AI Vision emphasize structured OCR results with bounding boxes, while Amazon Textract emphasizes forms and tables with AnalyzeDocument JSON.
Then validate integration and automation constraints, because batch OCR is rarely run manually and often needs asynchronous ingestion patterns, event handling, or command-line file workflows. Governance requirements should be checked early since workflow orchestration and identity control determine how OCR corrections and reprocessing are audited.
Lock the target output contract before choosing an OCR engine
If the target is searchable text with bounding boxes, Google Cloud Vision API provides asynchronous batch-style text detection with per-region geometry. If the target is key-value fields and table structure for forms, Amazon Textract’s AnalyzeDocument output is built for structured JSON with confidence scores and geometry.
Match your integration stack to the tool’s orchestration model
If images and results already live inside Google Cloud Storage and message-driven workflows, Google Cloud Vision API is designed to fit those scalable pipelines. If the workflow runs inside Azure data stores and automation tooling, Microsoft Azure AI Vision fits batch extraction plus additional visual analysis.
Decide between document-type training and pure OCR output
For repeatable document types like invoices, Rossum uses document type training so batch runs produce mapped fields plus validation and review flows. For invoice and receipt style batches where template-driven mapping is the priority, Docsumo uses template-based field extraction aimed at consistent structured outputs.
Pick the automation surface that matches how batches run in practice
For cloud-native asynchronous job processing, Amazon Textract and Google Cloud Vision API support batch OCR patterns that avoid interactive polling. For file-based pipelines that process large collections sequentially, OCRmyPDF uses a command-line workflow and writes searchable text layers directly into PDFs.
Plan preprocessing and layout variance handling as part of the pipeline
If mixed-quality scans are common, tools like Microsoft Azure AI Vision and Amazon Textract still require orchestration for storage plumbing and error handling for mixed-quality inputs. If the workflow relies on a script-first OCR engine, Tesseract OCR and OCRmyPDF depend heavily on configurable preprocessing like deskew and image cleanup.
Design governance around routing, validation, and audit-friendly output
For enterprises that need OCR inside end-to-end capture and routing, Kofax focuses on configurable document processing workflow orchestration that applies OCR within a broader ingest pipeline. For auditability, Amazon Textract outputs JSON with confidence and geometry that helps track OCR results and overlay review during batch processing.
Which teams get the most value from batch OCR and document extraction tools
Batch OCR tools fit teams that must run extraction over large image or PDF backlogs and then feed the output into search, analytics, or automated workflows. The best choices differ based on whether the required result is plain text, searchable PDFs, or structured fields for forms and tables.
The segments below map directly to each tool’s best-fit usage and production posture.
Large-scale search and indexing pipelines that need geometry-first text results
Google Cloud Vision API is a strong fit because it provides asynchronous batch-style text detection with per-region bounding box output that downstream indexing systems can use. Microsoft Azure AI Vision also fits this segment when the pipeline runs in Azure and needs structured OCR results plus visual analysis from the same stack.
Operations teams extracting fields from forms, tables, invoices, and receipts at scale
Amazon Textract fits when forms and tables must return structured JSON via AnalyzeDocument with confidence scores for auditability. Rossum fits when document templates and field mapping with validation and review flows are needed for repeatable document types.
Enterprises digitizing backlogs with routing, classification, and OCR embedded in capture workflows
Kofax fits because batch OCR is positioned inside an enterprise document capture workflow that applies OCR with classification and post-processing. This reduces the gap between extraction output and routing requirements for ingest-to-output pipelines.
Developers and automation teams running script-first OCR and searchable PDF generation
OCRmyPDF fits when batch OCR must write OCR output into searchable PDF text layers using a command-line workflow and preprocessing options like deskew and cleanup. Tesseract OCR and EasyOCR fit when the batch job is controlled by scripts and preprocessing steps are managed inside the pipeline.
Batch OCR pitfalls caused by output mismatch and pipeline assumptions
Many batch OCR failures come from choosing a tool that returns the wrong output structure for downstream systems. Others come from underestimating the preprocessing and orchestration work needed for mixed-quality scans and layout variability.
The pitfalls below are tied to the concrete constraints and cons seen across tools like Google Cloud Vision API, Microsoft Azure AI Vision, Amazon Textract, Kofax, and script-driven engines like Tesseract OCR and OCRmyPDF.
Assuming raw OCR text is enough for forms and tables
Amazon Textract is built to return structured JSON for forms and tables via AnalyzeDocument, including cell structure and confidence. Tools that focus on text detection like Google Cloud Vision API can still provide bounding boxes, but forms and table extraction often require the AnalyzeDocument-style data model.
Under-scoping orchestration work for asynchronous batch jobs
Google Cloud Vision API and Microsoft Azure AI Vision both require cloud setup, credentials, and workflow orchestration to handle batch execution patterns. Amazon Textract also requires additional AWS orchestration for routing when workflows get complex.
Skipping preprocessing and treating OCR engines as drop-in batch tools
Tesseract OCR often needs image preprocessing like binarization, rotation, and denoising for consistent results. OCRmyPDF can preprocess with deskew and cleanup, but OCR quality still depends heavily on scan quality and chosen OCR settings.
Using template-heavy field extraction without repeatable document layouts
Rossum and Docsumo improve consistency using document type training or template-driven mapping, which depends on repeatable layouts. If layouts are highly unique across batches, these approaches can require more configuration to maintain field accuracy.
How We Selected and Ranked These Tools
We evaluated Google Cloud Vision API, Microsoft Azure AI Vision, Amazon Textract, Kofax, Rossum, Docsumo, RossOCR, Tesseract OCR, OCRmyPDF, and EasyOCR by scoring each tool on features, ease of use, and value, then computing an overall rating as a weighted average where features carries the most weight at 40 percent while ease of use and value each account for 30 percent. This criteria-based scoring reflects how batch OCR success depends on the OCR output contract, the automation surface for large backlogs, and the operational effort needed to run batches reliably.
Google Cloud Vision API ranks highest because it combines high-accuracy OCR with structured text results and bounding boxes plus asynchronous batch-style text detection, which directly improves both output usability for indexing and integration viability for scalable pipelines. That capability aligns with the features-heavy scoring approach and supports high-throughput batch processing without forcing extra layers purely to obtain geometry-rich results.
Frequently Asked Questions About Batch Ocr Software
How do Google Cloud Vision API and Amazon Textract differ for batch OCR when downstream needs structured outputs?
Which tool is a better fit for OCR plus broader visual understanding inside one workflow stack: Azure AI Vision or Kofax?
What batch OCR approach supports high-throughput processing without interactive polling: Textract asynchronous jobs or a local engine like Tesseract?
How do Rossum and Docsumo handle document fields compared with OCR engines that return only text and boxes?
Which option is best for converting image-based files into searchable PDFs at scale: OCRmyPDF or cloud OCR APIs?
For multilingual scanned documents, how do Tesseract and cloud OCR services compare?
What is the main integration difference between using an OCR engine locally, like OCRmyPDF or EasyOCR, versus using managed OCR APIs like Azure AI Vision?
How do admin controls and audit needs typically show up across Kofax versus managed API providers?
What integration and extensibility patterns work best when workflows need custom data models or field schemas?
Tools reviewed
Primary sources checked during evaluation.
Referenced in the comparison table and product reviews above.
Keep exploring
Comparing two specific tools?
Software Alternatives
See head-to-head software comparisons with feature breakdowns, pricing, and our recommendation for each use case.
Explore software alternatives→In this category
Data Science Analytics alternatives
See side-by-side comparisons of data science analytics tools and pick the right one for your stack.
Compare data science analytics tools→FOR SOFTWARE VENDORS
Not on this list? Let’s fix that.
Our best-of pages are how many teams discover and compare tools in this space. If you think your product belongs in this lineup, we’d like to hear from you—we’ll walk you through fit and what an editorial entry looks like.
Apply for a ListingWHAT THIS INCLUDES
Where buyers compare
Readers come to these pages to shortlist software—your product shows up in that moment, not in a random sidebar.
Editorial write-up
We describe your product in our own words and check the facts before anything goes live.
On-page brand presence
You appear in the roundup the same way as other tools we cover: name, positioning, and a clear next step for readers who want to learn more.
Kept up to date
We refresh lists on a regular rhythm so the category page stays useful as products and pricing change.
