Back to Blog Home

Expense report for a small team: what goes on it, a 60 day receipt clock, and a weekly Slack check

A Kipwise page with an approved status and an embedded tracking sheet, the kind of shared log an expense chase runs on

An employee books a flight on a personal card in March, mentions it in Slack, and sends nothing else. In May the owner pays the reimbursement because it seems rude to ask again, and in June the bookkeeper asks for the receipt. Nobody has it. At a firm of 5 to 100 people with no finance team, the expense report is rarely the problem. The problem is that nobody owns the chase, so receipts arrive at month end, some never arrive, and you either pay without evidence or spend a day asking people one by one. This guide gives you the fields an expense report needs, a deadline for receipts that comes from a rule rather than a feeling, a chase calendar you can copy, and a Monday check in Slack that lists only the rows still missing a receipt.

The short answer

  1. Keep one expense log, a shared sheet, and have each person add a row the day they spend. Use seven fields: date, who, vendor, amount, business purpose, payment method and receipt link.
  2. Treat 60 days after the expense as the line to account for it. That figure comes from the IRS guidance on accountable plans, which treats accounting within 60 days after an expense was paid or incurred as a reasonable period.
  3. Chase at days 30, 45 and 55. This calendar is my recommendation, not an IRS rule.
  4. Each Monday, post only the rows with no receipt link, grouped by person, with the age of each expense in days.
  5. Pay when the row is complete. Keep the pay decision with a person.

The rest explains why those pieces fit together and shows the Slack thread.

What goes on an expense report

Most guides agree on the fields. QuickBooks lists date, description, category, amount, vendor, business purpose, method of payment and receipts or supporting documentation, and walks through four spreadsheet steps: create the file, add a row per expense, categorize, then review and submit. Fyle offers a dozen downloadable templates with a similar shape. Any of them will do as a starting point.

For a small team, seven columns are enough:

ColumnExample (made up)Why it is there
Date2026-03-13Starts the 60 day clock
WhoPriyaLets you chase one person
VendorNorthline AirMatches the receipt
Amount412.80The number you will reimburse
Business purposeClient kickoff, DenverRequired to support the expense
Payment methodPersonal cardSeparates reimbursements from company spend
Receipt link(a Drive link, or blank)The column the chase reads

Category can wait until the bookkeeper needs it. The receipt link is the column that matters here, because a blank cell is the whole chase list. The top results leave a gap. The QuickBooks page does not say what to do when the receipt never arrives. Fyle's page says that lost receipts are a constant frustration and that finance teams get stuck chasing them, then points you to software. That is a vendor view, and it is reasonable if you need card matching or receipt capture. If you only need to know who owes you a receipt, a sheet and a schedule are enough.

Why the receipt keeps going missing

Three things happen at once in a small firm.

Nobody owns the chase. The owner is busy, the ops generalist has other work, and asking a colleague for a receipt feels like accusing them. So the request waits until month end.

The report is built from memory. Corpay describes the pattern well: an employee spends, tries to remember the details later, fills in a form, attaches whatever they can find and waits. That is a vendor's argument for corporate cards. The mechanism it describes is still accurate for a team on personal cards.

Reports pile up. QuickBooks advises encouraging employees to submit reports regularly rather than accumulating them. That advice is right and has no teeth. Regularly is not a date.

Two Hacker News threads show the same improvisation from the owner side: one business owner with about 50 employees asking for a single app that covers company-card spend, personal-card reimbursement and mileage, and a founder asking how much can be expensed without approval, where replies say policy varies widely by company. Those are author reports, not data, but they match what small firms describe.

Cost is the other reason to care. Corpay quotes a GBTA Foundation study putting the average expense report at $58 and 20 minutes to process, with nearly one in five containing errors. That figure is vendor-cited and aimed at much larger companies, so do not use it to price your own process. Your cost is the owner's Monday.

The 60 day receipt clock

Receipts matter because of what happens to a reimbursement without evidence. Under IRS Publication 463, an employee has to adequately account to the employer within a reasonable period of time. The same publication lists actions that always count as reasonable, including accounting for the expense within 60 days after it was paid or incurred and returning any excess reimbursement within 120 days. Reimbursements that fail the accountable plan rules are generally treated as paid under a nonaccountable plan, and the employer then combines them with wages.

The publication is written for employees, so treat it as the reference for the rule and not as advice on your own plan. Have your accountant confirm how your reimbursements should be handled. What you can take from it today is a number to build the process on.

The 60 day clock starts on the day the expense was paid, not on the day the report is submitted, so a month-end report has already used up half the window before anyone chases. Most small teams treat the deadline as "when the report is due", which is the end of the month. A flight paid on the 3rd and reported on the 30th of the same month has 33 days left. The same flight reported at the end of the following month has almost none. The rule rewards logging early and punishes batching.

So the clock needs two dates in the sheet: the day of the expense, and the day you will stop being polite. Age in days is a column you can compute from the first.

Which expenses need a receipt

Publication 463 says you must generally have documentary evidence such as receipts, canceled checks or bills. It lists exceptions: certain meals and lodging under a per diem method, an expense other than lodging that is less than $75, and a transportation expense for which a receipt is not readily available. Documentary evidence is ordinarily adequate if it shows the amount, date, place and essential character of the expense.

