diff --git a/scout/adapter/mongo/query.py b/scout/adapter/mongo/query.py
index 055963b99..267969642 100644
--- a/scout/adapter/mongo/query.py
+++ b/scout/adapter/mongo/query.py
@@ -13,11 +13,13 @@ class QueryHandler(object):
                 'thousand_genomes_frequency': float,
                 'exac_frequency': float,
                 'cadd_score': float,
+                'cadd_inclusive": boolean,
                 'genetic_models': list(str),
                 'hgnc_symbols': list,
                 'region_annotations': list,
                 'functional_annotations': list,
                 'clinsig': list,
+                'clinsig_confident_always_returned': boolean,
                 'variant_type': str(('research', 'clinical')),
                 'chrom': str,
                 'start': int,
@@ -45,8 +47,27 @@ class QueryHandler(object):
         mongo_query['variant_type'] = query.get('variant_type', 'clinical')
         logger.debug("Set variant type to %s", mongo_query['variant_type'])
 
-        mongo_query['$and'] = []
+        # Requests to filter based on gene panels, hgnc_symbols or
+        # coordinate ranges must always be honored. They are always added to 
+        # query as top level, implicit '$and'.
 
+        if query.get('hgnc_symbols') and query.get('gene_panels'):
+            gene_query = [
+                        {'hgnc_symbols': {'$in': query['hgnc_symbols']}},
+                        {'panels': {'$in': query['gene_panels']}}
+                    ]
+            mongo_query['$or']=gene_query
+        else:
+            if query.get('hgnc_symbols'):
+                hgnc_symbols = query['hgnc_symbols']
+                mongo_query['hgnc_symbols'] = {'$in': hgnc_symbols}
+                logger.debug("Adding hgnc_symbols: %s to query" %
+                             ', '.join(hgnc_symbols))
+
+            if query.get('gene_panels'):
+                gene_panels = query['gene_panels']
+                mongo_query['panels'] = {'$in': gene_panels}
+ 
         if query.get('chrom'):
             chromosome = query['chrom']
             mongo_query['chromosome'] = chromosome
@@ -59,6 +80,20 @@ class QueryHandler(object):
                 mongo_query['end'] = {
                                         '$gte': int(query['start'])
                                     }
+                
+        mongo_query_minor = []
+
+        # A minor, excluding filter criteria will hide variants in general,
+        # but can be overridden by an including, major filter criteria 
+        # such as a Pathogenic ClinSig. 
+        # If there are no major criteria given, all minor criteria are added as a
+        # top level '$and' to the query. 
+        # If there is only one major criteria given without any minor, it will also be
+        # added as a top level '$and'.
+        # Otherwise, major criteria are added as a high level '$or' and all minor criteria 
+        # are joined together with them as a single lower level '$and'.
+
+        mongo_query_minor = []
 
         if query.get('thousand_genomes_frequency') is not None:
             thousandg = query.get('thousand_genomes_frequency')
@@ -69,7 +104,7 @@ class QueryHandler(object):
 
             else:
                 # Replace comma with dot
