Computed Properties and Metrics
minware supports simple and transparent data customization from your raw data. You can define custom properties and metrics to match your organization’s definitions and conventions, and they will apply consistently throughout minware.
- Computed properties: A computed property is a property that doesn’t exist in the original data set, but is instead derived from the original properties using a minQL formula. This makes it easy to customize reports for your organization by overriding the definitions of things like P1 severity bugs, story point estimates, etc.
- Custom metrics: Metrics calculate aggregate values on computed or default properties and let you set targets for your organization. Examples include pull request cycle time or tickets completed without a story point estimate set.
Global defaults are provided for all standard properties and metrics. You can customize them for your org at any time. Manage computed properties and metrics on your Metrics & Properties page.
How to Customize
- Go to Settings > Reporting > Properties & Metrics
- To create something new, click + New Computed Property or + New Metric. To customize a default, click Edit next to any provided property or metric.
- Fill in the form fields, and click save. (For full documentation of the minQL formula language and available functions, see the minQL documentation.)
- The updates apply immediately throughout minware, including previously created reports that include the metric or property.
When you override a default, your version applies across your entire organization. The default remains visible for reference and can be restored at any time using the Reset button.
Computed Properties Examples
See the following examples for guidance on how to override computed properties that many organizations need to customize to match their conventions.
Bugs
The isBug property determines which tickets are bugs. The default formula checks whether the issue type contains "bug":
ticket.getOrig('issuetype').ilike('%bug%')
If your team uses different terminology, customize this to match. For example, if you also use "Defect":
ticket.getOrig('issuetype').ilike('%bug%') ||
ticket.getOrig('issuetype') == 'Defect'
Ticket Priority
The priorityNumber property determines bug severity. By default, minware maps common terminology to priority levels. You can update the mapping to match your organization’s terminology. The override formula looks like this:
decode(ticket.getOrig('priority').lower(),
'expedited', 1,
'ugent', 2,
'normal', 3,
4 // Default to 4 if we don't match
)
Done
The isDoneStatus property determines when tickets are counted as completed for the purpose cycle time, sprint metrics, and other measures. By default, minware checks for the word "Done".
By default we use the statusCategory field, which is the field in your ticketing system that indicates whether the ticket is considered "Done". However, you may want to consider other statuses for the purposes of metrics. For example, if you have a status called "Awaiting Deployment" that means a ticket is complete, you would override it like this:
ticket.getOrig('statusCategory') === 'Done' || ticket.getOrig``('status') === 'Awaiting Deployment'
estimateUnits
Metrics for sprint predictability and velocity are based on tickets with estimates. Your organization may want to count unestimated tickets as 1 point or 0 points. By default, minware sets no-estimate tickets to a value of 1. You can override this and set no-estimate tickets to 0 with a new computed property like this:
ticket.getOrig(‘estimateUnitsZero’)
Custom Metrics Example
minware sets default targets for metrics based on industry benchmarks. You may update these targets based on your organization’s goals and situation.
PR Cycle Time
minware establishes a default target of < 2 days for Average PR Cycle Time. You can update this with the following steps:
- Find Avg. PR Cycle Time on the Metrics and Properties page in Settings.
- Click the Edit button.
- Update the Target Duration field on the form to your organization’s goal.
- Click Save.