Overview

This codebook defines the 28 core variables used to record sustainability disclosure practices by SGX-listed issuers. 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

VariableTypeDescription
issuer_namestringFull legal name of the reporting entity as stated on the cover page
sgx_tickerstringSGX stock code (e.g., "D05" for DBS). If not stated in the report, leave as empty string and flag in ambiguities.
fiscal_year_endstring (YYYY-MM-DD)End date of the fiscal year covered
report_urlstringURL to the original sustainability report. Populated after coding from public sources.
report_typeenumstandalone_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.

VariableTypeValuesDescription
gri_mentionedstring"yes" | "no"Report explicitly names the GRI Standards as a framework used, or includes a GRI content index
issb_s1_mentionedstring"yes" | "no"Report explicitly references IFRS S1 or ISSB S1 by name
issb_s2_mentionedstring"yes" | "no"Report explicitly references IFRS S2 or ISSB S2 by name
tcfd_mentionedstring"yes" | "no"Report explicitly references TCFD, or is structured around the four TCFD pillars and explicitly labels them as TCFD-aligned
tnfd_mentionedstring"yes" | "no"Report explicitly references TNFD. General biodiversity discussion without naming TNFD counts as "no"
sdg_mentionedstring"yes" | "no"Report explicitly references UN SDGs or specific SDG numbers/icons

Climate disclosures

VariableTypeValuesDescription
scope1_disclosedenum"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_disclosedenum"yes_quantitative" | "yes_qualitative" | "no"Same rules as scope1
scope3_disclosedenum"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_statedenum"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_setenum"yes" | "no"yes = at least one quantitative climate target with a target year; no = no quantitative targets with timelines
transition_plan_presentenum"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

VariableTypeValuesDescription
external_assuranceenum"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_namestringprovider name | "not_applicable"Name exactly as stated in report; "not_applicable" if no external assurance
assurance_standardenum"isae_3000" | "isae_3410" | "aa1000" | "other" | "not_stated" | "not_applicable"Standard used; "not_applicable" if no external assurance. If "other", specify in ambiguities.
assurance_scopeenum"emissions_only" | "selected_indicators" | "full_report" | "not_stated" | "not_applicable" | "other"Scope of engagement; "not_applicable" if no external assurance

Governance

VariableTypeValuesDescription
board_sustainability_statementenum"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_committeeenum"yes" | "no"yes = a board-level committee with explicit sustainability oversight responsibility. Management-level committees do NOT count.
sustainability_linked_compensationenum"yes" | "no"yes = ESG/sustainability KPIs are explicitly part of executive compensation, bonus structures, or incentive plans

Nature and biodiversity

VariableTypeValuesDescription
nature_biodiversity_discussionenum"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_disclosureenum"yes" | "no"yes = nature-related disclosures explicitly described as TNFD-aligned, or TNFD LEAP approach applied and described

Verification metadata

VariableTypeDescription
coded_byenum"llm" | "human" | "llm_verified"
verification_datestring (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 core variables.

FieldTypeDescription
evidenceobjectField-level page references and short supporting quotes used to justify each coded value
ambiguitiesarray of stringsFree-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:

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

  1. Base every answer on the attached report only. Do not use training data, prior knowledge, or external sources.
  2. Use only controlled vocabulary values. Do not create new categories or paraphrase allowed values.
  3. When in doubt, code conservatively. Prefer "yes_qualitative" over "yes_quantitative" if unclear; prefer "no" if the mention is too vague. Explain in ambiguities.
  4. Handle visuals carefully. Tag evidence from charts/infographics as [FROM VISUAL: ...] and flag in ambiguities for human verification.
  5. Read the entire report including appendices, assurance statements, GRI indexes, and data tables before coding.

Citation

APA:

Law, K. K. F. (2026). Singapore Sustainability Disclosure Tracker [Dataset]. https://kelvinlaw.me/tracker/tracker-live.html

BibTeX:

@misc{law2026sgtracker,
  author = {Law, Kelvin K. F.},
  title  = {Singapore Sustainability Disclosure Tracker},
  year   = {2026},
  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. For raw data access, contact klaw@ntu.edu.sg.