Estimates how many times some event occurs at the end of a time frame based on how many times it occurred so far.
In a given time frame ([t_start, t_end]
) we have a number of events which we assume happen based on a given distribution, for example a normal distribution. Their occurrence probability at some time (t_i
) is reflected in a probability density function (PDF) as shown here:
The total number of events who have occurred so far at a given time (t_i
) is reflected in the cumulative distribution function (CDF) - which is just an integration over the PDF - as depicted here:
We now have a known time frame ([t_start, t_end]
) and we also know how many events have occurred so far at some point in time (t_i
) and we assume some distribution. We now want to estimate how many events there will be at the end of the time frame:
This is what the Estimator does.
The software currently supports these distributions:
The uniform distribution assumes linear growth:
Two 'flavours' of normal distributions are provided.
The normal distribution with standard deviation 2 only covers around 95% of all events (thus cutting the earliest and last 2.5%). It models real world events better than the more accurate variant below.
Note that we only consider the range in [0, 1]
.
Normal distribution with a standard deviation of 3.
There is a pre-built distribution on the github releases page: Estimator releases.
Download the latest archive (e.g. estimator.app-0.0.1.zip
) and unzip it somewhere on your hard drive.
Run the start script from the command line:
$ cd estimator.app-0.0.1/bin
$ ./estimator.app
The software creates and uses a single preferences file where it keeps the currently entered values. It has the name currentState
and is located in the users home directory in a folder .estimator
, thus:
~/.estimator/currentState
It is updated on every user entry.
You need a Java 8 (version > 1.8.0_60) development kit installed on your system. Then, clone the repository:
$ git clone https://github.com/nwaldispuehl/estimator.git
$ cd estimator/
and use the packaged gradle binary to either run the program directly,
$ ./gradlew run
execute its tests,
$ ./gradlew check
or create the distribution as zip file:
$ ./gradlew distZip
The distribution archive is then to be found in the estimator.app/build/distributions/
folder.