Features & Technical Architecture
Every feature in SplitMonX is built to solve a concrete real-world pain point: from zero-reception offline syncing to mathematical debt reduction that prevents friendship friction.
Min-Cash-Flow Debt Simplification
Turn tangled webs of IOUs into the minimum possible transactions.
When 5 people travel together, recording every meal and ticket can generate dozens of cross-debts. SplitMonX runs a Greedy Min-Cash-Flow graph reduction after direct pairwise netting, collapsing circular balances without altering each person's exact net financial standing.
- Pairwise deduplication cancels mutual debts (if A owes B $20 and B owes A $5, result is A owes B $15).
- Net balance calculation assigns each participant a net debtor (-) or creditor (+) score.
- Greedy matching pairs maximum creditor with maximum debtor until all balances zero out.
- Zero-sum invariant guaranteed: sum of all net balances always strictly equals 0.
- Integer cent calculations prevent floating-point rounding drift across multiple settlements.
Offline Mutation Queue & Sync
Split expenses anywhere — in the subway, airplanes, or mountain trails.
Never lose an expense due to spotty cell service. SplitMonX couples an in-memory & persistent SharedPreferences mutation queue with Firestore's 100MB LRU disk cache. Your actions execute immediately in the UI and replay safely in FIFO order the instant connection restores.
- Mutations queued locally: addExpense, editExpense, deleteExpense, createGroup, settleDebt, and chat messages.
- Automatic connectivity listener powered by connectivity_plus with intelligent exponential backoff.
- Idempotent transaction IDs prevent duplicate expense records upon connection flickering.
- Optimistic UI updates ensure zero spinner delays while entering group expenses on the go.
Smart Receipt OCR Scanner
Snap a photo of the bill. SplitMonX extracts total, date, and category in seconds.
Avoid tedious receipt typing after group dinners. Utilizing Google ML Kit's Latin script recognition running completely on-device, SplitMonX detects bounding boxes, extracts the total amount, identifies the date, and auto-suggests categories like Food, Groceries, or Entertainment.
- 100% on-device ML processing ensures receipt images are never transmitted to third-party ad servers.
- Heuristic currency parsing handles various international decimal formats and symbol placements.
- Regex line analysis extracts transaction dates, tax totals, and merchant identifiers.
- Instant review modal lets you inspect, edit, or override any scanned field before saving.
In-Chat Bill Splits & Voice Notes
Discuss the plan and split the tab right inside the conversation.
Switching between group chats and ledger apps causes forgotten bills. SplitMonX embeds bill splitting directly into 1-to-1 direct messages and group chats. Send expenses as interactive cards, record voice notes with dynamic waveforms, and see real-time read receipts.
- Direct chat & group chat streams synchronized via Firebase Cloud Firestore real-time snapshots.
- Direct Bill-Split cards render payer, split mode, total, and member shares directly in conversation threads.
- Voice note recording with audio waveform visualization, pause/play scrubbing, and duration tracking.
- Message delivery ticks with unread badge counters and sender-level message deletion options.
Equal & Itemized Splitting
Split however the group needs: evenly down to the penny, or item-by-item.
Different group activities need different fairness models. SplitMonX provides Equal Splits (with precise cent remainder allocation) and Itemized Splits (assigning specific dishes, drinks, or tickets to the exact members who consumed them).
- Equal split divides total across selected participants, attributing remaining cents cleanly to the payer.
- Itemized split allows creating custom sub-items with individual prices assigned to 1 or more consumers.
- Multi-payer support allows any single member to pay on behalf of the selected group roster.
- Payer balance updates automatically and reflects instantly in group net totals.
Multi-Currency Financial Engine
Manage expenses across borders with 8 major international currencies.
Traveling overseas? SplitMonX supports USD ($), EUR (€), GBP (£), INR (₹), PKR (Rs), AED (د.إ), CAD (CAD$), and AUD (AUD$) with proper native symbol positioning, decimal separators, and group-level currency defaults.
- Custom currency per group prevents mixing incompatible currencies in a single settlement graph.
- Native formatting engine respects right-to-left symbols and localized punctuation.
- Zero floating point inaccuracies by maintaining amounts in smallest divisible base units.
PDF Reports & CSV Data Exports
Generate clean receipts, settlement summaries, and raw transaction logs.
Need to file an expense report or share trip totals with someone not on the app? Export professional PDF settlement breakdowns or raw CSV spreadsheets containing itemized breakdowns, dates, payers, and member shares.
- Client-side PDF document generation formatted with group title, date stamp, and net debt settlements.
- CSV export compliant with standard spreadsheet software (Excel, Google Sheets, Numbers).
- Full export capability available for both active groups and settled archive groups.
Spam-Free Settlement Reminders
Gentle automated notifications with a mandatory 24-hour cooldown.
Nobody likes awkward debt conversations. SplitMonX provides one-tap settlement reminders sent to group debtors. To protect friendships and prevent notification harassment, our engine enforces a strict 24-hour reminder cooldown per person.
- Targeted FCM push notifications deliver friendly reminders without displaying awkward public shame badges.
- Cooldown timestamp stored per debtor prevents duplicate reminders within 24 hours.
- Direct deep-link takes the debtor straight to the group settlement sheet for single-tap resolution.
30-Day Account Deletion Grace Period
Complete control over your personal data with accidental deletion protection.
Your privacy is respected by design. If you request account deletion, SplitMonX initiates a 30-day grace period where your account is deactivated. You can cancel anytime within 30 days simply by logging back in. After 30 days, an automated Cloud Function permanently wipes your data.
- Immediate sign-out and session revocation upon deletion request.
- Automated purgePendingDeletedAccounts Cloud Function executes daily cleanup.
- Recursive deletion cleans user profiles, pending mutations, storage avatars, and reverse friend links.
- Strict Firestore security rules enforce participant-only access across all groups and expense collections.
Experience SplitMonX in your daily life
Install the Android release APK today and invite your friends to start managing shared expenses without spreadsheets or awkward math.