PingToProd

Product Requirements Document

RoomieTab

Product Manager
All Artifacts

RoomieTab — Product Requirements Document

Version: 1.0 Status: Draft Date: February 2025


Table of Contents

  1. Executive Summary
  2. Market Analysis
  3. Competitive Landscape
  4. User Personas
  5. Requirements
  6. Risk Assessment
  7. Key Insights & Recommendations
  8. Technical Constraints

1. Executive Summary

Product Name

RoomieTab

Product Description

RoomieTab is a web-based roommate expense management application designed for groups of up to 5 people sharing a living space. It enables frictionless expense logging with flexible split rules, tracks who paid for what, and at month-end automatically calculates the minimum number of transactions needed to fully settle all balances. The product's north star is radical simplicity: capturing an expense, assigning payers and participants, and splitting it should take under 10 seconds.

Target Audience

College students, young professionals, and co-living residents aged 18–35 who share a home with 2–5 roommates and need a lightweight, always-in-sync tool to track monthly shared expenses — rent, utilities, groceries, and subscriptions — and settle debts fairly with minimal friction.

High-Level Value Proposition

PillarValue Delivered
Radical SimplicityExpense entry in under 10 seconds via a persistent floating action button accessible from every screen
Zero Friction OnboardingRoommates join via shareable link with no mandatory account creation (guest mode)
Smart SettlementFirst-class minimum-transaction debt simplification algorithm surfaced as a monthly hero workflow
Permanently Free CoreUnlimited expense logging on the free tier — no artificial daily caps, no ads
Real-Time CollaborationLive balance and expense updates via Supabase Realtime — no manual refresh required
Payment Closing LoopOne-tap Venmo / PayPal / Zelle deep links pre-filled with recipient and amount

RoomieTab occupies a deliberate niche: a roommate-first, monthly-cadence expense management tool that outperforms travel-focused splitter apps and overcomes the artificial paywalls and onboarding friction of the market leader (Splitwise).


2. Market Analysis

Market Sizing

MetricValueNotes
TAM$612M2025 global bill-splitting and shared expense app market (Research & Markets / 360iResearch)
SAM$245MEnglish-speaking markets (US, UK, Canada, Australia) — ~40% of global market, focused on co-living and roommate household segment
SOM$2.5MRealistic 3-year target capturing ~1% of SAM via freemium web-first app; ~100K active monthly users at $2.50 ARPU
Growth Rate~7–11% CAGRConsensus across Market.us, Research & Markets, Cognitive Market Research; through 2030
North America (2024)$205MStand-alone North America market valuation

Key Market Trends

  • Expanding Addressable Market: Rising co-living and rental culture among Millennials and Gen Z is accelerating the roommate-household segment — over 85M US adults used a bill-splitting app at least once in 2024.
  • Web-First / PWA Shift: Users increasingly avoid app store friction; no-download onboarding via shareable link is becoming a competitive differentiator and a prerequisite for viral, household-level adoption.
  • AI & OCR as Table Stakes: AI-assisted expense categorization and receipt OCR are rapidly transitioning from premium to expected features — even on free tiers — setting a rising baseline for product quality.
  • Freemium Fatigue: Splitwise's daily expense cap backlash is creating a significant market opening for fully-free or one-time-purchase alternatives with no artificial restrictions.
  • P2P Payment Integration: Integration with Venmo, PayPal, Zelle, and Wise is increasingly expected to close the loop from expense tracking to actual fund settlement, reducing the final-mile friction.
  • Real-Time Collaboration: Instant sync and live balance updates are emerging as a primary differentiator over static, manual-refresh experiences; users expect collaborative apps to behave like live documents, not batch-updated spreadsheets.

3. Competitive Landscape

Per-Competitor Analysis

3.1 Splitwise

URL: https://www.splitwise.com Pricing: Freemium — Free tier (~3 expenses/day, ad-supported); Splitwise Pro at $3/month or $30/year Market Share: Estimated market leader with 50M+ registered users globally

