An issue is done but the Time Progress % is not 100%

The reason this happens is when your log time against an issue, you’re also setting the Time Remaining for that issue. The "Estimated" field updates to reflect the new value of Time Logged + Time Remaining.

The way to get the Time Progress % accurate is to ensure that when time is logged against an issue, you also set the Time Remaining. By default the Time Remaining field will be set to a number that adds up to the Original Estimate when combined with the Time Spent. But this can be changed where an issue is ahead or behind schedule.

Say you complete a Story in 8h where the Original Estimate is 16h. When logging the 8h, be sure to set the Time Remaining to 0.