There is a functional problem with Sprint calculations in that when a task is closed, the points for that day are accumulated without a transaction record. So, if the same task is reopened the following day, the points cannot be deducted from the Sprint points closed for the previous day. The current behavior is that when a task is reopened the points are readded to the points remaining, in addition to the original points from when it was assigned to the Sprint. This yields an incorrect points remaining.
The solution is to build a real stats table that records the transactions related to task points and status changes using the Facts application.