diff --git a/synapse/push/push_tools.py b/synapse/push/push_tools.py
index e71d01e77d460a2a1235905cd8e72bc92b09951d..89a3b5e90aa7ba4b30b7226f5f1845d5a7ee7b70 100644
--- a/synapse/push/push_tools.py
+++ b/synapse/push/push_tools.py
@@ -38,7 +38,9 @@ def get_badge_count(store, user_id):
                     r.room_id, user_id, last_unread_event_id
                 )
             )
-            badge += notifs["notify_count"]
+            # return one badge count per conversation, as count per
+            # message is so noisy as to be almost useless
+            badge += 1 if notifs["notify_count"] else 0
     defer.returnValue(badge)