# Quellwerk Software sales dataset (dummy data)

Free practice data for building a sales dashboard. Quellwerk Software is a fictional B2B software company with 8 sales reps. Every name, company and number in it is invented. Use it for anything.

From the crmmeister.com article "Build a sales dashboard with AI: Lovable vs. Claude" by Ahmed Essam.

## Files

| File | What it is |
|---|---|
| `deals.csv` | 626 rows, one per deal, created 1 Jul 2025 to 30 Sep 2026 |
| `targets.csv` | Monthly new-business target in EUR, Oct 2025 to Sep 2026 |
| `deals.json` | The same deals and targets in one JSON file, plus the list of planted flaws |

The data is a snapshot taken on **30 September 2026**. Treat that date as "today".

## Columns in deals.csv

| Column | Meaning | Example (row D-1342) |
|---|---|---|
| `deal_id` | Unique ID | D-1342 |
| `deal_name` | Account plus product | Alttal Labs: Platform Enterprise |
| `account` | Customer company (fictional) | Alttal Labs |
| `industry` | 8 industries | Software |
| `company_size` | Employees: 10-49, 50-199, 200-999, 1000+ | 10-49 |
| `owner` | Sales rep | Jonas Albrecht |
| `lead_source` | Website inbound, Outbound, Referral, Partner, Events, Paid ads | Outbound |
| `stage` | Qualified, Discovery, Demo, Proposal, Negotiation, Closed Won, Closed Lost | Closed Lost |
| `probability_pct` | Win probability by stage: 10, 20, 40, 60, 80, 100, 0 | 0 |
| `value_eur` | Deal value in EUR (annual contract) | 19500 |
| `created_date` | Deal created | 2026-04-06 |
| `expected_close_date` | Planned close date, open deals only | empty (deal is closed) |
| `close_date` | Actual close date, closed deals only | 2026-05-22 |
| `stage_entered_date` | When the deal entered its current stage | 2026-05-22 |
| `last_activity_date` | Last call, e-mail or meeting | 2026-05-21 |
| `lost_reason` | No decision, Price, Competitor, Timing, Missing feature, No budget | Price |
| `calls`, `emails`, `meetings` | Activity counts on the deal | 9, 14, 3 |

## The flaws planted on purpose

Real CRM exports are messy, so this one is too. A good dashboard finds these and does not let them distort the numbers.

| Flaw | Deals | Rule used in the article |
|---|---|---|
| Duplicate deals (same account, value and created date; one has an extra space in the account name) | D-1624, D-1625, D-1626 | Count once |
| No owner | D-1235, D-1438, D-1566, D-1612 | Show as "Unassigned" |
| No lead source | D-1122, D-1283, D-1511 | Show as "Unknown" |
| No value | D-1364, D-1588 | Leave out of sums and averages, still count the deal |
| Won deal with value 0 | D-1239 | Leave out of average deal size |
| Close date before created date | D-1169 | Leave out of the sales cycle average |
| Lost deal without a lost reason | D-1059, D-1415 | Show as "Not given" |
| Stage written in lower case ("closed won") | D-1167, D-1489 | Treat as "Closed Won" |

## Reference numbers (all filters on "all")

Use these to check your own dashboard. Calculated with the rules above.

| Number | This quarter (Jul to Sep 2026) | Last 12 months (Oct 2025 to Sep 2026) |
|---|---|---|
| Won revenue | €759,500 | €2,688,000 |
| Target | €705,000 | €2,658,000 |
| % of target | 107.7 % | 101.1 % |
| Win rate, won / (won + lost) | 26.1 % | 25.9 % |
| Average deal size, won | €20,527 | €21,000 |
| Average sales cycle, won | 57.2 days | 57.6 days |

| Pipeline today (30 Sep 2026) | Value |
|---|---|
| Open deals | 76 |
| Open pipeline | €1,584,000 |
| Weighted pipeline | €561,150 |
| Stalled deals (no activity for 21+ days) | 17, worth €456,000 |

Generated with a seeded script (seed 20261011), so it is reproducible.
