diff --git a/frontend/src/components/dashboard/SpendingByCategoryCard.tsx b/frontend/src/components/dashboard/SpendingByCategoryCard.tsx
index d3370e9..b1ea417 100644
--- a/frontend/src/components/dashboard/SpendingByCategoryCard.tsx
+++ b/frontend/src/components/dashboard/SpendingByCategoryCard.tsx
@@ -89,16 +89,21 @@ export function SpendingByCategoryCard({ items }: SpendingByCategoryCardProps) {
{formatCurrency(item.amount)}
- {hasChildren && (
-
- )}
+ {/* Fixed-width slot on every row, populated or not — a
+ chevron shown only on rows with children would shift
+ their amount left relative to every other row's. */}
+
+ {hasChildren && (
+
+ )}
+
);
})}
diff --git a/frontend/src/components/reports/CategoryRankingCard.tsx b/frontend/src/components/reports/CategoryRankingCard.tsx
index b4c26ea..31ac51a 100644
--- a/frontend/src/components/reports/CategoryRankingCard.tsx
+++ b/frontend/src/components/reports/CategoryRankingCard.tsx
@@ -80,16 +80,21 @@ export function CategoryRankingCard({ items, isLoading, selectedCategoryId, onSe
{formatCurrency(item.amount)}
- {hasChildren && (
-
- )}
+ {/* Fixed-width slot on every row, populated or not — a
+ chevron shown only on rows with children would shift
+ their amount left relative to every other row's. */}
+
+ {hasChildren && (
+
+ )}
+
);