diff --git a/server/levels/sessions/level_session_schema.coffee b/server/levels/sessions/level_session_schema.coffee
index 290422c10..ca8df4c05 100644
--- a/server/levels/sessions/level_session_schema.coffee
+++ b/server/levels/sessions/level_session_schema.coffee
@@ -146,6 +146,18 @@ _.extend LevelSessionSchema.properties,
   numberOfLosses:
     type: 'number'
     default: 0
+    
+  scoreHistory:
+    type: 'array'
+    title: 'Score History'
+    description: 'A list of objects representing the score history of a session'
+    items: 
+      title: 'Score History Point'
+      description: 'An array with the format [unix timestamp, totalScore]'
+      type: 'array'
+      items:
+        type: 'number'
+      
 
   matches:
     type: 'array'
diff --git a/server/queues/scoring.coffee b/server/queues/scoring.coffee
index 1e2cd3f29..0462cd503 100644
--- a/server/queues/scoring.coffee
+++ b/server/queues/scoring.coffee
@@ -443,10 +443,15 @@ updateScoreInSession = (scoreObject,callback) ->
     if err? then return callback err, null
 
     session = session.toObject()
+    newTotalScore = scoreObject.meanStrength - 1.8 * scoreObject.standardDeviation
+    scoreHistoryAddition = [Date.now(), newTotalScore]
     updateObject =
       meanStrength: scoreObject.meanStrength
       standardDeviation: scoreObject.standardDeviation
-      totalScore: scoreObject.meanStrength - 1.8 * scoreObject.standardDeviation
+      totalScore: newTotalScore
+      $push:
+        scoreHistory: scoreHistoryAddition        
+
     LevelSession.update {"_id": scoreObject.id}, updateObject, callback
     log.info "New total score for session #{scoreObject.id} is #{updateObject.totalScore}"