@policystudio/policy-studio-ui-vue 1.0.68 → 1.0.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1291 @@
1
+ import PsTableResults from '../components/table-results/PsTableResults.vue'
2
+ import PsTableResultsHead from '../components/table-results/PsTableResultsHead.vue'
3
+ import PsProgressBar from '../components/badges-and-tags/PsProgressBar.vue'
4
+
5
+ export default {
6
+ title: 'Components/TableResults',
7
+ component: { PsTableResults, PsTableResultsHead },
8
+ argTypes: {
9
+ onClick: { action: 'clicked' },
10
+ onCollapse: { action: 'clicked' }
11
+ // align: { control: { type: 'select', options: alignment } },
12
+ }
13
+ }
14
+
15
+ const TableSimple = (args, { argTypes }) => ({
16
+ props: Object.keys(argTypes),
17
+ components: { PsTableResults, PsTableResultsHead },
18
+ template: `
19
+ <div style="width:100%;">
20
+ <PsTableResults v-bind="$props">
21
+ <template v-slot:header>
22
+ <PsTableResultsHead v-bind="$props" />
23
+ </template>
24
+ </PsTableResults>
25
+ </div>
26
+ `
27
+ })
28
+
29
+ const TableResults = (args, { argTypes }) => ({
30
+ props: Object.keys(argTypes),
31
+ components: { PsTableResults, PsTableResultsHead },
32
+ subcomponents: { PsProgressBar },
33
+ template: `
34
+ <div style="width:100%;">
35
+ <PsTableResults v-bind="$props">
36
+ <template v-slot:header>
37
+ <PsTableResultsHead v-bind="$props" />
38
+ </template>
39
+ </PsTableResults>
40
+ </div>
41
+ `
42
+ })
43
+
44
+ export const Simple = TableSimple.bind({})
45
+ Simple.args = {
46
+ header: [
47
+ {
48
+ 'order': 1,
49
+ 'key': 'per_home_results',
50
+ 'title': 'Per Home Results',
51
+ 'columns': [
52
+ {
53
+ 'isActive': true,
54
+ 'key': 'initial_cost',
55
+ 'title': 'Incremental Cost',
56
+ 'label': 'Incremental Cost',
57
+ 'hasHelper': {
58
+ 'type': 'helper',
59
+ 'id': 1
60
+ }
61
+ },
62
+ {
63
+ 'isActive': true,
64
+ 'key': 'emissions_savings',
65
+ 'title': 'Emissions Reductions',
66
+ 'description': '(MTCO2e/year)',
67
+ 'hasHelper': {
68
+ 'type': 'helper',
69
+ 'id': 4
70
+ }
71
+ }
72
+ ],
73
+ 'hasHelper': {
74
+ 'type': 'helper',
75
+ 'id': 24
76
+ }
77
+ },
78
+ {
79
+ 'order': 2,
80
+ 'key': 'city_wide_impact',
81
+ 'title': 'City-wide Estimates',
82
+ 'columns': [
83
+ {
84
+ 'isActive': true,
85
+ 'key': 'forecast_units_affected',
86
+ 'title': 'Affected Units',
87
+ 'description': '(lifecycle)',
88
+ 'hasProjections': true,
89
+ 'hasHelper': {
90
+ 'type': 'helper',
91
+ 'id': 17
92
+ },
93
+ 'chartProjection': {
94
+ 'title': 'Number of Affected Units',
95
+ 'subtitle': ''
96
+ }
97
+ },
98
+ {
99
+ 'isActive': true,
100
+ 'key': 'forecast_initial_cost',
101
+ 'title': 'Compliance Cost',
102
+ 'description': '(lifecycle)',
103
+ 'hasProjections': true,
104
+ 'hasHelper': {
105
+ 'type': 'helper',
106
+ 'id': 20
107
+ },
108
+ 'chartProjection': {
109
+ 'title': 'Compliance Cost',
110
+ 'subtitle': ''
111
+ }
112
+ },
113
+ {
114
+ 'isActive': true,
115
+ 'key': 'forecast_emissions_savings',
116
+ 'title': 'Emissions Reductions',
117
+ 'description': '(lifecycle MTCO2e)',
118
+ 'hasProjections': true,
119
+ 'hasHelper': {
120
+ 'type': 'helper',
121
+ 'id': 18
122
+ },
123
+ 'chartProjection': {
124
+ 'title': 'Emissions Reductions',
125
+ 'subtitle': 'MTCO2e'
126
+ }
127
+ },
128
+ {
129
+ 'isActive': true,
130
+ 'key': 'forecast_lifecycle_savings',
131
+ 'title': 'Lifecycle Savings',
132
+ 'description': '(on-bill)',
133
+ 'hasProjections': true,
134
+ 'hasHelper': {
135
+ 'type': 'helper',
136
+ 'id': 19
137
+ },
138
+ 'chartProjection': {
139
+ 'title': 'Bill Savings',
140
+ 'subtitle': ''
141
+ }
142
+ },
143
+ {
144
+ 'isActive': true,
145
+ 'key': 'forecast_kwh_savings',
146
+ 'title': 'Electricity Savings',
147
+ 'description': '(lifecycle kWh)',
148
+ 'hasProjections': true,
149
+ 'hasHelper': {
150
+ 'type': 'helper',
151
+ 'id': 21
152
+ },
153
+ 'chartProjection': {
154
+ 'title': 'Electricity Savings',
155
+ 'subtitle': 'kWh'
156
+ }
157
+ },
158
+ {
159
+ 'isActive': true,
160
+ 'key': 'forecast_therms_savings',
161
+ 'title': 'Gas Savings',
162
+ 'description': '(lifecycle therms)',
163
+ 'hasProjections': true,
164
+ 'hasHelper': {
165
+ 'type': 'helper',
166
+ 'id': 22
167
+ },
168
+ 'chartProjection': {
169
+ 'title': 'Gas Savings',
170
+ 'subtitle': 'therms'
171
+ }
172
+ }
173
+ ],
174
+ 'hasHelper': {
175
+ 'type': 'helper',
176
+ 'id': 25
177
+ }
178
+ }
179
+ ],
180
+ summaryData: [
181
+ {
182
+ 'title': 'Total Impact',
183
+ 'type': 'total',
184
+ 'items': [
185
+ {
186
+ 'title': 'Existing Buildings',
187
+ 'type': 'study_type',
188
+ 'filter_title': 'Source Study',
189
+ 'items': [
190
+ {
191
+ 'id': 25,
192
+ 'is_selected': true,
193
+ 'study_id': 25,
194
+ 'title': 'Existing Single Family Building Upgrades (2021) - 08/27/2021',
195
+ 'type': 'study',
196
+ 'filter_title': 'Building Type',
197
+ 'items': [
198
+ {
199
+ 'id': 29,
200
+ 'is_selected': true,
201
+ 'prototype_id': 29,
202
+ 'title': 'Single Family',
203
+ 'type_prototype_id': 3,
204
+ 'type': 'prototype',
205
+ 'filter_title': 'Climate Zone',
206
+ 'items': [
207
+ {
208
+ 'id': 18,
209
+ 'is_selected': true,
210
+ 'climate_zone_raw': '7-SDGE',
211
+ 'climate_zone_id': 18,
212
+ 'climate_zone_prefix': 7,
213
+ 'title': 'Climate Zone 7',
214
+ 'type': 'climate_zone',
215
+ 'filter_title': 'Vintage',
216
+ 'items': [
217
+ {
218
+ 'id': 35,
219
+ 'is_selected': true,
220
+ 'vintage_id': 35,
221
+ 'custom_combination_id': 7321,
222
+ 'type_vintage_id': 3,
223
+ 'title': 'Pre-1978',
224
+ 'type': 'vintage',
225
+ 'filter_title': 'Package/Measure Type',
226
+ 'items': [
227
+ {
228
+ 'id': 160327,
229
+ 'study_row_number': 199,
230
+ 'climate_zone_raw': '7-SDGE',
231
+ 'study_id': 25,
232
+ 'sync_id': 148,
233
+ 'prototype_id': 29,
234
+ 'measure_id': 176,
235
+ 'vintage_id': 35,
236
+ 'fuel_id': null,
237
+ 'baseline_fuel_type': 'mixed-fuel',
238
+ 'initial_cost': 683,
239
+ 'kwh_savings': 149.3431914,
240
+ 'therms_savings': 5.436199053,
241
+ 'annual_bill_savings': 92.61715246,
242
+ 'annual_bill_savings_avg': 73.85575808,
243
+ 'simple_payback': 7.374443954,
244
+ 'tdv_benefit_to_cost_ratio': 1.8471992679,
245
+ 'on_bill_cost_ratio': 2.888959714,
246
+ 'emissions_savings': 0.03917,
247
+ 'emissions_savings_pct': 0.0216607496,
248
+ 'compliance_margin': null,
249
+ 'lifecycle_savings': 2215.672742,
250
+ 'tdv2022_benefit_to_cost_ratio': 1.8725033675,
251
+ 'energy_savings_combined': 1.053178874,
252
+ 'order': 99999,
253
+ 'base_kwh': '6.0000000000',
254
+ 'measure': {
255
+ 'id': 176,
256
+ 'title': 'Duct Sealing'
257
+ },
258
+ 'is_selected': true,
259
+ 'type': 'study_data',
260
+ 'building_stock_units': 21433,
261
+ 'title': 'Duct Sealing',
262
+ 'is_disabled': true,
263
+ 'data': {
264
+ 'initial_cost': 683,
265
+ 'kwh_savings': 149.3431914,
266
+ 'therms_savings': 5.436199053,
267
+ 'annual_bill_savings': 92.61715246,
268
+ 'annual_bill_savings_avg': 73.85575808,
269
+ 'tdv_benefit_to_cost_ratio': 1.8471992679,
270
+ 'emissions_savings_pct': 0.0216607496,
271
+ 'lifecycle_savings': 2215.672742,
272
+ 'baseline_fuel_type': 'mixed-fuel',
273
+ 'compliance_margin': null,
274
+ 'on_bill_cost_ratio': 2.888959714,
275
+ 'emissions_savings': 0.03917,
276
+ 'simple_payback': 7.374443954,
277
+ 'tdv2022_benefit_to_cost_ratio': 1.8725033675,
278
+ 'energy_savings_combined': 1.053178874,
279
+ 'forecast_emissions_savings': 2018.0610782054755,
280
+ 'forecast_initial_cost': 1829842.3749999993,
281
+ 'forecast_kwh_savings': 7150949.49046986,
282
+ 'forecast_lifecycle_savings': 4434755.766124634,
283
+ 'forecast_therms_savings': 260299.67944118142,
284
+ 'forecast_units_affected': 2679.1250000000005
285
+ },
286
+ 'is_last': false,
287
+ 'deep': 6,
288
+ 'index': '0-0-0-0-0-0-0',
289
+ 'last_deep': true
290
+ },
291
+ {
292
+ 'id': 161020,
293
+ 'study_row_number': 892,
294
+ 'climate_zone_raw': '7-SDGE',
295
+ 'study_id': 25,
296
+ 'sync_id': 148,
297
+ 'prototype_id': 29,
298
+ 'measure_id': 174,
299
+ 'vintage_id': 35,
300
+ 'fuel_id': null,
301
+ 'baseline_fuel_type': 'mixed-fuel',
302
+ 'initial_cost': 6684.796257,
303
+ 'kwh_savings': 3425.437266,
304
+ 'therms_savings': 0,
305
+ 'annual_bill_savings': 1151.477618,
306
+ 'annual_bill_savings_avg': 908.8231297,
307
+ 'simple_payback': 4.999069325,
308
+ 'tdv_benefit_to_cost_ratio': 2.0010796568,
309
+ 'on_bill_cost_ratio': 3.68826464,
310
+ 'emissions_savings': 0.13093,
311
+ 'emissions_savings_pct': 0.0724034197,
312
+ 'compliance_margin': null,
313
+ 'lifecycle_savings': 27264.69389,
314
+ 'tdv2022_benefit_to_cost_ratio': 1.6723062335,
315
+ 'energy_savings_combined': 11.68759195,
316
+ 'order': 99999,
317
+ 'base_kwh': '5.0000000000',
318
+ 'measure': {
319
+ 'id': 174,
320
+ 'title': 'PV'
321
+ },
322
+ 'is_selected': true,
323
+ 'type': 'study_data',
324
+ 'building_stock_units': 21433,
325
+ 'title': 'PV',
326
+ 'data': {
327
+ 'initial_cost': 6684.796257,
328
+ 'kwh_savings': 3425.437266,
329
+ 'therms_savings': 0,
330
+ 'annual_bill_savings': 1151.477618,
331
+ 'annual_bill_savings_avg': 908.8231297,
332
+ 'tdv_benefit_to_cost_ratio': 2.0010796568,
333
+ 'emissions_savings_pct': 0.0724034197,
334
+ 'lifecycle_savings': 27264.69389,
335
+ 'baseline_fuel_type': 'mixed-fuel',
336
+ 'compliance_margin': null,
337
+ 'on_bill_cost_ratio': 3.68826464,
338
+ 'emissions_savings': 0.13093,
339
+ 'simple_payback': 4.999069325,
340
+ 'tdv2022_benefit_to_cost_ratio': 1.6723062335,
341
+ 'energy_savings_combined': 11.68759195,
342
+ 'forecast_emissions_savings': 13722.61550528348,
343
+ 'forecast_initial_cost': 17909404.77203512,
344
+ 'forecast_kwh_savings': 164019053.31145322,
345
+ 'forecast_lifecycle_savings': 55135813.07948781,
346
+ 'forecast_therms_savings': 0,
347
+ 'forecast_units_affected': 2679.1250000000005
348
+ },
349
+ 'is_last': true,
350
+ 'deep': 6,
351
+ 'index': '0-0-0-0-0-0-1',
352
+ 'last_deep': true
353
+ }
354
+ ],
355
+ 'building_stock_units': 21433,
356
+ 'data': {
357
+ 'initial_cost': 7367.796257,
358
+ 'annual_bill_savings': 1244.0947704599998,
359
+ 'annual_bill_savings_avg': 982.67888778,
360
+ 'emissions_savings': 0.1701,
361
+ 'lifecycle_savings': 29480.366631999997,
362
+ 'kwh_savings': 3574.7804573999997,
363
+ 'therms_savings': 5.436199053,
364
+ 'energy_savings_combined': 12.740770824,
365
+ 'on_bill_cost_ratio': 3.168970346578549,
366
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
367
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
368
+ 'simple_payback': 5.219268257627324,
369
+ 'forecast_units_affected': 2679.1250000000005,
370
+ 'forecast_initial_cost': 19739247.14703512,
371
+ 'forecast_emissions_savings': 15740.676583488956,
372
+ 'forecast_kwh_savings': 171170002.8019231,
373
+ 'forecast_therms_savings': 260299.67944118142,
374
+ 'forecast_lifecycle_savings': 59570568.845612444
375
+ },
376
+ 'is_last': true,
377
+ 'deep': 5,
378
+ 'index': '0-0-0-0-0-0',
379
+ 'last_deep': false
380
+ }
381
+ ],
382
+ 'building_stock_units': 21433,
383
+ 'data': {
384
+ 'initial_cost': 7367.796257,
385
+ 'annual_bill_savings': 1244.0947704599998,
386
+ 'annual_bill_savings_avg': 982.6788877800001,
387
+ 'emissions_savings': 0.1701,
388
+ 'lifecycle_savings': 29480.366631999994,
389
+ 'kwh_savings': 3574.7804573999992,
390
+ 'therms_savings': 5.436199053,
391
+ 'energy_savings_combined': 12.740770824,
392
+ 'on_bill_cost_ratio': 3.168970346578549,
393
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
394
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
395
+ 'simple_payback': 5.219268257627324,
396
+ 'forecast_units_affected': 2679.1250000000005,
397
+ 'forecast_initial_cost': 19739247.14703512,
398
+ 'forecast_emissions_savings': 15740.676583488956,
399
+ 'forecast_kwh_savings': 171170002.8019231,
400
+ 'forecast_therms_savings': 260299.67944118142,
401
+ 'forecast_lifecycle_savings': 59570568.845612444
402
+ },
403
+ 'fallback_climate_zone_raw': null,
404
+ 'is_last': true,
405
+ 'deep': 4,
406
+ 'index': '0-0-0-0-0',
407
+ 'last_deep': false
408
+ }
409
+ ],
410
+ 'building_stock_units': 21433,
411
+ 'data': {
412
+ 'initial_cost': 7367.796257,
413
+ 'annual_bill_savings': 1244.0947704599998,
414
+ 'annual_bill_savings_avg': 982.6788877800001,
415
+ 'emissions_savings': 0.1701,
416
+ 'lifecycle_savings': 29480.366631999994,
417
+ 'kwh_savings': 3574.7804573999992,
418
+ 'therms_savings': 5.436199053,
419
+ 'energy_savings_combined': 12.740770824,
420
+ 'on_bill_cost_ratio': 3.168970346578549,
421
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
422
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
423
+ 'simple_payback': 5.219268257627324,
424
+ 'forecast_units_affected': 2679.1250000000005,
425
+ 'forecast_initial_cost': 19739247.14703512,
426
+ 'forecast_emissions_savings': 15740.676583488956,
427
+ 'forecast_kwh_savings': 171170002.8019231,
428
+ 'forecast_therms_savings': 260299.67944118142,
429
+ 'forecast_lifecycle_savings': 59570568.845612444
430
+ },
431
+ 'is_last': true,
432
+ 'deep': 3,
433
+ 'index': '0-0-0-0',
434
+ 'last_deep': false
435
+ }
436
+ ],
437
+ 'building_stock_units': 21433,
438
+ 'data': {
439
+ 'initial_cost': 7367.796257,
440
+ 'annual_bill_savings': 1244.0947704599998,
441
+ 'annual_bill_savings_avg': 982.6788877800001,
442
+ 'emissions_savings': 0.1701,
443
+ 'lifecycle_savings': 29480.366631999994,
444
+ 'kwh_savings': 3574.7804573999992,
445
+ 'therms_savings': 5.436199053,
446
+ 'energy_savings_combined': 12.740770824,
447
+ 'on_bill_cost_ratio': 3.168970346578549,
448
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
449
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
450
+ 'simple_payback': 5.219268257627324,
451
+ 'forecast_units_affected': 2679.1250000000005,
452
+ 'forecast_initial_cost': 19739247.14703512,
453
+ 'forecast_emissions_savings': 15740.676583488956,
454
+ 'forecast_kwh_savings': 171170002.8019231,
455
+ 'forecast_therms_savings': 260299.67944118142,
456
+ 'forecast_lifecycle_savings': 59570568.845612444
457
+ },
458
+ 'study_group': {
459
+ 'id': 1,
460
+ 'title': 'Existing Residential Buildings',
461
+ 'study_type_id': 1,
462
+ 'study_type': {
463
+ 'id': 1,
464
+ 'title': 'Existing Buildings'
465
+ }
466
+ },
467
+ 'is_last': true,
468
+ 'deep': 2,
469
+ 'index': '0-0-0',
470
+ 'last_deep': false
471
+ }
472
+ ],
473
+ 'building_stock_units': 21433,
474
+ 'data': {
475
+ 'initial_cost': 7367.796257,
476
+ 'annual_bill_savings': 1244.0947704599998,
477
+ 'annual_bill_savings_avg': 982.6788877800001,
478
+ 'emissions_savings': 0.1701,
479
+ 'lifecycle_savings': 29480.366631999994,
480
+ 'kwh_savings': 3574.7804573999992,
481
+ 'therms_savings': 5.436199053,
482
+ 'energy_savings_combined': 12.740770824,
483
+ 'on_bill_cost_ratio': 3.168970346578549,
484
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
485
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
486
+ 'simple_payback': 5.219268257627324,
487
+ 'forecast_units_affected': 2679.1250000000005,
488
+ 'forecast_initial_cost': 19739247.14703512,
489
+ 'forecast_emissions_savings': 15740.676583488956,
490
+ 'forecast_kwh_savings': 171170002.8019231,
491
+ 'forecast_therms_savings': 260299.67944118142,
492
+ 'forecast_lifecycle_savings': 59570568.845612444
493
+ },
494
+ 'is_last': true,
495
+ 'deep': 1,
496
+ 'index': '0-0',
497
+ 'last_deep': false
498
+ }
499
+ ],
500
+ 'building_stock_units': 21433,
501
+ 'data': {
502
+ 'initial_cost': 7367.796257,
503
+ 'annual_bill_savings': 1244.0947704599998,
504
+ 'annual_bill_savings_avg': 982.6788877800001,
505
+ 'emissions_savings': 0.1701,
506
+ 'lifecycle_savings': 29480.366631999994,
507
+ 'kwh_savings': 3574.7804573999992,
508
+ 'therms_savings': 5.436199053,
509
+ 'energy_savings_combined': 12.740770824,
510
+ 'on_bill_cost_ratio': 3.168970346578549,
511
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
512
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
513
+ 'simple_payback': 5.219268257627324,
514
+ 'forecast_units_affected': 2679.1250000000005,
515
+ 'forecast_initial_cost': 19739247.14703512,
516
+ 'forecast_emissions_savings': 15740.676583488956,
517
+ 'forecast_kwh_savings': 171170002.8019231,
518
+ 'forecast_therms_savings': 260299.67944118142,
519
+ 'forecast_lifecycle_savings': 59570568.845612444
520
+ },
521
+ 'deep': 0,
522
+ 'index': '0',
523
+ 'last_deep': false
524
+ }
525
+ ],
526
+ columnGroups: [
527
+ {
528
+ 'order': 0,
529
+ 'key': 'fixed_columns',
530
+ 'title': 'Benefit/Cost Ratios',
531
+ 'columns': [
532
+ {
533
+ 'isActive': true,
534
+ 'key': 'on_bill_cost_ratio',
535
+ 'title': 'On-Bill',
536
+ 'description': '≥ 1.0 is cost effective',
537
+ 'isChart': true,
538
+ 'hasHelper': {
539
+ 'type': 'helper',
540
+ 'id': 5
541
+ }
542
+ }
543
+ ],
544
+ 'hasHelper': {
545
+ 'type': 'helper',
546
+ 'id': 23
547
+ }
548
+ },
549
+ {
550
+ 'order': 2,
551
+ 'key': 'city_wide_impact',
552
+ 'title': 'City-wide Estimates',
553
+ 'columns': [
554
+ {
555
+ 'isActive': true,
556
+ 'key': 'forecast_units_affected',
557
+ 'title': 'Affected Units',
558
+ 'description': '(lifecycle)',
559
+ 'hasProjections': true,
560
+ 'hasHelper': {
561
+ 'type': 'helper',
562
+ 'id': 17
563
+ },
564
+ 'chartProjection': {
565
+ 'title': 'Number of Affected Units',
566
+ 'subtitle': ''
567
+ }
568
+ },
569
+ {
570
+ 'isActive': true,
571
+ 'key': 'forecast_initial_cost',
572
+ 'title': 'Compliance Cost',
573
+ 'description': '(lifecycle)',
574
+ 'hasProjections': true,
575
+ 'hasHelper': {
576
+ 'type': 'helper',
577
+ 'id': 20
578
+ },
579
+ 'chartProjection': {
580
+ 'title': 'Compliance Cost',
581
+ 'subtitle': ''
582
+ }
583
+ },
584
+ {
585
+ 'isActive': true,
586
+ 'key': 'forecast_emissions_savings',
587
+ 'title': 'Emissions Reductions',
588
+ 'description': '(lifecycle MTCO2e)',
589
+ 'hasProjections': true,
590
+ 'hasHelper': {
591
+ 'type': 'helper',
592
+ 'id': 18
593
+ },
594
+ 'chartProjection': {
595
+ 'title': 'Emissions Reductions',
596
+ 'subtitle': 'MTCO2e'
597
+ }
598
+ },
599
+ {
600
+ 'isActive': true,
601
+ 'key': 'forecast_lifecycle_savings',
602
+ 'title': 'Lifecycle Savings',
603
+ 'description': '(on-bill)',
604
+ 'hasProjections': true,
605
+ 'hasHelper': {
606
+ 'type': 'helper',
607
+ 'id': 19
608
+ },
609
+ 'chartProjection': {
610
+ 'title': 'Bill Savings',
611
+ 'subtitle': ''
612
+ }
613
+ },
614
+ {
615
+ 'isActive': true,
616
+ 'key': 'forecast_kwh_savings',
617
+ 'title': 'Electricity Savings',
618
+ 'description': '(lifecycle kWh)',
619
+ 'hasProjections': true,
620
+ 'hasHelper': {
621
+ 'type': 'helper',
622
+ 'id': 21
623
+ },
624
+ 'chartProjection': {
625
+ 'title': 'Electricity Savings',
626
+ 'subtitle': 'kWh'
627
+ }
628
+ },
629
+ {
630
+ 'isActive': true,
631
+ 'key': 'forecast_therms_savings',
632
+ 'title': 'Gas Savings',
633
+ 'description': '(lifecycle therms)',
634
+ 'hasProjections': true,
635
+ 'hasHelper': {
636
+ 'type': 'helper',
637
+ 'id': 22
638
+ },
639
+ 'chartProjection': {
640
+ 'title': 'Gas Savings',
641
+ 'subtitle': 'therms'
642
+ }
643
+ }
644
+ ],
645
+ 'hasHelper': {
646
+ 'type': 'helper',
647
+ 'id': 25
648
+ }
649
+ }
650
+ ],
651
+ itemsHiddenIndexes: [
652
+ '0-0-0-0-0-0',
653
+ '0-0',
654
+ '0-0',
655
+ '0-0',
656
+ '0'
657
+ ],
658
+ footer: []
659
+ }
660
+
661
+ export const Results = TableResults.bind({})
662
+ Results.args = {
663
+ header: [
664
+ {
665
+ 'order': 0,
666
+ 'key': 'fixed_columns',
667
+ 'title': 'Benefit/Cost Ratios',
668
+ 'columns': [
669
+ {
670
+ 'isActive': true,
671
+ 'key': 'on_bill_cost_ratio',
672
+ 'title': 'On-Bill',
673
+ 'description': '≥ 1.0 is cost effective',
674
+ 'isChart': true,
675
+ 'hasHelper': {
676
+ 'type': 'helper',
677
+ 'id': 5
678
+ }
679
+ }
680
+ ],
681
+ 'hasHelper': {
682
+ 'type': 'helper',
683
+ 'id': 23
684
+ }
685
+ },
686
+ {
687
+ 'order': 1,
688
+ 'key': 'per_home_results',
689
+ 'title': 'Per Home Results',
690
+ 'columns': [
691
+ {
692
+ 'isActive': true,
693
+ 'key': 'initial_cost',
694
+ 'title': 'Incremental Cost',
695
+ 'label': 'Incremental Cost',
696
+ 'hasHelper': {
697
+ 'type': 'helper',
698
+ 'id': 1
699
+ }
700
+ },
701
+ {
702
+ 'isActive': true,
703
+ 'key': 'emissions_savings',
704
+ 'title': 'Emissions Reductions',
705
+ 'description': '(MTCO2e/year)',
706
+ 'hasHelper': {
707
+ 'type': 'helper',
708
+ 'id': 4
709
+ }
710
+ }
711
+ ],
712
+ 'hasHelper': {
713
+ 'type': 'helper',
714
+ 'id': 24
715
+ }
716
+ },
717
+ {
718
+ 'order': 2,
719
+ 'key': 'city_wide_impact',
720
+ 'title': 'City-wide Estimates',
721
+ 'columns': [
722
+ {
723
+ 'isActive': true,
724
+ 'key': 'forecast_units_affected',
725
+ 'title': 'Affected Units',
726
+ 'description': '(lifecycle)',
727
+ 'hasProjections': true,
728
+ 'hasHelper': {
729
+ 'type': 'helper',
730
+ 'id': 17
731
+ },
732
+ 'chartProjection': {
733
+ 'title': 'Number of Affected Units',
734
+ 'subtitle': ''
735
+ }
736
+ },
737
+ {
738
+ 'isActive': true,
739
+ 'key': 'forecast_initial_cost',
740
+ 'title': 'Compliance Cost',
741
+ 'description': '(lifecycle)',
742
+ 'hasProjections': true,
743
+ 'hasHelper': {
744
+ 'type': 'helper',
745
+ 'id': 20
746
+ },
747
+ 'chartProjection': {
748
+ 'title': 'Compliance Cost',
749
+ 'subtitle': ''
750
+ }
751
+ },
752
+ {
753
+ 'isActive': true,
754
+ 'key': 'forecast_emissions_savings',
755
+ 'title': 'Emissions Reductions',
756
+ 'description': '(lifecycle MTCO2e)',
757
+ 'hasProjections': true,
758
+ 'hasHelper': {
759
+ 'type': 'helper',
760
+ 'id': 18
761
+ },
762
+ 'chartProjection': {
763
+ 'title': 'Emissions Reductions',
764
+ 'subtitle': 'MTCO2e'
765
+ }
766
+ },
767
+ {
768
+ 'isActive': true,
769
+ 'key': 'forecast_lifecycle_savings',
770
+ 'title': 'Lifecycle Savings',
771
+ 'description': '(on-bill)',
772
+ 'hasProjections': true,
773
+ 'hasHelper': {
774
+ 'type': 'helper',
775
+ 'id': 19
776
+ },
777
+ 'chartProjection': {
778
+ 'title': 'Bill Savings',
779
+ 'subtitle': ''
780
+ }
781
+ },
782
+ {
783
+ 'isActive': true,
784
+ 'key': 'forecast_kwh_savings',
785
+ 'title': 'Electricity Savings',
786
+ 'description': '(lifecycle kWh)',
787
+ 'hasProjections': true,
788
+ 'hasHelper': {
789
+ 'type': 'helper',
790
+ 'id': 21
791
+ },
792
+ 'chartProjection': {
793
+ 'title': 'Electricity Savings',
794
+ 'subtitle': 'kWh'
795
+ }
796
+ },
797
+ {
798
+ 'isActive': true,
799
+ 'key': 'forecast_therms_savings',
800
+ 'title': 'Gas Savings',
801
+ 'description': '(lifecycle therms)',
802
+ 'hasProjections': true,
803
+ 'hasHelper': {
804
+ 'type': 'helper',
805
+ 'id': 22
806
+ },
807
+ 'chartProjection': {
808
+ 'title': 'Gas Savings',
809
+ 'subtitle': 'therms'
810
+ }
811
+ }
812
+ ],
813
+ 'hasHelper': {
814
+ 'type': 'helper',
815
+ 'id': 25
816
+ }
817
+ }
818
+ ],
819
+ summaryData: [
820
+ {
821
+ 'title': 'Total Impact',
822
+ 'type': 'total',
823
+ 'items': [
824
+ {
825
+ 'title': 'Existing Buildings',
826
+ 'type': 'study_type',
827
+ 'filter_title': 'Source Study',
828
+ 'items': [
829
+ {
830
+ 'id': 25,
831
+ 'is_selected': true,
832
+ 'study_id': 25,
833
+ 'title': 'Existing Single Family Building Upgrades (2021) - 08/27/2021',
834
+ 'type': 'study',
835
+ 'filter_title': 'Building Type',
836
+ 'items': [
837
+ {
838
+ 'id': 29,
839
+ 'is_selected': true,
840
+ 'prototype_id': 29,
841
+ 'title': 'Single Family',
842
+ 'type_prototype_id': 3,
843
+ 'type': 'prototype',
844
+ 'filter_title': 'Climate Zone',
845
+ 'items': [
846
+ {
847
+ 'id': 18,
848
+ 'is_selected': true,
849
+ 'climate_zone_raw': '7-SDGE',
850
+ 'climate_zone_id': 18,
851
+ 'climate_zone_prefix': 7,
852
+ 'title': 'Climate Zone 7',
853
+ 'type': 'climate_zone',
854
+ 'filter_title': 'Vintage',
855
+ 'items': [
856
+ {
857
+ 'id': 35,
858
+ 'is_selected': true,
859
+ 'vintage_id': 35,
860
+ 'custom_combination_id': 7321,
861
+ 'type_vintage_id': 3,
862
+ 'title': 'Pre-1978',
863
+ 'type': 'vintage',
864
+ 'filter_title': 'Package/Measure Type',
865
+ 'items': [
866
+ {
867
+ 'id': 160327,
868
+ 'study_row_number': 199,
869
+ 'climate_zone_raw': '7-SDGE',
870
+ 'study_id': 25,
871
+ 'sync_id': 148,
872
+ 'prototype_id': 29,
873
+ 'measure_id': 176,
874
+ 'vintage_id': 35,
875
+ 'fuel_id': null,
876
+ 'baseline_fuel_type': 'mixed-fuel',
877
+ 'initial_cost': 683,
878
+ 'kwh_savings': 149.3431914,
879
+ 'therms_savings': 5.436199053,
880
+ 'annual_bill_savings': 92.61715246,
881
+ 'annual_bill_savings_avg': 73.85575808,
882
+ 'simple_payback': 7.374443954,
883
+ 'tdv_benefit_to_cost_ratio': 1.8471992679,
884
+ 'on_bill_cost_ratio': 2.888959714,
885
+ 'emissions_savings': 0.03917,
886
+ 'emissions_savings_pct': 0.0216607496,
887
+ 'compliance_margin': null,
888
+ 'lifecycle_savings': 2215.672742,
889
+ 'tdv2022_benefit_to_cost_ratio': 1.8725033675,
890
+ 'energy_savings_combined': 1.053178874,
891
+ 'order': 99999,
892
+ 'base_kwh': '6.0000000000',
893
+ 'measure': {
894
+ 'id': 176,
895
+ 'title': 'Duct Sealing'
896
+ },
897
+ 'is_selected': true,
898
+ 'type': 'study_data',
899
+ 'building_stock_units': 21433,
900
+ 'title': 'Duct Sealing',
901
+ 'is_disabled': true,
902
+ 'data': {
903
+ 'initial_cost': 683,
904
+ 'kwh_savings': 149.3431914,
905
+ 'therms_savings': 5.436199053,
906
+ 'annual_bill_savings': 92.61715246,
907
+ 'annual_bill_savings_avg': 73.85575808,
908
+ 'tdv_benefit_to_cost_ratio': 1.8471992679,
909
+ 'emissions_savings_pct': 0.0216607496,
910
+ 'lifecycle_savings': 2215.672742,
911
+ 'baseline_fuel_type': 'mixed-fuel',
912
+ 'compliance_margin': null,
913
+ 'on_bill_cost_ratio': 2.888959714,
914
+ 'emissions_savings': 0.03917,
915
+ 'simple_payback': 7.374443954,
916
+ 'tdv2022_benefit_to_cost_ratio': 1.8725033675,
917
+ 'energy_savings_combined': 1.053178874,
918
+ 'forecast_emissions_savings': 2018.0610782054755,
919
+ 'forecast_initial_cost': 1829842.3749999993,
920
+ 'forecast_kwh_savings': 7150949.49046986,
921
+ 'forecast_lifecycle_savings': 4434755.766124634,
922
+ 'forecast_therms_savings': 260299.67944118142,
923
+ 'forecast_units_affected': 2679.1250000000005
924
+ },
925
+ 'is_last': false,
926
+ 'deep': 6,
927
+ 'index': '0-0-0-0-0-0-0',
928
+ 'last_deep': true
929
+ },
930
+ {
931
+ 'id': 161020,
932
+ 'study_row_number': 892,
933
+ 'climate_zone_raw': '7-SDGE',
934
+ 'study_id': 25,
935
+ 'sync_id': 148,
936
+ 'prototype_id': 29,
937
+ 'measure_id': 174,
938
+ 'vintage_id': 35,
939
+ 'fuel_id': null,
940
+ 'baseline_fuel_type': 'mixed-fuel',
941
+ 'initial_cost': 6684.796257,
942
+ 'kwh_savings': 3425.437266,
943
+ 'therms_savings': 0,
944
+ 'annual_bill_savings': 1151.477618,
945
+ 'annual_bill_savings_avg': 908.8231297,
946
+ 'simple_payback': 4.999069325,
947
+ 'tdv_benefit_to_cost_ratio': 2.0010796568,
948
+ 'on_bill_cost_ratio': 3.68826464,
949
+ 'emissions_savings': 0.13093,
950
+ 'emissions_savings_pct': 0.0724034197,
951
+ 'compliance_margin': null,
952
+ 'lifecycle_savings': 27264.69389,
953
+ 'tdv2022_benefit_to_cost_ratio': 1.6723062335,
954
+ 'energy_savings_combined': 11.68759195,
955
+ 'order': 99999,
956
+ 'base_kwh': '5.0000000000',
957
+ 'measure': {
958
+ 'id': 174,
959
+ 'title': 'PV'
960
+ },
961
+ 'is_selected': true,
962
+ 'type': 'study_data',
963
+ 'building_stock_units': 21433,
964
+ 'title': 'PV',
965
+ 'data': {
966
+ 'initial_cost': 6684.796257,
967
+ 'kwh_savings': 3425.437266,
968
+ 'therms_savings': 0,
969
+ 'annual_bill_savings': 1151.477618,
970
+ 'annual_bill_savings_avg': 908.8231297,
971
+ 'tdv_benefit_to_cost_ratio': 2.0010796568,
972
+ 'emissions_savings_pct': 0.0724034197,
973
+ 'lifecycle_savings': 27264.69389,
974
+ 'baseline_fuel_type': 'mixed-fuel',
975
+ 'compliance_margin': null,
976
+ 'on_bill_cost_ratio': 3.68826464,
977
+ 'emissions_savings': 0.13093,
978
+ 'simple_payback': 4.999069325,
979
+ 'tdv2022_benefit_to_cost_ratio': 1.6723062335,
980
+ 'energy_savings_combined': 11.68759195,
981
+ 'forecast_emissions_savings': 13722.61550528348,
982
+ 'forecast_initial_cost': 17909404.77203512,
983
+ 'forecast_kwh_savings': 164019053.31145322,
984
+ 'forecast_lifecycle_savings': 55135813.07948781,
985
+ 'forecast_therms_savings': 0,
986
+ 'forecast_units_affected': 2679.1250000000005
987
+ },
988
+ 'is_last': true,
989
+ 'deep': 6,
990
+ 'index': '0-0-0-0-0-0-1',
991
+ 'last_deep': true
992
+ }
993
+ ],
994
+ 'building_stock_units': 21433,
995
+ 'data': {
996
+ 'initial_cost': 7367.796257,
997
+ 'annual_bill_savings': 1244.0947704599998,
998
+ 'annual_bill_savings_avg': 982.67888778,
999
+ 'emissions_savings': 0.1701,
1000
+ 'lifecycle_savings': 29480.366631999997,
1001
+ 'kwh_savings': 3574.7804573999997,
1002
+ 'therms_savings': 5.436199053,
1003
+ 'energy_savings_combined': 12.740770824,
1004
+ 'on_bill_cost_ratio': 3.168970346578549,
1005
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
1006
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
1007
+ 'simple_payback': 5.219268257627324,
1008
+ 'forecast_units_affected': 2679.1250000000005,
1009
+ 'forecast_initial_cost': 19739247.14703512,
1010
+ 'forecast_emissions_savings': 15740.676583488956,
1011
+ 'forecast_kwh_savings': 171170002.8019231,
1012
+ 'forecast_therms_savings': 260299.67944118142,
1013
+ 'forecast_lifecycle_savings': 59570568.845612444
1014
+ },
1015
+ 'is_last': true,
1016
+ 'deep': 5,
1017
+ 'index': '0-0-0-0-0-0',
1018
+ 'last_deep': false
1019
+ }
1020
+ ],
1021
+ 'building_stock_units': 21433,
1022
+ 'data': {
1023
+ 'initial_cost': 7367.796257,
1024
+ 'annual_bill_savings': 1244.0947704599998,
1025
+ 'annual_bill_savings_avg': 982.6788877800001,
1026
+ 'emissions_savings': 0.1701,
1027
+ 'lifecycle_savings': 29480.366631999994,
1028
+ 'kwh_savings': 3574.7804573999992,
1029
+ 'therms_savings': 5.436199053,
1030
+ 'energy_savings_combined': 12.740770824,
1031
+ 'on_bill_cost_ratio': 3.168970346578549,
1032
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
1033
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
1034
+ 'simple_payback': 5.219268257627324,
1035
+ 'forecast_units_affected': 2679.1250000000005,
1036
+ 'forecast_initial_cost': 19739247.14703512,
1037
+ 'forecast_emissions_savings': 15740.676583488956,
1038
+ 'forecast_kwh_savings': 171170002.8019231,
1039
+ 'forecast_therms_savings': 260299.67944118142,
1040
+ 'forecast_lifecycle_savings': 59570568.845612444
1041
+ },
1042
+ 'fallback_climate_zone_raw': null,
1043
+ 'is_last': true,
1044
+ 'deep': 4,
1045
+ 'index': '0-0-0-0-0',
1046
+ 'last_deep': false
1047
+ }
1048
+ ],
1049
+ 'building_stock_units': 21433,
1050
+ 'data': {
1051
+ 'initial_cost': 7367.796257,
1052
+ 'annual_bill_savings': 1244.0947704599998,
1053
+ 'annual_bill_savings_avg': 982.6788877800001,
1054
+ 'emissions_savings': 0.1701,
1055
+ 'lifecycle_savings': 29480.366631999994,
1056
+ 'kwh_savings': 3574.7804573999992,
1057
+ 'therms_savings': 5.436199053,
1058
+ 'energy_savings_combined': 12.740770824,
1059
+ 'on_bill_cost_ratio': 3.168970346578549,
1060
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
1061
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
1062
+ 'simple_payback': 5.219268257627324,
1063
+ 'forecast_units_affected': 2679.1250000000005,
1064
+ 'forecast_initial_cost': 19739247.14703512,
1065
+ 'forecast_emissions_savings': 15740.676583488956,
1066
+ 'forecast_kwh_savings': 171170002.8019231,
1067
+ 'forecast_therms_savings': 260299.67944118142,
1068
+ 'forecast_lifecycle_savings': 59570568.845612444
1069
+ },
1070
+ 'is_last': true,
1071
+ 'deep': 3,
1072
+ 'index': '0-0-0-0',
1073
+ 'last_deep': false
1074
+ }
1075
+ ],
1076
+ 'building_stock_units': 21433,
1077
+ 'data': {
1078
+ 'initial_cost': 7367.796257,
1079
+ 'annual_bill_savings': 1244.0947704599998,
1080
+ 'annual_bill_savings_avg': 982.6788877800001,
1081
+ 'emissions_savings': 0.1701,
1082
+ 'lifecycle_savings': 29480.366631999994,
1083
+ 'kwh_savings': 3574.7804573999992,
1084
+ 'therms_savings': 5.436199053,
1085
+ 'energy_savings_combined': 12.740770824,
1086
+ 'on_bill_cost_ratio': 3.168970346578549,
1087
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
1088
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
1089
+ 'simple_payback': 5.219268257627324,
1090
+ 'forecast_units_affected': 2679.1250000000005,
1091
+ 'forecast_initial_cost': 19739247.14703512,
1092
+ 'forecast_emissions_savings': 15740.676583488956,
1093
+ 'forecast_kwh_savings': 171170002.8019231,
1094
+ 'forecast_therms_savings': 260299.67944118142,
1095
+ 'forecast_lifecycle_savings': 59570568.845612444
1096
+ },
1097
+ 'study_group': {
1098
+ 'id': 1,
1099
+ 'title': 'Existing Residential Buildings',
1100
+ 'study_type_id': 1,
1101
+ 'study_type': {
1102
+ 'id': 1,
1103
+ 'title': 'Existing Buildings'
1104
+ }
1105
+ },
1106
+ 'is_last': true,
1107
+ 'deep': 2,
1108
+ 'index': '0-0-0',
1109
+ 'last_deep': false
1110
+ }
1111
+ ],
1112
+ 'building_stock_units': 21433,
1113
+ 'data': {
1114
+ 'initial_cost': 7367.796257,
1115
+ 'annual_bill_savings': 1244.0947704599998,
1116
+ 'annual_bill_savings_avg': 982.6788877800001,
1117
+ 'emissions_savings': 0.1701,
1118
+ 'lifecycle_savings': 29480.366631999994,
1119
+ 'kwh_savings': 3574.7804573999992,
1120
+ 'therms_savings': 5.436199053,
1121
+ 'energy_savings_combined': 12.740770824,
1122
+ 'on_bill_cost_ratio': 3.168970346578549,
1123
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
1124
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
1125
+ 'simple_payback': 5.219268257627324,
1126
+ 'forecast_units_affected': 2679.1250000000005,
1127
+ 'forecast_initial_cost': 19739247.14703512,
1128
+ 'forecast_emissions_savings': 15740.676583488956,
1129
+ 'forecast_kwh_savings': 171170002.8019231,
1130
+ 'forecast_therms_savings': 260299.67944118142,
1131
+ 'forecast_lifecycle_savings': 59570568.845612444
1132
+ },
1133
+ 'is_last': true,
1134
+ 'deep': 1,
1135
+ 'index': '0-0',
1136
+ 'last_deep': false
1137
+ }
1138
+ ],
1139
+ 'building_stock_units': 21433,
1140
+ 'data': {
1141
+ 'initial_cost': 7367.796257,
1142
+ 'annual_bill_savings': 1244.0947704599998,
1143
+ 'annual_bill_savings_avg': 982.6788877800001,
1144
+ 'emissions_savings': 0.1701,
1145
+ 'lifecycle_savings': 29480.366631999994,
1146
+ 'kwh_savings': 3574.7804573999992,
1147
+ 'therms_savings': 5.436199053,
1148
+ 'energy_savings_combined': 12.740770824,
1149
+ 'on_bill_cost_ratio': 3.168970346578549,
1150
+ 'tdv_benefit_to_cost_ratio': 4.011991592520937,
1151
+ 'tdv2022_benefit_to_cost_ratio': 3.544809601,
1152
+ 'simple_payback': 5.219268257627324,
1153
+ 'forecast_units_affected': 2679.1250000000005,
1154
+ 'forecast_initial_cost': 19739247.14703512,
1155
+ 'forecast_emissions_savings': 15740.676583488956,
1156
+ 'forecast_kwh_savings': 171170002.8019231,
1157
+ 'forecast_therms_savings': 260299.67944118142,
1158
+ 'forecast_lifecycle_savings': 59570568.845612444
1159
+ },
1160
+ 'deep': 0,
1161
+ 'index': '0',
1162
+ 'last_deep': false
1163
+ }
1164
+ ],
1165
+ columnGroups: [
1166
+ {
1167
+ 'order': 0,
1168
+ 'key': 'fixed_columns',
1169
+ 'title': 'Benefit/Cost Ratios',
1170
+ 'columns': [
1171
+ {
1172
+ 'isActive': true,
1173
+ 'key': 'on_bill_cost_ratio',
1174
+ 'title': 'On-Bill',
1175
+ 'description': '≥ 1.0 is cost effective',
1176
+ 'isChart': true,
1177
+ 'hasHelper': {
1178
+ 'type': 'helper',
1179
+ 'id': 5
1180
+ }
1181
+ }
1182
+ ],
1183
+ 'hasHelper': {
1184
+ 'type': 'helper',
1185
+ 'id': 23
1186
+ }
1187
+ },
1188
+ {
1189
+ 'order': 2,
1190
+ 'key': 'city_wide_impact',
1191
+ 'title': 'City-wide Estimates',
1192
+ 'columns': [
1193
+ {
1194
+ 'isActive': true,
1195
+ 'key': 'forecast_units_affected',
1196
+ 'title': 'Affected Units',
1197
+ 'description': '(lifecycle)',
1198
+ 'hasProjections': true,
1199
+ 'hasHelper': {
1200
+ 'type': 'helper',
1201
+ 'id': 17
1202
+ },
1203
+ 'chartProjection': {
1204
+ 'title': 'Number of Affected Units',
1205
+ 'subtitle': ''
1206
+ }
1207
+ },
1208
+ {
1209
+ 'isActive': true,
1210
+ 'key': 'forecast_initial_cost',
1211
+ 'title': 'Compliance Cost',
1212
+ 'description': '(lifecycle)',
1213
+ 'hasProjections': true,
1214
+ 'hasHelper': {
1215
+ 'type': 'helper',
1216
+ 'id': 20
1217
+ },
1218
+ 'chartProjection': {
1219
+ 'title': 'Compliance Cost',
1220
+ 'subtitle': ''
1221
+ }
1222
+ },
1223
+ {
1224
+ 'isActive': true,
1225
+ 'key': 'forecast_emissions_savings',
1226
+ 'title': 'Emissions Reductions',
1227
+ 'description': '(lifecycle MTCO2e)',
1228
+ 'hasProjections': true,
1229
+ 'hasHelper': {
1230
+ 'type': 'helper',
1231
+ 'id': 18
1232
+ },
1233
+ 'chartProjection': {
1234
+ 'title': 'Emissions Reductions',
1235
+ 'subtitle': 'MTCO2e'
1236
+ }
1237
+ },
1238
+ {
1239
+ 'isActive': true,
1240
+ 'key': 'forecast_lifecycle_savings',
1241
+ 'title': 'Lifecycle Savings',
1242
+ 'description': '(on-bill)',
1243
+ 'hasProjections': true,
1244
+ 'hasHelper': {
1245
+ 'type': 'helper',
1246
+ 'id': 19
1247
+ },
1248
+ 'chartProjection': {
1249
+ 'title': 'Bill Savings',
1250
+ 'subtitle': ''
1251
+ }
1252
+ },
1253
+ {
1254
+ 'isActive': true,
1255
+ 'key': 'forecast_kwh_savings',
1256
+ 'title': 'Electricity Savings',
1257
+ 'description': '(lifecycle kWh)',
1258
+ 'hasProjections': true,
1259
+ 'hasHelper': {
1260
+ 'type': 'helper',
1261
+ 'id': 21
1262
+ },
1263
+ 'chartProjection': {
1264
+ 'title': 'Electricity Savings',
1265
+ 'subtitle': 'kWh'
1266
+ }
1267
+ },
1268
+ {
1269
+ 'isActive': true,
1270
+ 'key': 'forecast_therms_savings',
1271
+ 'title': 'Gas Savings',
1272
+ 'description': '(lifecycle therms)',
1273
+ 'hasProjections': true,
1274
+ 'hasHelper': {
1275
+ 'type': 'helper',
1276
+ 'id': 22
1277
+ },
1278
+ 'chartProjection': {
1279
+ 'title': 'Gas Savings',
1280
+ 'subtitle': 'therms'
1281
+ }
1282
+ }
1283
+ ],
1284
+ 'hasHelper': {
1285
+ 'type': 'helper',
1286
+ 'id': 25
1287
+ }
1288
+ }
1289
+ ],
1290
+ footer: []
1291
+ }