diff --git a/homeassistant/loader.py b/homeassistant/loader.py
index 4313cd2d6e0cdfa4dfab33bb2ce69f45612d3768..1fa9d0cd49dedf6ddf12982c13bb06f1726293f9 100644
--- a/homeassistant/loader.py
+++ b/homeassistant/loader.py
@@ -830,6 +830,9 @@ class Integration:
     @cached_property
     def quality_scale(self) -> str | None:
         """Return Integration Quality Scale."""
+        # Custom integrations default to "custom" quality scale.
+        if not self.is_built_in or self.overwrites_built_in:
+            return "custom"
         return self.manifest.get("quality_scale")
 
     @cached_property
diff --git a/tests/test_loader.py b/tests/test_loader.py
index a39bd63ad0d1375a92cdc53b7c4c575735e4c30a..4c3c4eb309fa9310236660be1ae1eeeac7f98263 100644
--- a/tests/test_loader.py
+++ b/tests/test_loader.py
@@ -547,6 +547,7 @@ def test_integration_properties(hass: HomeAssistant) -> None:
             ],
             "mqtt": ["hue/discovery"],
             "version": "1.0.0",
+            "quality_scale": "gold",
         },
     )
     assert integration.name == "Philips Hue"
@@ -585,6 +586,7 @@ def test_integration_properties(hass: HomeAssistant) -> None:
     assert integration.is_built_in is True
     assert integration.overwrites_built_in is False
     assert integration.version == "1.0.0"
+    assert integration.quality_scale == "gold"
 
     integration = loader.Integration(
         hass,
@@ -595,6 +597,7 @@ def test_integration_properties(hass: HomeAssistant) -> None:
             "domain": "hue",
             "dependencies": ["test-dep"],
             "requirements": ["test-req==1.0.0"],
+            "quality_scale": "gold",
         },
     )
     assert integration.is_built_in is False
@@ -607,6 +610,7 @@ def test_integration_properties(hass: HomeAssistant) -> None:
     assert integration.ssdp is None
     assert integration.mqtt is None
     assert integration.version is None
+    assert integration.quality_scale == "custom"
 
     integration = loader.Integration(
         hass,