How to customize the Analytics template
This follows on from How to run a financial feasibility analysis in Giraffe. Once you're comfortable with the default Australia Developer template, use this guide to adapt formulas, add new usage types, and build out custom rows.
The four component types
Click any row in Analytics to open the formula editor. Under Components, every formula is built from one (or more) of four types:
Type | What it does | How to spot it |
Property | Pulls a value straight from the map — an area, or a property attached via usage/geometry (e.g. sellable area, sale price) | A property is selected in the component |
Measure | References another formula already calculated elsewhere in Analytics | A measure is selected. Convention: input cells you can edit are prefixed with |
Subtotal | Sums everything within a section | Used on total/section-heading rows |
Site property | Pulls a site-wide property not tied to any specific geometry (e.g. site area) | Used in the site area section |
Subtotal setup tip: the unit type of the subtotal must differ from what it's totaling, otherwise you'll create a circular reference. If the total sits in the same section it's summing, set that row's unit type to the subtotal type to avoid the loop.
1. Clone and configure a new usage if you need a variant (e.g. BTR)
Go to the usage editor, find the closest existing usage (e.g. Residential), and click Clone usage.
Rename the clone (e.g. "Build to Rent Residential") and change its appearance color so it's easy to distinguish on the map.
Adjust its assumptions — unit mix, rent vs. sale price, efficiencies, etc.
Assign the new usage to the relevant building(s).
Note: cloned usages still share the same usage type as the original, so they'll continue feeding into the same Analytics line until you split them out with a filter (see step 2).
2. Duplicate the relevant row(s), update the filter, and reposition
By default, a formula like sellable area × sale price pulls in everything on the map — fine for a single total, but not if you want separate lines for residential, commercial, retail, etc.
Filters (left-hand side of the formula editor) restrict a row to a specific condition — most commonly usage type is X. Every line that needs to show a specific usage separately needs its own filter.
Click the existing row closest to what you need (e.g. Residential) and use the duplicate button.
Rename the new row (e.g. "BTR").
Update its filter — e.g. from
usage type is Residentialtousage type is BTR— so it only picks up the new variant.Save, then use the drag handle to move the row into the correct position (e.g. just under the section total).
Repeat for every section that needs a variant-specific line — revenue, construction cost, etc. aren't automatically linked, so each needs its own duplicated row.
3. For values based on other calculations (not the map), switch components to measures
If a new row needs to reference something already calculated elsewhere in Analytics (rather than pulling straight from the map), clear any filter — filters only apply to map-based (property) formulas.
In the formula editor, switch the component type from property to measure, then select the calculated values you need (e.g. BTR construction cost, GST rate).
Build the formula using those measures, e.g.
A × B / 100.Remember rate-style inputs are usually stored as whole numbers (10, not 0.10) — divide by 100 to get a true percentage.
4. Use ? and : for conditional (IF) logic in more advanced formulas
For formulas that need to branch depending on an input — e.g. choosing between a fixed land value or a residual land value calculation — use a switch-style input (e.g. 1 = fixed, 2 = residual).
Write the conditional using
?and:, in the form:A = 1 ? B : [alternative formula]This reads as: if A equals 1, use B; otherwise use the alternative formula.
Standard comparison operators (
=,>,<,>=,<=) all work within these conditionals.
5. Check downstream rows that reference your changes
Once a new usage or row is added, trace anything further down the model that might reference it — professional fees, PMV, GST, totals, etc.
Decide whether each downstream formula should now pick up your new line, or intentionally exclude it (e.g. GST might not apply to BTR the same way it does to standard residential).
This step is easy to skip but prevents totals silently under- or over-counting once you've customized the template.
Quick summary
Clone and configure a new usage if you need a variant (e.g. BTR)
Duplicate the relevant row(s), update the filter, and reposition
For values based on other calculations (not the map), switch components to measures
Use
?and:for conditional (IF) logic in more advanced formulasCheck downstream rows that reference your changes