• Finance
  • 4 tables
  • 26,082 rows
  • 7 formats
  • synthetic data

Invoice Dataset for Financial Analysis

This ready-made invoice dataset is suitable for financial analysts and students practicing data analysis. It includes 26,082 rows across 4 tables, covering a date range from 2022-01-02 to 2024-12-31. A free sample is available, with full download requiring credits.

  • last updated 22 Oct 2026
  • by GoMask
  • 26,082 rows of synthetic invoice data.
  • Includes customers, products, invoices, and line items.
  • Data available in CSV, Excel, and SQL formats.
  • Covers invoice data from 2022-01-02 to 2024-12-31.
  • Free sample available for preview.

At a glance

  • 4tables
  • 26,082rows
  • 23columns
  • Jan 2022 – Dec 2024date range

The 4 tables

preview and data dictionary per table

Customers customers · dimension table · 5,000 rows

Contains information about each customer.

Preview

First 10 of 5,000 rows of the Customers table
customer_iduuidfirst_namestringlast_namestringemailstringcitystringstatestringsignup_datedate
6b67b28f-d528-4fc9-b242-c1ef2c412a07EleanorSmith[email protected]Los AngelesCA2023-03-07
9eb851e0-21fd-462c-beda-06f3b17e5eb5ArthurStewart[email protected]SeattleWA2022-12-19
cec9905f-7fdb-4405-ae46-f4192d6cf0cdBeatriceSullivan[email protected]New YorkNY2023-11-04
5e9f56e8-2a2f-49a8-9601-7dcf89c8cc30CharlesScott[email protected]DallasTX2020-07-26
bae6614c-3872-4e09-8bbc-590f7575541fDorothySimpson[email protected]San FranciscoCA2022-07-31
83ea9283-cdee-4e6d-a241-44906db33464EdwardStevens[email protected]AustinTX2023-12-06
83187fb0-dd21-438d-afbd-5bc1ebf93e08FlorenceStone[email protected]SeattleWA2021-01-19
21679ca5-46e6-4cb7-affc-ce8824d235eeGeorgeSnyder[email protected]New YorkNY2021-01-29
de013651-9151-440d-b2b4-c712b5896571HelenSpencer[email protected]Los AngelesCA2023-12-15
b6ce594c-f097-4cb3-b03e-ddd2db1c2399IsaacSterling[email protected]DallasTX2024-12-07
10 of 5,000 rows · 7 columns

Data dictionary

Data dictionary for the Customers table
columntypedescriptionexamplenull %
customer_iduuidUnique identifier for each customer.unique6b67b28f-d528-4fc9-b242-c1ef2c412a070%
first_namestringCustomer's first name.Eleanor0%
last_namestringCustomer's last name.Smith0%
emailstringCustomer's unique primary business email address.unique[email protected]0%
citystringCity where the customer is located.Los Angeles0%
statestringStandard two-letter postal abbreviation for the customer's US state.CA0%
signup_datedateThe date when the customer registered, established prior to or during the 2022-2024 invoice lifecycle.2023-03-070%

Products products · dimension table · 1,000 rows

Catalog of products and services offered.

Preview

First 10 of 1,000 rows of the Products table
product_iduuidproduct_namestringcategorystring
ae38f7c1-8a2c-459e-a07c-ade8444b0465Strategic IT Roadmap DevelopmentConsulting
3ee22e31-e11a-42af-8ab1-2fbae09da443Cloud Migration Advisory ServicesConsulting
9d2374b7-bbbc-49a1-bc16-61d6a0432c1bCybersecurity Risk AssessmentConsulting
ef1576f5-4575-423a-a530-38bf8edbf067Digital Transformation StrategyConsulting
b183df4b-2812-4f58-90b9-9155f3890919Data Analytics Consulting PackageConsulting
948599c7-1dba-405b-9387-62d36b34d663Supply Chain Optimization ConsultingConsulting
1761e0db-6d70-4342-a792-8636bcbd9518Customer Experience EnhancementConsulting
c9392227-9b41-4784-bead-b65fe0434cc7AI Implementation StrategyConsulting
5a55d03a-494d-4246-a6b6-3afc488dd4b9Enterprise Resource Planning (ERP) ConsultingConsulting
dace564b-dc61-45c3-9979-0057507f6e50Business Process Re-engineeringConsulting
10 of 1,000 rows · 3 columns

Data dictionary

Data dictionary for the Products table
columntypedescriptionexamplenull %
product_iduuidUnique identifier for the product catalog item.uniqueae38f7c1-8a2c-459e-a07c-ade8444b04650%
product_namestringDescriptive name of the product, subscription, hardware asset, or service package.Strategic IT Roadmap Development0%
categorystringPrimary industry classification category for the catalog item.Consulting0%

Invoices invoices · table · 5,000 rows

Records of all invoices issued to customers.

