Shoreline post-processes the data from your simulation runs into percentile values (p values) when displaying your results in the dashboard and output report.
Shoreline statistically ranks values in ascending order (lowest to highest), so that P10 represents the lower bound and will account for, e.g., the shortest campaign duration (CON) and lowest PBA (O&M) where P90 data will represent the longest campaign duration (CON) and the highest PBA (P90).
The two extremes of percentile values, P10 and P90, represent the lowest and highest values for each metric. Wether a low or high value is good or bad depends on the metric you are looking at and your objectives. For PBA loss, a high value is bad: it means you've had a lot of downtime. For PBA, a high value is good: you've produced a lot power. In this instance, P90 represents the worst case scenario for PBA loss and the best case scenario for PBA.
What is a percentile value?
A p value is a score below which a certain percentage of scores fall in a distribution. For example:
- P10:
- The 10th percentile.
- 10 percent of the data falls below, and 90 percent above in the distribution. The lowest-selectable value in the distribution.
- P50:
- The 50th percentile, or median.
- The middle point of the distribution; 50 percent of data falls below and 50 percent above. The most likely scenario.
- P90:
- The 90th percentile.
- 90 percent of the data falls below, 10 percent above. The largest-selectable value in the distribution.
How does Shoreline calculate percentile values?
Shoreline uses the nearest-rank method for calculating p values. The nearest-rank method makes the results more robust to outliers and therefore more flexible in analyzing data which often don’t follow specific distributions.
The process:
- Extract the relevant value from each simulation run.
- Order the values in ascending order in a list.
- Use the selected p value to find the corresponding index in the list.
- Select and display the value in the output dashboard or report.
This process is also used to calculate the Total
for any p value. The result is that you can sum the values for, e.g., all months for a P10 value and get a different number to the value shown for Total
.
You can select a p value between P10 and P90 from your output report to display results for that percentile. See the Minimum, maximum, and net run section for details on non-percentile-value options.
How does Shoreline display percentile values?
In Design Construction, the S-Curve and inventory management graphs display the results for a single p run.
All other graphs in Construction and all graphs in O&M display percentile data from across all your runs. This means a single graph can show figures from multiple runs, e.g., the value for average logistic utilization for January might come from run 12, while for February it might come from run 13. See the example for an illustration of this.
Minimum, maximum, and net run
If you select Minimum
or Maximum
, the values displayed are the lowest or highest values from the ordered list of values created to calculate the percentile values.
Net run
is a simulation run without weather data and generally accounts for the fastest project completion time. In this case, all data displayed on the output page and in the output report comes from the same run, the net run
. The net run is not included in the ordered list when calculating p values.
Averages
Any average value is calculated by summing the ordered list of values created for determining p values and dividing by the number of values in the list, i.e., the number of simulation runs. See the example below for the calculation.
An example
We’ll use monthly logistic utilization as an example to illustrate the whole process.
Note: The multiplication and division value, i.e., 12
in (50/100)*12=6
, comes from the number of simulation runs.
- Value name:
Logistic utilization
, SOV, August - Ordered values (percent):
- Run 8: 80 (Index: 1)
- Run 7: 81 (Index: 2)
- Run 12: 85 (Index: 3)
- Run 2: 85 (Index: 4)
- Run 3: 88 (Index: 5)
- Run 10: 90 (Index: 6)
- Run 9: 90 (Index: 7)
- Run 1: 90 (Index: 8)
- Run 5: 91 (Index: 9)
- Run 4: 92 (Index: 10)
- Run 11: 93 (Index: 11)
- Run 6: 94 (Index: 12)
- P value: P50
- Calculation: (50/100)*12=6
- P50 value: 90
- Run: 10
- P value: P90
- Calculation: (90/100)*12=10.8=11
- P90 value: 93
- Run: 11
- Min:
- Value: 80
- Run: 8
- Max:
- Value: 94
- Run: 6
- Average:
- Calculation: (80+81+85+85+88+90+90+90+91+92+93+94)/12
- Value: 88.25
To illustrate the possibility of different runs appearing in a single graph, here’s logistic utilization for September:
- Value name:
Logistic utilization
, SOV, September - Ordered values (percent):
- Run 2: 72 (Index: 1)
- Run 8: 73 (Index: 2)
- Run 10: 75 (Index: 3)
- Run 7: 75 (Index: 4)
- Run 3: 75 (Index: 5)
- Run 9: 78 (Index: 6)
- Run 12: 79 (Index: 7)
- Run 5: 82 (Index: 8)
- Run 6: 85 (Index: 9)
- Run 1: 85 (Index 10)
- Run 4: 89 (Index: 11)
- Run 11: 90 (Index: 12)
- P value: P50
- Calculation: (50/100)*12=6
- P50 value: 78
- Run: 9
- P value: P90
- Calculation: (90/100)*12=10.8=11
- P90 value: 89
- Run: 4
- Min:
- Value: 72
- Run: 2
- Max:
- Value: 90
- Run: 11
- Average:
- Calculation: (72+73+75+75+75+78+79+82+85+85+89+90)/12
- Value: 79.83
The table shows the values and runs side by side.
Value name | P value | Value | Run |
---|---|---|---|
Logistic utilization, SOV, August | P50 | 90 | 10 |
P90 | 93 | 11 | |
Min | 80 | 8 | |
Max | 94 | 6 | |
Average | 88.25 | - | |
Logistic utilization, SOV, September | P50 | 78 | 9 |
P90 | 89 | 4 | |
Min | 72 | 2 | |
Max | 90 | 11 | |
Average | 79.83 | - |