Back to Blog

Three Ads Before the Tip

September 7, 2026
Share:
Three Ads Before the Tip

I have split a check on a phone with one bar. Someone asks what they owe. I type tip calculator. The first thing that wants my tap is not the math.

The App Store page for the leader in that slot still looks fine from a distance. Tip Calculator % Gold. 4.76 stars. 60,716 ratings. I opened the reviews this sitting. People are not arguing about the percent. They are arguing about the ads that sit on top of it.

The tip and bill split on Softery is a page. Type the bill. Type the tax if you have it. Pick 20 percent, or 18, or whatever the table agreed. The totals update while you type. After the first visit it still works when the dining room has no signal. There is no ad in front of the number.

More Ads Than Calculator

I did not invent that line. A one-star review on Gold uses it as the title. The body says they were not looking to buy a Dell PC. They were looking at tip amounts. They had to click through three screen covering ads to do simple math.

Another review, same app, says the ads delayed the tip long enough to waste the barista.

60,716 people rated this thing. The average is still 4.76 because a lot of those stars are old. The recent pile is the useful part. The product people reach for at a table started selling them a laptop.

I am not going to pretend I sat through those three screens tonight. I read the reviews, I have done the table-phone dance with a search page, and I built the page I wanted in that moment.


Rank 14 of 1,754

I ranked this fourteenth out of 1,754, score 9.30, about five hours of work. The card said: a page that loads, installs, works with no signal, and has zero ads. Add the two things Google's inline widget will not do. Uneven split by item. Tip on pre-tax versus after tax as a toggle you can see. Put the whole split in the URL so one person pastes it into the group chat.

The personal finance pile on that list is long. An amortization schedule with extra payments sits next. A mortgage page with taxes and insurance after that. This one sat at fourteen because the search is frequent and the grievance is specific. People are not asking for a new kind of percent. They are asking to do the percent without paying an ad tax first.

Bing filled in 15 completions on the tip cluster. I did not invent a volume behind them. I have the completion count from the ranking pass. That was enough to put it on the board.


Google Stops at Even

Type tip calculator into Google. You get a clean even split. Bill, tip percent, number of people. It is fine when everyone ordered the same thing and nobody cares which total the tip sits on.

It will not assign a pizza to one person and a salad to another. It will not say whether 20 percent is of $86.40 or of $86.40 plus $7.20. It will not install on the home screen. It will not work when the dining room has no bars.

That is the whole gap. The head term is owned by a widget that does the easy half. The hard half is the case you actually have: three people, two entrees, a shared dessert, and a tax line you can read off the paper.

calculator.net will do a tip. The layout is a desktop page. You are holding a phone over a bill. Those are different jobs.


Three Screens Before the Math

Here is the line I keep coming back to, from the Gold review, trimmed to what they actually wrote:

More ads than calculator. In the moment, I'm not looking to buy a Dell PC. Im looking to tip amounts.

That is the product. A 60,716 rating average that still makes you wait for a barista because an ad for a computer covered the number.

I am not going to name every clone. The shape repeats. Free on the store. Full screen ads after an update. A one-star week. The math was never the hard part.


Pre-tax or After Tax

On a $100 bill with $8 tax and 20 percent, pre-tax tip is $20.00. After tax tip is $21.60. Total $128.00 or $129.60. Same percent. Different base.

Some rooms want the tip on the food. Some rooms want it on the number at the bottom. A widget that hides the choice will pick the one that makes the tip larger, or the one that is easier to code. This page shows both. You tap Pre-tax or After tax. The tip line moves. The per-person lines move with it.

I do that in whole cents and round once. 10000 cents times 20 percent is 2000. 10800 cents times 20 percent is 2160. There is no third rounding that can disagree with the first two.

The invoice generator on this site already had that rule, because subtotal plus tax had failed to equal total on a PDF. I used the same habit here. A diner reconciling three lines should get the same answer the table gets.


The Steak Should Not Pay for the Salad

Even split is the default. One total, N people, leftover cents to the first names in the list. $86.40 plus $7.20 tax plus 20 percent pre-tax is $110.88. Three people. $36.96 each. No remainder.

By item is the case Google skips. Add a pizza, a salad, a dessert you all shared. Tick who pays for each line. An item with nobody ticked is shared by everyone. Tax and tip follow those shares.

I tested the boring version of that. Pizza $20 to you, salad $15 to the other person, dessert $10 shared, $4.50 tax, 20 percent pre-tax. You owe $32.50. They owe $26.00. The three printed lines still add up.

Leftover cents go to the first name in the list when the split is even. When tax and tip are split by item share, they go to the largest leftover fraction, then to the earlier name if the fractions tie. That is written down in a test. I do not want a mystery cent that jumps around because I changed the order of two multiplies.