Detail
StrengthsMarket leader with largest user base and brand recognition; supports complex split types (equal, exact, percentages, shares); cross-platform (iOS, Android, Web) with reliable sync; expense categories, labels, and notes; debt simplification to reduce transaction count
WeaknessesFree tier capped at ~3 expenses/day — highly frustrating for active households; UI feels dated and cluttered with ads; Pro subscription required for receipt scanning and currency conversion; no real-time collaborative editing (requires manual refresh); onboarding friction requiring all roommates to create accounts

3.2 Tricount

URL: https://tricount.com Pricing: 100% Free — no paid tier Market Share: Strong in Europe; estimated 10M+ users globally

Detail
StrengthsCompletely free with no premium tier or ads; no account creation required for basic use (join via link); clean, minimalist UI; free receipt scanning with OCR; multi-currency support and Excel/PDF export
WeaknessesNo recurring expense support — every expense entered manually; limited to single-group use per session; no push notifications or settlement reminders; lacks month-end summary or settlement scheduling workflow; no native integration with payment apps

3.3 Settle Up

URL: https://settleup.io Pricing: Free (with ads); Premium ~$2–4/month (varies by region) Market Share: Niche but loyal; estimated 2–5M users

Detail
StrengthsExcellent UI for visualizing individual balances (bubble/graph design); strong recurring expense support; offline mode with automatic sync on reconnect; supports custom split percentages; timeline view of all settlements
WeaknessesPremium subscription required for recurring payments, reminders, and Excel export; smaller user base vs. Splitwise; no minimum-transaction settlement algorithm surfaced clearly; web app experience less polished than mobile; limited payment platform integrations

3.4 Splid

URL: https://splid.app Pricing: Free (single group); one-time in-app purchase (~$4–6) for unlimited groups and export Market Share: Niche; popular in German-speaking markets, estimated 1–3M users

Detail
StrengthsBest-in-class offline functionality; one-time payment model (no recurring subscription); fast, minimal expense entry UI; printable and Excel-exportable summaries; available on iOS and Android
WeaknessesNo real-time sync — relies on manual data sharing; no web app (mobile only); one-time unlock fee may deter casual users; no push notifications or automated reminders; no receipt scanning

3.5 Spliit

URL: https://spliit.app Pricing: 100% Free (open source); self-hosted or hosted at spliit.app Market Share: Growing indie following; estimated <1M users but rapidly gaining traction

Detail
StrengthsFully open-source and self-hostable (privacy-first); no account required (share via link); zero ads, completely free; clean modern UI (Next.js); active open-source community
WeaknessesNo native mobile app (PWA only, limiting push notification reliability); no real-time sync (requires page refresh); minimal features vs. Splitwise (no receipt scan, no recurring expenses); no payment app integrations; self-hosting requires technical knowledge

Competitive Summary Comparison Table

Feature / ProductRoomieTabSplitwiseTricountSettle UpSplidSpliit
Free & Unlimited Core❌ (3/day cap)❌ (ads)✅ (1 group)
No Mandatory Sign-Up
Real-Time Sync
Min-Transaction Settlement✅ (hero feature)✅ (buried)
Recurring Expenses (Free)❌ (Pro)❌ (Premium)
Payment App Deep Links
Web / PWA⚠️ (limited)
Push Notifications (Free)❌ (Premium)
Receipt Photo Attachment✅ (Plus)✅ (Pro)
CSV / PDF Export✅ (Plus)✅ (Pro)✅ (Premium)
Estimated Users50M+10M+2–5M1–3M<1M
PricingFree + $1.99/mo PlusFree + $3/mo ProFreeFree + ~$2–4/moFree + ~$4–6 one-timeFree

✅ = Included | ❌ = Not available or paywalled | ⚠️ = Partial/limited


4. User Personas

Persona 1 — Maya Chen

AttributeDetail
NameMaya Chen
Age21
OccupationUndergraduate Student (Computer Science)
Tech SavvinessHigh

