How it works
Nobody fronts the money. Nobody pays alone.
Everyone authorizes only their own maximum. At the deadline we either collect each person's exact share, penny for penny, or release every hold.
Brief, budget, invite, commit, deadline
Brief
Describe the plan in your own words. Suggestions are not bookings or payment approvals.
Budget
Suggest a total budget. This does not authorize a payment. Your vote stays private until reveal.
Invite
We create a private link for each person. You send it to them yourself.
Commit
Authorize up to $20. Your final share may be lower. We collect it only if the agreed group booking is confirmed.
Deadline
At the deadline we book it, or release every hold.
A vote, a proposal or an AI summary is never permission to charge anyone. Only your own authorization, for terms you have seen, is.
The split calculator
This runs the same pure functions the server settles with: equalSplit, perPayerCap and estimatedShare. Try $100 for 3 people.
Sets the maximum each person authorizes.
Total $100, 5 paying. Maximum $20 each. Shares: $20.00, $20.00, $20.00, $20.00, $20.00.
Booking total
$100
5 paying people
- Each person's maximum
- $20
- ceil(total ÷ 5 min payers). The hold.
- Estimated share now
- $20
- Display only. Never above the maximum.
Penny-exact shares
- Payer 1$20
- Payer 2$20
- Payer 3$20
- Payer 4$20
- Payer 5$20
$20, $20, $20, $20, $20 = $100.00 (adds up exactly)
This total divides evenly, so every share is the same. When it does not, shares differ by one cent, in a fixed order.
What if one more person joins?
$20.00 → $16.67 for the first payer
The total stays $100, so a bigger group only lowers each share (never raises it). The maximum you authorized does not change.
What happens at the deadline
A server-side job freezes the roster and picks exactly one of three paths. Late approvals are voided, never admitted. If anything cannot be verified, we fail closed and cancel.
Deadline passes
Roster frozen · every required person must have accepted and authorized
Settle
Everyone required is in.
- Each payer's exact share is captured, one after another.
- Never more than the maximum they authorized.
- The unused part of each hold is released.
Captured Booking confirmed
Cancel
Someone required is missing.
- Even if the minimum number of payers was reached, a required holdout cancels.
- No booking payment is collected.
- We ask PayPal to release every existing hold.
Hold release pending Hold releasedWe say “pending” until PayPal confirms the release.
Partial failure
A capture fails part-way through.
- PayPal has no atomic group capture, so we stop right there.
- The remaining holds are voided.
- Payments already captured are refunded.
Refund pending Refunded“Booking not confirmed.” We show a refund as done only once it is.
What AI does, and doesn't do
AI helps people agree. It never touches the money.
AI does
- Reads your brief and pulls out the activity, dates, group size and budget unit.
- Matches it to a small, merchant-owned catalogue of real quotes.
- Summarizes the anonymous vote spread after the reveal.
- Explains the deterministic result in plain words.
AI does not
- Authorize, capture, void or refund a payment. Ever.
- Set or change a price, or invent inventory. Output is validated against the catalogue.
- See anyone's private vote before the reveal.
- Treat pasted chats as instructions. They are data.
- Decide who pays what. The split is plain integer arithmetic.
What is simulated
This is an independent hackathon project. No real money moves. Every simulated piece is labelled on screen.
Real code, both modes
The deadline job, penny-exact splitting, consent bound to exact terms, caps and access control run identically with or without PayPal keys.
PayPal sandbox
With sandbox keys, approvals happen on PayPal's sandbox with test accounts. Payments go to one sandbox merchant, never to the organizer.
Fixtures, labelled
Without keys a simulator stands in for PayPal and a deterministic parser stands in for the model. Seeded outings are marked synthetic.
Not claimed: we do not say a hold disappears instantly or that a refund is complete when it has only been requested. What has and has not yet been verified against the live PayPal sandbox is listed in the repository's judge guide.
See it with real screens
Step into anyone's shoes in the demo, or open the merchant view.