How to detect unusual business expenses before they add up
Revenue problems are loud. Expense problems are quiet: a subscription nobody cancelled, a supplier who raised prices by 8%, an invoice paid twice. Here is how each one happens, the check that catches it, and how to judge a category of spending against its own normal level.
Guide 8 min read
Nobody decides to overspend. Costs drift. Each individual payment looks reasonable, which is exactly why reviewing payments one at a time rarely catches anything. The problems show up in patterns: a total that is slowly higher, a number that repeats, a name that was not there last quarter.
1. Know how spending goes wrong
| What happens | How it looks | Check that catches it |
|---|---|---|
| Duplicate payment | Same payee, same amount, days apart | Duplicates |
| Subscription creep | Small recurring charges nobody owns | New and recurring payees |
| Quiet price rise | A recurring amount steps up and stays | Recurring amount changes |
| Category overspend | One category runs above its usual level | Level against normal |
| Error or fraud | An unfamiliar payee, odd timing, round sums | New payees, review |
2. Get transactions you can group
Export transactions from the bank or accounting software with at least a date, an amount, a payee and a category. Two small cleaning steps make every later check work better:
- Normalise payee names. “AMZN MKTP”, “Amazon.com” and “AMAZON WEB SERVICES” are two payees, not three, and not one.
- Separate transfers. Moving money between your own accounts is not spending, and it will swamp every total if left in.
3. Run the transaction checks
These look at individual payments and are simple enough for a spreadsheet filter or a pivot table.
- Duplicates: the same payee and the same amount within, say, 10 days. Most are legitimate, such as two identical orders. A few are not, and one recovered duplicate often pays for the whole exercise.
- New payees: anyone paid this month who was not paid in the previous six. Every one should have an owner who can say what it is.
- Recurring amount changes: for payees paid most months, compare this month’s amount with the median of the last six. A 5 to 10% step that persists is a price rise nobody agreed to.
4. Judge each category against its own normal
Transaction checks miss the most expensive problem: a category that simply runs higher, made of ordinary payments. For that, total each category by week and compare each week with that category’s own history. Not with the budget, which is a wish, and not with other categories, which have different rhythms.
Use the median for the typical level and the median absolute deviation for the typical spread, so one big month in the history does not make every later big month look normal. A worked example on marketing spend:
| Week | Spend | Distance from median |
|---|---|---|
| Week 1 | $1,200 | 60 |
| Week 2 | $1,350 | 90 |
| Week 3 | $1,100 | 160 |
| Week 4 | $1,280 | 20 |
| Week 5 | $1,310 | 50 |
| Week 6 | $1,190 | 70 |
| Week 7 | $1,260 | 0 |
A score above about 3 deserves a look. If you use an average and standard deviation instead, and the history already contains a spike, the spike inflates the spread and the next one scores as normal. That is the most common reason homemade expense alerts go quiet exactly when they are needed.
Mind the calendar. Payroll and rent land on fixed days, so compare them week against week of the month, or watch them monthly. Variable spending such as advertising, travel and supplies suits weekly.
5. Make the review a routine
A monthly half hour is enough for most small businesses: run the checks, list what was flagged, and give every item an answer. “Expected, campaign launch” is a perfectly good answer. Write the answers down; next month’s flags make much more sense next to them.
Common mistakes
- Reviewing only the largest payments. Creep lives in the small ones.
- Comparing spending with budget, which says what you hoped, not what is normal.
- Averages that include past spikes, which hide the next spike.
- Leaving internal transfers in the totals.
- Flagging things without anyone responsible for answering them.