diff --git a/clients/admin-ui/src/features/common/utils.ts b/clients/admin-ui/src/features/common/utils.ts
index 3c9bd143cc7..243600163b5 100644
--- a/clients/admin-ui/src/features/common/utils.ts
+++ b/clients/admin-ui/src/features/common/utils.ts
@@ -315,3 +315,18 @@ export const nFormatter = (num: number = 0, digits: number = 0) =>
notation: "compact",
maximumFractionDigits: digits,
}).format(num);
+
+/**
+ * Humanizes a field_name value from evidence items.
+ *
+ * The backend emits two formats depending on how the evidence was generated:
+ * - AI path (bare key): "legal_basis" → "Legal basis"
+ * - Non-AI path (dotted): "privacy_declaration.legal_basis" → "Legal basis"
+ *
+ * The source_type label already identifies where the data came from, so the
+ * prefix segment of a dotted path is redundant and is stripped.
+ */
+export const formatFieldName = (raw: string): string => {
+ const leaf = raw.includes(".") ? raw.split(".").pop()! : raw;
+ return sentenceCase(leaf.replace(/_/g, " "));
+};
diff --git a/clients/admin-ui/src/features/privacy-assessments/EvidenceCardGroup.tsx b/clients/admin-ui/src/features/privacy-assessments/EvidenceCardGroup.tsx
index 1cbd5fe39e7..e6792a88e50 100644
--- a/clients/admin-ui/src/features/privacy-assessments/EvidenceCardGroup.tsx
+++ b/clients/admin-ui/src/features/privacy-assessments/EvidenceCardGroup.tsx
@@ -1,8 +1,8 @@
import { Space, Text } from "fidesui";
-import { formatDate } from "~/features/common/utils";
+import { formatDate, formatFieldName } from "~/features/common/utils";
-import { FIELD_NAME_LABELS, SOURCE_TYPE_LABELS } from "./constants";
+import { SOURCE_TYPE_LABELS } from "./constants";
import styles from "./EvidenceCardGroup.module.scss";
import { EvidenceItem } from "./types";
@@ -18,11 +18,7 @@ export const EvidenceCardGroup = ({ items }: EvidenceCardGroupProps) => (
{SOURCE_TYPE_LABELS[item.source_type] ?? item.source_type}
-
- {FIELD_NAME_LABELS[item.field_name] ??
- item.field_name.replace(/_/g, " ")}
- :{" "}
-
+ {formatFieldName(item.field_name)}:
{item.value}
diff --git a/clients/admin-ui/src/features/privacy-assessments/constants.ts b/clients/admin-ui/src/features/privacy-assessments/constants.ts
index f13428f862e..bbfac2bb6be 100644
--- a/clients/admin-ui/src/features/privacy-assessments/constants.ts
+++ b/clients/admin-ui/src/features/privacy-assessments/constants.ts
@@ -60,7 +60,7 @@ export const FREQUENCY_OPTIONS = [
export const SOURCE_TYPE_LABELS: Record = {
system: "System",
- privacy_declaration: "Privacy declaration",
+ privacy_declaration: "Data uses",
data_category: "Data category",
data_use: "Data use",
data_subject: "Data subject",
@@ -68,13 +68,3 @@ export const SOURCE_TYPE_LABELS: Record = {
data_flow: "Data flow",
connection: "Connection",
};
-
-export const FIELD_NAME_LABELS: Record = {
- name: "Name",
- description: "Description",
- data_use: "Data use",
- data_categories: "Data categories",
- data_subjects: "Data subjects",
- retention_period: "Retention period",
- third_parties: "Third parties",
-};
diff --git a/clients/admin-ui/src/features/privacy-assessments/utils.ts b/clients/admin-ui/src/features/privacy-assessments/utils.ts
index de0308d16dc..ef0c2b8c685 100644
--- a/clients/admin-ui/src/features/privacy-assessments/utils.ts
+++ b/clients/admin-ui/src/features/privacy-assessments/utils.ts
@@ -1,4 +1,6 @@
-import { FIELD_NAME_LABELS, SOURCE_TYPE_LABELS } from "./constants";
+import { formatFieldName } from "~/features/common/utils";
+
+import { SOURCE_TYPE_LABELS } from "./constants";
import type { AssessmentTaskResponse, EvidenceItem } from "./types";
export const formatSystems = (task: AssessmentTaskResponse | null): string => {
@@ -57,8 +59,6 @@ export const filterEvidence = (
(SOURCE_TYPE_LABELS[item.source_type] ?? item.source_type)
.toLowerCase()
.includes(lower) ||
- (FIELD_NAME_LABELS[item.field_name] ?? item.field_name.replace(/_/g, " "))
- .toLowerCase()
- .includes(lower),
+ formatFieldName(item.field_name).toLowerCase().includes(lower),
);
};