diff --git a/dwave/cloud/solver.py b/dwave/cloud/solver.py
index 35b6221..d04eeec 100644
--- a/dwave/cloud/solver.py
+++ b/dwave/cloud/solver.py
@@ -143,7 +143,8 @@ class Solver(object):
 
         # Derived solver properties (not present in solver data properties dict)
         self.derived_properties = {
-            'qpu', 'software', 'online', 'num_active_qubits', 'avg_load', 'name'
+            'qpu', 'software', 'online', 'num_active_qubits', 'avg_load', 'name',
+            'lower_noise'
         }
 
     def __repr__(self):
@@ -219,6 +220,10 @@ class Solver(object):
         "Nominal number of qubits on chip (includes active AND inactive)."
         return self.properties.get('num_qubits')
 
+    @property
+    def lower_noise(self):
+        return "lower_noise" in self.properties.get("tags", [])
+
     def max_num_reads(self, **params):
         """Returns the maximum number of reads for the given solver parameters.
 

diff --git a/tests/test_client.py b/tests/test_client.py
index f6c3a75..009e167 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -250,7 +250,8 @@ class FeatureBasedSolverSelection(unittest.TestCase):
                 "topology": {
                     "type": "chimera",
                     "shape": [16, 16, 4]
-                }
+                },
+                "tags": ["lower_noise"]
             },
             "id": "solver1",
             "description": "A test solver 1",
@@ -293,7 +294,8 @@ class FeatureBasedSolverSelection(unittest.TestCase):
                 # the following are only present in this solver
                 "some_set": [1, 2],
                 "some_range": [1, 2],
-                "some_string": "x"
+                "some_string": "x",
+                "tags": ["tag"]
             },
             "id": "c4-sw_solver3",
             "description": "A test of software solver",
@@ -339,6 +341,10 @@ class FeatureBasedSolverSelection(unittest.TestCase):
         self.assertSolvers(self.client.get_solvers(num_active_qubits=2), [self.solver3])
         self.assertSolvers(self.client.get_solvers(num_active_qubits__in=[2, 3]), [self.solver1, self.solver3])
 
+    def test_lower_noise_derived_property(self):
+        self.assertSolvers(self.client.get_solvers(lower_noise=True), [self.solver1])
+        self.assertSolvers(self.client.get_solvers(lower_noise=False), [self.solver2, self.solver3])
+
     def test_parameter_availability_check(self):
         self.assertSolvers(self.client.get_solvers(postprocess__available=True), [self.solver1])
         self.assertSolvers(self.client.get_solvers(postprocess=True), [self.solver1])

Expose lower_noise solver property
Create a derived property based on solver `tags`.
tests/test_client.py::FeatureBasedSolverSelection::test_lower_noise_derived_property
tests/test_client.py::ClientFactory::test_client_type tests/test_client.py::ClientFactory::test_custom_kwargs tests/test_client.py::ClientFactory::test_custom_kwargs_overrides_config tests/test_client.py::ClientFactory::test_default tests/test_client.py::ClientFactory::test_legacy_config_load_fallback tests/test_client.py::ClientFactory::test_solver_features_from_config tests/test_client.py::ClientFactory::test_solver_features_kwargs_override_config tests/test_client.py::ClientFactory::test_solver_name_from_config tests/test_client.py::ClientFactory::test_solver_name_overrides_config_features tests/test_client.py::FeatureBasedSolverSelection::test_anneal_schedule tests/test_client.py::FeatureBasedSolverSelection::test_availability_combo tests/test_client.py::FeatureBasedSolverSelection::test_default tests/test_client.py::FeatureBasedSolverSelection::test_membership_ops tests/test_client.py::FeatureBasedSolverSelection::test_name tests/test_client.py::FeatureBasedSolverSelection::test_nested_properties_intermediate_key_lookup tests/test_client.py::FeatureBasedSolverSelection::test_nested_properties_leaf_lookup tests/test_client.py::FeatureBasedSolverSelection::test_num_qubits tests/test_client.py::FeatureBasedSolverSelection::test_online tests/test_client.py::FeatureBasedSolverSelection::test_order_by_callable tests/test_client.py::FeatureBasedSolverSelection::test_order_by_edgecases tests/test_client.py::FeatureBasedSolverSelection::test_order_by_string tests/test_client.py::FeatureBasedSolverSelection::test_parameter_availability_check tests/test_client.py::FeatureBasedSolverSelection::test_property_availability_check tests/test_client.py::FeatureBasedSolverSelection::test_qpu_software tests/test_client.py::FeatureBasedSolverSelection::test_range_boolean_combo tests/test_client.py::FeatureBasedSolverSelection::test_range_ops tests/test_client.py::FeatureBasedSolverSelection::test_regex tests/test_client.py::FeatureBasedSolverSelection::test_relational_ops tests/test_client.py::FeatureBasedSolverSelection::test_set_ops tests/test_client.py::FeatureBasedSolverSelection::test_solvers_deprecation