The Link Is the Dinner

Copy link writes the split into the URL. People, items, the tip toggle, the cents. Paste that into the group chat. Each phone opens the same numbers.

I do not have a row in a database for your dinner. Refresh keeps the state because the address bar holds it. Clear wipes the fields and puts a blank split back in the path.

If the URL looks long, that is the bill. It is not a tracking code. I used a compact JSON in the query, then a URL-safe encoding, so a group chat will not break on a plus sign.

I thought about saving the last bill in localStorage. That would survive a refresh without a fat URL. It would also leave last Tuesday's steak on the phone. The card asked for a shareable link. The link is the store.


Offline After Wifi

The first load needs a network. After that a small service worker keeps this route, its icons, and the scripts it already downloaded. Open it once on wifi. Split a check in a basement dining room.

The rest of Softery.io is not cached. If you wander to the unit converter while offline, that page was not saved, and I will not pretend it was. The install button, when the browser offers it, puts this page on the home screen like a small app. It starts on the tip page. That is the only promise.

I did not add a site-wide offline stack for one tool. A page that claims the whole site works without signal, then 404s on the next tap, is worse than a page that tells you the truth.


Whole Cents, Once

Here is the difference, in one table.

Gold and the clonesGoogle's widgetThis page
Ads before the mathRecent reviews say three full screensNone on the widgetNone
Uneven splitSometimes, behind the adsNoBy item, who pays for each line
Tip baseBuried or missingMissingPre-tax or after tax, on the page
OfflineIf you already installed the appNoAfter the first visit
ShareScreenshot, or retypeNoThe URL holds the split
RoundingUnknownUnknownWhole cents, one pass

$86.40, $7.20 tax, 20 percent pre-tax, three people.

LineAmount
Bill$86.40
Tax$7.20
Tip$17.28
Total$110.88
Each$36.96

Those five numbers are the sample on the page. They come from the same function the UI calls. If they ever disagree, a test fails.


What Leaves the Tab

The bill does not go to a model. There is no API after the page loads. Mixpanel and Google Analytics load with Softery.io. They see that someone opened the tool. On the first real bill they get a size bucket for that first input, not the dollars. On a copy they get "summary" or "link" and a money band: 1-100, 101-500, the usual buckets. They do not get $86.40. They do not get Alex.

If that is still too much, the math has already run. Block the scripts. The totals still update.

I will not claim zero third-party scripts. The analytics tags are on the site. The honest line is the one on the page: they do not get the bill.


What This Page Will Not Do

It will not show an ad. It will not ask for an account. It will not send the bill to a server of mine. It will not split by income. A few people ask for that. The card I built from asked for items and the tax toggle, so that is what shipped.

It will not talk to your bank. It will not remember last Tuesday. It will not convert currency. If you need inches to centimeters on the same phone, use the unit converter. If you are writing the invoice for the catering, use the invoice generator.

I did not add a second money library. Cents were enough. I did not add a site-wide offline framework. A small worker on this route was enough.


How I Tested It

I wrote the tests first. Twenty-eight on the split. Four on the install helper. Eight on the page. They failed, then they passed. That is the house rule here, and it is the only reason I trust $86.40 plus 20 percent to print $17.28 every time.

The library checks a typed total with a dollar sign, a thousands comma, a half cent, junk, a negative, pre-tax versus after tax, leftover cents to the first name, an item with an odd cent, an item assigned to a name that does not exist, a share link that round-trips, and junk in the query. The page checks that the totals appear while you type, that the sample fills $110.88, that After tax moves $100 plus $8 from a $20.00 tip to $21.60, that unchecking one name on an item leaves the other person with $48.00, that Copy totals writes the chat text, that Copy link holds s=, and that a pasted URL restores the bill.

There is no Calculate button in the tests because there is no Calculate button on the page. A test that looked for one would have been a gift.


Split the Check

If you have a paper bill and a phone, open the page.

  1. Open Tip and Bill Split.
  2. Type the bill. Type the tax if the paper has it.
  3. Pick a percent. Tap Pre-tax or After tax.
  4. Name the people. Switch to By item if the steak should not pay for the salad.
  5. Copy totals into the chat, or copy the link so each phone opens the same split.
  6. If the dining room is a basement, load it once on wifi first. Then it stays.

The other tools on Softery follow the same habit. The password generator never sees the password. The invoice generator rounds money once. This one never sends the bill as text either.


Last updated: September 6, 2026 | Reading time: 10 minutes

Written by Evgeniy Poznyak, who has split a check on a phone with one bar and gotten an ad instead of a number.