Goals:

  • Keep track of shared apartment costs (rent, groceries, utilities) without awkward money conversations
  • Settle up with 3 roommates at the end of each month using the fewest possible Venmo transactions
  • Spend fewer than 30 seconds logging an expense on her phone immediately after a grocery run

Pain Points:

  • Splitwise's 3-expense/day free limit is constantly hit during busy weeks; she refuses to pay $3/month for what she considers a basic tool
  • Roommates forget to log their purchases, leading to disputes and incomplete records at month-end
  • Group chats used for expense tracking become chaotic and messages get buried under other conversation

Design Implications: Maya needs a sub-10-second expense entry flow accessible from any screen, and a reliable way to nudge forgetful roommates without confrontation. The settlement summary's Venmo deep link directly solves her primary end-of-month pain point.


Persona 2 — Jordan Patel

AttributeDetail
NameJordan Patel
Age27
OccupationJunior Software Engineer
Tech SavvinessHigh

Goals:

  • Maintain a clear, fair record of who owes what across 4 roommates in a shared house
  • Automate recurring monthly expenses (Netflix, internet, rent) so they don't need to be re-entered each month
  • Export a monthly summary to review personal spending and support personal budgeting

Pain Points:

  • Current spreadsheet-based system is manual, error-prone, and not visible to all roommates in real time
  • Calculating the minimum number of payments to settle complex multi-person balances is confusing and time-consuming to do manually
  • Roommates with varying financial situations need different split percentages for certain bills, which most apps handle poorly

Design Implications: Jordan is the most likely household "treasurer" and power user. He needs recurring expense automation, flexible split percentages, and export functionality. The minimum-transaction algorithm directly resolves his most labor-intensive monthly task. Real-time sync eliminates his reliance on an outdated shared spreadsheet.


Persona 3 — Priya Nair

AttributeDetail
NamePriya Nair
Age24
OccupationMarketing Coordinator
Tech SavvinessMedium

Goals:

  • Avoid being the unofficial "house treasurer" who manually tracks and reminds everyone about shared expenses
  • Have a simple, at-a-glance visual view of her net balance without parsing a long transaction list
  • Ensure all 5 housemates are aligned on what is owed before month-end, without having to bring it up face-to-face

Pain Points:

  • Low confidence with technology — wants an app that is as intuitive as sending a text, not a spreadsheet
  • Uncomfortable raising money topics with roommates directly; prefers passive, app-driven nudges and reminders
  • Previous apps required everyone to create accounts, and half her roommates never completed registration

Design Implications: Priya's experience defines the accessibility ceiling. The zero-friction guest link is critical to ensure all 5 of her housemates participate. The dashboard's balance summary must be a prominent, visual element — not a number buried in a list. Push notification reminders must handle the social awkwardness of debt collection passively on her behalf.


5. Requirements

5.1 Functional Requirements

