Overview
This codebook defines the 28 coded fields used to record sustainability disclosure practices by SGX-listed issuers. The public dashboard displays 18 disclosure indicators; the full codebook also includes identification, report metadata, and verification fields used for provenance and expanded company profiles. The tracker records what companies disclose, not how well they perform. No scores or rankings are computed.
Unit of observation: One issuer-year (a single company’s sustainability report for one fiscal year).
Variables
Identification
| Variable | Type | Description |
|---|---|---|
| issuer_name | string | Full legal name of the reporting entity as stated on the cover page |
| sgx_ticker | string | SGX stock code (e.g., "D05" for DBS). If not stated in the report, leave as empty string and flag in ambiguities. |
| fiscal_year_end | string (YYYY-MM-DD) | End date of the fiscal year covered |
| report_url | string | URL to the original sustainability report. Populated after coding from public sources. |
| report_type | enum | standalone_sustainability | integrated_report | annual_report_section | none_found |
Framework references
Each variable is "yes" if the report explicitly names the framework. A report that follows the structure of a framework without naming it does NOT count. A report that mentions the framework only in a forward-looking statement (e.g., "we plan to adopt ISSB standards") counts as "no" but should be noted in the ambiguities array.
| Variable | Type | Values | Description |
|---|---|---|---|
| gri_mentioned | string | "yes" | "no" | Report explicitly names the GRI Standards as a framework used, or includes a GRI content index |
| issb_s1_mentioned | string | "yes" | "no" | Report explicitly references IFRS S1 or ISSB S1 by name |
| issb_s2_mentioned | string | "yes" | "no" | Report explicitly references IFRS S2 or ISSB S2 by name |
| tcfd_mentioned | string | "yes" | "no" | Code “yes” only when the report presents TCFD as used for this report: a present-tense alignment statement (for example “prepared in line with” or “with reference to” the TCFD recommendations), a TCFD content index or a mapping of this report’s disclosures to TCFD, TCFD listed among the frameworks the report currently applies, or a current TCFD supporter badge. Code “no” when TCFD appears only as past use (for example “in 2022 we conducted a scenario analysis in line with TCFD”), as the framework that IFRS S2 replaced, in a glossary or list of abbreviations, in a third-party template column (for example an SGX or GSMA template), or in a forward-looking commitment. |
| tnfd_mentioned | string | "yes" | "no" | Report explicitly references TNFD. General biodiversity discussion without naming TNFD counts as "no" |
| sdg_mentioned | string | "yes" | "no" | Report explicitly references UN SDGs or specific SDG numbers/icons |
Climate disclosures
| Variable | Type | Values | Description |
|---|---|---|---|
| scope1_disclosed | enum | "yes_quantitative" | "yes_qualitative" | "no" | yes_quantitative = specific numerical figure provided; yes_qualitative = discussed but no number; no = not mentioned. A chart showing emissions counts as quantitative if a number can be read from it. |
| scope2_disclosed | enum | "yes_quantitative" | "yes_qualitative" | "no" | Same rules as scope1 |
| scope3_disclosed | enum | "yes_quantitative" | "yes_qualitative" | "no" | Same rules as scope1. Selected Scope 3 categories with numbers count as yes_quantitative. Note which categories are covered in ambiguities. |
| emissions_methodology_stated | enum | "yes" | "no" | "not_applicable" | yes = names a specific methodology (e.g., GHG Protocol, ISO 14064) or describes organizational boundary approach; no = figures reported without methodology; not_applicable = no emissions disclosed |
| climate_targets_set | enum | "yes" | "no" | yes = at least one quantitative climate target with a target year; no = no quantitative targets with timelines |
| transition_plan_present | enum | "yes" | "no" | yes = describes HOW the company intends to achieve climate targets with specific actions, milestones, or investments; no = only targets stated without a plan |
Assurance
| Variable | Type | Values | Description |
|---|---|---|---|
| external_assurance | enum | "yes" | "no" | yes = independent third-party assurance statement included or referenced with named provider. Internal audit and board sign-off do NOT count. |
| assurance_provider_name | string | provider name | "not_applicable" | Name exactly as stated in report; "not_applicable" if no external assurance |
| assurance_standard | enum | "isae_3000" | "isae_3410" | "aa1000" | "other" | "not_stated" | "not_applicable" | Standard used; "not_applicable" if no external assurance. If "other", specify in ambiguities. |
| assurance_scope | enum | "emissions_only" | "selected_indicators" | "full_report" | "not_stated" | "not_applicable" | "other" | Scope of engagement; "not_applicable" if no external assurance |
Governance
| Variable | Type | Values | Description |
|---|---|---|---|
| board_sustainability_statement | enum | "yes" | "no" | yes = substantive statement (at least one full paragraph) from board/chair/CEO on sustainability. A single sentence in a general letter does NOT count. |
| board_sustainability_committee | enum | "yes" | "no" | yes = a board-level committee with explicit sustainability oversight responsibility. Management-level committees do NOT count. |
| sustainability_linked_compensation | enum | "yes" | "no" | yes = ESG/sustainability KPIs are explicitly part of executive compensation, bonus structures, or incentive plans |
Nature and biodiversity
| Variable | Type | Values | Description |
|---|---|---|---|
| nature_biodiversity_discussion | enum | "yes" | "no" | yes = at least one full paragraph discussing biodiversity, ecosystem services, deforestation, land use, water-related ecological impacts, or nature-related risks. A single sentence mention does NOT count. |
| tnfd_aligned_disclosure | enum | "yes" | "no" | yes = nature-related disclosures explicitly described as TNFD-aligned, or TNFD LEAP approach applied and described |
Verification metadata
| Variable | Type | Description |
|---|---|---|
| coded_by | enum | "llm" | "human" | "llm_verified" |
| verification_date | string (YYYY-MM-DD) | Date the coding was last verified. Empty string for initial LLM coding. |
Source-file notes
The source coding JSONs also store two supporting fields used for verification and dispute resolution. These notes are retained in the source files and schema, but are not displayed in the public dashboard export or counted among the 28 coded fields.
| Field | Type | Description |
|---|---|---|
| evidence | object | Field-level page references and short supporting quotes used to justify each coded value |
| ambiguities | array of strings | Free-text notes on borderline cases, visual evidence, or coding judgments for that issuer-year |
Evidence object
Every coded variable must have a corresponding entry in the evidence object with:
- pages: Array of integer page numbers where evidence was found. Empty array
[]if not found. - quote: Short verbatim excerpt (max 30 words) supporting the coding. Use
"Not found in report"if coded as"no". Use"[FROM VISUAL: description]"for evidence from charts or infographics.
Ambiguities array (source files only)
An array of strings documenting edge cases, borderline decisions, or coding ambiguities. Each string should identify the variable and explain the decision. Empty array [] if no ambiguities. This field is retained in the source coding files for auditability and is not shown in the public tracker table.
Coding rules
- Base every answer on the attached report only. Do not use training data, prior knowledge, or external sources.
- Use only controlled vocabulary values. Do not create new categories or paraphrase allowed values.
- When in doubt, code conservatively. Prefer
"yes_qualitative"over"yes_quantitative"if unclear; prefer"no"if the mention is too vague. Explain in ambiguities. - Handle visuals carefully. Tag evidence from charts/infographics as
[FROM VISUAL: ...]and flag in ambiguities for human verification. - Read the entire report including appendices, assurance statements, GRI indexes, and data tables before coding.
Coding rules added in version 1.2
- Framework names in general. A framework named only in a glossary or list of abbreviations, with no other mention, counts as “no”. A framework explicitly named elsewhere in the report’s content (for example as the source of a diagram, or in a description of work already done) counts as named. Mentions that are only about the future (plans, intentions, “exploring”, “considering”, “monitoring the applicability of”) count as “no” (framework preamble). Generic phrases such as “IFRS Sustainability Disclosure Standards” or “ISSB standards” do not name IFRS S1 or IFRS S2. Wording quoted from a standard’s own requirements, for example in an IFRS S2 content index, does not count as naming that framework (added in version 1.3).
- external_assurance. Code “yes” only if an assurance statement, opinion or conclusion is included in the report, or the report says external assurance was obtained and names the provider. If the report mentions group-level, sponsor or parent-company assurance, or an unnamed verifier, but includes no statement and names no provider, code “no”. Internal audit and board sign-off never count.
- board_sustainability_committee. Also “yes” when the report names a committee of the sponsor’s or parent’s board and says it oversees sustainability for this entity. Also “yes” when a board committee’s stated remit explicitly includes climate-related risks or environmental risk controls (for example an Audit and Risk Committee that reviews risk management systems “including climate-related risks”). A management committee (chaired by the CEO or senior managers, not a committee of the board) does not count. The board as a whole overseeing sustainability, with no named board committee, is “no”.
- scope1_disclosed and scope2_disclosed. A single combined Scope 1 and 2 figure, with no separate figure for each scope, is “yes_qualitative” for each scope. If the report gives each scope as a percentage share of a stated combined total, code “yes_quantitative”. A chart value that can be read counts as a figure.
- scope3_disclosed. A share or percentage of Scope 3 with no amount or total is “yes_qualitative”. Figures for selected categories count as “yes_quantitative” (codebook).
- emissions_methodology_stated. “yes” if the report names a GHG accounting standard or protocol (for example the GHG Protocol or ISO 14064), names emission-factor sources, or states its organisational or consolidation boundary (for example operational control, equity share, or “entities where the Group has management control”). A footnote that only mentions “updated emission factors” or “revised estimation methodologies”, without naming them, is “no”.
- transition_plan_present. “yes” if the report describes specific actions, milestones or investments showing how the company will meet its climate targets, even if it says a formal transition plan is still being developed. “no” if it gives only targets, generic initiatives or aspirations.
- sustainability_linked_compensation. “yes” when the report states that ESG or sustainability KPIs are part of executive or board pay, bonus or incentive plans, or that incentive plans are designed to support sustainability objectives. Also “yes” when the company’s own index (for example its IFRS S2 index) points its executive-remuneration disclosure to a page describing ESG metrics in the management scorecard. Pay linked only to general “performance” is “no”.
- nature_biodiversity_discussion. Count a full paragraph that discusses the company’s own nature-related risks, impacts, dependencies or opportunities, including how it manages them (for example biodiversity risk screening, habitat impacts, deforestation policy, land use as an ecological topic). Community volunteering alone (such as employee tree planting) does not count. Water efficiency or discharge compliance alone does not count as an ecological impact. A passing clause about land or building footprint does not count.
- tnfd_aligned_disclosure. “yes” if the report says its nature-related disclosures are prepared in line with, or with reference to, the TNFD recommendations and includes a TNFD content index or mapping, or applies the LEAP approach and describes the results.
Company profiles list all identified assurance providers and named standards rather than selecting one. A report published separately from the annual report is classified as a standalone sustainability report. Source quotations and internal review notes are retained privately, not displayed on the tracker.
Changes in version 1.3
- Frasers Logistics & Commercial Trust’s transition plan value is Present again. The September 2026 re-check had changed it to Not identified, but the report describes specific actions and investments toward its 2050 net-zero target.
- ST Engineering’s assurance note was corrected. It now describes the main report and the separate DNV statement accurately.
- Notes on separate data documents were added for CapitaLand Ascendas REIT, CapitaLand Integrated Commercial Trust and Frasers Logistics & Commercial Trust.
- Genting Singapore’s TCFD value was recoded under the existing TCFD rule.
- Rule 1 now says how wording quoted from a standard’s requirements is treated.
- Short notes were added to explain several values.
Changes in version 1.2
- The coding rules above were added.
- Previous reports were recoded under the same rules for year-on-year comparisons. Comparisons are omitted where report coverage differs or companion documents prevent a like-for-like reading.
- The March 2026 results were replaced, and the March 2026 data files were withdrawn.
Citation
APA:
Law, K. K. F. (2026). Singapore Sustainability Disclosure Tracker (Version 1.3) [Dataset]. https://kelvinlaw.me/tracker/tracker-live.html
BibTeX:
@misc{law2026sgtracker,
author = {Law, Kelvin K. F.},
title = {Singapore Sustainability Disclosure Tracker},
year = {2026},
version = {1.3},
url = {https://kelvinlaw.me/tracker/tracker-live.html}
}
Disclaimer
This tracker is for research and educational purposes only. It is not legal advice, investment advice, or a definitive compliance determination. Users should verify information against the original reports.
Access
The live tracker and codebook are free for academic and educational use. The coding files behind the tracker are not available on request.