The under $75 exception covers expenses other than lodging, so a hotel night with no receipt is never inside it, and the chase list should treat lodging differently. A $60 taxi can be closed with a one line note. A $60 hotel stay cannot. Note that QuickBooks states the threshold as receipts for expenses of $75 or more, which is a fair summary for most spending but drops the lodging carve-out, so use the IRS wording for your rule.

Even for expenses under $75, you still want the row. The exception is about the receipt, not the record. The same publication says you should record the elements of an expense at or near the time it occurs.

A log row written on the day of the expense does more for you than a polished report assembled later, because the IRS treats a log kept weekly as a timely kept record. Publication 463 says you do not have to write down every expense on the day, and that a log maintained on a weekly basis is considered timely kept. So the cheapest form of compliance is a sheet that people fill in weekly or better, with the receipt link added as it turns up. A plain log beats a polished report.

A chase calendar for the 60 days

Here is the calendar. It is my recommendation, built backwards from the 60 day line; the IRS does not set nudge dates.

Day after the expenseActionWho sees it
0Row added to the logThe person
30First nudge: the person is asked in the Monday threadThe #expenses channel, grouped by person
45Second nudge: same list, the person is named in the threadThe person and the owner
55Last call: five days left, receipt or a one line note if under $75 and not lodgingThe person and the owner
60Decision: the owner decides whether to pay, hold or ask the accountantThe owner

Two rules keep this honest:

  • Count from the expense date. Never from the date the row was added or the report submitted.
  • Use the same message every time. Name the expense, say how many days have passed and say what closes it. The thread gets easier to read when every nudge looks alike.

Monday is a good day to run the check because the list is then fresh for the whole week. The Monday list shows every row with no receipt link, young or old. A weekly run cannot hit day 30, 45 and 55 exactly for every row, so read the calendar as bands for when you act: a row that is 30 days old gets the first nudge, and anything older than 55 days is the owner's call.

Running the Monday check in Slack

You could give the chase to a virtual assistant or an office manager, and many firms do. A scheduled check covers the listing part of that job. Here is how the Kipwise agent handles it.

The agent reads Google Drive files, including Sheets, with the asker's own access. It can also run a request on a schedule, in plain language, and post the result in the channel. Creating a scheduled task needs the asker to approve it once, and its later runs do not ask again. The owner mentions the agent in the #expenses channel and says:

> Every Monday at 9 am, read the Expense Log sheet in our Ops folder. List the rows where the Receipt link column is empty, grouped by person, with the number of days since the Date column. Show lodging rows first. Post the list here.

Here is the kind of post that comes back (made up for the example):

> Rows with no receipt link, Monday 11 May: > Priya: Northline Air 412.80, 59 days, flight, Denver kickoff > Priya: Hotel Alder 189.00, 41 days, lodging > Sam: Parking 14.00, 8 days, under $75 > Leo: Client lunch 68.50, 33 days, under $75

People reply in the thread. Priya adds the link to the sheet; Leo writes "no receipt, $68.50 lunch with the Acme team" and the owner decides whether a one line note is enough. The owner can also ask, in the same thread, "is Priya's March flight complete?" and the agent reads the row back. When a row is complete, the person who normally pays reimbursements pays it. If you want the agent to add a row or update a cell in the sheet, it shows an Approve or Deny card first, and only the person who asked can use it.

This recipe uses only a sheet read and a post in the channel. A person pastes the Drive link into the sheet, and the list goes to the channel, not to individuals. Receipt capture, card matching, spending policy and tax treatment are outside it, and the last one stays with your accountant. If you need card matching or automatic receipt capture, buy expense software, which is a different job. If you want the schedule mechanics, scheduling recurring agent jobs in Slack goes through them, and the same chase pattern for hours is in timesheet reminders for a small team.

When this goes wrong

The sheet has blank dates. The age column is wrong and the list drops rows. Make date a required habit, and have the Monday request list rows with a blank date as a separate group.

People log the receipt link but the file is wrong. A link is not proof. The owner opens a couple each month and checks that the file shows the amount, date, place and what the expense was.

Someone never answers. At day 60 the owner decides. Do not let the list roll on forever; an old row with no receipt is a decision you are postponing.

A row is split across people. One dinner paid by one person for four still gets one row, paid by one person.

Verify it works

After one month, check three numbers from the sheet:

  1. How many rows were older than 30 days with no receipt at the first Monday, and how many at the last?
  2. How many rows reached day 55 without a link or a note?
  3. How long did the owner spend on expenses on the last Monday?

If the first falls and the third falls, the chase is working. If the second stays above zero, the issue is a policy question for you and your accountant, not a reminder question.

What to do next

Copy the seven columns into one sheet today, ask each person to add the expenses they still have open, and note the date of the oldest one. If it is past day 60, take that row to your accountant before you pay it. Then set up the Monday request. The Kipwise agent is $10 per user per month with a minimum of 3 users. Ask it to list the rows in the expense log with no receipt link and read the first post against your own sheet.

Topics

Related posts

Put an AI teammate in your Slack

Free trial on install: $2 of AI credit for 7 days on the fast model, or $10 for 14 days with all models on a paid Slack plan or for existing Kipwise customers.