# Usage monitoring

# Setting up monitoring

#### **What can I monitor?**

At certain milestones of the user experience, Speedy PV will generate a set of information about the event. This information includes the name of the event, the time at which it occurred, some data associated with the event and the tool, and a session ID for that instance of the tool.

Some examples of the events that you can track within Speedy PV are:

- <div>`tool_loaded`</div>
- `address_selected`
- `energy_inputs_provided`
- `estimates_generated`
- `estimate_submitted`

We'll continue to add more trackable events as time progresses so you can track usage data with greater precision.

#### **How can I track this information?**

Event data is passed into the function `window.trackSpeedyPvEvent` whenever an event occurs, so long as `trackSpeedyPvEvent` is defined. Therefore, to track Speedy PV usage, you can define this function on your website to handle the event data however you like.

The function should accept one parameter, like the below:

```javascript
window.trackSpeedyPvEvent(speedyPvEvent) => {
   // Some code to handle the Speedy PV event
}
```

The event data is passed into `window.trackSpeedyPvEvent` as an object of the form:

```javascript
speedyPvEvent = {
  name: 'estimate_submitted', // String
  data: { // Object. Properties depend on the event triggered. Not present if there is no event data to provide
    estimateCost: 7460.75 // Number
  },
  time: '2024-10-21 13:58:27', // String. Format 'YYYY-MM-DD HH:MM:SS'
  sessionId: '01340246-f9ff-4cf5-99e7-b0af7f009443', // String
  toolData: { // Object
    display: 'desktop' // String. Display mode of Speedy PV at the time of the event. Values are 'desktop' or 'mobile'
  }
}
```