Bitcoin
Bitcoin Core – How is “progress per hour” calculated?
Stickies-v provided the positions where it is calculated in the code.
Basically, it does what you’d expect for finding the percentage change in a quantity.
Milliseconds elapsed between first block and sample block:
Δt = t_FirstBlock – t_SampleBlockSample blocks are processed a few milliseconds faster than the first block.
ΔProgress = t_FirstBlockProcess – t_SampleBlockProcesWe provide:
(% progress per hour) = ΔProgress / (Δt × 1000 × 3600),
Where (1000 × 3600) = milliseconds in 1 hour.
In reality, both Δt and Δprogress are negative, but the ratio in step 3 above is positive.