INDUSTRY WORKS

marcosdijuliol@gmail.com

INDUSTRY WORKS

marcosdijuliol@gmail.com

Food - Tech

How Much Is Left

How Much Is Left

A table stops being a list of products and becomes an account with a funding state. Everything downstream changes because of it.

My goals

Vacation to Bali

$2,203.60

by Nov, 2025

Add a new goal

Last month

Income

$1,152.32

Expense

$948.95

Savings

$203.37

Boost your savings with AI

Analyse

Amount saved

For goals

emergency

$0.00

$0.00

Hello,

Mary

My goals

Vacation to Bali

$2,203.60

by Nov, 2025

Add a new goal

Last month

Income

$1,152.32

Expense

$948.95

Savings

$203.37

Boost your savings with AI

Analyse

Amount saved

For goals

emergency

$0.00

$0.00

Hello,

Mary

Most restaurant software treats a table as a list of items with a total at the bottom. It works until the money stops arriving at the end.

A party buys a table package before they order anything. From that moment the table is carrying a balance, and two people are tracking it for opposite reasons: the guest wants to know how far it goes, the waiter needs to answer that mid-service without stopping. If neither of them knows, the argument happens with everyone still sitting there.

At Cactus I designed the surfaces where that money moves. The waiter's phone and the guest's phone, working on the same account at the same time.

Most restaurant software treats a table as a list of items with a total at the bottom. It works until the money stops arriving at the end.

A party buys a table package before they order anything. From that moment the table is carrying a balance, and two people are tracking it for opposite reasons: the guest wants to know how far it goes, the waiter needs to answer that mid-service without stopping. If neither of them knows, the argument happens with everyone still sitting there.

At Cactus I designed the surfaces where that money moves. The waiter's phone and the guest's phone, working on the same account at the same time.

Fund

Fund

The money is decided before anyone reads a menu. Whether the party can spend past their balance is set once, at the table, in front of them, and it governs the rest of the night.

Covers, service, and one switch

Covers, service, and one switch

Limit to credits, yes or no. It decides whether the party can spend past their balance, and it can only be set here. Choosing a service also changes the button, from open table to charge service, because money now moves before anything is ordered.

Spend

Spend

From here the table carries a balance, and two people watch it for opposite reasons. The guest wants to know how far it goes. The waiter wants to know when to stop suggesting.

The balance is always on screen

The balance is always on screen

Once the table is funded, a bar sits under the menu and above the primary action, counting down live as items go in. Green, amber, red. Nobody has to ask how much is left, and the used total is one tap away without leaving the menu.

The account, not the list

The account, not the list

The table detail leads with what was ordered and closes with what it means: products, credits available, credits applied, and the one number the waiter will say out loud. Credits are a discount inside the bill, not a separate concept to explain.

When credits cover everything the action is close table. When consumption passes the balance the same screen says charge table, and the difference moves to checkout. No blocking state, no warning: the label carries the state.

Settle

Settle

The last three minutes of a table are the ones with a person standing there waiting. Everything in this act happens with an audience.

Paying with more than one method

There is no split-bill mode. The system takes partial payments until the balance reaches zero. A first payment of 25,000 leaves 24,550 pending, and the next method picks it up. Splitting a bill stops being a feature and becomes a consequence of how payments work.

Paying with more than one method

There is no split-bill mode. The system takes partial payments until the balance reaches zero. A first payment of 25,000 leaves 24,550 pending, and the next method picks it up. Splitting a bill stops being a feature and becomes a consequence of how payments work.

The interface does the arithmetic

The interface does the arithmetic

Every cash option carries its own change. Exact amount, then the bills a person actually hands over. Change is calculated by the system, not by someone doing mental math with a customer watching. Card brands get the same treatment: one tap, no form.

Confirmation runs in the background

Confirmation runs in the background

Card processing takes as long as it takes. Continue in background releases the waiter to the next table instead of holding them hostage to a spinner, and the recap underneath answers the question a guest is most likely to ask while they wait.

Closing has a guard

Closing has a guard

A table with unspent credit cannot be closed quietly. The confirmation names the amount and offers to stay on the table. This is the dispute that would otherwise arrive tomorrow. When it does close, the receipt breakdown stays on screen with how it was paid.

The balance bar

The balance bar

The smallest component in the product and the one that carries the most. Visible while ordering without competing with the menu. Readable from a phone held at hip height. Legible to a guest looking over the waiter's shoulder. Colour carries the state, so the number never needs a label.

Créditos disponibles

$ 25.000

Full balance. Ordering is unconstrained.

Créditos disponibles

$ 6.500

Running low. The waiter starts mentioning it out loud.

Créditos disponibles

$ 1.300

Nearly spent. The next item crosses into payable.

States

States

A funded table has more states than open and closed. Each one changes what the waiter can do next and what they have to say to the person in front of them.

Fully covered by credit

Over balance, difference due

Partial payment pending

Confirming in background

Unspent balance on close

Settled, receipt printed

The same balance,
a different reader

The same balance,
a different reader

The same balance,
a different reader

The guest joins the table through a QR code or an invitation link, and orders from their own phone against the same account the waiter is working on.

Joining a table isn't open. The link goes through the table admin, the person who funded it, who approves each guest before they can spend against the balance.

The guest joins the table through a QR code or an invitation link, and orders from their own phone against the same account the waiter is working on.

Joining a table isn't open. The link goes through the table admin, the person who funded it, who approves each guest before they can spend against the balance.

The same component, the other side of the table

The same component, the other side of the table

The bar behaves identically: it counts down live, it changes colour as it depletes, it sits above the primary action. What changes is who is reading it and what they can do about it.

Same component, two users.

Same component, two users.

Waiter

Guest

The same number, two framings

The same number, two framings

The guest finishes and reads: you have 1,300 in credit left. An invitation to order again. The waiter reaches the same moment and reads: this table still has 1,300 unspent, are you sure you want to close it. One number, one point in the lifecycle, two opposite readings. The system does not have a single voice, it has one per role.

Waiter

Guest

The guest can see the screen

The guest can see the screen

A waiter uses this with the guest sitting right there. That changes what an error is. A failed payment on a personal phone is an inconvenience. The same failure with three people watching is a service problem, and the waiter has to say something out loud while it happens.

That's why confirmation states explain themselves instead of spinning, why the closing guard names the amount instead of asking if you're sure, and why the cash options carry their own change. The waiter should never have to do arithmetic in front of the person paying.

Where this goes

Where this goes

The pattern isn't specific to restaurants. Any venue where guests pay before they consume runs on the same three questions: how much was loaded, how much is left, and what happens to the remainder. Resorts, clubs, event floors. The surfaces change. The account doesn't.

What I'd still fix

What I'd still fix

The balance belongs to the table, not to the people at it. When a group splits the bill, there's no record of who consumed what. It works because someone at the table is keeping track, which is a person doing the system's job.

There's no offline behaviour. Background confirmation covers a slow processor, not a dead connection. If the network drops mid-service, the waiter is stuck, and venues with bad wifi are not a rare case.

Scale

150

150

Merchants

46.000

46.000

End users

2024

2024

In production since

Let’s build systems that scale.

Let’s build systems that scale.

Designing operational clarity in high-impact SaaS environments.

Contact me

Paying with more than one method

There is no split-bill mode. The system takes partial payments until the balance reaches zero. A first payment of 25,000 leaves 24,550 pending, and the next method picks it up. Splitting a bill stops being a feature and becomes a consequence of how payments work.

Settle

The last three minutes of a table are the ones with a person standing there waiting. Everything in this act happens with an audience.