add_3cell(tr, 'N/A');
return; // FIXME: some SVG padding needed
}
- let element = add_3cell(tr, ci.val.toFixed(2));
+
+ let text;
+ if (ci.format === 'percentage') {
+ text = (100 * ci.val).toFixed(0) + '%';
+ } else {
+ text = ci.val.toFixed(2);
+ }
+ let element = add_3cell(tr, text);
let to_x = (val) => { return width * (val - ci.min) / (ci.max - ci.min); };
// Container.
let drops = 0;
for (const [q,p] of Object.entries(players)) {
if (q === 'globals') continue;
- let throw_ok = 100 * (1 - p.throwaways / p.num_throws);
- let catch_ok = 100 * (p.catches / (p.catches + p.drops));
+ let throw_ok = make_binomial_ci(p.num_throws - p.throwaways, p.num_throws, z);
+ let catch_ok = make_binomial_ci(p.catches, p.catches + p.drops, z);
+
+ throw_ok.format = 'percentage';
+ catch_ok.format = 'percentage';
+
+ // Desire at least 90% percentage. Fairly arbitrary.
+ throw_ok.desired = 0.9;
+ catch_ok.desired = 0.9;
let row = document.createElement('tr');
add_3cell(row, p.name, 'name'); // TODO: number?
add_3cell(row, p.hockey_assists);
add_3cell(row, p.num_throws);
add_3cell(row, p.throwaways);
- if (p.num_throws > 0) {
- add_3cell(row, throw_ok.toFixed(0) + '%');
- } else {
- add_3cell(row, 'N/A');
- }
+ add_3cell_ci(row, throw_ok);
add_3cell(row, p.catches);
add_3cell(row, p.drops);
- if (p.catches + p.drops > 0) {
- add_3cell(row, catch_ok.toFixed(0) + '%');
- } else {
- add_3cell(row, 'N/A');
- }
+ add_3cell_ci(row, catch_ok);
add_3cell(row, '+' + p.offensive_soft_plus);
add_3cell(row, '-' + p.offensive_soft_minus);
rows.push(row);
}
// Globals.
- let throw_ok = 100 * (1 - throwaways / num_throws);
- let catch_ok = 100 * (catches / (catches + drops));
+ let throw_ok = make_binomial_ci(num_throws - throwaways, num_throws, z);
+ let catch_ok = make_binomial_ci(catches, catches + drops, z);
+ throw_ok.format = 'percentage';
+ catch_ok.format = 'percentage';
+ throw_ok.desired = 0.9;
+ catch_ok.desired = 0.9;
let row = document.createElement('tr');
add_3cell(row, '');
add_3cell(row, '');
add_3cell(row, num_throws);
add_3cell(row, throwaways);
- add_3cell(row, throw_ok.toFixed(0) + '%');
+ add_3cell_ci(row, throw_ok);
add_3cell(row, catches);
add_3cell(row, drops);
- add_3cell(row, catch_ok.toFixed(0) + '%');
+ add_3cell_ci(row, catch_ok);
add_3cell(row, '');
add_3cell(row, '');
rows.push(row);