IDTitleDescriptionPriority
REQ-001Household Group Creation & InviteA user can create a household group (max 5 members) and invite roommates via a shareable link or email. Invitees can join without mandatory account creation for the first session (guest mode via magic link), reducing onboarding friction.🔴 Must-Have
REQ-002Quick Expense EntryAdding an expense must take under 10 seconds: enter amount, description, select who paid, and select who it's split among. Default split is equal among all members. The form must be accessible from a persistent floating action button on all screens.🔴 Must-Have
REQ-003Flexible Split RulesEach expense can be split by: (a) equal shares, (b) exact fixed amounts per person, (c) percentage-based allocation, or (d) custom shares/weights. The selected rule is remembered as the default for that expense category.🔴 Must-Have
REQ-004Month-End Settlement Summary with Minimum TransactionsAt any point (and auto-generated at month-end), the app computes and displays the minimum number of transactions required to fully settle all balances across the group, using a debt-simplification algorithm (e.g., greedy net-balance matching). Each suggested transaction shows payer, receiver, and exact amount.🔴 Must-Have
REQ-006Expense Categories & TagsUsers can assign a category to each expense from a predefined list (Rent, Utilities, Groceries, Dining, Subscriptions, Transport, Household, Other) with optional free-text tags. Categories are used for monthly breakdown charts.🟡 Should-Have
REQ-007Recurring Expense SupportUsers can mark an expense as recurring (monthly) with a set day of month. The app auto-creates the expense entry each month via a Supabase Edge Function cron job, with a push notification to all members for confirmation.🟡 Should-Have
REQ-008Push Notifications & Settlement RemindersMembers receive push notifications (via Web Push API / service worker) when: a new expense is added, they are tagged in an expense, a settlement is requested, and 3 days before month-end if unsettled balances exist. Notification preferences are user-configurable.🟡 Should-Have
REQ-009Payment App Deep LinksOn the settlement summary screen, each suggested transaction includes one-tap deep links to Venmo, PayPal, and Zelle pre-populated with the recipient and amount, reducing friction to zero for the actual payment step.🟡 Should-Have
REQ-010Monthly Expense History & Audit LogAll expenses are stored with full history. Users can browse by month, filter by category or member, and see a timeline of all additions and edits. Deleted expenses are soft-deleted and visible to admins for dispute resolution.🔴 Must-Have
REQ-011Receipt Photo Capture & StorageUsers can attach a photo of a receipt to any expense using device camera or file upload. Images are stored in Supabase Storage. Thumbnail shown inline in expense list; full image viewable on tap.🔵 Nice-to-Have
REQ-015CSV / PDF Monthly ExportAny member can export the current month's expenses as a CSV (for spreadsheet import) or a formatted PDF summary (for record-keeping or landlord documentation), generated server-side via a Supabase Edge Function.🔵 Nice-to-Have

5.2 Non-Functional Requirements

IDTitleDescriptionPriority
REQ-012Performance — Sub-2s Page LoadAll primary screens (dashboard, expense list, add expense form, settlement summary) must achieve a Time to Interactive (TTI) under 2 seconds on a standard 4G connection. Achieved via Next.js 15 Server Components, edge caching on Vercel, and optimistic UI updates.🔴 Must-Have
REQ-013Mobile-First Responsive UIThe app must be fully usable on mobile browsers (375px viewport and up) without a native app install, following a mobile-first design approach with Tailwind CSS. Touch targets must be ≥44px. The app should be installable as a PWA.🔴 Must-Have

5.3 Technical Requirements

IDTitleDescriptionPriority
REQ-005Real-Time Sync via Supabase RealtimeAll expense additions, edits, and deletions are broadcast to all connected group members instantly via Supabase Realtime subscriptions (PostgreSQL change notifications). No manual refresh required — balances and expense lists update live.🔴 Must-Have
REQ-014Secure Auth with Row-Level SecurityAuthentication via Supabase Auth (email magic link + Google OAuth). All database tables enforce Row-Level Security (RLS) policies ensuring users can only read/write data belonging to their household group. No cross-group data leakage is permissible.🔴 Must-Have

5.4 Requirements Summary

PriorityCountRequirement IDs
🔴 Must-Have9REQ-001, REQ-002, REQ-003, REQ-004, REQ-005, REQ-010, REQ-012, REQ-013, REQ-014
🟡 Should-Have4REQ-006, REQ-007, REQ-008, REQ-009
🔵 Nice-to-Have2REQ-011, REQ-015
Total15

6. Risk Assessment

Risk Matrix