Preview

First 10 of 5,000 rows of the Invoices table
invoice_iduuidinvoice_datedatedue_datedatetotal_amountdecimalstatusstringcustomer_iduuid
cd9554bc-1b0a-4b4d-b60a-a3e939799adc2024-06-102024-07-109799.75Paide7514d79-8251-4d52-87bb-e97f1383bfc1
21be4952-adbe-4703-b72a-2d3244af20a22024-02-132024-04-1314613.03Paidb2f5b813-8654-49df-84f2-ae98249d2245
20eacccd-9666-49fa-a0ec-aaec50f8775b2024-07-262024-09-249267.14Paidf858d8dd-d37e-4e83-9b87-095064b24a3b
779da75b-a441-4311-bdd2-78c9a4dbac562024-03-112024-04-1011151.63Paid6f1a784a-7458-4976-909a-c2fd32852e22
c6f9d64e-203f-4e60-97eb-fe163e0d53d22024-11-262024-12-111914.71Paid40565337-790c-4463-b6cf-307e3f111a25
96665369-97c9-4c81-8cb7-88b6300db1682023-11-092023-11-242060.41Paid0b7d87d7-8248-4855-9b88-5ed9bdb60d20
e0d31cc2-aee8-454a-95bc-e04c8eb0f4a62022-11-152022-11-3013364.7Paidc722b994-8e38-4111-8f99-b53d4d7e6e7f
b737ec14-26d4-47f1-9108-54b7ddd340762024-11-152024-12-1512992.88Paid20d88b52-2bfc-4a95-be66-088fa0bb8d15
34aa1fb7-8a5d-4f0c-b6de-93a63552ce492022-06-182022-08-029466.21Paidd21b2d4d-3f58-4dc6-95cb-02664dfe19eb
ba39a014-f404-4554-901c-0bafc63ee2132024-06-132024-07-288222.5Paid90d5fc4d-5859-40a9-9a13-80de1e58fcfe
10 of 5,000 rows · 6 columns

Data dictionary

Data dictionary for the Invoices table
columntypedescriptionexamplenull %
invoice_iduuidPrimary key unique identifier for the invoice.uniquecd9554bc-1b0a-4b4d-b60a-a3e939799adc0%
invoice_datedateDate when the invoice was issued to the customer.2024-06-100%
due_datedateDate by which payment is expected, capped strictly on or before 2024-12-31.2024-07-100%
total_amountdecimalTotal gross amount of the invoice, representing the sum of underlying line totals.9799.750%
statusstringCurrent processing or payment status of the invoice.Paid0%
customer_iduuidForeign key to customers.customer_id.e7514d79-8251-4d52-87bb-e97f1383bfc10%

Line items line_items · fact table · 15,082 rows

Details of individual items within each invoice.

Preview

First 2 of 15,082 rows of the Line items table
line_item_iduuiddescriptionstringquantityintegerunit_pricedecimalline_totaldecimalinvoice_iduuidproduct_iduuid
11a0fa26-3eeb-4657-ad37-4bfa73ad6f81Children's storybook collection, 5 books152.1552.1521be4952-adbe-4703-b72a-2d3244af20a227be9aee-96bb-47cb-9094-d6780ac7773f
5c105ed1-09d0-45e5-8974-91612a3af4bcReusable grocery bags, set of 3, assorted designs365.2195.6cd9554bc-1b0a-4b4d-b60a-a3e939799adc6b3588cb-3891-4fc1-8d42-8e0c1ea0291a
2 of 15,082 rows · 7 columns

Data dictionary

Data dictionary for the Line items table
columntypedescriptionexamplenull %
line_item_iduuidUnique identifier for the invoice line item.b087514f-68d3-4486-9bf3-8db5ede6c0470%
descriptionstringItem description or billing explanation for the purchased product or service.Gourmet chocolate assortment, 24 pieces0%
quantityintegerNumber of units purchased in this line item.10%
unit_pricedecimalPrice per individual unit billed.74.020%
line_totaldecimalCalculated total for the line item equal to quantity multiplied by unit_price.74.020%
invoice_iduuidForeign key to invoices.invoice_id.9ecd77e3-7836-4287-8f5c-b985914cdb2e0%
product_iduuidForeign key to products.product_id.9cd91c24-fc9a-4a08-8c26-54a3e8015ae90%

How the tables join

  • invoices.customer_id references customers.customer_idmany to one: each Invoices row points to one Customers row
  • line_items.invoice_id references invoices.invoice_idmany to one: each Line items row points to one Invoices row
  • line_items.product_id references products.product_idmany to one: each Line items row points to one Products row

