diff --git a/src/app/portfolio/[slug]/(portfolio)/bulk-upload/[uploadId]/AddressesPanel.tsx b/src/app/portfolio/[slug]/(portfolio)/bulk-upload/[uploadId]/AddressesPanel.tsx
index 6f99ab1e..cbff4d3f 100644
--- a/src/app/portfolio/[slug]/(portfolio)/bulk-upload/[uploadId]/AddressesPanel.tsx
+++ b/src/app/portfolio/[slug]/(portfolio)/bulk-upload/[uploadId]/AddressesPanel.tsx
@@ -63,6 +63,8 @@ function statusLabel(status: string): string {
switch (status) {
case "ambiguous_duplicate":
return "Ambiguous match";
+ case "low_score":
+ return "Low-confidence match";
case "unmatched":
return "No match";
case "invalid_postcode":
diff --git a/src/app/portfolio/[slug]/(portfolio)/page.tsx b/src/app/portfolio/[slug]/(portfolio)/page.tsx
index 24bd0aba..c3305755 100644
--- a/src/app/portfolio/[slug]/(portfolio)/page.tsx
+++ b/src/app/portfolio/[slug]/(portfolio)/page.tsx
@@ -1,7 +1,4 @@
import PropertyTable from "../components/PropertyTable";
-import UnmatchedProperties from "../components/UnmatchedProperties";
-import PortfolioTabs from "../components/PortfolioTabs";
-import { getUnmatchedProperties } from "@/lib/properties/unmatched";
export const revalidate = 60;
@@ -14,15 +11,10 @@ export default async function Page(props: {
const params = await props.params;
const portfolioId = params.slug;
- const unmatched = await getUnmatchedProperties(portfolioId);
-
- return (
- }
- needsAttention={
-
- }
- />
- );
+ // UPRN matching is now confirmed during bulk-upload onboarding (ADR-0057), so
+ // properties arrive already matched — the portfolio-level "Unmatched" tab is
+ // retired. The tab components (PortfolioTabs / UnmatchedProperties /
+ // getUnmatchedProperties) are left in place for now, pending a follow-up that
+ // reconciles legacy no-UPRN properties onboarded before this feature.
+ return ;
}