diff --git a/ippisite/ippidb/templates/compound_list.html b/ippisite/ippidb/templates/compound_list.html
index c1ec7f5c05f9bf182b0287af62b8e7f4af376ba9..42b7ff6cfe17bb47e1c7ca0cbe5c11494bdbdce5 100644
--- a/ippisite/ippidb/templates/compound_list.html
+++ b/ippisite/ippidb/templates/compound_list.html
@@ -63,6 +63,9 @@
                         Activity and Efficiencies
                     </button>
                     <div class="dropdown-menu" aria-labelledby="aeMenuButton">
+                        {% include "modal_open_button.html" with label="Best Activity" param_name="qs_ba" %}
+                        {% include "modal_open_button.html" with label="LE" param_name="qs_le" %}
+                        {% include "modal_open_button.html" with label="LLE" param_name="qs_lle" %}
                     </div>
                 </div>
                 <div class="dropdown btn-group" style="display: inline-flex;">
@@ -114,7 +117,7 @@
 
         <div class="m-2 d-flex justify-content-between">
             <span>{{ paginator.count }} compounds</span>
-            {% if selected_family or selected_ppi or selected_disease or selected_taxonomy or selected_boundcomplex or molecular_weight or a_log_p or nb_donor_h or nb_acceptor_h or tpsa or nb_rotatable_bonds or nb_aromatic_sssr or nb_chiral_centers or fsp3 or pubs or similar_to %}
+            {% if selected_family or selected_ppi or selected_disease or selected_taxonomy or selected_boundcomplex or molecular_weight or a_log_p or nb_donor_h or nb_acceptor_h or tpsa or nb_rotatable_bonds or nb_aromatic_sssr or nb_chiral_centers or fsp3 or pubs or similar_to or qs_ba or qs_le or qs_lle %}
             <span>
                 &nbsp;-&nbsp;filters:&nbsp;
                 {% if selected_family %}
@@ -172,6 +175,15 @@
                 {% if similar_to %}
                     {% include "similarity_badge.html" with param_name="similar_to" param_value=similar_to_query param_label="Similar to " %}
                 {% endif %}
+                {% if qs_ba %}
+                    {% include "slider_badge.html" with param_name="qs_ba" param_value_min=qs_ba_value_min param_value_max=qs_ba_value_max param_label="Best Act." %}
+                {% endif %}
+                {% if qs_le %}
+                    {% include "slider_badge.html" with param_name="qs_le" param_value_min=qs_le_value_min param_value_max=qs_le_value_max param_label="LE" %}
+                {% endif %}
+                {% if qs_lle %}
+                    {% include "slider_badge.html" with param_name="qs_lle" param_value_min=qs_lle_value_min param_value_max=qs_lle_value_max param_label="LLE" %}
+                {% endif %}
             </span>
             {% endif %}
             <div class="m-1 ml-auto">
@@ -241,5 +253,8 @@
   {% include "slider_modal.html" with label="FSP3" param_name="fsp3" param_min=fsp3_min param_max=fsp3_max param_value=fsp3 param_value_min=fsp3_value_min param_value_max=fsp3_value_max step='1' param_label='Select a cutoff value for the FSP3 of the compounds to be selected'%}
   {% include "slider_modal.html" with label="Publications" param_name="pubs" param_min=pubs_min param_max=pubs_max param_value=pubs param_value_min=pubs_value_min param_value_max=pubs_value_max  step='1' param_label='Select a cutoff value for the number of publications mentioning the compounds to be selected'%}
   {% include "marvinjs_modal.html" with smiles=similar_to_query fingerprint=similar_to_fingerprint %}
