Preparing your generator page
We are loading content and tools so everything is ready to use.
We are loading content and tools so everything is ready to use.
Build a sample USD bank statement for interface prototypes, parser tests, and training. Choose a fictional profile, one month, an opening balance, and 1–50 transactions. The table lists date, description, credit or debit, amount, and a running balance, and you can copy the same rows as plain text. The copy is labeled not for official use. It is not a statement from a bank and it is not proof of funds.
Pair a holder name from the Fake Name Generator if you need one. For a billing id instead of a ledger, use the Invoice Number Generator. More helpers are in Utility tools.
Last updated: October 8, 2026 · Published: 2026-04-01 · Updated: 2026-10-08
Closing balance: $2,500.00
0 mock transactions
| Date | Description | Type | Amount | Balance |
|---|---|---|---|---|
| Generate to preview sample statement rows | ||||
A bank statement is the record an institution sends for an account: opening balance, each credit and debit, and the closing balance for a period. This page does not retrieve that record. It invents a short USD checking-style list so a screen, a snapshot test, or a classroom exercise can show rows before any real ledger exists.
Every copied file begins with “SAMPLE BANK STATEMENT (NOT FOR OFFICIAL USE).” The bank name is a label you type, defaulting to Sample National Bank. Amounts are random, descriptions come from ten fixed phrases, and nothing is posted to an account. Do not send the file to a lender, landlord, employer, or agency as evidence of a balance or of income.
Generation stays in the browser. Refreshing the page clears the table. Use fictional names and a mask such as ****1234 — never a live account number or banking password.
Four steps from an empty preview to a labeled text block.
Keep the sample bank name, a made-up holder, and a mask like ****1234. Do not enter a real account number.
Month 1–12, year 2000–2100, opening balance $0–$1,000,000, and 1–50 transactions. Defaults are this month, $2,500, and 12 rows.
Rows land in date order. Credits add to the balance and debits subtract. The closing figure is the last row.
Copy as text includes the not-for-official-use banner, the profile, the table, and the closing balance.
Limits match the form on this page. Currency does not change.
| Setting | This generator |
|---|---|
| Purpose | Sample checking activity for UI, QA, and training |
| Currency | USD only, en-US currency format |
| Period | One month; years 2000–2100 |
| Row count | 1–50 per click (default 12) |
| Opening balance | $0–$1,000,000 (default $2,500) |
| Credits | About 28% of rows, about $40–$1,800 |
| Debits | The rest of the rows, about $6–$420 |
| Descriptions | 10 fixed labels, chosen separately from type |
| Balance | Running total in date order; closing balance on the last row |
| Export | On-screen table and plain text — no PDF, CSV, or OFX |
| Official use | No — banner says not for official use |
Profile fields are labels. They are applied when you click Generate statement.
Header label only. Default Sample National Bank. It does not connect to that institution — there is no institution behind the string.
Display name. Default Alex Morgan. Use a fictional name.
Display mask. Default ****1234. The field does not validate a real account number, and you should not paste one.
The statement period. Every transaction date falls on a day in that month. The export prints the period as YYYY-MM.
Balance before the first row. Allowed range on generate is $0 to $1,000,000. Default $2,500.
How many rows this click creates. Default 12. A new click replaces the previous table.
Each row picks a day in the selected month, then a type. A random value under 0.28 becomes Credit; otherwise the row is Debit. A credit amount is drawn from about $40 to $1,800 and a debit from about $6 to $420, then rounded to cents. The description is a separate draw from the ten names below, so the words do not decide the type.
After the rows exist, they sort by date. The first balance is the opening balance plus or minus the first row. Each later balance continues from the one above it. If two rows share a date, they stay in the order they were created. The closing balance shown above the table, and again at the bottom of the text, is the balance on the final row.
Copy as text is available after a generate. The block starts with the not-for-official-use line, then Bank, Account Holder, Account, Period, and Opening Balance. The table header is Date, Description, Type, Amount, and Balance, separated by pipes. Descriptions are padded for the ten short labels. A large balance is not cut off, so a seven-figure total is wider than the header spacing. The last line is Closing Balance.
The tool does not build a PDF, a CSV file, or an OFX download. Paste the text into a fixture, or rebuild the grid with the HTML Table Generator or the Markdown Table Generator when the test needs markup.
Prototypes and tests. Not applications that ask for a real statement.
Fill a table before a transactions API exists. Filters can key off Credit, Debit, and the ten descriptions.
The copied text has a stable banner, labeled header lines, and a pipe-separated table for column tests.
Generate once for a short month view, then again with 50 rows to check scroll and page breaks in your own template.
Closing balance equals opening balance plus credits minus debits, after amounts are rounded to cents.
Walk through categorization with fictional rows so practice data is not a customer’s statement.
Show plausible activity that was never pulled from a core banking system.
Treat every row as fiction, including when the bank name looks familiar.
The first line of the copy says the text is not for official use. Leave that line on anything you paste into a ticket or a slide.
Holder, bank name, and mask are labels. A real account number does not make the rows real, and it does not belong in a browser fixture.
Lenders, landlords, and agencies need documents from the institution that holds the account. This page cannot produce those.
Two rows can share a day. Salary Deposit is only a description, not proof the row is a credit.
Each click draws a new random set and replaces the table. The tool does not save history.
This export is plain text. Use the HTML or Markdown table generators when the fixture has to be markup.
Short definitions for the words on this page.
Fictional account activity for tests and demos. It is not produced by a bank and cannot verify a balance.
The USD total before the first transaction in the month. Default $2,500. Range $0 to $1,000,000.
The running balance on the last date-ordered row. It equals opening balance plus all credits minus all debits.
A row that increases the balance. About 28% of generated rows. Amount about $40–$1,800.
A row that decreases the balance. The remaining rows. Amount about $6–$420.
Opening balance adjusted by each row in date order. The Balance column shows that total after the row.
A display string such as ****1234. It is not a checked account number.
The single calendar month you select. Transaction dates stay inside that month.
The clipboard copy: banner, profile, pipe-separated rows, and closing balance. Not a PDF.
Sample versus official statements, row limits, amounts, running balance, the text export, and privacy.
Explore more tools in the directory.
Fictional person names for the account-holder field.
Fictional mailing addresses for sandbox customer profiles.
Billing reference strings, not a transaction ledger.
Table markup when the prototype needs HTML instead of plain text.
Markdown tables for README fixtures after you copy the rows.
Format API payloads while you wire a parser to fixture data.