Receipt Intelligence System

The Problem

Manual expense categorization is tedious, error-prone, and time-consuming. Employees spend significant time sorting receipts by type (food, travel, office supplies) before entering them into expense systems. This creates bottlenecks in expense reporting workflows and introduces classification inconsistencies.

Why Computer Vision

Receipts contain visual patterns that indicate their category: restaurant receipts show menu items, gas station receipts display fuel grades, retail receipts list products. A CNN can learn these visual signatures to automate classification. Transfer learning with MobileNetV2 provides strong feature extraction even with limited training data.

Key Findings

1
Architecture Matters for Deployment Constraints
Selected MobileNetV2 over ResNet/VGG based on the Speed-Accuracy-Size triangle from AI PM training. Achieved 14MB model size and 2-second inference, optimizing for real-time mobile field use over maximum accuracy. This demonstrates product-driven architecture decisions.
2
Data Quality Trumps Model Complexity
Model showed healthy 8% train-validation gap (not overfitting) but low overall accuracy. Confusion matrix revealed no systematic error patterns - predictions were essentially random. This diagnosed root cause as label quality, not architecture, validating the pivot decision.
3
Systematic Debugging Reveals Bottlenecks
Per-class metrics showed equal poor performance (~30% each). Gas station over-predicted (88% recall, 37% precision), restaurant under-predicted (7% recall). This pattern confirmed random labels rather than model failure, preventing wasted time on architecture changes.
4
MVP Validation Before Investment
Rather than immediately investing in data labeling ($2-3K), validated that (1) architecture works, (2) transfer learning applies to receipts, (3) model can learn when patterns exist. This lean approach justified next investment phase with concrete evidence.

Training Performance

Training and Validation Accuracy and Loss curves over 5 epochs showing 30.95% validation accuracy with healthy 8.25% generalization gap

Confusion Matrix Analysis

Confusion Matrix showing receipt classification results across Gas Station, Restaurant, and Retail categories with random distribution indicating data quality issues

Per-Class Performance Metrics

Grouped bar chart showing Precision, Recall, and F1-Score for Gas Station (37.4%, 88.1%, 52.5%), Restaurant (42.9%, 7.1%, 12.2%), and Retail (45.0%, 21.4%, 29.0%)

Business Impact

Metric Value Implication
Model Architecture Validated 14MB, 2 sec inference, 8% generalization gap MobileNetV2 architecture proven suitable for mobile deployment
Root Cause Identified 30.95% accuracy with random labels Data quality is bottleneck, not model capacity. Architecture works correctly.
Next Investment Needed 500-1000 labeled receipts, $2-3K cost Expected 85-90% accuracy with proper labels based on model's learning capacity

Technical Approach

Component Technology Rationale
Base Model MobileNetV2 Lightweight architecture optimized for mobile deployment. Strong ImageNet features transfer well to document classification.
Transfer Learning Feature Extraction + Fine-tuning Used MobileNetV2's pre-existing ability to detect visual patterns (edges, shapes, text). Only trained the final classification layer to recognize receipt types. This approach required 600 images instead of 100,000+, proving feasibility for MVP.
Data Pipeline TensorFlow Data API Efficient image loading, preprocessing, and augmentation. Handles batching and prefetching automatically.
Environment Google Colab Free GPU access for training. Jupyter notebook interface for experimentation and documentation.

From Insight to Action: The diagnosis revealed the path forward - model architecture is production-ready but requires properly labeled training data. Recommended roadmap: (1) Collect 500-1000 receipts with verified labels ($2-3K), (2) Retrain expecting 85-90% accuracy, (3) Pilot with 100 users before full rollout. This demonstrates PM judgment: validate approach cheaply, then justify investment with evidence.

What I Learned

  • Low accuracy doesn't mean model failure. The healthy 8% train-validation gap proved the architecture works. Per-class analysis showing equal poor performance (~30% each) revealed the root cause: random labels, not overfitting or architecture issues. This systematic debugging prevented wasting time tweaking the model.
  • Data quality is often the bottleneck in ML projects. After extensive Kaggle search, properly labeled receipt categorization datasets don't exist publicly. The project de-risked the technical approach and quantified the data investment needed. This validated a key PM insight: sometimes you need to create your own dataset.
  • Model selection requires understanding deployment constraints. I chose MobileNetV2 because insurance adjusters need instant mobile feedback. A 95% accurate model that takes 10 seconds creates worse UX than 85% accurate in 2 seconds. This trade-off thinking mirrors product decisions I made at Omnissa: optimize for the constraint that matters most.
  • Human-AI collaboration requires product judgment. For example: setting a 95% confidence threshold means fewer errors but more manual review, while 70% means higher automation but more mistakes. The right threshold depends on business context - consumer expense tracking can tolerate errors, tax audit defense cannot.