Skip to content
All free tools

Turn rows into a report

Expense report builder

Pick the work expenses from your bank or card CSV, add purpose notes and receipt references, then download or print a request for finance. Free, no signup, and no file upload. Your employer decides what it will approve.

By AnyStatement

Published , 6 min read

Contents
  1. Build the request without sharing the whole statement
  2. Keep refunds separate from the original charge
  3. A receipt reference is a reminder, not an attached receipt
  4. Send the request, keep the working records
  5. Fix uncertain rows before adding them up
  6. Your working notes stay in this tab
  7. What this worksheet is based on
  8. If the old expenses are only in a PDF

Choose the rows finance needs

One account, one currency, up to 200 selected report rows. The source can contain up to 10,000 data rows and 5 MB. The example is fictional.

UTF-8 .csv or .txt, up to 5 MB. File contents never leave this tool.

Source read: Waiting for a CSV.

Format and selections: Not checked.

Calculation: Not calculated. No partial total is shown.

Build the request without sharing the whole statement

Start with one account and one currency. Map the posted date, merchant and signed amount, then choose the source date order, number format and signs. A positive number might mean a charge in your card export and a credit in another file, so the tool waits for your choice. If your CSV has no account or currency column, enter a label that applies to every row.

Name the report and enter its period. Select only the rows you want to include. Mark personal purchases, employer-paid items, pending transactions and duplicates excluded. A row is not selected just because it falls inside the period, and matching descriptions are not evidence that a purchase belongs to the trip.

For each selected charge, enter a category, its business purpose and a receipt reference. The requested portion starts at the full charge, but you can reduce it. For a partly personal purchase, use the amount supported by your own allocation and keep that calculation with the receipt. The guide to splitting one payment explains how to retain the original total while documenting its parts.

Keep refunds separate from the original charge

The tool never changes the source amount. A requested portion must be nonnegative and no larger than the source charge. Each source row gets one category, not a set of category allocations. There is no inferred business percentage, tax adjustment or currency conversion.

A positive credit is not automatically a refund: it could be your card payment. To include it, enter the amount to subtract, reference the original charge or an earlier report, and confirm that you reviewed it as a refund. The result carries it as a separate negative adjustment. A refund outside the chosen period needs another explicit confirmation; an out-of-period charge cannot be requested in that period.

The fictional example contains a hotel charge of 120.00, train fare of 35.50 and meal of 18.25 USD. Requested charges total 173.75. A reviewed hotel refund of 10.00 reduces the net request to 163.75. The meal receipt is missing, so the amount stays 163.75 and the report says “Draft: evidence incomplete.” A separate personal purchase of 24.00 is excluded. Load example to see those decisions.

If refunds exceed the selected charges, the result says “Net credit adjustment.” It does not call a negative amount reimbursement due. Check how your finance team wants that adjustment presented before sending it.

A receipt reference is a reminder, not an attached receipt

Missing purposes, categories, receipts or receipt references appear in a separate checklist. They do not prevent you from exporting an honest draft. Even when every field is filled, the report remains a draft: the tool has not opened the receipt, checked its authenticity or established that the expense is reimbursable.

Keep your supporting documents separately and follow the recipient's instructions. In the United States, IRS Publication 463 (2025), chapter 5 discusses records and documentary evidence together. It specifically says a canceled check alone does not prove a business expense without evidence of business purpose. That is a reason to keep purpose notes and supporting records, not a claim that this checklist implements the tax rules.

This tool does not determine employer approval, tax deductibility, receipt authenticity, accountable-plan compliance or reimbursement entitlement. It does not apply mileage rates, split tax or VAT, inspect receipt images, post entries to accounting software, reconcile statement balances or authenticate a bank statement. The total is what you requested, not what anyone owes you.

Send the request, keep the working records

The itemized CSV contains selected rows, original source amounts, requested amounts, purpose notes, categories, receipt references and physical source-line numbers. A separate summary records the category totals, report period, source conventions, included and excluded counts, and the limits of the calculation. Keep that summary with the itemized request so its assumptions do not disappear.

The missing-evidence download is a checklist for finishing the draft. The optional exclusion log lists dates, source lines and exclusion reasons, without excluded merchant descriptions. Review it before sharing: even dates and exclusion reasons can reveal personal information.

Open print view creates a separate local window with all selected report rows, the totals, assumptions and evidence checklist, not only the current preview page. Use its Print or save as PDF button for your browser's print dialog. It is a snapshot, so edits and Clear in the original tab do not update it. Close that window when you finish. No custom PDF writer or receipt upload is involved.

Spreadsheet-protected CSV downloads prefix formula-like text with an apostrophe and show the number of changed cells. This includes original amount text with currency labels that could be interpreted as a formula. Plain numeric amounts, including negative refund adjustments, stay numeric. The separately labeled unprotected itemized export requires an acknowledgement because it can contain active formulas. OWASP's CSV injection guidance warns that spreadsheet save-and-reopen behavior can defeat escaping and that no sanitization method suits every consumer. Inspect a CSV again after editing it in another program.

Fix uncertain rows before adding them up

The limit is one UTF-8 CSV or text file of 5,000,000 bytes and 10,000 data rows, with at most 200 selected report rows. Large tables use pages. Exports and totals cover the selection, not just the visible page. Decimal precision is an explicit choice from zero to six places; excess precision is rejected rather than rounded.

Mixed account or currency labels block the report, even if you planned to exclude one group. Labels must match exactly, including case and spaces. Use the CSV merge and split tool to prepare a one-account, one-currency working file first. No exchange rate is fetched or inferred.

Blank records, repeated headers, subtotal candidates, invalid dates, malformed amounts and damaged text remain visible in the source preview and issues list. These unresolved source issues block calculation, even if you would exclude the row. Fix a working copy rather than changing the original. Exact duplicate records are retained and flagged; only your selection decision excludes one.

Dates at both ends of the period are included. Timestamp or weekday removal is listed as a source note, and two-digit years use the displayed cutoff. You must confirm that selected transactions are posted rather than pending. The tool does not infer posting status or claim that the source covers every transaction.

Your working notes stay in this tab

Your file and the values you enter are processed in this browser tab. They are not uploaded or sent to analytics. We do not save them between visits. Downloads you choose to save remain on your device.

Use Clear to reset active input and settings. Back navigation can restore uncleared state; leaving the page is not a clearing action. Clear is not a secure memory wipe, and downloaded files or separate print windows remain under your control. Downloads create new files rather than changing your statement.

What this worksheet is based on

We opened IRS Publication 463, labeled 2025, RFC 4180 (October 2005) and OWASP's CSV injection guidance on October 17, 2026. OWASP showed no publication or update date. The IRS source explains supporting records; the RFC describes CSV quoting and record structure. The fictional amounts were recomputed with exact decimal arithmetic. No employer approval process, tax filing, receipt authenticity check or destination spreadsheet import was tested.

If the old expenses are only in a PDF

First check whether your bank provides a native CSV, or prepare the handful of required rows manually. If only PDF statements remain, AnyStatement can convert them into transaction data linked to source PDF lines. That is a separate upload workflow, not part of this local tool, and it still does not decide which expenses finance will approve. The expense request and its downloads stay free.