Toothpaste tube calculator
A 6-ounce tube used twice a day at a pea-sized 0.01 ounce lasts 300 days, while a quarter-ounce blob empties it in 12. Enter your tube, your squeeze and your routine. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Ounces
- 6
- Amount
- 0.01
- Brushings
- 2
- Daily use
- 0.02
- Total brushings
- 600
- Days
- 300
This toothpaste tube calculator answers a household question that sits on every bathroom shelf: given the net paste in ounces, how much you squeeze onto the brush, and how many times you brush each day, how many days will the tube last? The closed form is days equals ounces divided by the product of amount and daily brushings. Dentists recommend a pea-sized ribbon for adults, which is a small fraction of an ounce; a family that brushes twice a day empties a six-ounce tube on a very different calendar than a traveler using a travel-size tube once a day. The engine is pure finite arithmetic with no network, no clock, and no random sampling.
What the days figure means and how the formula is built
A toothpaste tube lasts as many days as its net paste, measured in ounces, divided by how many ounces leave the tube each calendar day. Daily use is the product of the amount squeezed per brushing and the number of brushings in a day. The identity is therefore days equals ounces divided by amount times brushings.
That closed form is the entire model: there is no brand table, no assumed density, and no hidden conversion from millilitres or grams. Amount must be entered in ounces so it shares a unit with the tube size printed on the carton. A pea-sized adult ribbon is often about a quarter of a gram, which is a little under one hundredth of an ounce; a child-size smear is smaller still.
If you instead enter a long ribbon of a quarter ounce, the lifetime collapses because daily use becomes huge. Twice-daily brushing at one hundredth of an ounce on a six-ounce tube yields three hundred days. The same tube at a quarter-ounce blob twice a day lasts only twelve days.
The path is deterministic: no Date, no random seed, and no network call.
What to enter and which values are refused
Send three required finite numbers: ounces for the net toothpaste in the tube, amount for the ounces used on each brushing, and brushings for how many times that tube is used in one day. All three must be strictly positive. Ounces and amount share one unit.
Mixing a six-ounce tube with a gram-sized amount without converting will under-count the lifetime by a factor of about twenty-eight. Zero or negative ounces, amount, or brushings fail the same way, because a tube with no paste, a brushing that uses no paste, or a day with no brushings cannot define a lifetime, and the division would be undefined or meaningless. There is no weather table, no brand lookup, and no clock: six ounces at one hundredth of an ounce twice a day always yields three hundred days.
Where a toothpaste lifetime is used in homes, classrooms, and software
Household shoppers use a toothpaste lifetime when they compare a travel tube against a family pack, when they split one carton between two bathrooms, or when they ask whether a subscription of one tube a month will run short if everyone starts brushing after lunch as well.
Dentists and school nurses teach pea-sized amounts for fluoride safety; a parent who can see that a six-ounce tube lasts three hundred days at a tiny ribbon, and only a few weeks at a long stripe, has a concrete reason to keep the blob small. Budget worksheets and bulk-buy planners convert days into months so a warehouse club case can be timed against expiry printed on the carton.
Developers call the same contract from scripts to seed deterministic test vectors for shopping calculators, to normalize user-entered tube size and habit before a restock reminder, or to satisfy a product brief that demands a days field rather than a guessed calendar. Contest and homework practice often needs a fast, offline source of quotients so solutions can be checked without opaque spreadsheet macros under time pressure.
Pair it with unit converters or cost-per-use tools when you need related everyday math, and keep this page for the single search intent: how many days a toothpaste tube lasts.
What you can do with it
Family restock planning
Turn a 4.0 or 6.4 oz carton and the household brushing habit into a days figure so you know when the next tube is due.
Pea-sized habit coaching
Show that a tiny ribbon lasts hundreds of days while a long stripe empties the same tube in a few weeks, which helps keep fluoride amounts in range.
FAQ
How do I calculate how many days a toothpaste tube lasts?
Send ounces (tube size), amount (ounces per brushing), and brushings (uses per day).
What units should amount use?
Ounces, the same unit as the tube. A pea-sized adult ribbon is often near 0.009 oz. Mixing grams with ounces without converting produces a wrong lifetime.
What happens if ounces, amount, or brushings is zero or negative?
A toothpaste lifetime is undefined when any of those three quantities is not strictly positive.
Does this assume a brand, density, or millilitre carton?
No. It only divides the ounces you supply by daily use. Convert millilitres or grams yourself if the carton is not labelled in ounces.
How long does a 6 oz tube of toothpaste last?
Brushing twice a day with a pea-sized 0.01 ounce, a 6-ounce tube lasts 300 days. Squeeze a quarter ounce each time instead and the same tube is gone in 12 days, so the amount per brushing matters most.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/life/toothpaste \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"ounces":6,"amount":0.01,"brushings":2}'const res = await fetch("https://api.kit.forhosting.com/life/toothpaste", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"ounces": 6,
"amount": 0.01,
"brushings": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/toothpaste",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"ounces": 6,
"amount": 0.01,
"brushings": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/toothpaste", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"ounces":6,"amount":0.01,"brushings":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"ounces":6,"amount":0.01,"brushings":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/toothpaste", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"ounces": 6,
"amount": 0.01,
"brushings": 2
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.toothpaste",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Use it free in the browser, or call the API at $0.002 per successful request when you need the same days figure in a shopping list, a budget worksheet, or a teaching demo. Any input that is missing, zero, or negative is rejected with invalid_input so a bad cell never becomes a fake lifetime.
What the days figure means and how the formula is built
The response echoes the three inputs you submitted, reports daily_use and total_brushings so you can audit the arithmetic by hand, and returns days as the primary figure. Failed validation never invents a lifetime, and a successful API request uses the published base of $0.002.
Input contract, units, and what invalid_input rejects
Aliases are accepted in the same roles so a shopping sheet or a typed form can post without renaming columns: tube_oz, tube_size, size, oz, or tube for ounces; amount_per_brushing, per_brushing, dose, or serving for amount; and daily_brushings, times, times_per_day, or frequency for brushings. Missing fields, empty strings, non-numeric tokens, NaN, and Infinity fail with invalid_input that names the field and are not billed. On success the body returns cleaned ounces, amount, and brushings, daily_use as amount times brushings, total_brushings as ounces divided by amount, days as ounces divided by daily_use, and formula as the printable identity.
Where a toothpaste lifetime is used in homes, classrooms, and software
On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns.
Integration use cases
Shopping apps and test fixtures
Normalize ounces, amount, and brushings into a stable days field for restock reminders, property tests, and CI assertions.
Technical questions
What does the toothpaste tube calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.