in reply to Calculating Completion of Feeds with Varying Volumes

Something like:

use strict; use warnings; my $kDone = 0.95; my $kPivot = 100; my $kDelta = 0.2; for my $pair ( [10000, 9500], [1400, 1389], [100, 90], [100, 80], [10, 8], [10, 7], [5, 4], [2, 1], [1, 0] ) { my ($toDo, $done) = @$pair; next if !$toDo; my $ratio = $done / $toDo; my $adjusted = $kDone - ($kDelta - $toDo / ($kPivot + $toDo) * $kD +elta); printf "%5d %5d %5.2f %5.2f %s\n", $toDo, $done, $adjusted, $ratio +, $ratio > $adjusted ? 'Done' : 'Working'; }

Prints:

10000 9500 0.95 0.95 Done 1400 1389 0.94 0.99 Done 100 90 0.85 0.90 Done 100 80 0.85 0.80 Working 10 8 0.77 0.80 Done 10 7 0.77 0.70 Working 5 4 0.76 0.80 Done 2 1 0.75 0.50 Working 1 0 0.75 0.00 Working
True laziness is hard work