Skip to content

What EasyTestData generates

A year of test data for a QuickBooks Online (QBO) sandbox, where the numbers actually add up. Everything below is in the open-source engine.

15 transaction types

Plus the master data they depend on: accounts, customers, vendors, employees, service items and expense categories.

  • Invoices
  • Sales receipts
  • Payments (incl. partial)
  • Deposits
  • Estimates
  • Credit memos
  • Refund receipts
  • Bills
  • Bill payments
  • Purchase orders
  • Vendor credits
  • Expenses
  • Payroll expenses
  • Journal entries
  • Transfers

A 12-month run creates roughly 250–2,950 transactions depending on the scenario.

How it works under the hood

Financially coherent

Revenue and expense targets are allocated to the cent across invoices, sales receipts, bills, expenses and payroll to hit the target profit you asked for.

Realistic receivables

Customer concentration, payment delays, partial payments and unpaid invoices follow the template and scenario, so aging reports have something to show.

Deterministic seeds

A seeded PRNG drives every choice. Same inputs and seed, same output, byte for byte.

Tag-based purge

Every generated record is tagged (default EZTD). Purge deletes the transactions it added, makes its customers, vendors, employees and items inactive (accounts stay), and never touches records you made by hand (details).

Rate-limit aware loading

Batched creates, retries and a request budget below QBO's API limits, with progress reporting. The web app can also roll back a failed load.

JSON and CSV export

Skip QBO entirely and write the plan to files for unit-test fixtures, mock servers or database seeds.

Countries

US-first. UK, AU and CA locales are newer and less tested: they change employee names, addresses, currency and payment terms. Loading into non-US QBO sandboxes hasn't been verified yet, so please report what you find.

Extend it

Add industry templates and scenarios: they are plain data and the best first contributions.