+  {% include "slider_modal.html" with label="Best Activiry" param_name="qs_ba" param_min=qs_ba_min param_max=qs_ba_max param_value=qs_ba param_value_min=qs_ba_value_min param_value_max=qs_ba_value_max step='1' param_label='Select a cutoff value for the best activity of the compounds to be selected'%}
+  {% include "slider_modal.html" with label="LE" param_name="qs_le" param_min=qs_le_min param_max=qs_le_max param_value=qs_le param_value_min=qs_le_value_min param_value_max=qs_le_value_max step='1' param_label='Select a cutoff value for the LE of the compounds to be selected'%}
+  {% include "slider_modal.html" with label="LLE" param_name="qs_lle" param_min=qs_lle_min param_max=qs_lle_max param_value=qs_lle param_value_min=qs_lle_value_min param_value_max=qs_lle_value_max step='1' param_label='Select a cutoff value for the LLE of the compounds to be selected'%}
 
 {% endblock %}
diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py
index 67c3a90d21a686ea739ea356b86bf720020d7e03..bc16bc987a1fa29ff0a7c005698c39d313142f90 100644
--- a/ippisite/ippidb/views.py
+++ b/ippisite/ippidb/views.py
@@ -278,8 +278,19 @@ class CompoundRangeFilterHandler(object):
             queryset = queryset.filter(**filter_dict)
             # max and min value are the max and min for
             qs = Compound.objects
+            # annotate
+            #  with number of publications
             if self.parameter_name == 'pubs':
-                qs = qs.annotate(pubs=Count('refcompoundbiblio', distinct=True)) 
+                qs = qs.annotate(pubs=Count('refcompoundbiblio', distinct=True))
+            #  with best activity
+            elif self.parameter_name == 'qs_ba':
+                qs = qs.annotate(qs_ba=Max('compoundactivityresult__activity')) 
+            #  with LE
+            elif self.parameter_name == 'qs_le':
+                qs = qs.annotate(qs_le=Cast(1.37 * Max('compoundactivityresult__activity') / F('nb_atom_non_h'),FloatField()))
+            #  with LLE
+            elif self.parameter_name == 'qs_lle':
+                qs = qs.annotate(qs_lle=Cast(Max('compoundactivityresult__activity') - F('a_log_p'),FloatField()))
             self.filter_context[self.parameter_name+'_max'] = str(int(math.ceil(float(qs.aggregate(Max(self.parameter_name))[self.parameter_name + '__max'] or 0))))
             self.filter_context[self.parameter_name+'_min'] = str(int(math.floor(float(qs.aggregate(Min(self.parameter_name))[self.parameter_name + '__min'] or 0))))
         return queryset
@@ -290,6 +301,7 @@ class CompoundRangeFilterHandler(object):
         if not self.value:
             self.filter_context[self.parameter_name+'_max'] = str(int(math.ceil(float(queryset.aggregate(Max(self.parameter_name))[self.parameter_name + '__max'] or 0))))
             self.filter_context[self.parameter_name+'_min'] = str(int(math.floor(float(queryset.aggregate(Min(self.parameter_name))[self.parameter_name + '__min'] or 0))))
+        print(self.parameter_name, self.filter_context[self.parameter_name+'_min'], self.filter_context[self.parameter_name+'_max'])
 
 class CompoundListView(ListView):
 
@@ -378,6 +390,9 @@ class CompoundListView(ListView):
             CompoundRangeFilterHandler('nb_chiral_centers', self.filter_context, self.request.GET),
             CompoundRangeFilterHandler('fsp3', self.filter_context, self.request.GET),
             CompoundRangeFilterHandler('pubs', self.filter_context, self.request.GET),
+            CompoundRangeFilterHandler('qs_ba', self.filter_context, self.request.GET),
+            CompoundRangeFilterHandler('qs_le', self.filter_context, self.request.GET),
+            CompoundRangeFilterHandler('qs_lle', self.filter_context, self.request.GET),
             CompoundSimilarityFilterHandler('similar_to', self.filter_context, self.request.GET),
             TextSearchFilterHandler('q', self.filter_context, self.request.GET),
         ]