FairShare Splitter

Productivity

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:

  1. Fairly distribute taxes and tips when individuals order items of significantly different values.
  2. Handle "partial claims" (e.g., three people sharing one appetizer).
  3. Ensure everyone has paid without manual follow-ups.
  4. 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, and tip.
  • 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: UUID
  • displayName: String
  • paymentLinks: JSON (Venmo/PayPal handles)

Receipt

  • id: UUID
  • rawImageUrl: String (Internal only)
  • sanitizedImageUrl: String (Public/Signed)
  • taxTotal: Decimal
  • tipTotal: Decimal
  • subtotal: Decimal

LineItem

  • id: UUID
  • receiptId: UUID
  • name: String
  • price: Decimal
  • isShared: Boolean

Claim

  • id: UUID
  • itemId: UUID
  • userId: UUID
  • ratio: 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 Accepted with jobId for 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 OK with 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 ASWebAuthenticationSession and fall back to web-based checkout.

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 useOptimistic hook.
  • [ ] 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.