Overview
Divvy supports three split methods to handle different types of shared expenses. Each method calculates member shares differently based on your needs.Split Method Types
When creating an expense, you’ll choose one of these methods:Split equally
Divide the cost evenly among all members.
By percentage
Assign custom percentages to each person.
By items
Assign specific receipt items to individuals.
Equal Split
The simplest method: divide the total equally among all group members.When to Use
- Group dinners where everyone shared equally
- Utilities split among roommates
- Shared groceries for a household
- Event tickets for a group
How It Works
- Select Split equally when creating the expense
- The total is automatically divided by the number of members
- Each person owes the same amount
Live Preview
Divvy shows a Split preview card that displays:- Each member’s avatar and name
- The calculated per-person amount
- Updates in real-time as you change the total
~/workspace/source/app/src/main/java/com/example/divvy/ui/splitexpense/Views/SplitExpenseScreen.kt:621
Percentage Split
Assign custom percentages to each person based on how much they should pay.When to Use
- Unequal income splits (e.g., 60/40 rent between partners)
- Shared costs where one person uses more (utilities)
- Splitting based on individual consumption
- Variable contribution amounts
How It Works
- Select By percentage when creating the expense
- You’ll navigate to the percentage assignment screen
- Enter a percentage for each member (must total 100%)
- Divvy calculates the dollar amount for each percentage
Percentage Screen
The percentage split interface includes:- Info card: Shows the description and total amount
- Member chips: Color-coded indicators for each person
- Progress bar: Visual feedback showing total percentage (turns green at 100%)
- Per-member cards: Enter percentage for each person with live dollar amount preview
- “Split evenly” button: Quickly distribute 100% equally
The Done button is disabled until percentages total exactly 100%.
Validation
The progress bar changes color based on your input:- Blue: Below 100% (incomplete)
- Red: Above 100% (invalid)
- Green: Exactly 100% (ready to save)
~/workspace/source/app/src/main/java/com/example/divvy/ui/splitpercentage/Views/SplitByPercentageScreen.kt:230
Itemized Split
Assign individual receipt items to specific people for maximum flexibility.When to Use
- Restaurant bills where people ordered different items
- Grocery runs where housemates bought different things
- Shared orders with varying individual contributions
- Receipts with distinct line items
How It Works
- Select By items when creating the expense
- Scan a receipt or manually enter items
- Tap each item to assign it to one or more people
- Items can be assigned to multiple people (cost is split among assignees)
Assignment Screen
The itemized assignment interface shows:- Store info card: Receipt total and merchant name
- Member chips: Color-coded tags for each person
- Item cards: Tap to expand and assign members
- Item name and price
- Currently assigned members (avatars)
- “Not assigned” state for unassigned items
- Member selection: Toggle chips to assign/unassign
~/workspace/source/app/src/main/java/com/example/divvy/ui/assignitems/Views/AssignItemsScreen.kt:227
Multiple Assignees
When an item is assigned to multiple people:- The item cost is divided equally among them
- Example: 4.00 each
Tax and Tip Distribution
For itemized splits, tax and tip are handled differently:- Automatic: Tax/tip amounts are distributed proportionally based on each person’s subtotal
- Manual: Add tax/tip as separate line items and assign them accordingly
Future versions will support automatic tax/tip calculation. Currently, include them in item prices or add as separate items.
Changing Split Methods
You can change the split method before creating an expense:- Tap the Split dropdown
- Select a different method
- The UI updates to show the new splitting workflow
Split Method Storage
Each expense stores its split method:"EQUAL"- Equal split"PERCENTAGE"- Percentage split"ITEMIZED"- Itemized split
~/workspace/source/app/src/main/java/com/example/divvy/ui/splitexpense/ViewModels/SplitExpenseViewModel.kt:27
Split Records
Regardless of method, each expense createsSplit records:
~/workspace/source/app/src/main/java/com/example/divvy/models/Split.kt:6