Questions to answer with it

  1. What is the total invoice amount for each customer?

    Join invoices and customers tables on customer_id and group by customer.

    tables: invoices, customers

  2. Which products or services are most frequently invoiced?

    Join line_items and products tables on product_id and count occurrences of product_name.

    tables: line_items, products

  3. How does the average invoice value change over different periods?

    Group invoices by year or month using invoice_date and calculate the average total_amount.

    tables: invoices

  4. Create a pivot table showing total invoice amounts by customer state and invoice status.

    Join invoices and customers, then group by state and status, summing total_amount.

    tables: invoices, customers

Starter SQL

run against this data before publishing

Table names match the SQLite file and the SQL script.

Total Invoice Amount Per Customer

sql
SELECT c.customer_id, c.first_name, c.last_name, SUM(i.total_amount) AS total_spent
FROM customers c
JOIN invoices i ON c.customer_id = i.customer_id
GROUP BY c.customer_id, c.first_name, c.last_name
ORDER BY total_spent DESC
LIMIT 20;

Top 5 Most Invoiced Products

sql
SELECT p.product_name, COUNT(li.product_id) AS invoice_count
FROM line_items li
JOIN products p ON li.product_id = p.product_id
GROUP BY p.product_name
ORDER BY invoice_count DESC
LIMIT 5;

Average Invoice Amount by Month

sql
SELECT STRFTIME('%Y-%m', invoice_date) AS invoice_month, AVG(total_amount) AS average_invoice_amount
FROM invoices
GROUP BY invoice_month
ORDER BY invoice_month
LIMIT 20;

Customer Invoice Count with Window Function

sql
SELECT c.customer_id, c.email, COUNT(i.invoice_id) AS invoice_count, RANK() OVER (ORDER BY COUNT(i.invoice_id) DESC) as customer_rank
FROM customers c
JOIN invoices i ON c.customer_id = i.customer_id
GROUP BY c.customer_id, c.email
LIMIT 20;

Load it with pandas

python
import pandas as pd

# Unzip the CSV download first: one file per table
customers = pd.read_csv("customers.csv")
products = pd.read_csv("products.csv")
invoices = pd.read_csv("invoices.csv")
line_items = pd.read_csv("line_items.csv")

# Join invoices to customers
df = invoices.merge(customers, left_on="customer_id", right_on="customer_id", how="left", suffixes=("", "_customers"))
print(df.groupby("state").size().sort_values(ascending=False))

Using it in your tool

Excel
Each table is provided as a separate sheet. Use Power Query to join tables or XLOOKUP for lookups. Create a PivotTable on the 'invoices' sheet, using 'customers.state' and 'invoices.status' as rows/columns and 'total_amount' as values.
Power BI
Load all tables. Create relationships: customers.customer_id to invoices.customer_id, and products.product_id to line_items.product_id. Create measures like Total Sales = SUM(invoices[total_amount]) and Average Invoice Value = AVERAGE(invoices[total_amount]).
SQL
Load the SQLite or SQL relational download. Use foreign keys to join tables: invoices.customer_id to customers.customer_id, and line_items.invoice_id to invoices.invoice_id, line_items.product_id to products.product_id.
Python
Use pandas to load CSV or Parquet files. Merge tables using pd.merge() and perform analysis. Example: df_invoices = pd.read_csv('invoices.csv'); df_customers = pd.read_csv('customers.csv'); merged_df = pd.merge(df_invoices, df_customers, on='customer_id').

Formats available

  • CSV (zip)One CSV file per table, zipped
  • Excel workbookOne worksheet per table
  • SQLite databaseA ready-to-query database file with every table
  • Parquet (zip)One Parquet file per table, zipped
  • SQL scriptCREATE TABLE with primary and foreign keys, then INSERTs
  • CSVA single CSV file
  • JSONA single JSON file

How this data was generated

Synthetic data. Every row was generated: no real people, customers or companies are in this dataset.

Synthetic data generated by GoMask DataFactory from a relational blueprint: keys, links and rules are enforced in code, text columns are filled by a language model. No real people, companies or transactions.

  • Data generated using GoMask DataFactory.
  • Synthetic data mimics common invoice structures and fields.
  • Includes relationships between customers, products, and invoices.
  • Checked by an automated quality gate: unique keys, no orphan foreign keys, required columns filled, declared rules and date ranges (realism score 92).

Limitations

  • The data is synthetic and does not represent actual transactions.
  • Limited to 4 tables, may not cover all complex business scenarios.
  • No geographical data beyond US states for customers.
  • Distributions and correlations are modelled, not measured from real records.

blueprint · invoice-dataset

Scale this dataset

Same tables. As many rows as you need.

Open the blueprint behind these 4 tables in Data Factory: keep the relationships, change a column, and generate it at the size you need.

  • 200,000 rows
  • 1,000,000 rows
Scale this dataset in Data Factory
Tables
customers, products, invoices, line_items
Licence
yours to use, including commercially
API slug
invoice-dataset

What should your data show?

Preview 20 rows free
No signup. No card.