RiskLikelihoodImpactMitigation Strategy
Low roommate adoption — app value collapses if even one of 5 roommates refuses to participate🔴 High🔴 HighImplement zero-friction guest participation: roommates can view balances and confirm expenses via a shared link without creating an account. Only the "treasurer" role requires a full account. Reduce signup barrier to a single magic-link email.
Debt simplification rounding errors — floating-point arithmetic across multiple split types produces incorrect or disputed settlement amounts🟡 Medium🔴 HighStore all monetary values as integers (cents) in PostgreSQL to eliminate floating-point arithmetic entirely. Implement the minimum-transaction algorithm (net-balance greedy matching) in a Supabase Edge Function with a comprehensive test suite covering edge cases: uneven splits, 5-person groups, partial settlements.
Supabase Realtime reliability — connection limits or instability cause stale balance displays, eroding user trust🟡 Medium🟡 MediumImplement optimistic UI updates on the client side so the interface feels instant regardless of server round-trip. Add a visible "last synced" indicator and a manual refresh fallback. Design the data model so any screen can be fully reconstructed from a single REST query as a graceful fallback to Realtime.
Monetization difficulty vs. free incumbents — competing against Tricount and Spliit makes it extremely difficult to convert users to a paid tier without genuinely valuable paid features🔴 High🟡 MediumPosition the free tier as permanently unlimited for core features (no expense caps, no ads). Monetize via an optional RoomieTab Plus tier ($1.99/month) offering receipt scanning with AI categorization, recurring expenses, CSV/PDF export, and payment reminders — features that create genuine time savings rather than artificial paywalls.
Data privacy concerns — users are deterred from storing sensitive financial data in a third-party app🟢 Low🔴 HighPublish a clear, plain-English privacy policy committing to no data selling and no third-party advertising SDKs. Enforce Supabase RLS at the database level. Target SOC 2 Type I compliance as a mid-term milestone. Offer a complete data export and account deletion flow on day one to signal trustworthiness.

Risk Priority Summary

Severity (Likelihood × Impact)Risks
🔴 Critical (High × High)Low roommate adoption
🟠 High (Medium × High, High × Medium)Rounding errors in debt algorithm; Monetization difficulty
🟡 Medium (Medium × Medium)Supabase Realtime reliability
🟢 Monitor (Low × High)Data privacy concerns

7. Key Insights & Recommendations

Market & Positioning

  • The Splitwise free-tier cap is the single biggest market opening. Splitwise's artificial 3-expense/day limit on the free tier is the most cited pain point in the competitive landscape. A permanently free, unlimited core tier is the strongest possible acquisition differentiator for RoomieTab and must be treated as a non-negotiable product commitment — not a growth-phase feature.

  • Own the roommate niche explicitly. The roommate-specific use case — fixed group, monthly cadence, recurring household expenses — is chronically underserved by travel-focused competitors like Tricount. Positioning RoomieTab explicitly around monthly household management creates a clear, ownable niche with messaging that resonates directly with the 18–35 co-living segment.

  • The bill-splitting app market is large and growing, with no dominant PWA player. At ~$612M TAM growing at 7–11% CAGR and no strong web-first competitor, there is a well-timed opportunity to establish RoomieTab as the default PWA for roommate expense management before a larger player moves in.

Product Strategy

  • The minimum-transaction settlement algorithm is the hero feature. It is the most technically novel and user-valued capability in the space. No competitor surfaces this calculation as a first-class, prominent monthly workflow. It must be RoomieTab's signature screen — not a buried settings option — and its promotion must be central to all marketing messaging.

  • Zero-friction guest access is a critical product requirement, not a nice-to-have. Low adoption by all roommates is the #1 killer of group expense apps. A shareable link that allows balance viewing and expense confirmation without account creation is the primary mechanism to overcome the "half my roommates won't sign up" failure mode. Every design decision should minimize the number of steps between receiving a link and seeing the group's balances.

  • Recurring expense automation should be free. Rent, Netflix, internet, and utilities recur every month — they are the defining expense type for the roommate segment. Offering recurring expense automation for free (while competitors lock it behind paywalls) is a strong retention differentiator and a reason for power users like Jordan to choose and stay with RoomieTab.

  • Payment app deep links close the last mile. The workflow gap between "knowing what you owe" and "actually paying it" is entirely unaddressed by current competitors. One-tap Venmo/PayPal/Zelle deep links pre-filled with recipient and amount convert the settlement summary from a reference screen into an action screen — dramatically increasing the likelihood of actual month-end settlement.

