Original Idea
Split Bill Calculator A mobile app that photographs receipts, uses OCR to itemize, and lets friends claim items for fair splitting including tax and tip.
Product Requirements Document: FairShare Splitter (2026)
1. Executive Summary
FairShare Splitter is a high-performance mobile application designed to eliminate the social friction and mathematical complexity of splitting group bills. By leveraging AI-powered OCR and real-time collaborative state synchronization, the app allows users to scan receipts, itemize costs, and claim individual portions with pro-rata distribution of taxes and tips. Built on a cutting-edge 2026 tech stack, it ensures millisecond-level responsiveness and seamless deep-linking to major payment providers.
2. Problem Statement
Splitting complex restaurant or grocery bills manually is error-prone, time-consuming, and socially awkward. Users struggle to:
- Fairly distribute taxes and tips when individuals order items of significantly different values.
- Handle "partial claims" (e.g., three people sharing one appetizer).
- Ensure everyone has paid without manual follow-ups.
- Maintain privacy by securing financial data found on physical receipts.
3. Goals & Success Metrics
- Accuracy: Achieve >99% OCR accuracy for itemized line items using specialized POS models.
- Efficiency: Reduce the average time to settle a group bill from 5 minutes (manual) to under 60 seconds.
- Engagement: Achieve a 40% Day-30 retention rate among "Social Eater" personas.
- Reliability: 0% transaction failure due to certificate expiry (compliance with 2026 SSL standards).
4. User Personas
A. The Social Eater (Maya, 26)
- Context: Frequently dines out with large groups of friends.
- Need: A quick way to claim her specific cocktail and salad without subsidizing a friend's steak.
B. The Responsible Roommate (David, 31)
- Context: Manages shared grocery and utility receipts.
- Need: History tracking and the ability to split specific items (like cleaning supplies) across all roommates equally while keeping personal snacks separate.
C. The Business Traveler (Alex, 45)
- Context: Entertains clients and needs to separate personal alcohol from business meals for expense reporting.
- Need: PDF export and clear distinction between "Taxable" and "Tippable" items.
5. User Stories
- As a host, I want to snap a photo of a long receipt so that I don't have to type in 20 different items manually.
- As a participant, I want to join a live session via QR code so that I can see the items on my own phone and tap what I ate.
- As a user sharing a dish, I want to tap an item twice to indicate I'm splitting it with one other person.
- As a user, I want the app to calculate my exact portion of the tip based on what I ordered, not just an even split.
- As a payer, I want to tap a "Pay" button that opens Venmo with the exact amount and note pre-filled.
6. Functional Requirements
6.1. Intelligent Receipt Capture
- Multi-modal OCR: Use specialized POS parsing to identify
item_description,quantity,unit_price,subtotal,tax, andtip. - PII Masking: Automatically redact credit card digits and merchant-specific transaction IDs from the stored image.
6.2. Collaborative Group Sessions
- Real-time Sync: Use WebTransport for low-latency state updates (item claiming).
- Optimistic UI: Immediate visual feedback when an item is claimed, with server-side reconciliation to prevent double-claiming.
6.3. Advanced Splitting Logic
- Pro-rata Distribution: Taxes and tips are calculated as: $(Individual Subtotal / Total Subtotal) * Shared Cost$.
- The Penny Adjuster: The "Penny Problem" rounding logic must attribute remainder cents to the highest-value subtotal to ensure the grand total matches the receipt.
- Partial Claims: Support for $1/n$ splitting where $n$ is the number of users who tapped the item.
6.4. Payment Integration
- Deep Linking: Support for Venmo and PayPal via HTTPS-based Universal/App Links.
- Status Tracking: Manual "Mark as Paid" with server-side webhook verification for supported providers.
7. Technical Requirements
7.1. Tech Stack (2026 Stable Versions)
- Frontend: React Native 0.83.1 (Fabric/New Architecture by default), Expo SDK 55, React 19.2.
- Backend: Node.js 24.13.0 LTS (Krypton), TypeScript 5.7+.
- Database: PostgreSQL (via Aurora Serverless v2 or Neon) using Drizzle ORM.
- State Management: Zustand for lightweight reactive state.
- Real-time: Ably or PartyKit (WebTransport/HTTP3).
7.2. Infrastructure & APIs
- Hosting: AWS Lambda with SnapStart enabled for <200ms cold starts.
- OCR API: TabScanner or Veryfi (chosen for 2026 "No Tax on Tips Act" compliance).
- Storage: AWS S3 with CloudFront Signed URLs (OAC) and automated metadata scrubbing.
- Security: Amazon Bedrock Data Automation for generative AI-based PII redaction.
8. Data Model
User
id: UUIDdisplayName: StringpaymentLinks: JSON (Venmo/PayPal handles)
Receipt
id: UUIDrawImageUrl: String (Internal only)sanitizedImageUrl: String (Public/Signed)taxTotal: DecimaltipTotal: Decimalsubtotal: Decimal
LineItem
id: UUIDreceiptId: UUIDname: Stringprice: DecimalisShared: Boolean
Claim
id: UUIDitemId: UUIDuserId: UUIDratio: Float (e.g., 0.5 for a 50/50 split)
9. API Specification (Key Endpoints)
POST /v1/receipts/process
- Request:
multipart/form-data(Image file) - Response:
202 AcceptedwithjobIdfor async OCR completion.
GET /v1/sessions/{sessionId}
- Response:
200 OK+ Current state of all items and claims (via WebTransport stream).
POST /v1/claims
- Request:
{ itemId: UUID, userId: UUID, action: 'claim' | 'unclaim' } - Response:
200 OKwith updated pro-rata calculations.
10. UI/UX Requirements
- Glassmorphism Background: Show the blurred original receipt behind the item list to maintain visual context.
- Avatar Drag-and-Drop: Users can drag their profile bubble onto a line item to claim it.
- Live Ledger: A sticky bottom sheet showing the user's current running total, including their calculated tax/tip share.
- Haptic Feedback: Distinct vibrations for successful claims and "session full" errors.
11. Non-Functional Requirements
- Performance: OCR results must be parsed and interactive within 3.0 seconds.
- Security: Compliance with PCI-DSS v4.0; no raw cardholder data stored.
- Availability: 99.9% uptime using AWS Multi-AZ deployments.
- Accessibility: WCAG 2.1 Level AA compliance, including screen reader support for itemized lists.
12. Out of Scope
- Handling physical cash payments/change calculation.
- Integration with restaurant POS systems for direct payment (Phase 2).
- Desktop/Web version (Mobile-only for launch).
- Automatic debt chasing/automated recurring billing.
13. Risks & Mitigations
- Risk: Low-quality photos/blurred text leading to OCR failure.
- Mitigation: Implement a "Manual Correction" UI mode and real-time camera guidance (e.g., "Hold steady").
- Risk: Rounding errors causing user disputes.
- Mitigation: Explicitly show the "Penny Adjustment" in the breakdown UI for transparency.
- Risk: Payment deep-linking failure on iOS/Android updates.
- Mitigation: Use
ASWebAuthenticationSessionand fall back to web-based checkout.
- Mitigation: Use
14. Implementation Tasks
Phase 1: Project Setup & Infrastructure
- [ ] Initialize React Native 0.83.1 project with New Architecture enabled.
- [ ] Set up AWS CDK for Lambda (Node 24.13.0 LTS) and Aurora Serverless v2.
- [ ] Configure Drizzle ORM and initial migration for User/Receipt schemas.
- [ ] Implement Amazon S3 bucket with OAC and CloudFront for secure image delivery.
Phase 2: AI OCR & Processing Pipeline
- [ ] Integrate Veryfi API for Level 3 line-item extraction.
- [ ] Build Lambda trigger for S3 uploads to process OCR asynchronously.
- [ ] Implement PII Redaction logic using Amazon Bedrock/Textract.
- [ ] Create "Review & Edit" UI for OCR validation.
Phase 3: Real-time Collaboration
- [ ] Set up PartyKit/Ably for WebTransport session management.
- [ ] Implement Zustand store with optimistic update logic for
useOptimistichook. - [ ] Build the "Avatar Drag-and-Drop" interaction component.
- [ ] Develop the Pro-Rata algorithm including the "Penny Problem" correction.
Phase 4: Payments & Final Polish
- [ ] Implement Venmo/PayPal deep linking using Universal Links.
- [ ] Build PDF/CSV export functionality for business users.
- [ ] Perform SSL Certificate/SDK audit for PCI-DSS v4.0 compliance.
- [ ] Execute load testing for 50+ concurrent users in a single split session.