-                mongo_query['$and'].append(
+                mongo_query_minor.append(
                     {
                         '$or': [
                             {
@@ -94,7 +129,7 @@ class QueryHandler(object):
             if exac == '-1':
                 mongo_query['exac_frequency'] = {'$exists': False}
             else:
-                mongo_query['$and'].append({
+                mongo_query_minor.append({
                     '$or': [
                         {'exac_frequency': {'$lt': float(exac)}},
                         {'exac_frequency': {'$exists': False}}
@@ -102,7 +137,7 @@ class QueryHandler(object):
                 })
 
         if query.get('local_obs') is not None:
-            mongo_query['$and'].append({
+            mongo_query_minor.append({
                 '$or': [
                     {'local_obs_old': {'$exists': False}},
                     {'local_obs_old': {'$lt': query['local_obs'] + 1}},
@@ -122,44 +157,25 @@ class QueryHandler(object):
                         ]}
                 logger.debug("Adding cadd inclusive to query")
 
-            mongo_query['$and'].append(cadd_query)
+            mongo_query_minor.append(cadd_query)
                     
-
         if query.get('genetic_models'):
             models = query['genetic_models']
-            mongo_query['genetic_models'] = {'$in': models}
+            mongo_query_minor.append({'genetic_models': {'$in': models}})
 
             logger.debug("Adding genetic_models: %s to query" %
                          ', '.join(models))
 
-        if query.get('hgnc_symbols') and query.get('gene_panels'):
-            gene_query = {
-                    '$or': [
-                        {'hgnc_symbols': {'$in': query['hgnc_symbols']}},
-                        {'panels': {'$in': query['gene_panels']}}
-                    ]}
-            mongo_query['$and'].append(gene_query)
-        else:
-            if query.get('hgnc_symbols'):
-                hgnc_symbols = query['hgnc_symbols']
-                mongo_query['hgnc_symbols'] = {'$in': hgnc_symbols}
-                logger.debug("Adding hgnc_symbols: %s to query" %
-                             ', '.join(hgnc_symbols))
-
-            if query.get('gene_panels'):
-                gene_panels = query['gene_panels']
-                mongo_query['panels'] = {'$in': gene_panels}
-
         if query.get('functional_annotations'):
             functional = query['functional_annotations']
-            mongo_query['genes.functional_annotation'] = {'$in': functional}
+            mongo_query_minor.append({'genes.functional_annotation': {'$in': functional}})
 
             logger.debug("Adding functional_annotations %s to query" %
                          ', '.join(functional))
 
         if query.get('region_annotations'):
             region = query['region_annotations']
-            mongo_query['genes.region_annotation'] = {'$in': region}
+            mongo_query_minor.append({'genes.region_annotation': {'$in': region}})
 
             logger.debug("Adding region_annotations %s to query" %
                          ', '.join(region))
@@ -178,24 +194,17 @@ class QueryHandler(object):
                     ]}
                 logger.debug("Adding size inclusive to query.")
 
-            mongo_query['$and'].append(size_query)
+            mongo_query_minor.append(size_query)
 
         if query.get('svtype'):
             svtype = query['svtype']
-            mongo_query['sub_category'] = {'$in': svtype}
+            mongo_query_minor.append({'sub_category': {'$in': svtype}})
             logger.debug("Adding SV_type %s to query" %
                          ', '.join(svtype))
 
-        if query.get('clinsig'):
-            logger.debug("add CLINSIG filter for rank: %s" %
-                        ', '.join(query['clinsig']))
-            rank = [int(item) for item in query['clinsig']]
-
-            mongo_query['clnsig.value'] = {'$in': rank}
-
         if query.get('depth'):
             logger.debug("add depth filter")
-            mongo_query['$and'].append({
+            mongo_query_minor.append({
                 'tumor.read_depth': {
                     '$gt': query.get('depth'),
                 }
@@ -203,7 +212,7 @@ class QueryHandler(object):
 
         if query.get('alt_count'):
             logger.debug("add min alt count filter")
-            mongo_query['$and'].append({
+            mongo_query_minor.append({
                 'tumor.alt_depth': {
                     '$gt': query.get('alt_count'),
                 }
@@ -211,20 +220,57 @@ class QueryHandler(object):
 
         if query.get('control_frequency'):
             logger.debug("add minimum control frequency filter")
-            mongo_query['$and'].append({
+            mongo_query_minor.append({
                 'normal.alt_freq': {
                     '$lt': float(query.get('control_frequency')),
                 }
             })
 
+        mongo_query_major = None
+
+        # Given a request to always return confident clinical variants, 
+        # add the clnsig query as a major criteria, but only
+        # trust clnsig entries with trusted revstat levels.
+
+        if query.get('clinsig'):
+            rank = [int(item) for item in query['clinsig']]
+
+            if query.get('clinsig_confident_always_returned') == True:
+
+                trusted_revision_level = ['mult', 'single', 'exp', 'guideline']
+
+                mongo_query_major = { "clnsig": 
+                        { 
+                            '$elemMatch': { 'value': 
+                                            { '$in': rank }, 
+                                            'revstat': 
+                                            { '$in': trusted_revision_level }
+                                          } 
+                         }
+                    }                
+
+            else:
+                logger.debug("add CLINSIG filter for rank: %s" %
+                             ', '.join(str(query['clinsig'])))
+                if mongo_query_minor:
+                    mongo_query_minor.append({'clnsig.value': {'$in': rank}})
+                else:
+                    # if this is the only minor critera, use implicit and.
+                    mongo_query['clnsig.value'] = {'$in': rank}
+
+        if mongo_query_minor and mongo_query_major:
+            mongo_query['$or'] = [ {'$and': mongo_query_minor }, mongo_query_major ]
+        elif mongo_query_minor:
+            mongo_query['$and'] = mongo_query_minor
+        elif mongo_query_major:
+            mongo_query['clnsig'] = mongo_query_major['clnsig']
+    
         if variant_ids:
             mongo_query['variant_id'] = {'$in': variant_ids}
 
             logger.debug("Adding variant_ids %s to query" % ', '.join(variant_ids))
-
-        if not mongo_query['$and']:
-            del mongo_query['$and']
-
+            
+            
         logger.debug("mongo query: %s", mongo_query)
 
         return mongo_query
diff --git a/scout/server/blueprints/variants/forms.py b/scout/server/blueprints/variants/forms.py
index b5c6cd20b..bab4716d7 100644
--- a/scout/server/blueprints/variants/forms.py
+++ b/scout/server/blueprints/variants/forms.py
@@ -55,8 +55,9 @@ class FiltersForm(FlaskForm):
     genetic_models = SelectMultipleField(choices=GENETIC_MODELS)
 
     cadd_score = BetterDecimalField('CADD', places=2)
-    cadd_inclusive = BooleanField()
+    cadd_inclusive = BooleanField('CADD inclusive')
     clinsig = SelectMultipleField('CLINSIG', choices=CLINSIG_OPTIONS)
+    clinsig_confident_always_returned = BooleanField('All CLINSIG confident')
 
     thousand_genomes_frequency = BetterDecimalField('1000 Genomes', places=2)
     exac_frequency = BetterDecimalField('ExAC', places=2)
@@ -79,8 +80,9 @@ class SvFiltersForm(FlaskForm):
     genetic_models = SelectMultipleField(choices=GENETIC_MODELS)
 
     cadd_score = BetterDecimalField('CADD', places=2)
-    cadd_inclusive = BooleanField()
+    cadd_inclusive = BooleanField('CADD inclusive')
     clinsig = SelectMultipleField('CLINSIG', choices=CLINSIG_OPTIONS)
+    clinsig_confident_always_returned = BooleanField('All CLINSIG confident')
 
     chrom = TextField('Chromosome')
     size = TextField('Length')
diff --git a/scout/server/blueprints/variants/templates/variants/variants.html b/scout/server/blueprints/variants/templates/variants/variants.html
index 2a769f604..0f21f0919 100644
--- a/scout/server/blueprints/variants/templates/variants/variants.html
+++ b/scout/server/blueprints/variants/templates/variants/variants.html
@@ -217,11 +217,11 @@
           {{ form.hgnc_symbols.label(class="control-label") }}
           {{ form.hgnc_symbols(class="form-control") }}
         </div>
-        <div class="col-xs-3">
+        <div class="col-xs-2">
           {{ form.cadd_score.label(class="control-label") }}
           {{ form.cadd_score(class="form-control") }}
         </div>
-        <div class="col-xs-3">
+        <div class="col-xs-2">
           {{ form.cadd_inclusive.label(class="control-label") }}
           <div>{{ form.cadd_inclusive() }}</div>
         </div>
@@ -229,6 +229,10 @@
           {{ form.clinsig.label(class="control-label") }}
           {{ form.clinsig(class="form-control") }}
         </div>
+	<div class="col-xs-2">
+	  {{ form.clinsig_confident_always_returned.label(class="control-label") }}
+	  <div>{{ form.clinsig_confident_always_returned() }}</div>
+	</div>
       </div>
     </div>
     <div class="form-group">
@@ -256,6 +260,8 @@
                           case_name=case.display_name, variant_type=form.variant_type.data,
                           functional_annotations=severe_so_terms,
                           region_annotations=['exonic', 'splicing'],
+			  clinsig=[4,5],
+			  clinsig_confident_always_returned=True,
                           thousand_genomes_frequency=institute.frequency_cutoff,
                           gene_panels=form.data.get('gene_panels')) }}"
                  class="btn btn-default form-control">

Always allow ClinVar Pathogenic, Likely Pathogenic through Clinical filter
It is counterintuitive to find known clinical pathogenic mutation filtered out as a result of a "clinical filter". Also apply to local "marked causatives" - but there we already have a sufficient mechanism?
diff --git a/tests/adapter/test_query.py b/tests/adapter/test_query.py
index 2d12aa555..d6c424276 100644
--- a/tests/adapter/test_query.py
+++ b/tests/adapter/test_query.py
@@ -91,6 +91,101 @@ def test_build_thousand_g_and_cadd(adapter):
         }
     ]
 
+def test_build_clinsig(adapter):
+    case_id = 'cust000'
+    clinsig_items = [ 3, 4, 5 ]
+    query = {'clinsig': clinsig_items}
+    
+    mongo_query = adapter.build_query(case_id, query=query)
+
+    assert mongo_query['clnsig.value'] == {
+            '$in': clinsig_items
+            }
+
+def test_build_clinsig_filter(adapter):
+    case_id = 'cust000'
+    clinsig_items = [ 4, 5 ]
+    region_annotation = ['exonic', 'splicing']
+    
+    query = {'region_annotations': region_annotation, 
+                 'clinsig': clinsig_items }
+    
+    mongo_query = adapter.build_query(case_id, query=query)
+    
+    assert mongo_query['$and'] == [
+        { 'genes.region_annotation':
+              {'$in': region_annotation }
+          },
+        { 'clnsig.value':
+              { '$in': clinsig_items }
+          } 
+        ]
+
+def test_build_clinsig_always(adapter):
+    case_id = 'cust000'
+    clinsig_confident_always_returned = True
+    clinsig_items = [ 4, 5 ]
+    region_annotation = ['exonic', 'splicing']
+    freq=0.01
+    
+    query = {'region_annotations': region_annotation, 
+             'clinsig': clinsig_items,
+             'clinsig_confident_always_returned': clinsig_confident_always_returned,
+             'thousand_genomes_frequency': freq
+             }
+
+    mongo_query = adapter.build_query(case_id, query=query)
+
+    assert mongo_query['$or'] == [
+        { '$and': 
+          [ {
+              '$or':[
+                {'thousand_genomes_frequency': {'$lt': freq}},
+                {'thousand_genomes_frequency': {'$exists': False}}
+            ]
+         },
+            {'genes.region_annotation':
+               {'$in': region_annotation }
+          },
+             ]},
+        { 'clnsig':
+              {
+                '$elemMatch': { 'value':
+                                    { '$in' : clinsig_items },
+                                'revstat':
+                                    { '$in' : ['mult', 
+                                               'single', 
+                                               'exp', 
+                                               'guideline'] 
+                                      }
+                                }
+                }
+          }
+        ]
+
+def test_build_clinsig_always_only(adapter):
+    case_id = 'cust000'
+    clinsig_confident_always_returned = True
+    clinsig_items = [ 4, 5 ]
+
+    query = {'clinsig': clinsig_items,
+             'clinsig_confident_always_returned': clinsig_confident_always_returned
+             }
+
+    mongo_query = adapter.build_query(case_id, query=query)
+
+    assert mongo_query['clnsig'] == {
+        '$elemMatch': { 'value':
+                            { '$in' : clinsig_items },
+                        'revstat':
+                            { '$in' : ['mult', 
+                                       'single', 
+                                       'exp', 
+                                       'guideline'] 
+                              }
+                        }
+        }
+
 def test_build_chrom(adapter):
     case_id = 'cust000'
     chrom = '1'

pip install -e .
parse_log_pytest
requirements.txt
pytest
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
babel==2.17.0
blinker==1.9.0
cachelib==0.13.0
certifi==2025.1.31
charset-normalizer==3.4.1
click==8.1.8
coloredlogs==15.0.1
Cython==3.0.12
cyvcf2==0.31.1
dnspython==2.7.0
dominate==2.9.1
exceptiongroup==1.2.2
Flask==3.1.0
flask-babel==4.0.0
Flask-Bootstrap==3.3.7.1
Flask-DebugToolbar==0.16.0
Flask-Login==0.6.3
Flask-Mail==0.10.0
Flask-Markdown==0.3
Flask-OAuthlib==0.9.6
Flask-PyMongo==3.0.1
Flask-WTF==1.2.2
humanfriendly==10.0
idna==3.10
importlib_metadata==8.6.1
iniconfig==2.1.0
intervaltree==3.1.0
itsdangerous==2.2.0
Jinja2==3.1.6
livereload==2.7.1
loqusdb==2.6.0
Markdown==3.7
MarkupSafe==3.0.2
mongo-adapter==0.3.3
mongomock==4.3.0
numpy==2.0.2
oauthlib==2.1.0
packaging==24.2
path==17.1.0
path.py==12.5.0
ped-parser==1.6.6
pluggy==1.5.0
pymongo==4.11.3
pytest==8.3.5
python-dateutil==2.9.0.post0
pytz==2025.2
PyYAML==6.0.2
query-phenomizer==1.2.1
requests==2.32.3
requests-oauthlib==1.1.0
-e git+https://github.com/Clinical-Genomics/scout.git@8e1c3acd430a1f57f712aac29847e71cac8308f3#egg=scout_browser
sentinels==1.0.0
six==1.17.0
sortedcontainers==2.4.0
tomli==2.2.1
tornado==6.4.2
urllib3==2.3.0
vcftoolbox==1.5.1
visitor==0.1.3
Werkzeug==3.1.3
WTForms==3.2.1
zipp==3.21.0

name: scout
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - babel==2.17.0
      - blinker==1.9.0
      - cachelib==0.13.0
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - click==8.1.8
      - coloredlogs==15.0.1
      - cython==3.0.12
      - cyvcf2==0.31.1
      - dnspython==2.7.0
      - dominate==2.9.1
      - exceptiongroup==1.2.2
      - flask==3.1.0
      - flask-babel==4.0.0
      - flask-bootstrap==3.3.7.1
      - flask-debugtoolbar==0.16.0
      - flask-login==0.6.3
      - flask-mail==0.10.0
      - flask-markdown==0.3
      - flask-oauthlib==0.9.6
      - flask-pymongo==3.0.1
      - flask-wtf==1.2.2
      - humanfriendly==10.0
      - idna==3.10
      - importlib-metadata==8.6.1
      - iniconfig==2.1.0
      - intervaltree==3.1.0
      - itsdangerous==2.2.0
      - jinja2==3.1.6
      - livereload==2.7.1
      - loqusdb==2.6.0
      - markdown==3.7
      - markupsafe==3.0.2
      - mongo-adapter==0.3.3
      - mongomock==4.3.0
      - numpy==2.0.2
      - oauthlib==2.1.0
      - packaging==24.2
      - path==17.1.0
      - path-py==12.5.0
      - ped-parser==1.6.6
      - pluggy==1.5.0
      - pymongo==4.11.3
      - pytest==8.3.5
      - python-dateutil==2.9.0.post0
      - pytz==2025.2
      - pyyaml==6.0.2
      - query-phenomizer==1.2.1
      - requests==2.32.3
      - requests-oauthlib==1.1.0
      - sentinels==1.0.0
      - six==1.17.0
      - sortedcontainers==2.4.0
      - tomli==2.2.1
      - tornado==6.4.2
      - urllib3==2.3.0
      - vcftoolbox==1.5.1
      - visitor==0.1.3
      - werkzeug==3.1.3
      - wtforms==3.2.1
      - zipp==3.21.0
prefix: /opt/conda/envs/scout

tests/adapter/test_query.py::test_build_clinsig tests/adapter/test_query.py::test_build_clinsig_filter tests/adapter/test_query.py::test_build_clinsig_always tests/adapter/test_query.py::test_build_clinsig_always_only
tests/adapter/test_query.py::test_build_query tests/adapter/test_query.py::test_build_thousand_g_query tests/adapter/test_query.py::test_build_non_existing_thousand_g tests/adapter/test_query.py::test_build_cadd_exclusive tests/adapter/test_query.py::test_build_cadd_inclusive tests/adapter/test_query.py::test_build_thousand_g_and_cadd tests/adapter/test_query.py::test_build_chrom tests/adapter/test_query.py::test_build_range
scout/adapter/mongo/query.py scout/server/blueprints/variants/forms.py scout/server/blueprints/variants/templates/variants/variants.html
scout/adapter/mongo/query.py scout/server/blueprints/variants/forms.py scout/server/blueprints/variants/templates/variants/variants.html