Monetization

  • RoomieTab Plus at $1.99/month must feel like genuine value, not an artificial paywall. The Plus tier should bundle receipt scanning with AI categorization, recurring expenses, CSV/PDF export, and payment reminders — features that demonstrably save time and reduce friction for power users — not features arbitrarily removed from the free tier to drive conversion. The free tier must always remain fully functional for the core use case.

Technical

  • Store all monetary values as integers (cents). Floating-point rounding errors in multi-person split calculations can produce incorrect settlement amounts that undermine user trust. Storing values as integer cents in PostgreSQL and performing all arithmetic in integer space eliminates this class of bug entirely before it reaches production.

  • Next.js 15 + Supabase Realtime is the right stack for the product's differentiation strategy. Server Components deliver fast initial dashboard loads (supporting the sub-2s TTI requirement), while Realtime subscriptions deliver the live collaborative experience that separates RoomieTab from static alternatives. Optimistic UI updates ensure perceived performance remains high even when network conditions are poor.


8. Technical Constraints

Tech Stack Summary

LayerTechnologyRationale
FrameworkNext.js 15 (App Router + Server Components)SSR for fast initial page loads; Server Components reduce client-side JavaScript bundle; App Router supports nested layouts for persistent FAB and navigation
StylingTailwind CSSMobile-first utility classes; enforces consistent spacing and touch-target sizing (≥44px); rapid iteration without context-switching to CSS files
DatabaseSupabase (PostgreSQL)Managed Postgres with built-in Row-Level Security (RLS) for per-group data isolation; integer storage for monetary values eliminates floating-point risk
Real-TimeSupabase RealtimePostgreSQL change notifications broadcast over WebSocket to all connected group members; enables live balance and expense updates without polling
AuthenticationSupabase AuthEmail magic link (no password friction) + Google OAuth; guest mode via shareable token for zero-account onboarding
File StorageSupabase StorageReceipt photo upload and storage; access controlled by RLS-compatible storage policies
Edge FunctionsSupabase Edge Functions (Deno)Server-side: minimum-transaction settlement algorithm, recurring expense cron jobs, CSV/PDF generation — keeping sensitive logic off the client
Hosting / CDNVercelEdge network for global sub-2s TTI; automatic preview deployments per PR; integrated Next.js optimization (image, font, bundle)
Push NotificationsWeb Push API + Service WorkerBrowser-native push without a native app; enables settlement reminders and expense alerts on mobile and desktop
CI / CDGitHub Actions + VercelAutomated lint, type-check, and unit test runs on every pull request; automatic production deployment on merge to main
Monetary PrecisionInteger cents (PostgreSQL INTEGER)All amounts stored as cents (e.g., $12.50 → 1250) to eliminate floating-point arithmetic errors in split calculations and settlement sums

Key Technical Constraints & Decisions

  • Max group size of 5 is enforced at the application layer and reflected in the minimum-transaction algorithm's complexity bounds — keeping settlement calculation time well under 100ms even for worst-case balance graphs.
  • PWA-first (no native app): The initial release targets mobile browsers exclusively. Service Worker + Web App Manifest enables installability on iOS (Safari) and Android (Chrome) without App Store distribution, eliminating review delays and reducing onboarding friction.
  • RLS as the security perimeter: All data isolation between household groups is enforced at the PostgreSQL row level — not solely in application code. This ensures that even a misconfigured API route cannot return cross-group data.
  • Offline support scope (v1): Full offline-first capability is deferred to a future release. v1 provides optimistic UI updates and a graceful degradation message when connectivity is lost, with automatic sync on reconnect via Supabase Realtime.
  • Monetary arithmetic: All split calculations, balance aggregations, and settlement amounts are computed in integer cents throughout the stack. The minimum-transaction algorithm in the Edge Function accepts and returns integer cent values. Display formatting (division by 100, locale-specific currency symbols) occurs exclusively at the UI rendering layer.

This document represents the v1.0 PRD for RoomieTab. It should be reviewed and updated at each major milestone: end of discovery, end of design, and post-launch retrospective.

Document Owner: Product Management Last Updated: February 2025