Skip to content
Salary Thief

How it works

Every formula,
written out

A calculator is only worth using if you can check why it said that. There are no hidden adjustment factors.

1. Turning pay into a yearly and monthly figure

annualIncome  = the yearly figure you entered,  or  monthly × 12
monthlyIncome = annualIncome ÷ 12

The top of the result panel always says whether you are looking at a monthly or a yearly basis. Whether bonuses belong in the number is your call — this site does not try to model bonus structures.

2. Before tax and take-home

This site does not calculate tax. It will not take a before-tax figure and invent a take-home number from it. You choose which one you are entering, and that choice is shown with the result.

3. How many you can buy

quantity (exact)  = amount for the chosen period ÷ unit price
whole units       = floor(quantity)

The exact figure and the whole-unit count are shown separately. They are never mixed.

4. Round-the-clock basis

D = days in the year (366 in a leap year, otherwise 365)
incomePerSecond  = annualIncome ÷ (D × 24 × 3,600)
expensePerSecond = (monthlyFixedCosts × 12) ÷ (D × 24 × 3,600)
netPerSecond     = incomePerSecond − expensePerSecond

Normal year: 31,536,000 seconds
Leap year:   31,622,400 seconds

This is your yearly pay spread across every second of the year. Sleep and weekends are included, which is the point of it.

5. Working-hours basis

incomePerWorkSecond = monthlyIncome ÷ (workDaysPerMonth × paidHoursPerDay × 3,600)
Defaults: workDaysPerMonth = 22, paidHoursPerDay = 8
→ denominator 633,600 seconds

This divides your pay only by the hours you actually set. The counter is a session you start and pause yourself — it does not detect when you clock in, and it is not an hourly-wage calculation for any legal purpose.

6. Weekly and daily figures

[round the clock]
perDay  = incomePerSecond × 86,400
perWeek = perDay × 7

[working hours]
perDay  = incomePerWorkSecond × paidHoursPerDay × 3,600
perWeek = perDay × workDaysPerWeek

Defaults: workDaysPerWeek = 5, paidHoursPerDay = 8

These are multiplied up from the same denominator as the per-second figure, so they can never disagree with it. What "a day" means changes with the basis: a calendar day of 24 hours, or one day of the paid hours you set.

Work days per month and work days per week are used for different things. Days per month (default 22) is the denominator for the per-second figure. Days per week (default 5) is only used for the weekly figure. 22 is a rough allowance for months with public holidays in them, so it is deliberately not simply 5 × 4.

7. Time to earn, saving and goals

time to afford an item = unit price ÷ income per second on the chosen basis
monthly saving         = monthlyIncome − monthlyFixedCosts
months to a goal       = goal amount ÷ monthly saving

If income is zero the time is shown as not calculable rather than as infinity. If the monthly saving is zero or negative, no timeline is produced — the screen says so and suggests checking the figures instead.

8. The inflation sandbox

future price            = current price × (1 + i)^n
pay needed to keep up   = current pay × (1 + i)^n
n is in years. Entering days converts as n = days ÷ 365, which is itself an assumption.

This is not a forecast, an official statistic, or a live inflation index. No historical price series is used, so no past values are drawn on any chart.

9. Input units and limits

Pay is entered in whatever unit people actually use to talk about salaries in that region. In English-speaking regions that is the currency itself, so you type the number as it appears on a payslip.

Maximum values and decimal places allowed for each input
InputDecimal places
Yearly pay4
Monthly pay4
Fixed monthly costs4
Item price0
Goal amount4
Assumed annual rate2

Maximum values and decimal places allowed for each input

10. Accuracy rules

  • Zero is a valid state. Negative income or negative costs are treated as errors.
  • Empty values, non-numeric text, NaN, Infinity and anything over the limit are all reported as input errors.
  • Intermediate maths stays in decimals. Rounding happens only when a number is displayed.
  • Thousand separators are inserted as you type, and the caret is restored by counting digits rather than characters.
  • The live counter truncates towards zero rather than rounding, so the earned, cost and net figures can never disagree by a unit.

11. Payday countdown

Based on the calendar date you choose. Months without that date fall back to the last day, and if today is that date the screen says it is payday. It does not assume anything about employers moving payment around weekends or holidays.

12. Price data

Each region has its own set of items and its own currency. Prices are labelled by where they came from, and the labels mean exactly what they say.

  • Checked source — a price someone looked up, with a link, the date the price applied, and the date it was checked.
  • Assumption — a plausible figure chosen so the conversion has something to work with. No source link is attached, because there is no source.
  • Your own price — a figure you typed in. It stays in this browser.

Opening a page never counts as re-checking a price. Where a deployment has no API keys configured, no fake request is made and no number is invented to fill the gap.

13. What this site does not do

  • It does not place you in an income bracket or tell you what percentile you are in.
  • It does not send what you type to a server, and nothing goes into the URL.
  • It does not present figures as a bank balance or as money that has arrived.
  • It does not recommend financial products or promise any return.