Lean Process Improvement: A Data-Driven Guide
Learn the DMAIC process, Six Sigma process, and lean process improvement tools to deliver measurable business results.
Process mining performance depends on three factors: how much data you upload, how you structure it, and how the system processes it. This guide covers all three with real benchmarks and practical ways to improve results.
We publish all our numbers. Compare them with any process mining tool on the market.
Key Takeaways
When you upload data to ProcessMind, three things happen. Here’s exactly where the time goes:
Upload (dominates total time). Your file travels over the internet to our cloud infrastructure. This is the bottleneck for large files. Physics wins: a 50 million event CSV (11 GB) takes 2 minutes on gigabit, 18 minutes on 100 Mbps, or over 3 hours on 10 Mbps. The same data in Parquet is just 1.7 GB, cutting those times to 19 seconds, 3 minutes, and 28 minutes. This is the primary reason to use columnar formats like Parquet or ORC, or smaller datasets.
Preprocessing (one-time cost, ~30s to 2.5 min). Once uploaded, we transform your data into optimized columnar storage: events indexed, activity transitions pre-computed, process variants identified, and summary statistics calculated. This takes 30 seconds for small datasets and up to 2.5 minutes for 100M events. You pay this cost once per upload and benefit from it thereafter.
Model changes (partial recalculation, 6–52s). When you modify the process model by adding or removing activities or changing mappings, only the model-dependent calculations are updated. This takes 6 seconds for small datasets and up to 52 seconds for 100M events, much faster than full preprocessing. Filter changes are instant.
Dashboard Performance: Always Fast
Dashboards are fast. Once preprocessing completes, dashboard interactions respond in under 2.5 seconds for datasets up to 10M events. Even at 50M events, most queries return in 2–5 seconds. Only process flows on 100M+ datasets approach 7 seconds. See detailed response times below.
We invested heavily in preprocessing so analysis, where you spend hours, feels instant.
Once your data is loaded, several characteristics determine query speed. Understanding them helps you design better exports and set realistic expectations.
Activity count matters. Process models with 10–20 distinct activities are optimal. Above 50 activities, the process flow takes longer to compute and becomes harder to understand. Too many nodes and edges create visual noise. If your export contains many activities, consider grouping related steps.
Variant diversity affects computation. A process where 80% of cases follow 5 variants is faster to analyze than one where every case takes a unique path. High variation isn’t bad and often signals real problems, but expect slightly longer query times.
More columns means more scanning. Each attribute you include is indexed and queried. The core columns, CaseId, Activity, and Timestamp, are always needed. Additional columns help with filtering and categorization, but each adds overhead.
Long cases take longer. A case with 50 events requires more computation than one with 5. If your process has cases spanning hundreds of events, queries will be proportionally slower. This is inherent to process mining, not specific to any tool.
Understanding what to expect helps you plan. These benchmarks run on production AWS infrastructure with real network latency and are averaged across multiple test runs. We tested 50+ query types per dataset size.
The table below shows realistic expectations for each dataset size. Upload time dominates for larger files, especially on slower connections. It is the single biggest factor in your total wait time.
| Dataset | Actual Events | File Size | Upload (1 Gbps) | Upload (100 Mbps) | Upload (50 Mbps) | Upload (10 Mbps) | Preprocessing |
|---|---|---|---|---|---|---|---|
| 100K | 125,260 | 22 MB | < 1s | 2s | 4s | 22s | 35s |
| 500K | 626,300 | 110 MB | 1s | 11s | 22s | 2 min | 45s |
| 1M | 1,253,424 | 221 MB | 3s | 22s | 44s | 4 min | 55s |
| 2M | 2,506,848 | 443 MB | 5s | 44s | 1.5 min | 7 min | 1 min |
| 5M | 4,996,877 | 1.1 GB | 13s | 2 min | 4 min | 18 min | 1.5 min |
| 10M | 12,511,867 | 2.2 GB | 25s | 4 min | 7 min | 37 min | 1.5 min |
| 20M | 25,023,734 | 4.4 GB | 50s | 7 min | 15 min | 1.2 hr | 2 min |
| 50M | 62,559,335 | 11.1 GB | 2 min | 18 min | 37 min | 3 hr | 2 min |
| 100M | 125,118,670 | 22.3 GB | 4 min | 37 min | 1.2 hr | 6 hr | 2.5 min |
File sizes are for uncompressed CSV with a typical event log schema (CaseId, Activity, Timestamp, plus 5–8 business attributes). Your files may be larger or smaller depending on column count and content.
1 Gbps upload times are measured, with 88 MB/s effective throughput to AWS eu-central-1. Other speeds are extrapolated at practical throughputs: 50 Mbps → ~5 MB/s, 100 Mbps → ~10 MB/s, 10 Mbps → ~1 MB/s. Real-world throughput depends on your network, distance to the data center, and current load.
The key insight: Preprocessing time plateaus between 1 and 2.5 minutes regardless of scale. Upload time scales linearly with file size. Reducing file size is the highest-leverage optimization you can make.
The file format you upload has a major impact on upload speed and preprocessing time. ProcessMind supports CSV, Parquet, ORC, Excel, and XES. For large datasets, Parquet and ORC dramatically outperform CSV in both file size and processing speed.
| Dataset | CSV | Parquet | ORC | CSV.GZ |
|---|---|---|---|---|
| 1M events | 221 MB | 34 MB | 39 MB | 20 MB |
| 5M events | 1.1 GB | 151 MB | 197 MB | 107 MB |
| 10M events | 2.2 GB | 301 MB | 395 MB | 215 MB |
| 20M events | 4.4 GB | 603 MB | 791 MB | 430 MB |
| 50M events | 11.1 GB | 1.7 GB | 1.9 GB | 1.1 GB |
| 100M events | 22.3 GB | 3.4 GB | 3.7 GB | 2.2 GB |
Parquet files are 85% smaller than CSV. ORC files are 82% smaller. Both are columnar formats with built-in compression, so no extra step is required. Your ETL tool or data platform, such as Spark, Databricks, dbt, or BigQuery, likely already supports exporting to Parquet or ORC.
File size is only half the story. After upload, your data goes through format-dependent ingestion and analytics computation, including event indexing and transition and variant calculations. The analytics step dominates and is the same for all formats. CSV.GZ is the only format that adds significant extra time because gzip files cannot be split for parallel decompression.
| Dataset | Parquet | ORC | CSV | CSV.GZ |
|---|---|---|---|---|
| 1M events | 55s | 55s | 55s | 55s |
| 5M events | 1.5 min | 1.5 min | 1.5 min | 1.5 min |
| 10M events | 1.5 min | 1.5 min | 1.5 min | 2 min |
| 20M events | 2 min | 2 min | 2 min | 2.5 min |
| 50M events | 2 min | 2 min | 2 min | 3 min |
| 100M events | 2.5 min | 2.5 min | 2.5 min | 4.5 min |
Preprocessing time is nearly identical for Parquet, ORC, and CSV because analytics computation dominates regardless of input format. But CSV.GZ preprocessing degrades significantly at scale, growing from about a minute at 1M events to over 4 minutes at 100M. Gzip-compressed files cannot be split and processed in parallel, so decompression adds a growing step before analytics can begin.
Consider both upload time and preprocessing, and the format choice becomes clear:
| 10M events (100 Mbps) | File Size | Upload | Preprocessing | Total |
|---|---|---|---|---|
| Parquet | 301 MB | 30s | 1.5 min | ~2 min |
| ORC | 395 MB | 40s | 1.5 min | ~2.2 min |
| CSV | 2.2 GB | 4 min | 1.5 min | ~5.5 min |
| CSV.GZ | 215 MB | 21s | 2 min | ~2.5 min |
| 50M events (100 Mbps) | File Size | Upload | Preprocessing | Total |
|---|---|---|---|---|
| Parquet | 1.7 GB | 3 min | 2 min | ~5 min |
| ORC | 1.9 GB | 3.2 min | 2 min | ~5.2 min |
| CSV | 11.1 GB | 18 min | 2 min | ~20 min |
| CSV.GZ | 1.1 GB | 2 min | 3 min | ~5 min |
At scale, Parquet and ORC are the clear winners because their file sizes are dramatically smaller. Upload time is the main bottleneck. Preprocessing takes roughly the same time for all formats except CSV.GZ, which incurs a growing decompression penalty.
Which Format Should You Use?
What About Gzip?
CSV.GZ files are 90% smaller than raw CSV, which helps on slow connections. But unlike Parquet and ORC, which have built-in compression and are directly queryable, gzip files must be fully decompressed before processing, and gzip does not support parallel decompression. At 50M+ events, CSV.GZ preprocessing takes 3–4.5 minutes versus ~2 minutes for other formats. On a fast connection, uploading a slightly larger Parquet file is almost always the better choice.
If you’re on a very slow connection, 10 Mbps, and have a large CSV, gzip can still make sense: gzip -k data.csv on Mac/Linux, or 7-Zip on Windows.
Once you have loaded a baseline dataset, you don’t need to re-upload everything when new data arrives. ProcessMind supports delta loading, or incremental uploads, so you can append new events to an existing dataset.
How it works:
The performance impact is significant. Instead of re-uploading your growing dataset each time, you upload only what’s new:
| Scenario | Full Re-upload | Delta Upload | Time Saved |
|---|---|---|---|
| 10M base + 500K new events (100 Mbps) | 4 min upload | 5s upload | ~4 min |
| 20M base + 2M new events (100 Mbps) | 7 min upload | 44s upload | ~6 min |
| 50M base + 5M new events (100 Mbps) | 18 min upload | 2 min upload | ~16 min |
After a delta upload, preprocessing runs again on the combined dataset, with the same 1–2.5 min cost. But you save all the upload time for data you already uploaded.
Delta loading is ideal for:
Delta files must use the same file format and column structure as the original upload. See the incremental data loading guide for details.
For datasets exceeding a few gigabytes or recurring uploads, scripts or command-line tools are more reliable than browser uploads. Browsers can time out, consume excessive memory, or lose progress when the network is interrupted.
Why the API works better for large files:
curl show real-time transfer progress.Example using curl:
# Upload a Parquet file directly using a presigned URL
curl -X PUT "$PRESIGNED_URL" --upload-file data.parquet ProcessMind provides presigned URLs that authorize direct uploads to cloud storage. No credentials beyond your API key are required. You can also copy the presigned upload URL directly from the dataset settings menu in the ProcessMind UI.
See the API documentation for complete Bash, JavaScript, and Python examples, including how to obtain presigned URLs, upload delta files, and handle large datasets programmatically.
When you refine your process model by renaming activities, changing mappings, or adding groupings, only the model-dependent calculations need updating. The base data stays in place:
| Dataset | Full Preprocessing | Model Change | Time Saved |
|---|---|---|---|
| 1M events | 55s | ~14s | 75% |
| 2M events | 1 min | ~16s | 73% |
| 10M events | 1.5 min | ~20s | 78% |
| 20M events | 2 min | ~23s | 81% |
| 50M events | 2 min | ~37s | 69% |
| 100M events | 2.5 min | ~52s | 65% |
Model changes are fast because the initial data loading step, which grows with dataset size, is already complete. Only the model-dependent aggregation step, including activity mappings, transitions, and variants, runs again. For datasets up to 20M events, model changes complete in under 25 seconds. Even at 100M events, they take under a minute, much faster than full preprocessing.
Once your data is loaded, these are the response times you experience during analysis. The times below are medians across multiple benchmark runs. Each dashboard component queries independently and loads in parallel:
| Dataset | Statistics | Process Flow | Variants | Categories | Data Browser | Animation |
|---|---|---|---|---|---|---|
| 100K | 0.6s | 1.5s | 1.1s | 1.5s | 1.2s | 1.4s |
| 1M | 0.6s | 1.6s | 1.4s | 1.9s | 1.5s | 2.0s |
| 5M | 0.6s | 2.5s | 1.8s | 2.4s | 1.3s | 2.1s |
| 10M | 0.6s | 3.4s | 2.2s | 2.5s | 1.6s | 2.4s |
| 20M | 0.6s | 3.9s | 2.7s | 3.3s | 1.9s | 3.6s |
| 50M | 0.6s | 5.1s | 4.2s | 5.7s | 1.6s | 2.7s |
| 100M | 0.6s | 7.2s | 3.5s | 4.7s | 1.6s | 5.0s |
Patterns to notice:
The takeaway: At recommended dataset sizes of 1–10M events, every dashboard component responds in under 3.5 seconds. Even at 50M, most queries return in 2–4 seconds with filters applied. Only unfiltered process flows and category views on 50M+ datasets reach 5–6 seconds.
This is the most important advice in this guide: don’t start with your largest dataset.
The Iterative Approach
The numbers speak for themselves:
| Approach | Upload (100 Mbps) | Preprocessing | Total Wait | Dashboard Speed |
|---|---|---|---|---|
| Start with 1M events | 22s | 55s | ~1.5 min | 1–2s |
| Start with 5M events | 2 min | 1.5 min | ~3.5 min | 1–2.5s |
| Start with 50M events | 18 min | 2 min | ~20 min | 1–6s |
Most organizations find 1–5M events is more than enough for actionable insights. Process behavior stabilizes well before 10M events. Beyond that, you’re mostly adding duplicates of patterns you’ve already seen.
If your 1M event Parquet file, 34 MB, uploads in 3 seconds and gives you the same process map as 50M events, why wait 18 minutes?
The numbers above tell a clear story: at 1–5M events, uploads take seconds, preprocessing takes under 2 minutes, and dashboards respond in 1–2.5 seconds. At 50M, you’re waiting 20 minutes for an upload on 100 Mbps, and dashboards slow to 3–6 seconds. The experience is dramatically different.
So the real question isn’t “how fast is the tool?” It’s “how much data do I actually need?” The answer is almost always less than you think.
Analyze one country, one department, or one product line first.
This isn’t about limitation. It’s about clarity. Segmented analysis produces sharper insights than global averages.
Why segmentation works:
Example: A European logistics company with 42M shipment events across 8 countries:
Segmentation Dimensions
Geographic, including country, region, and site; organizational, including business unit and department; product, including product line and category; time, including fiscal year and quarter; customer, including segment and channel.
Exclude the happy path before uploading. This technique can reduce datasets by 90–95%.
Most business processes follow the 80/20 rule. The vast majority of cases follow the standard, successful path. If you’re looking for exceptions, compliance violations, or process deviations, you don’t need that data.
Example: A purchase-to-pay process with 1.2 million purchase orders (8.4M events):
If you’re analyzing compliance issues, export only the exception cases. That’s a 92% reduction, from 8.4M events (1.9 GB) to 670K events (150 MB). Upload time drops from 3 minutes to 15 seconds on 100 Mbps. Export as Parquet (15 MB), and you can upload it in under 2 seconds.
How to Filter Before Export
Filter by status, such as rejected, cancelled, or exception; by specific activities, such as cases containing “Rejection” or “Manual Override”; by case duration, such as cases taking longer than expected; or by specific time periods or business units.
Every column you export costs bandwidth, storage, and processing time. Choosing columns carefully is one of the highest-impact optimizations you can make.
What to leave out:
Example: An SAP export of 1.8M purchase order events with 45 columns reduced to 12 essential columns:
The columns that matter: CaseId, Activity, Timestamp, and a few business attributes, such as status, amount, category, and region. Everything else is probably noise.
Some analytical questions genuinely require large datasets. Understanding when helps you make the right call:
If you need 50M+ events, plan for it: use Parquet format, which reduces 11 GB CSV to 1.7 GB and speeds up preprocessing; use the API for reliable transfers; and use a fast network connection if available. After that first load, dashboards remain fast.
The sections above are about data volume. The other half of responsiveness comes from how the model and the dashboards are built:
The best way to understand process mining performance is to experience it with your own data.
Start with a sample. Export 1M events from a recent time period in Parquet format. Upload them. Build your first model. See how quickly you can iterate.
Apply the techniques from this guide. Use columnar formats. Filter for exceptions. Segment by region. Remove unnecessary columns. Each optimization builds on the last.
Scale deliberately. Once you understand your process with 1M events, decide whether you need more. Usually, you don’t. When you do, use delta loading to append data instead of re-uploading it.
Start a free trial and see these benchmarks in action. For help sizing your dataset or optimizing your exports, contact us. We’ve helped hundreds of organizations find the right balance between data volume and analysis speed.
Learn the DMAIC process, Six Sigma process, and lean process improvement tools to deliver measurable business results.
Compare Celonis process mining with ProcessMind to find software that fits your processes, budget, and goals.
Compare Fluxicon Disco and ProcessMind on features, pricing, and use cases to choose the right process mining platform for your team.
Compare ProcessMind and SAP Signavio for Process Mining, modeling, and simulation. Choose the right fit for your business.
Get instant access with no credit card and no waiting. Turn the way your organization works into clear, connected process designs.
Build your process architecture, define ownership and controls, and align roles and responsibilities across every level.
Start your free trial and create one reliable foundation for governing, managing, and continuously improving your processes.
We use cookies to improve your experience, personalize content, and analyze traffic. By clicking "Accept All," you consent to our use of cookies.