         # This involves determining what each project has had applied to it
         # already by instructor or others.
         {display, desc, display_factor, display_unit, input_type} = schema.PROJECT_UPGRADES.params[quota]
-        current        = current * display_factor
-        input          = misc.parse_number_input(@state.upgrades[quota]) ? 0 # currently typed in
+        yours         *= display_factor
+        current       *= display_factor
+        input          = misc.parse_number_input(@state.upgrades[quota]) ? yours # currently typed in
+        if input_type == 'checkbox'
+            input = if input > 0 then 1 else 0
         remaining      = misc.round1(remaining * display_factor)
         show_remaining = misc.round1(remaining + current - input*num_projects)
+        limit          = current + remaining
 
         cur = misc.round1(current / num_projects)
         if input_type == 'checkbox'

            @props.flux.getActions(@props.name).upgrade_all_student_projects(upgrades)

    upgrade_quotas_submittable: ->
        num_projects = @_num_projects
        for quota, val of @state.upgrades
            if val*num_projects != @_your_upgrades[quota]

        # num_projects       - number of student projects
        # total_upgrades     - the total amount of each quota that has been applied (by anybody) to these student projects
        # your_upgrades      - total amount of each quota that this user has applied to these student projects
        @_upgrade_is_invalid = false  # will get set to true by render_upgrade_row if invalid.
        for quota, total of purchased_upgrades
            remaining = total - (applied_upgrades[quota] ? 0)
            current   = total_upgrades[quota] ? 0
