Estimations
Where Net Purpose’s research indicates that a company provides a good or service which delivers measurable impact, the magnitude of that impact will be calculated using lifecycle assessment. These estimations are computed in a transparent way following a standardised framework of datapoints related to each other to drive from either revenue or output to outcomes and impact. For any given estimation, not all roles in the estimation will be populated, for example some estimations can start at Outcome level 1, it is dependent on the theory of change and the availability of data.
Each estimation can have one or more branches. These branches have an impact_theme and represent the multi-dimensional impact a given solution can have. For example, when considering Wind power as a solution, it has an impact on climate due to the avoidance of CO2e. It also, however, impacts Air quality as there is a consumate reduction in particulates such as NOX, SOX and PM2.5. These different branches capture this multi-faceted behaviour.
Each estimation is represented by a set of estimation_lifecycle rows. These row represent a singular node in the lifecycle graph, with the underlying value, source material and derivation of that node being the linked datapoint and datapoint_derivations. The provided lifecycle_index column exists to aid correct sorting of the rows to provide legible estimations.
All views on this page are versioned — filter is_current = TRUE
(see Conventions).
datapoints
One row per estimated value. When datapoint has required derivation there is a formula (expressed as excel like manipulations of other datapoints) and the populated ast. These are provided for transparency purposes on the underlying calculations.
| Column | Type | Description |
|---|---|---|
datapoint_id | VARCHAR (UUID) | Primary key |
type | VARCHAR | Kind of datapoint within the model. |
is_derived | BOOLEAN | TRUE when computed from other datapoints, FALSE for model inputs |
question_id | NUMBER | What the value answers. Joins to questions |
canonical_question_id | VARCHAR | The question’s readable slug, for convenience |
value | FLOAT | The value in the standard unit |
unit | VARCHAR | Name of the standard unit |
reported_value | FLOAT | The originally reported value, where the input came from a disclosure |
reported_unit | VARCHAR | Unit of the reported value |
source_id | NUMBER | Source document for reported inputs. Joins to sources |
page_num | NUMBER | Page of the document |
datapoint_derivations
The formula behind each derived datapoint, for full transparency on how an estimate was computed.
| Column | Type | Description |
|---|---|---|
datapoint_id | VARCHAR (UUID) | The derived datapoint |
formula | VARCHAR | Human-readable formula |
ast | VARIANT | The parsed formula tree (machine-readable) |
estimation_lifecycle
Ties datapoints together into an estimation chain for one entity, taxonomy
activity and year. The taxon_id points at the modelled activity — a
technology-level node in the taxonomy, for example a
renewable energy generation technology whose outputs and impacts we model.
| Column | Type | Description |
|---|---|---|
entity_id | NUMBER | Who. Joins to entities |
taxon_id | NUMBER | The modelled activity. Joins to taxonomy |
year | NUMBER | Fiscal year |
lifecycle_role | VARCHAR | The role this datapoint plays in the chain (ouput, outcome_level_1, etc.) |
lifecycle_index | NUMBER | Position of the step within the chain |
impact_theme | VARCHAR | Impact theme the chain contributes to, where applicable |
datapoint_id | VARCHAR (UUID) | The datapoint at this step. Joins to datapoints |
Example: Get all lifecycle estimations for a given entity
SELECT
el.entity_id,
el.taxon_id,
el.year,
el.impact_theme,
q.name,
d.value,
d.unit
FROM NET_PURPOSE.FOUNDATIONS.ESTIMATION_LIFECYCLE el
JOIN NET_PURPOSE.FOUNDATIONS.DATAPOINTS d
ON el.datapoint_id = d.datapoint_id
JOIN NET_PURPOSE.REFERENCE.QUESTIONS q
ON d.question_id = q.question_id
ORDER BY year desc, el.lifecycle_index asc