Quick answer: Bucket every crash into 5–10 coarse categories (null deref, OOM, GPU driver, etc), classify on ingest with stack + exception rules, plot stacked area charts weekly. Categories surface patterns individual crashes hide.

Every week you fix the top 10 crashes. Next week there are 10 new top crashes. The dashboard feels like a treadmill because you’re solving specific bugs, not patterns. Grouping crashes by root cause category shows whether the team is actually making the game more reliable or just treading water.

The Categories

Pick a small, fixed set that covers 90%+ of your crashes. A typical Unity/C# game:

Classification Rules

def classify_crash(report):
    if "NullReferenceException" in report.exception_type:
        return "null_deref"
    if "OutOfMemory" in report.exception_type:
        return "oom"
    if any(f in report.top_frame for f in ["d3d11", "vulkan", "metal"]):
        return "gpu_driver"
    # ... more rules ...
    return "unknown"

Review the unknown bucket every week. Any new cluster becomes a rule. After a few months, unknown should be under 5%.

The Weekly Chart

Stacked area chart, one band per category, y-axis normalized to crashes per 10K sessions. The stacked shape shows both total volume and category mix at a glance. A rising null_deref band means structural issues in specific systems — investigate the code architecture, not individual crashes.

Actionable Signals

Beyond Crashes

The same pattern works for non-fatal errors, performance incidents, and bug reports. Categorize once, review weekly, fix patterns. Individual fixes are tactical; category work is strategic.

“Fixing one crash is good. Fixing the class of crashes that made it possible is ten times better. Categories make the class visible.”

Related Issues

For the crash deduplication pipeline that feeds this, see how to build a crash report deduplication system. For longer-term crash rate tracking, see how to track and reduce crash rate over releases.

Review the unknown bucket every week. It’s where new failure modes hide, and leaving it untouched means you’re categorically blind.