APPENDIX A Fractal Business Analytics LLC d/b/a Fractal Energy Storage Consultants 7500 Rialto Blvd, Building 1, Suite 250 Austin, TX 78735 Office: 512.566.7516 www.energystorageconsultants.com
Contents 1.0 Technical Documentation List... 3 2.0 Contract Segment 1... 5 3.0 Contract Segment 2... 5 2
1.0 Technical Documentation List A full list of documentation can be found in the TechnicalDecomposition.xlsx provided as a reference to the PVS Design. Application Hierarchy This document is the conceptual base for the Spreadsheet. It is a logical interpretation of the dependencies and fundamental elements of the application. Application Workflow CRUD Operations This document captures the data flow within each View. It also describes the functionality of different UI Controls. When used with the Mockup, developers have much more information to work with and their efforts are guided. Questions become focused, vagueness and ambiguity are reduced substantially. FSC-8760 Calculation Engine - Calc Engine.pdf This is the functionality of the Math Tab on the Spreadsheet. Queues are specified for processing in the CE based on a specific DateTime, and Use Case followed by the Applications and functional hierarchy of Primary and (1 or many) concurrent states assigned to each. There is a PPA pricing model imported that applies to all Applications, and then each Application has an Energy and Capacity pricing model for 2 time dimensions, weekdays and weekends for all pricing. The CE Calculation Logic is dependent on control variables or system settings. Base Power Generation begins with the Solar Generation Profile (an imported profile produced by a 3rd party program) where system type (solar or wind) determines the choice of data used. This is the input for Net Solar Revenue which is fed by the Battery Dispatch calculation which in turn receives its input from Application Actual Power. The CE calculates outputs for Energy that are used by the Financial Model for Costs, Cash Flow and Lease options. 3
JSON files are provided as data models for the application to initialize itself with data selections and past model data, these are referred to as Consumers, or files that the application consumes in order to present data to the user. App Producer & Consumer.pdf Ultimately, these Models are Produced by the Application (Producers) then the Consumers are created or updated by the CRUD services running in Node.js. Lists and DataSets are created and Updated. Lists are lightweight and used mainly for selection list population, and DataSets contain Formatting, Units, Values and in some cases, Labels. DataSets are pre-defined and the Producers populate them with Model data. The CRUD ecosystem works like this: JSON with values is produced as a Model by the user saving a configuration, the Service layer then uses the values to Update or Create a new List and DataSet for that View. DataSet Units and Formatting are static objects built beforehand for each view that the UI uses for presentation. UUID's tie everything together. Lists use names tied to UUID's to load the DataSets for a particular user selection. Development Infrastructure.pdf Controls for SOC2 compliance begins with the development of the products to be deployed from the cloud or other infrastructures. Creating a mirrored image between local and the cloud development environments results in stability and allows remote development to take place securely. Using a remote GIT repository as the point where the final code base resides for production works well for a company s IP to remain secure and can be used for code reviews before QA testing that leads final deployment. Whether remote services infrastructure is deployed in the cloud or bundled in a UPC package that runs locally on a users installation, the result is a stable and well understood environment that lends itself to troubleshooting issues with minimal effort. 4
2.0 Contract Segment 1 Segment 1 Contract Award UI Controllers/Service Layer Analysis for CRUD Week 1 & 2 CE Activity Diagram Design - Development Environment Construction - Cost and Schedule Analysis - 3.0 Contract Segment 2 Segment 2 Contract Award Application View Framework & Project Organization Header/Footer - View Navigation for all placeholder Views Week 1 Dynamic Styling from JSON Plugin for foreground/background - App Text font & size CRUD Consumer & Producer Layers for Projects CRUD Service Organization Deployment Packaging - Started Application View - Projects - Application CRUD Consumer & Producer Layers for Projects - CRUD Service for Projects - Week 2 CE Layer Organization - Projects CRUD Round Trip - Deployment Packaging with Deployment to S3- Week 3 Application View - Business Model - 5
Application CRUD Consumer & Producer Layers for Business Model - CRUD Service for Business Model - CE Service Pricing Import - CE Queue Simulations with App/Use Case JSON Model - Business Model CRUD Round Trip - Application View - Solar Imports Model - Application CRUD Consumer & Producer Layers for Solar Imports Model - Week 4 CRUD Service for Solar Imports Model - CE Solar Imports Pricing Import - CE Queue Simulations with Solar Imports JSON Model - Solar Imports Model CRUD Round Trip - Application View - Inverter Model - Application CRUD Consumer & Producer Layers for Inverter Model - CRUD Service for Inverter Model - Week 5 CE PPA Pricing Import - CE Queue Simulations with PPA Pricing JSON Model - Inverter Model CRUD Round Trip - Application View - App/Use Case Model - Started Week 6 Application CRUD Consumer & Producer Layers for App/Use Case Model - Started 6
CRUD Service for App/Use Case Model - Started Pricing Import Integrations - Started CE Queue Simulations with All Pricing and Control Variables for Base Power - Clip Charge Power - Dispatch/Discharge Capacities - Hourly SOC's - Application Planned & Actual Power - Deep Validation w/defaults - Started App/Use Case Model CRUD Round Trip - Started Application View - App/Use Case Model - Application CRUD Consumer & Producer Layers for App/Use Case Model - CRUD Service for App/Use Case Model - Week 7 Pricing Import Integrations - CE Queue Simulations with All Pricing and Control Variables for Base Power - Clip Charge Power - Dispatch/Discharge Capacities - Hourly SOC's - Application Planned & Actual Power - Deep Validation w/defaults - Revenue Generation - Continuing App/Use Case Model CRUD Round Trip - Application View - Energy Storage Model - Application CRUD Consumer & Producer Layers for Energy Storage Model - CRUD Service for Energy Storage Model - Week 8 Degradation Import Integrations - Degradation Charting - CE Queue Simulations with All Pricing and Control Variables for Base Power - Clip Charge Power - Dispatch/Discharge Capacities - Hourly SOC's - Application Planned & Actual Power - Deep Validation w/defaults - Revenue Generation - Continuing 7
Energy Storage Model CRUD Round Trip - Application View - Finance Model - Started Application CRUD Consumer & Producer Layers for Finance Model - Started CRUD Service for Finance Model - Started Week 9 Cash Flow/ Leasing - Started CE Queue Simulations with All Pricing and Control Variables for Base Power - Clip Charge Power - Dispatch/Discharge Capacities - Hourly SOC's - Application Planned & Actual Power - Finance Model CRUD Round Trip - Started Application View - Finance Model - Started Application CRUD Consumer & Producer Layers for Finance Model - CRUD Service for Finance Model - Week 10 Finance Charting - CE Queue Simulations and Deep Validation w/defaults - Revenue Generation - Reporting Reports Definition - Started Finance Model CRUD Round Trip - Application CRUD Consumer & Producer Layers for Dashboard - Week 11 CRUD Service for Dashboard Model - Dashboard Charting - Reporting Reports Definition - 8
Reporting Control Tab with Validations - Dashboard CRUD Round Trip - Acceptance Testing 9