Receipt OCR Technology
Reading Time: 6 minutes
Overview
Akili Apps uses advanced Optical Character Recognition (OCR) powered by Google Cloud Vision API to automatically extract data from your receipt images. Learn how this technology works and how to get the most accurate results.
What You'll Learn
- How OCR technology extracts receipt data
- Understanding OCR confidence scores
- Supported languages and receipt types
- Best practices for optimal OCR accuracy
- Troubleshooting OCR issues
How Receipt OCR Works
The OCR Process
When you upload a receipt, our system processes it through multiple stages:
1. Image Upload & Storage
- Receipt image uploaded to secure cloud storage (Cloudflare R2)
- File metadata recorded (size, format, upload date)
- Original image preserved for future reference
2. OCR Analysis
- Image sent to Google Cloud Vision API
- AI analyzes text, layout, and structure
- Identifies merchant logos and formatting patterns
- Extracts all visible text with position data
3. Intelligent Parsing
- Raw OCR text analyzed using pattern recognition
- Key fields identified:
- Merchant/vendor name (usually at top)
- Total amount (looks for "Total", "Amount Due", etc.)
- Tax amounts (HST, GST, PST identifiers)
- Transaction date (various date formats)
- Individual line items (product descriptions and prices)
- Receipt number or transaction ID
4. Data Structuring
- Extracted data organized into structured fields
- Currency values properly formatted
- Dates converted to standard format
- Category suggested based on merchant type
5. Confidence Scoring
- Each extracted field receives a confidence score (0-100%)
- Overall receipt confidence calculated
- Low-confidence fields flagged for manual review
AI-Powered Features
Smart Merchant Recognition
- Database of common Canadian retailers and restaurants
- Logo recognition for major chains
- Industry classification (gas station, restaurant, office supply, etc.)
- Automatic category assignment based on merchant
Intelligent Amount Detection
- Identifies total vs. subtotal vs. tax
- Handles multiple currency formats ($10.00, 10.00, $10)
- Calculates missing values when possible
- Detects tips and gratuity separately
Date Recognition
- Supports multiple date formats (DD/MM/YYYY, MM/DD/YYYY, etc.)
- Handles various separators (/, -, spaces)
- Recognizes spelled-out months
- Uses current date if none detected
Item-Level Extraction
- Identifies individual purchased items
- Extracts quantities and unit prices
- Groups related items
- Stores in notes field for reference
Understanding OCR Confidence Scores
Confidence Level Indicators
Each receipt receives an overall confidence score:
High Confidence (90-100%)
- Meaning: OCR very accurate, minimal errors expected
- Indicator: Green checkmark or "High Confidence" badge
- Action: Quick review recommended, usually accurate
- Typical Results:
- Clear, well-printed receipts
- Standard receipt formats
- Good image quality
- Well-known merchants
Medium Confidence (70-89%)
- Meaning: Good accuracy but verification needed
- Indicator: Yellow warning or "Medium Confidence" badge
- Action: Review all extracted fields carefully
- Typical Results:
- Slightly faded receipts
- Handwritten elements
- Unusual formatting
- Less common merchants
Low Confidence (<70%)
- Meaning: OCR struggled, manual review required
- Indicator: Red alert or "Low Confidence" badge
- Action: Manually verify all fields
- Typical Results:
- Poor image quality
- Heavily faded receipts
- Damaged or crumpled receipts
- Handwritten receipts
Field-Level Confidence
Individual fields also have confidence scores:
- Vendor: Usually highest confidence (name at top)
- Total Amount: High confidence (clearly marked)
- Date: Medium to high (various formats)
- Tax: Medium (depends on receipt clarity)
- Items: Varies (depends on formatting)
Supported Receipt Types
Highly Compatible
- Retail Store Receipts: Excellent accuracy
- Restaurant Bills: Very good accuracy
- Gas Station Receipts: Excellent accuracy
- Hotel Invoices: Good accuracy
- Parking Receipts: Good accuracy
- Online Order Confirmations (PDF): Excellent accuracy
Moderately Compatible
- Handwritten Receipts: Limited accuracy, manual review needed
- Thermal Fax Receipts: Variable (depends on fading)
- Credit Card Slips: Good for amount, limited details
- ATM Receipts: Basic information only
- Cash Register Tape: Depends on print quality
Limited Compatibility
- Heavily Faded Receipts: Low accuracy
- Crumpled or Damaged: May fail extraction
- Non-English Text: Limited support
- Receipts in Dark Photos: Poor accuracy
Supported Languages
Primary Support
- English: Full support with highest accuracy
- French: Good support for Canadian French receipts
Limited Support
- Spanish: Basic support
- Other Languages: May work but not optimized
Best Practices for Optimal OCR
Before Taking the Photo
-
Flatten the Receipt
- Smooth out wrinkles and folds
- Press down edges if curled
- Use a flat surface
-
Choose Good Lighting
- Natural daylight works best
- Avoid direct overhead lights (causes glare)
- Even lighting across entire receipt
- No shadows falling on receipt
-
Position Receipt Properly
- Place on contrasting background (dark receipt on light surface or vice versa)
- Align receipt straight, not at angle
- Ensure full receipt visible in frame
- Leave small margin around edges
Taking the Photo
-
Camera Position
- Hold camera directly above receipt (not at angle)
- Keep camera level and parallel to receipt
- Fill frame with receipt (get close enough)
- Ensure no cut-off edges
-
Focus and Clarity
- Tap screen to focus on receipt text
- Keep camera steady (use both hands)
- Ensure all text is sharp and readable
- Avoid motion blur
-
Image Quality
- Use highest camera resolution
- Avoid digital zoom (move closer instead)
- Check preview before uploading
- Retake if text isn't clearly readable
After Taking the Photo
-
Crop if Needed
- Remove unnecessary background
- Ensure receipt fills most of image
- Keep all receipt edges visible
-
Adjust if Necessary
- Increase contrast if receipt is faded
- Rotate if image is sideways
- Avoid heavy filtering (can hurt OCR)
Troubleshooting OCR Issues
OCR Didn't Detect Merchant Name
Causes:
- Merchant name in logo format (image, not text)
- Name at bottom instead of top
- Faded or unclear printing
Solutions:
- Manually enter merchant name
- Try re-uploading with better lighting
- Include merchant logo area in photo
Wrong Amount Detected
Causes:
- Multiple amounts on receipt (subtotal, tax, total)
- Poor decimal point visibility
- Tip or discount amounts
Solutions:
- Verify which line shows final total
- Check for decimal point errors (10.00 vs 1000)
- Manually correct the amount
Date Not Recognized
Causes:
- Unusual date format
- Date in header or footer with other text
- Faded date stamp
Solutions:
- Manually enter correct date
- Look for date near top or bottom of receipt
- Check alternative date indicators (day of week, time)
No Data Extracted
Causes:
- Very poor image quality
- Receipt too faded
- Non-standard format
- Image sideways or upside down
Solutions:
- Retake photo with better lighting/focus
- Rotate image right-side up before upload
- Manually enter all data if OCR fails completely
Incorrect Category Assigned
Causes:
- Unknown merchant
- Multi-purpose vendor (gas station with convenience store)
- Ambiguous business name
Solutions:
- Manually select correct category
- System learns from your corrections over time
OCR Data Storage
What's Stored
- Original Receipt Image: Full-resolution image file
- OCR Raw Text: Complete text extraction
- Parsed Data: Structured fields (vendor, amount, date, etc.)
- Confidence Scores: Accuracy metrics for each field
- File Metadata: Size, format, upload date
Data Privacy
- All receipts stored with bank-level encryption
- OCR processed through secure API connection
- No third parties access your receipt images
- You can delete receipts anytime
Storage Locations
- Receipt Images: Cloudflare R2 (secure object storage)
- Metadata: Encrypted database
- OCR Text: Database with encryption at rest
OCR Limitations
Current Limitations
- Handwriting: Limited accuracy on handwritten receipts
- Faded Receipts: Thermal receipts fade over time, reducing OCR accuracy
- Multiple Languages: Optimized for English, limited for others
- Complex Layouts: Unusual receipt formats may confuse parser
- Item Details: Not all receipts have parseable line items
Future Improvements
We're continuously improving OCR capabilities:
- Enhanced handwriting recognition
- Multi-language support expansion
- Better handling of faded receipts
- Improved item-level extraction
- Receipt type templates for common merchants
Common Questions
Q: How accurate is the OCR?
Typically 90-95% accurate on clear, standard receipts. Accuracy depends on image quality and receipt condition.
Q: Can I improve OCR accuracy?
Yes! Follow our photography best practices: good lighting, flat receipt, clear focus, contrasting background.
Q: What if OCR gets everything wrong?
You can manually edit all fields. The extracted data is just a starting point to save you time.
Q: Does OCR work on old, faded receipts?
Results vary. Very faded receipts may have low accuracy. Try scanning as soon as possible after receiving receipts.
Q: Can OCR read receipts in French?
Yes, French Canadian receipts are supported, though accuracy may be slightly lower than English.
Q: How long does OCR processing take?
Typically 3-5 seconds per receipt. Batch uploads process sequentially.
Q: Is my receipt data private?
Yes, OCR processing is secure and encrypted. Only you can access your receipt images and data.
Q: Can I re-run OCR on a receipt?
Not currently, but you can delete and re-upload if needed. Manual editing is usually faster.
Related Articles
Need Help?
If OCR isn't working as expected:
- Email: support@akiliapps.com
- In-app: Click Help > Contact Support
- Include example receipt image (if comfortable sharing)
Akili Apps - Intelligent Expense Tracking for Canadian Businesses