diff --git a/score.py b/score.py
index bfe39cd4dda2c21825eb703813d27b504ef8e2e4..4a308164ae4a0d4246d462bffbcfcd8b50be766e 100644
--- a/score.py
+++ b/score.py
@@ -20,7 +20,7 @@ from . import utils
 from .midireader import difficulties
 
 class ScoreView(BaseView):
-    def __init__(self, app, song, data, streak, difficulty):
+    def __init__(self, app, song, data, streak, badnotes, difficulty):
         super().__init__()
         self.app = app
         self.song = song
@@ -29,12 +29,13 @@ class ScoreView(BaseView):
         self.flower = flower.Flower(0)
         self.time = 0
         self.streak = streak
+        self.badnotes = badnotes
         self.played = False
         if not self.data:
             self.accuracy = 0.42
         else:
             events = data.track.getAllEvents()
-            self.accuracy = len(set(filter(lambda x: x.played and not x.missed, events))) / len(events)
+            self.accuracy = len(set(filter(lambda x: x.played and not x.missed, events))) / (len(events) + badnotes)
         self.stars = int(5.0 * (self.accuracy + 0.05))
 
     def draw(self, ctx: Context) -> None:
diff --git a/song.py b/song.py
index 702a8156567155dec218472bd5d86beb4d46da29..3ac13b501a35d9750e44ff61330d767263e47984 100644
--- a/song.py
+++ b/song.py
@@ -73,6 +73,7 @@ class SongView(BaseView):
         self.showstreak = 0.0
         self.showstreakval = 0
         self.longeststreak = 0
+        self.badnotes = 0
         self.led_override = [0] * 5
         self.laststreak = -1
         self.notes = set()
@@ -402,7 +403,7 @@ class SongView(BaseView):
             self.finished = True
             media.stop()
             gc.collect()
-            self.vm.replace(score.ScoreView(self.app, self.song, self.data, self.longeststreak, self.difficulty), ViewTransitionBlend())
+            self.vm.replace(score.ScoreView(self.app, self.song, self.data, self.longeststreak, self.badnotes, self.difficulty), ViewTransitionBlend())
             return
 
         if self.streak > self.longeststreak:
@@ -583,6 +584,7 @@ class SongView(BaseView):
                         #print("fiba", petal, self.time, delta_time)
                         utils.play_fiba(self.app)
                         utils.emit("bad", petal)
+                        self.badnotes += 1
                         self.bad = 1.0
                         self.bads[petal] = 1.0
                         self.streak = 0
@@ -609,6 +611,7 @@ class SongView(BaseView):
             if bad_chord or event.time < self.laststreak:
                 utils.play_fiba(self.app)
                 utils.emit("bad", event.number)
+                self.badnotes += 1
                 self.bad = 1.0
                 self.bads[event.number] = 1.0
                 self.streak = 0