           column[i] = cell
       transposed
 
-    createParameterTable = (parameters) ->
+    createParameterTable = (parametersAndDifferences) ->
+      { parameters, differences } = parametersAndDifferences
       kvtable [
         tbody mapWithKey parameters, (value, key) ->
           tr [
             th key
-            td value
+            td if differences[key] then value else diffSpan value
           ]
       ]
 

            if isElement cell
              td cell
            else if isObject cell
              td createParameterTable cell
            else
              td cell

      rates = map cms, computeTPRandFPR
      createROCChart rates

    compareInputParameters = (modelsByAlgorithm) ->
      zipObject mapWithKey modelsByAlgorithm, (models, algorithm) ->
        headParameter = (head models).parameters
        tailParameters = map (tail models), (model) -> model.parameters

        headKeys = keys headParameter

        #TODO null keys

        areSame = map headKeys, (key) ->
          every tailParameters, (tailParameter) ->
            a = headParameter[key]
            b = tailParameter[key]
            # DRF has array-valued params, so handle that case properly
            if isArray a and isArray b
              a.toString() is b.toString() #HACK
            else
              a is b

            tailParameter[key] is headParameter[key]

        [
          algorithm
          zipObject headKeys, areSame
        ]

    createComparisonGrid = (scores) ->
      header = [
        'Method'
        'Name'
        'ROC Curve'
        'Input Parameters'
        'Error'
        'AUC'
