diff --git a/SharepointToolbox/Core/Models/FileTypeMetric.cs b/SharepointToolbox/Core/Models/FileTypeMetric.cs
new file mode 100644
index 0000000..f23e625
--- /dev/null
+++ b/SharepointToolbox/Core/Models/FileTypeMetric.cs
@@ -0,0 +1,21 @@
+namespace SharepointToolbox.Core.Models;
+
+///
+/// Represents storage consumption for a single file extension across all scanned libraries.
+/// Produced by IStorageService.CollectFileTypeMetricsAsync and consumed by chart bindings.
+///
+public record FileTypeMetric(
+ /// File extension including dot, e.g. ".docx", ".pdf". Empty string for extensionless files.
+ string Extension,
+ /// Total size in bytes of all files with this extension.
+ long TotalSizeBytes,
+ /// Number of files with this extension.
+ int FileCount)
+{
+ ///
+ /// Human-friendly display label: ".docx" becomes "DOCX", empty becomes "No Extension".
+ ///
+ public string DisplayLabel => string.IsNullOrEmpty(Extension)
+ ? "No Extension"
+ : Extension.TrimStart('.').ToUpperInvariant();
+}
diff --git a/SharepointToolbox/SharepointToolbox.csproj b/SharepointToolbox/SharepointToolbox.csproj
index c5449dd..01ff1f3 100644
--- a/SharepointToolbox/SharepointToolbox.csproj
+++ b/SharepointToolbox/SharepointToolbox.csproj
@@ -40,6 +40,7 @@
+