SDI Intelligence
The SDI (Sustainable Development Investments) layer applies the SDI ruleset on top of the revenue data: It augments some company assessments with bespoke per industry formulae taking outcomes into consideration to better understand and classify the revenue of the entities. It then aggregates these up into a classification system for all entities.
Both tables are versioned — filter is_current = TRUE.
sdi_formula_results
The output of the SDI revenue-allocation formula: for all cases where
| Column | Type | Description |
|---|---|---|
sdi_formula_result_id | VARCHAR (UUID) | Primary key |
entity_id | NUMBER | Who. Joins to entities |
year | NUMBER | Fiscal year |
segment_id | NUMBER | The business segment the revenue comes from; joins to segments |
segment_name | VARCHAR | Segment name, denormalised for convenience |
taxon_id | NUMBER | The taxonomy activity the revenue is allocated to; joins to taxonomy |
taxon_name | VARCHAR | Taxon name, denormalised for convenience |
revenue_amount | FLOAT | Revenue of the segment, USD |
revenue_pct | FLOAT | Segment revenue as a share of the entity’s total revenue |
allocated_revenue_amount | FLOAT | Portion of that revenue allocated to the taxon by the SDI formula, USD |
allocated_revenue_pct | FLOAT | Allocated revenue as a share of total revenue |
sdg_alignment_type | VARCHAR | Alignment of the allocation: positive, negative, potential, potentially_positive, potentially_negative or not_covered. Included for cases where the formula has a determination but no matching taxon. |
confidence | NUMBER | Confidence score of the mapping |
sdi_classifications
The headline SDI result: one classification per entity and year. A company can have a higher confidence of being decisive versus majority if the decisive threshold (10%) is met with more confidence than the majority one (50%).
| Column | Type | Description |
|---|---|---|
entity_id | NUMBER | Who. Joins to entities |
year | NUMBER | Fiscal year |
end | DATE | Period end date |
sdi_classification | VARCHAR | The entity’s SDI classification for the year |
sdi_classification_confidence | NUMBER | Confidence score for the classification |
is_sdi_decisive | BOOLEAN | Whether the classification is decisive under the SDI ruleset |
is_sdi_decisive_confidence | NUMBER | Confidence score for the decisiveness flag |
The set of entities in scope for SDI is flagged on the entity itself:
entities.is_sdi_covered.
Example: positively aligned revenue per company
SELECT sfr.entity_id,
e.name,
sfr.year,
SUM(sfr.allocated_revenue_amount) AS positive_revenue_usd,
SUM(sfr.allocated_revenue_pct) AS positive_revenue_pct
FROM NET_PURPOSE_REVENUE.REVENUE.SDI_FORMULA_RESULTS sfr
JOIN NET_PURPOSE.ENTITIES.ENTITIES e
ON e.entity_id = sfr.entity_id AND e.is_current = TRUE
WHERE sfr.is_current = TRUE
AND sfr.sdg_alignment_type = 'positive'
GROUP BY sfr.entity_id, e.name, sfr.year
ORDER BY positive_revenue_pct DESC;Example: screen a universe by SDI classification
SELECT e.entity_id,
e.name,
e.primary_isin,
sc.year,
sc.sdi_classification,
sc.sdi_classification_confidence
FROM NET_PURPOSE_REVENUE.REVENUE.SDI_CLASSIFICATIONS sc
JOIN NET_PURPOSE.ENTITIES.ENTITIES e
ON e.entity_id = sc.entity_id AND e.is_current = TRUE
WHERE sc.is_current = TRUE
AND e.primary_isin IN ('US0378331005', 'GB0007980591')
QUALIFY ROW_NUMBER() OVER (
PARTITION BY sc.entity_id ORDER BY sc.year DESC
) = 1;