Independent study, written as a short thesis · คาร์บอนนะ · Thailand · September 2026

Building a system to calculate a forest carbon footprint from public and open data

Open and public data can estimate a landscape. A comparison with Thailand's inventory exposes a discrepancy that requires matched-support investigation. They cannot mint a credit. This study builds the system that keeps those sentences apart, and shows every number that results.

This is an independent study in the form of a short thesis. It is not a university submission, not a degree, and not an official TGO assessment. The working system is called คาร์บอนนะ. The chapters below are the thesis: question, method, evidence, limits, and the design of the public face.

Question
Can a public system calculate a forest carbon footprint for Thailand from open and public data, at the scale of a province, a drawn box, or a project boundary, without pretending the result is an issued credit?
Answer
Yes for a landscape account, and only for that. Satellite biomass, a forest mask, forest loss and gain, fire, and fossil CO₂ can be summed inside one boundary and kept in their own units. No, for a single footprint number, and no, for a credit. Stock is not a period flux. A flux is not a fire emission. A fire emission is not fossil CO₂. None of them is a credit TGO has certified. The national inventory comparison exposes a discrepancy, not an identified map bias. The 1.35–2.0× range is a conditional sensitivity under assumed forest nesting, extra-cover density and allometry (section 06). Both estimates remain visible; neither substitutes for parcel validation.
What was built
An offline ingest that turns public rasters and tables into a ledger where every 100 m pixel belongs to at most one province and exactly one grid cell, so province totals, the national total, and the grid total match. A browser then answers a province, a box, or an imported boundary at once. A separate workbench applies T-VER-S-METH-13-01 v2 only to numbers the user supplies from the field. TGO’s public T-VER list sits beside the map as context, never as an input.
What this does not claim
No trained model, no TGO approval, no validation opinion, no issuance. Atmospheric pictures (aerosol, fire detections, carbon monoxide, column CO₂) are concentrations and detections, not an inventory. Verification fees are not in the registry extract, so they are not priced here.
Thesis parts and where they are argued
Thesis part Where it is argued
The question, and why one number is the wrong answer 01
The calculation, from a measured tree to tCO₂e 02
What a satellite can see, and what still has to be measured 03, 06
Where a model is allowed to work 04
Opening each open dataset before trusting its label 05
Why open data does not become a credit 07
What a first pilot has to earn 08
Who did the work 09
Where the evidence is kept 10
TGO’s registry as context, not an input 11, 12
How far the map can be trusted: uncertainty and the national forest inventory check 06
Why the public name is คาร์บอนนะ 13
Other systems, and whose methods this one uses 14

A person can spend years protecting a forest and still struggle to prove what that work has achieved. The trees are there. The effort is real. The evidence is scattered across survey sheets, maps, government tables and satellite archives. Turning those pieces into a defensible carbon estimate takes work that a beautiful dashboard cannot wish away.

That is the reason for this project. Make the evidence easier to assemble. Make the calculation easier to question. Give the person in the field and the person reviewing the result a shared view of what is known, what was assumed, and what still needs measuring. Technology earns its place when it makes that conversation more honest.

The study grew from an enquiry about AI-assisted forest-carbon assessment from Thailand’s greenhouse-gas management community. The code is public and the calculations are traceable. No TGO endorsement, approved AI model, or credit issuance is claimed.

Contents · 23 chapters

Explore the questions

  1. 01 · Start with the question that matters
  2. 02 · Follow one tonne through the calculation
  3. 03 · What the satellite sees—and what it needs from the field
  4. 04 · Give AI a job it can be tested on
  5. 05 · Open data: open the file before believing the label
  6. 06 · Absorption and emission from space
  7. 07 · Can open data become a carbon credit?
  8. 08 · The first pilot should earn the next one
  9. 09 · The person behind the work
  10. 10 · Keep the evidence within reach
  11. 11 · TGO's T-VER registry — context, not an input
  12. 12 · What the registry says about itself — slices TGO does not aggregate for you
  13. 13 · Why the name is คาร์บอนนะ
  14. 14 · Other systems, and whose methods this one uses
  15. 15 · What can the open data actually identify?
  16. Standards, scope & accountability
  17. 16 · From a forest number to a place worth checking: GFW Forest Watch
  18. 17 · What a carbon footprint is — and which footprint this tool measures
  19. 18 · Climate change and Thailand's forests
  20. 19 · El Niño, La Niña and the burning season
  21. 20 · The life of a credit: issuance, transfer, retirement — and the claim it carries
  22. Southeast Asia · an auditable regional extension
  23. From a useful estimate to a reviewable decision

01 · Start with the question that matters

“How much carbon is in this forest?” and “How many credits can this project receive?” require different evidence. A forest can contain a great deal of carbon without that entire stock being available for a new credit claim.

Quantity Plain meaning What this workbench does
Carbon stock Carbon held in the included tree pools at a date, expressed here as tCO₂e Converts supplied biomass or accepts a compatible total tree-stock estimate
Monitoring-period change The difference between comparable dates, after applicable deductions Calculates a signed estimate from the supplied inputs
Issued credits Units approved and recorded through the relevant programme No registry connection; never inferred from the estimate
Follow the evidence
  1. Define an eligible project and its boundary
  2. Measure comparable tree stocks at two dates
  3. Apply the selected methodology and required deductions
  4. Independent review and programme approval
  5. Registry issuance is a separate external step

The order matters. Drawing a polygon establishes a calculation area; it does not establish land rights. Finding trees establishes vegetation; it does not establish additionality, meaning the benefit required beyond the applicable baseline. A registration count is administrative evidence, not proof that the same carbon has never been claimed elsewhere.

02 · Follow one tonne through the calculation

Trees are measured before they become numbers on a carbon ledger. Diameter and height feed an allometric equation: a relationship developed from measured trees to estimate dry biomass. “Dry” matters because water adds weight without adding the carbon being estimated. The equation must fit the forest and tree group.

The current importer supports the TGO appendix equation for mixed deciduous and dry dipterocarp trees, with DBH at least 4.5 cm. It estimates aboveground biomass from measured trees, then expands the plot total by surveyed area under a single representative-stratum assumption. It does not prove that the sampling design is representative. Empty plots cannot be represented by the current CSV format; do not quietly drop them. See the user guide for coefficients, units and exclusions.

Follow the evidence
  1. Diameter (cm) + height (m) in measured plots
  2. Suitable tree equation → dry aboveground biomass
  3. Expand by surveyed area within a representative stratum
  4. Include roots using the applicable root:shoot ratio
  5. Multiply by carbon fraction, then 44/12 → tCO₂e

For the general-tree factors in TGO tree tool v2, roots are estimated at 0.27 times aboveground biomass and the carbon fraction is 0.47. The factor 44/12 converts carbon mass to the corresponding CO₂ mass. Other tree groups use other factors. If an input already includes roots or is already in tCO₂e, applying those conversions again inflates the answer.

A worked example you can reproduce

Assume the same project's dry aboveground biomass rises from 1,000 to 1,100 tonnes. Keep factors and included pools unchanged. This is synthetic teaching data, not a measured Thai forest.

Step Calculation Result
Aboveground increase 1,100 − 1,000 100 t dry biomass
Include estimated roots 100 × 1.27 127 t total biomass
Convert to carbon 127 × 0.47 59.69 tC
Convert to CO₂ 59.69 × 44/12 218.8633 tCO₂

This is the stock increase before applicable deductions. For an exactly five-year duration, its average is 43.7727 tCO₂ per year. The app instead divides by elapsed days / 365.25; its sample dates therefore produce a slightly different annual average. Neither average creates five additional claims on top of the period total.

The selected accounting reference is Standard T-VER-S-METH-13-01 v2: current tree stock minus baseline or last credited stock, minus prescribed project emissions and leakage. This method does not consider leakage, so that term is zero here. Its fire conditions, eligibility and small-project limit must be checked in the full document. Other activities and programme tiers can require different accounting. A loss stays negative; the software must not hide it behind a zero.

03 · What the satellite sees—and what it needs from the field

The JAXA vegetation page is a useful starting point. It provides routes to vegetation indices, leaf-area information and forest/non-forest products. These observations describe vegetation. They do not measure issued credits.

NDVI compares red and near-infrared reflectance. It can help describe greenness, but a greener pixel is not a universal quantity of stored carbon. Forest type, season, canopy structure and observation conditions affect interpretation. A model connecting imagery to biomass needs suitable measurements and validation.

Source Contribution to a pilot Limit that travels with the data
JAXA PALSAR / PALSAR-2 Radar predictors and forest screening; approximately 25 m mosaics Preserve observation dates, masks and processing versions; check download registration and terms
Sentinel-2 Optical predictors and cloud-screened change evidence Compare usable observations with compatible seasons and processing
NASA GEDI L4A v3 Footprint estimates of aboveground biomass density, prediction errors and quality information Samples are not a continuous parcel census or error-free field truth
Measured field plots Local evidence for fitting and independently testing a model Record sampling design, coordinates, dates, species/group and measurement quality

The project workbench does not use these products: its numbers come only from the user's own measurements. The carbon map (section 06) does use published satellite products — ESA CCI Biomass and JAXA's forest map among them. It runs no model of its own: it re-grids, masks and converts those products, and its landscape figures never feed a project calculation. The street and imagery basemaps are navigation aids, not evidence.

04 · Give AI a job it can be tested on

The useful first AI task is specific: predict biomass for a defined forest type from dated observations, then compare those predictions with independent measurements. A language model can help explain a method or flag a missing field. It should not fill a missing biomass value with a plausible sentence.

Follow the evidence
  1. Match plot locations, survey dates and satellite observations
  2. Separate training plots from spatially independent test plots
  3. Compare a simple baseline with a candidate biomass model
  4. Test bias, prediction error and uncertainty on unseen plots
  5. Document valid scope and obtain required method approval

A tempting shortcut is to split neighboring pixels randomly between training and testing. The test can then reward familiarity with the same landscape. For this pilot, reserve spatially separated plots and inspect error by forest type and biomass range. Compare a simple regression with a candidate such as Random Forest before accepting more complexity. This is a proposed validation design, not a completed experiment.

Uncertainty must follow the calculation. A difference between two uncertain stock maps is itself uncertain. Shared model errors, plot sampling and spatial correlation affect how much confidence to place in the change. Reporting more decimal places does not resolve those errors. The current workbench explicitly exports uncertainty as unavailable; a validated interval remains a prerequisite for a defensible project assessment.

05 · Open data: open the file before believing the label

The research search for “ป่าไม้” in data.go.th on 25 September 2026 returned 570 unique dataset records and 2,111 resource records. These are catalogue counts. They include documents, duplicate-looking resources, file components and links; they are not 570 ready-to-use biomass datasets. Nine selected resource files were downloaded and inspected. The app currently ships 11 normalized province-year observations.

Source inspected What was actually found Decision
Saraburi forest area Seven annual observations, 2018–2024; 2024: 532,177.56 rai Historical province context
Kanchanaburi forest area Four years, 2021–2024; 2024: 7,478,170.33 rai Historical province context; checked unit agreement
RFD forest cover 2019 ZIP contained metadata only; separate geometry headers were probed Full geometry not ingested; CRS is UTM 47N, requiring reprojection
DNP conservation-area carbon Table labelled tCO₂eq without an explicit annual denominator Do not label it yearly credits
Reserved-forest table Inconsistent area units in an inspected row Quarantined; no guessed correction

The full research record, download manifest and normalized province data make these decisions inspectable. A catalogue's “modified” date is not automatically a measurement date. Conflicting or restrictive licences require clarification before reuse.

The RFD dashboard: a useful lead with a visible discrepancy

The Royal Forest Department dashboard, inspected on 25 September 2026, displayed 83,290 plantation registrants, 83,681 plots, 1,447,111 rai and 139,013,341 trees. Its regional registration breakdown summed to 83,217 registrants, a difference of 73. No explicit update date explaining this difference was found during inspection. These are separate observed views; neither has been silently corrected.

The northern drill-down returned 9,480 registrants in Nan and 9,538 in Uttaradit. These counts can inform a discussion about where to seek pilot partners. They cannot establish current living biomass. Public endpoints returned HTML and chart configuration without login; no documented API contract was established. These observations are a dated research snapshot, not a live integration or calculator input.

06 · Absorption and emission from space

The workbench answers a project question: how much has this parcel's measured carbon changed? The carbon map answers a landscape question. How much carbon do a province's forests hold? How much do they take up and release each year? What else is emitted in the same place? It uses published satellite-derived products and runs no model of its own: it re-grids, masks and converts those products, as described below. Every figure in it is a screening estimate, never a credit, and never an input to the project workbench.

Follow the evidence
  1. 100 m satellite biomass (ESA CCI 2020) and the JAXA forest map (FNF 2020)
  2. Each pixel counted once: one province, one 2.8 km grid cell
  3. Forest carbon stock, with a 95% range
  4. Beside it, never added: GFW forest flux, GFED fire, ODIAC fossil CO₂
  5. Cross-checked against Climate TRACE and Thailand's own inventory (BTR1)

Four quantities, four datasets

Quantity What the map shows Dataset Period Resolution
Carbon stock Carbon held in forest trees, tCO₂e ESA CCI Biomass v7.0 aboveground biomass, masked with JAXA PALSAR-2 FNF v2.1.0 2020 100 m
Forest flux Gross removals, gross emissions and their net, tCO₂e per year GFW forest carbon flux v1.4.3 (Harris et al. 2021; Gibbs et al. 2025) Average of 2001–2025 30 m model, summarised by province
Fire CO₂ from all landscape fire, with the share by land type and month GFED5.1 Mean of 2013–2022 0.25° (about 28 km)
Fossil CO₂ Energy, industry and transport emissions ODIAC2025 2024 1 km

Cross-checks: Climate TRACE API v7 forest subsectors by province for 2024, and Thailand's First Biennial Transparency Report (BTR1) for the nation in 2022. Province boundaries are the Royal Thai Survey Department's, published by OCHA/HDX (COD-AB v01).

Where JAXA fits

JAXA's vegetation page offers NDVI, leaf area and a forest/non-forest map. None of these is a carbon stock. The carbon map uses JAXA's 2020 forest/non-forest map in three ways. It is the visible "JAXA forest map (FNF 2020)" layer. It decides which part of each biomass pixel counts as forest. Its land classes also weight how coarse fire and fossil data are spread over land. Both FNF forest classes count: canopy of 90% or more, and canopy between 10% and 90%.

FNF forest is not the Royal Forest Department's forest. FNF maps 44.7% of Thailand as forest in 2020. The Royal Forest Department reports 31.64% (102,353,484.76 rai) for the same year. A radar forest mask sees tree canopy. It does not know whether the trees are natural forest, plantation or a tree crop. Read "forest" on this map as "tree canopy seen by radar", not as a legal or administrative forest.

How a number is computed

One pixel, counted once. Every 100 m biomass pixel is assigned by its centre to at most one province and exactly one 2.8 km grid cell. Provinces, grid cells and the national total are therefore sums of the same pixels. Automated tests check this for every quantity. Thailand's land area computed pixel by pixel is 515,415 km². That matches the boundary file's own attribute (515,416 km²) and is within 0.45% of the official 513,120 km².

From biomass to CO₂e. Stock (tCO₂e) = aboveground biomass (t) × (1 + 0.27) × 0.47 × 44/12. That is 2.1886 tCO₂e per tonne of aboveground biomass. These are the general-tree values of TGO's tree tool, the same ones the workbench uses. IPCC 2019 root-to-shoot ratios for Asian tropical natural forests range from about 0.21 to 0.44 by forest type and biomass class (2019 Refinement, Vol. 4, Ch. 4, Table 4.4). Using that range instead would move total biomass by about −5% to +13%.

Forest share of a pixel. ESA CCI biomass is a mean over the whole pixel, forest or not. Each pixel's biomass is multiplied by the fraction of the pixel that FNF classes as forest. This assumes biomass is spread evenly within the pixel. It also keeps forest plus non-forest equal to the total, so nothing is created or lost.

Coarse data. Fire (0.25°) and fossil CO₂ (1 km) are spread over the 100 m land pixels in each coarse cell in proportion to land area. A coarse cell with no land in the JAXA map, such as a coastal sliver, falls back to plain area, so no emission is lost in the allocation step. Emissions allocated outside Thai province boundaries, such as offshore or across a border, are excluded by design. The Thai fossil total from this allocation differs by 0.3% from a crude alternative that assigns whole 1 km cells by their centre.

Drawn boxes. A box is summed from 2.8 km cells, each weighted by the share of its area on the sphere that falls inside the box. Values are assumed to be spread evenly within a cell. The sum counts Thai land only; parts of a box outside Thailand add nothing. A project boundary imported in the workbench is summed with 16 sample points per cell. In practice box figures therefore have about 2.8 km resolution, not 100 m. A figure is greyed out when the box's shorter side is narrower than the dataset's cell: 2.8 km for stock, 28 km for fire, 1 km for fossil CO₂.

Uncertainty, stated as a range rather than a decimal

ESA CCI publishes a standard deviation for every 100 m pixel. How those errors add up over a province depends on how much neighbouring pixels err together, which a single map cannot tell. The carbon map shows three 95% ranges for the random part of the map error:

Range Assumption Thailand Chiang Mai Samut Songkhram
Floor every pixel errs independently ±0.03% ±0.10% ±1.5%
Central errors fully correlated within 5.6 km blocks, independent between blocks ±1.4% ±4.7% ±43%
Ceiling every pixel errs in the same direction ±110% ±116% ±121%

The central range is tied to the data producer's own error model. ESA's product guide states that its aggregated maps (1, 10, 25 and 50 km) carry a standard error with a variance term and a covariance term, the spatial correlation of errors having been estimated from airborne LiDAR (CCI Biomass Product User Guide v6, §5). The pipeline recomputes, for every fully mapped 10, 25 and 50 km cell in the processing window, the error that the block model gives from the 100 m pixel errors and compares it with the error ESA published for that cell in 2020. With 5.6 km blocks, the model's error is 1.47 times ESA's at 10 km (median of 2,068 cells), 1.23 times at 25 km (197 cells) and 1.32 times at 50 km (18 cells): consistent with ESA's LiDAR-based estimate and on the cautious side at every scale checked. 5.6 km is the smallest block that lines up with the grid the browser uses for drawn boxes. Two limits apply. ESA's aggregates come from a slightly different processing run (BIOMASAR v202509) than the 100 m tiles (v202510); their means are 5–16% below means recomputed from the tiles, so this is consistency, not exact reproduction. And provinces and the nation are larger than 50 km: at those scales the model assumes errors are independent beyond one block, which does not cover a shared bias across a whole region. The ratios are recomputed on every build and stored in the ledger manifest.

All three ranges describe random error only. They exclude systematic map bias, which is usually the larger problem: global biomass maps tend to overestimate low biomass and underestimate high biomass (Araza et al. 2022), and a study of New York State parcels found that spatially correlated residual error dominated (Johnson et al.). The CCI Biomass fact sheet (written for v5; the map uses v7.0) advises checking regional totals against a national forest inventory or field plots, and says estimates for individual full-resolution pixels should not be used on their own (CCI Biomass v5 fact sheet). That check follows, in "Checked against Thailand's forest inventory": the national totals differ, without isolating map bias. GFW's province summaries carry only partial variance components, not a complete flux uncertainty, and the map does not use them. Its global estimate of removals for 2001–2023 is −14.5 ± 7.7 GtCO₂ per year (Gibbs et al. 2025). GFED and ODIAC publish no pixel uncertainty. The ODIAC spatial pattern is itself a model: national totals spread by night lights and point sources.

Checked against Thailand's forest inventory

A satellite map should be checked against field measurements before its totals are trusted. Thailand's forest reference level submitted to the UNFCCC (FREL/FRL, modified July 2021) publishes what the national forest inventory found: mean aboveground biomass per forest type from cycle 3 plots measured 2013–2018 (reference year 2017; Table 13), and the area of each forest type in 2016 (Table 6). The pipeline compares the two at national scale, with a nominal 2017 reference but differing measurement years and forest populations, rather than matched plots against pixels (Réjou-Méchain et al. 2019). Script: scripts/ingest/nfi_check.py; result: nfi-check.json.

National forest inventory (FREL) ESA CCI 2017 over JAXA FNF 2017 forest
Forest area 17.2 Mha ± 0.7 23.8 Mha
Mean aboveground biomass 90.5 ± 5.0 t/ha 165.0 t/ha
Total aboveground biomass 1.56 ± 0.11 Gt 3.94 Gt
Biomass carbon stock (above- and below-ground) 3.48 ± 0.25 Gt CO₂e (FREL root:shoot by type) —

The two forest definitions differ, and that explains part of the gap. The inventory's forest excludes plantations other than teak; radar counts any tree canopy of at least 10% over at least 0.5 ha, including rubber and orchards. Treating inventory forest as a subset of radar forest allows a conditional bound (the figures below assume full nesting; radar misses some sparse dry dipterocarp forest, and inventory forest outside radar forest would lower them). If the map were unbiased on inventory forest, the 6.6 Mha of extra tree cover would have to hold the rest of the map's biomass — an average of 359 t/ha, more than two and a half times the inventory's evergreen forest (136 t/ha). This raises a plausibility question, not a measurement of extra-cover biomass. Under the hypothetical 0–200 t/ha range on the extra tree cover, the map would read 1.7 to 2.5 times the inventory on inventory forest.

In a small validation sample, the FREL tested its Thai allometric equations against 60 felled trees and found they underestimate tree biomass: −13.6% for tropical evergreen, −25.2% for mixed deciduous (Table 10). Applying those sample discrepancies as a national sensitivity scenario raises it to 112.1 ± 6.0 t/ha and 4.28 ± 0.30 Gt CO₂e. Under the same nesting assumption — the extra tree cover would need 303 t/ha against a corrected evergreen mean of 158 — and the conditional map-to-inventory ratio is 1.35 to 2.0 times the inventory. Sixty trees in three parks is a small sample, so this correction is shown as a sensitivity, not applied.

The discrepancy raises concern about possible map overestimation, but differing populations, masks, dates and allometry prevent an identified national bias or a test of the map interval's coverage. Araza et al. (2022) provides broader evidence of biomass-dependent errors, not a Thai correction factor. ESA values and the inventory's 3.48 Gt remain separately labelled. Provinces and boxes are not rescaled: a national ratio across unmatched definitions cannot calibrate parcel biomass. A forest-type comparison was also tried and rejected: the Copernicus LC100 2017 forest-type layer labels 97% of Thai forest evergreen, against about 35% in the inventory, so its strata cannot be matched to the inventory's.

The inventory has its own limits: plot sampling, trees only (saplings and bamboo sit in smaller sub-plots), the equation bias above, and different plot and map years. It is still the nationally designed, field-measured reference available to this research, and the one Thailand reports to the UNFCCC.

Why these figures are never added together

  • GFW forest emissions already include forest loss caused by fire. GFED fire in forest classes, especially its "deforestation" class, may describe some of the same events. They are marked and never added.
  • GFED counts all landscape fire. Its land types come from its own land-cover map. In Thailand 79% of fire carbon falls in its savanna, shrub and grass classes, and only 9% in cropland; in Chiang Mai, where JAXA maps 80% of the land as forest, the savanna group is 90%. Much of this is deciduous forest by Thai definitions, and Thailand's inventory reports wildfire carbon losses on forest land. IPCC practice treats CO₂ from cropland and grassland burning as balanced by regrowth; that assumption does not cover all of this fire. Fire CO₂ is shown as gross emission from burning, not as a net loss of stock.
  • ODIAC excludes land use and biomass burning. Its scope complements the others, but its year and method differ. It sits beside the forest figures and is not netted against them.
  • The only net shown is GFW's own: emissions minus removals within one model. A negative value means the forest is a net sink.
  • Two stock years are never subtracted. ESA warns that differences between CCI years "may be affected by substantial biases" (fact sheet above). The Global Forest Observations Initiative rates change estimated from two biomass maps as research-level (GFOI 2025).

Aerosol is not carbon

The atmosphere layers answer a different question from the ledger:

  • Aerosol optical depth measures particles: dust and smoke. It shows the burning season clearly and contains no CO₂.
  • Carbon monoxide indicates combustion, but it is not CO₂.
  • Column CO₂ (XCO₂) from OCO-2 is a concentration along a narrow orbit track, not an emission.

Directly, plume by plume, satellites can turn XCO₂ into an emission only for large, isolated sources. A study of power plants seen by OCO-2 and OCO-3 kept 106 usable cases out of about 23,000 candidate tracks (Atmospheric Chemistry and Physics, 2023). Atmospheric inversions using OCO-2 estimate coarse national and regional net fluxes (Byrne et al. 2023), not provincial totals. For this reason the atmosphere layers (NASA GIBS) are pictures with labels and never numbers.

Two national accounts, side by side

Account Removals Emissions Net Scope
GFW, average 2001–2025 92.9 Mt/yr 71.7 Mt CO₂e/yr −21.2 Mt CO₂e/yr Satellite-mapped forest with >30% tree cover in 2000, or later gain; stand-replacing loss
BTR1 2022, forest land remaining forest 49.0 Mt 19.7 Mt −29.3 Mt Managed land by national definitions
BTR1 2022, land converted to cropland — 12.5 Mt +12.5 Mt Conversion to cropland
BTR1 2022, whole LULUCF sector 156.8 Mt 48.6 Mt −107.9 Mt Includes cropland remaining cropland, −91.5 Mt

Sources: GFW row, sum of the 77 province summaries divided by 25 (equal to GFW's own country table); GFW emissions include methane and nitrous oxide. BTR1 rows, Table 2-184, page 2-241, million tonnes; removals and emissions are CO₂, and the sector net also includes 0.27 Mt of methane and nitrous oxide from biomass burning. Most of Thailand's reported land sink sits in cropland remaining cropland, not forest. A satellite forest model and a national inventory also define "forest" and "anthropogenic" differently. Global bookkeeping models and national inventories differ by about 6.7 GtCO₂ per year for similar definitional reasons (Grassi et al. 2023). The carbon map shows both and chooses neither.

Tree cover lost, year by year

The flux figures above are 25-year totals. What a province usually asks is different: are we losing forest, how fast, and why? GFW publishes the same flux model year by year (carbonflux_adm1_change v20260327), with the same filter the ledger uses (tree cover ≥ 30% in 2000, inside the model extent). scripts/ingest/build_loss.py cooks it into one series per province and for Thailand, shown under the carbon figures when a province or the whole country is selected.

The first split matters most. Tree cover loss is not deforestation: rubber, eucalyptus and oil palm are cut and replanted, and the loss map counts that harvest. GFW's plantation map separates it. Of the 2.80 million ha of tree cover lost in 2001–2025, 0.99 million ha fell inside mapped plantations and 1.81 million ha outside them. The rest of the series is built on the loss outside plantations:

Quantity Thailand, 2001–2025 Source field
Loss outside plantations 1,812,331 ha gfw_plantation_flux_model__type = Not applicable
… in primary forest (2001) 116,033 ha is__umd_regional_primary_forest_2001
… in a protected area 226,953 ha wdpa_protected_areas__iucn_cat (any category)
Loss inside plantations 990,377 ha other plantation types
Main driver outside plantations Permanent agriculture, 80% WRI/Google dominant driver, one class per 1 km cell

Three checks run on every build and in tests/loss.test.mjs: outside + inside plantations equals all loss in every province and year; the provinces add up to Thailand; and the 25-year emissions from the yearly table equal the summary table the ledger already ships, within 0.5%. Two limits stay visible beside the chart. The map records loss and not regrowth, so these are gross figures. And a driver is the dominant one in a 1 km cell, not a cause traced for each hectare. A drawn box has no yearly series, because GFW publishes it by province.

The ranking and map layer divide the 2021–2025 average by each province's tree cover outside plantations in 2000 (umd_tree_cover_extent_2000__ha, same filter), so a large province does not top the list by size alone. Thailand's rate is 0.43% a year (73,857 ha a year, against 100,635 ha in 2016–2020). The ten highest are all in the south or peninsula, led by Krabi (1.84%), Songkhla (1.58%) and Chumphon (1.37%), and in nine of the ten the main driver is permanent agriculture (79–98% of the loss); Phuket is the exception, with settlements and infrastructure at 52%. Treat that with care. GFW's plantation map can miss smallholder rubber and oil palm, so part of this "outside plantations" loss may be tree crops being cut and replanted. The denominator is the year 2000 and does not shrink as forest goes, so the rate is a screening comparison between provinces, not a forest-loss statistic. The two halves of the denominator rebuild the extent the ledger already ships, within 0.5% in every province. public/data/gfw/loss-years.csv holds every province-year with its source in each row.

Biomass year by year, and what can be said about change

The stock figures above are for 2020. ESA CCI Biomass v7.0 also publishes a map for every year from 2015 to 2024, and scripts/ingest/build_stock_years.py sums each one over all land in every province, with no forest mask, so a cleared forest shows as a fall. Thailand's aboveground biomass runs from 4,361 Mt in 2015 to 4,372 Mt in 2024, staying between 4,294 and 4,408 Mt. The 2020 value equals the ledger in every province.

The page converts it to tCO₂e with the same factor as the stock figures, roots included. Those yearly numbers are not a trend, so the site shows their range and a table rather than a chart of them. ESA's Product User Guide v7 (§3) says fluctuations from year to year are expected because each year uses different radar observations, and (§4) strongly advises reading any biomass difference through its quality flag, calling change maps research products. So change is reported only through ESA's classes: a pixel "reliably" fell or rose when its two 1-SD ranges do not overlap, "possibly" when they partly do, and otherwise shows no reliable change. A rise faster than 10 Mg/ha a year is also treated as no reliable change. The flags use ESA's own create_change_maps.py logic on 2017 and 2024; the window starts in 2017 because the guide notes thinner Sentinel-1 coverage before spring of that year.

Every build checks the flags against the one annual product ESA publishes, 2019–2020, on Thai land pixels: agreement is 99.9996% overall and 99.996% on changed pixels, and the build fails below 99.5% and 98%. Between 2017 and 2024, of the land holding biomass, 6.8% reliably fell, 1.7% possibly fell, 76.7% shows no reliable change, 6.4% possibly rose and 8.3% reliably rose. These are shares of 100 m pixels. They are not hectares of deforestation or planting, and they should not be added to or compared with the GFW loss figures above: the two come from different sensors and definitions.

Checks performed

Run on 26 September 2026:

  • Conservation. Provinces, grid cells and a box covering Thailand all reproduce the national total for every quantity. Split boxes add up to the whole box.
  • Boundary crosswalk. All 77 COD-AB province names match Climate TRACE's GADM names one to one. GFW rows are joined by the same GADM numbers, and GFW's province areas agree with COD-AB within 6.7%, which confirms the numbering.
  • Fossil CO₂. ODIAC's 2024 total for Thailand is 290.0 Mt. BTR1 reports 271.1 Mt of CO₂ excluding land use for 2022 (Table 2-3), of which energy is 241.3 Mt and industrial processes 28.6 Mt. The scopes differ (ODIAC covers fossil combustion, cement and flaring), the years differ, and ODIAC projects recent years from energy statistics.
  • Fire season. 83% of fire carbon falls in February–April, and March alone is 44%. This matches the northern burning season.
  • Chiang Mai. GFED fire CO₂ is 12.1 Mt per year (2013–2022, all land types). Climate TRACE forest-land fires are 6.3 MtCO₂e (2024, forest only). The scopes differ; the order of magnitude agrees.
  • Provenance. Every source file's URL, size, SHA-256 and retrieval date is in the ledger manifest. The processing code is scripts/ingest/build_ledger.py.

What this map cannot tell you

  • Credits, eligibility or additionality. A satellite removal figure has no baseline, no leakage deduction, no permanence buffer and no independent verification. See the ICVCM Core Carbon Principles.
  • An approved method. T-VER remote-sensing models need TGO approval. These products have none for project use.
  • Current conditions. Stock is for 2020, forest flux is a 2001–2025 average, fire is 2013–2022 and fossil CO₂ is 2024.
  • Flux inside a drawn box. GFW's 30 m grids require an API key and are not yet ingested. The map says so instead of showing zero.

07 · Can open data become a carbon credit?

Short answer: no. Open and public data can screen a candidate, supply dated context, and flag what still needs measuring — but no satellite, catalogue or model output in this system is a credit, and none becomes one by arithmetic. A credit is minted outside this system, by people and a registry, after three gates that open data cannot pass on its own.

The three quantities from section 01 still govern everything below: carbon stock, monitoring-period change, and issued credits stay separate. Open data speaks fluently about the first, approximately about the second at landscape scale, and not at all about the third.

Three gates no satellite passes

A credit needs three things that are not pixels. First, rights and eligibility: who holds the land, whether the activity is additional to the baseline, and whether the same carbon has been claimed elsewhere. A polygon proves none of this. Second, an approved method with a baseline: T-VER-S-METH-13-01 v2 (or the method that fits the activity) names the pools, the equation CSEQ = CTT(t) − CTT(i) − PE − GHG_LEAK, the fire conditions (burned area above 5% with canopy fire causing tree death), and the small-project screen of 16,000 tCO₂e per year. An unapproved model — however accurate — is not a method. Third, independent validation and a registry: a second qualified party reproduces the result, the programme approves, and units are recorded. This pilot connects to no registry and runs no approved model; it says so on every screen.

How the system would work — three lanes, three gates

Lane 1 · Open data — screening and context

  • ESA CCI Biomass v7.0 (2020, 100 m) → stock context for a candidate area
  • JAXA FNF v2.1.0 (2020, 25 m) → forest mask and visible change screening
  • GFW flux v1.4.3 (2001–2025 average, province) → removals and emissions context, net only
  • GFED5.1 (2013–2022, 0.25°) → dated fire evidence by month and land type
  • ODIAC2025 (2024, 1 km) → fossil context, shown beside — never netted
  • COD-AB v01 (valid 2022-01-22) → province boundaries for orientation
  • Climate TRACE API v7 (2024) and BTR1 (2022) → independent cross-checks

This lane never mints a credit. Its job is to say where to look and what to verify.

A Gate A · Rights, eligibility and baseline — decided by people and documents

Lane 2 · Field and approved method — the only path to a credit number

  • Versioned boundary plus land rights → the calculation area becomes a project
  • Measured plots at two comparable dates → dry biomass both sides of the period
  • T-VER-S-METH-13-01 v2 arithmetic → CSEQ minus prescribed fire emissions
  • Stated uncertainty and exclusions → the result travels with its limits

The workbench lives here: user-supplied measurements in, reproducible arithmetic out.

B Gate B · Independent validation — a second qualified party reproduces the result

Lane 3 · Registry — external to this system

  • Programme approval → eligibility, baseline and monitoring plan accepted
  • Issuance → units recorded; open data never appears in this lane

Dashed because it happens elsewhere. No integration is claimed.

The pipeline, with open data in its place

Follow the evidence
  1. Open data screens candidates: FNF mask, CCI v7.0 stock context, GFW v1.4.3 flux context
  2. Gate A: rights, eligibility and baseline decided by people and documents
  3. Field plots at two comparable dates under T-VER-S-METH-13-01 v2
  4. CSEQ minus prescribed fire emissions; uncertainty travels with the result
  5. Gate B: independent validation reproduces the calculation
  6. Registry issuance is external; open data never appears there

What each open dataset can and cannot prove

Credit ingredient Open-data support (version, period) What open data can never supply
Project boundary and rights COD-AB v01 boundaries (valid 2022-01-22) for orientation; data.go.th community-forest rows as partner leads Tenure, consent, additionality, proof against double claiming
Stock context ESA CCI Biomass v7.0 (2020, 100 m) masked by JAXA FNF v2.1.0 (2020, 25 m) Parcel stock at credit dates; approved-method status
Flux context GFW flux v1.4.3 (2001–2025 average, province) Baseline, leakage, permanence buffer, verification
Fire deduction evidence GFED5.1 (2013–2022, 0.25°) by month and group Whether canopy fire killed trees on the parcel — that needs the field
Fossil context, never netted ODIAC2025 (2024, 1 km) Anything about the forest credit
Independent cross-checks Climate TRACE API v7 (2024, province); BTR1 Table 2-184 (2022, nation) A second opinion is not validation

A walk-through with teaching numbers

Reuse the section 02 teaching case — dry aboveground biomass rising from 1,000 to 1,100 tonnes — and watch each number change hands:

Follow the evidence
  1. Screening: FNF v2.1.0 mask plus CCI v7.0 stock context for the candidate area
  2. Field evidence: dry aboveground biomass 1,000 to 1,100 tonnes (teaching numbers, not a measured forest)
  3. CSEQ arithmetic: 100 × 1.27 × 0.47 × 44/12 = 218.8633 tCO₂ before deductions
  4. Deductions and screens: fire over 5% with canopy death, 16,000 tCO₂e per year limit, stated uncertainty
  5. Validation and registry decide; the screening estimate is never the claim

The screening numbers and the credit number meet only at Gate B, where a validator reproduces the field arithmetic — never by copying a satellite total into the claim. GFW's own net (−21.2 MtCO₂e per year for Thailand, 2001–2025) stays a landscape context beside the claim; GFED fire stays gross burning, not net loss; ODIAC fossil CO₂ stays beside the forest figures, never netted. The workbench enforces the same separation: its numbers come only from user-supplied measurements, and landscape figures never feed it.

What would have to change — and what this pilot already does

For an open-data pipeline to end in a real credit, three external things must exist: a remote-sensing model with TGO approval for the activity (the four approved platforms announced 13 June 2025 hold their own approvals, which do not transfer to this application); parcel-scale flux access without a key barrier (GFW's 30 m grids need an API key this pilot does not hold); and a registry integration with independent verification (this pilot has neither and claims neither). Until then, the honest system is the one drawn above: open data screens and contextualises, fieldwork plus an approved method produces the number, people and the registry decide. This pilot already runs the middle of that drawing — reproducible arithmetic with all inputs, dates, versions and limits attached — so that when the gates open, the evidence is ready to walk through them.

08 · The first pilot should earn the next one

Start with one project whose boundary, rights, methodology and field records can be checked. Agree on the decision first: screening a candidate, estimating stock, or preparing monitoring evidence. Each requires a different level of proof.

Follow the evidence
  1. One project: boundary, rights, applicable methodology
  2. Baseline and repeat field evidence with dates and units
  3. Reproduce the calculation and challenge the assumptions
  4. Independent validation and uncertainty assessment
  5. Review with the relevant programme before expanding

A useful pilot pack includes a versioned boundary, the project's registration details where applicable, sampling design, plot measurements at comparable dates, disturbance records, and permission to use the data. If an approved remote-sensing provider is involved, obtain its output definitions, approved scope and uncertainty documentation. An approval held by another platform does not transfer to this application.

The pilot succeeds when another qualified person can reproduce the result, explain its limits and identify the measurements that would change the conclusion. That is a harder target than making the map look convincing. It is also a target worth building for.

09 · The person behind the work

Dr Non Arkaraprasertkul speaking with a microphone

Dr Non Arkaraprasertkul

Architect, anthropologist and civic-systems builder. His public profile describes architectural training at MIT, anthropology at Harvard, and work in smart-city promotion at Thailand's Digital Economy Promotion Agency (depa).

The connection to forest carbon is a design question: how can complicated evidence become usable by people making decisions? This project applies that question to boundaries, measurements and the public record behind each estimate.

Personal website · Public projects · LinkedIn

Portrait source: RMIT Vietnam's profile. Biography checked against that page and the personal website on 25 September 2026. Institutional affiliations provide background; this independent pilot does not claim institutional endorsement. No personal quotation or fieldwork story has been invented for this page.

10 · Keep the evidence within reach

The Thai guide and English guide cover actual use, formulas, file formats and deployment. The source catalogue records the supplied references. Code and tests are public, together with the original research audit. Official documents linked above govern their own methods; this page is an explanation, not a replacement.

Open the workbench, try the clearly labelled synthetic example, and follow a number back to its inputs. Then ask what evidence would be needed to replace that example with a real forest. That is where this work becomes useful.

11 · TGO's T-VER registry — context, not an input

Thailand Greenhouse Gas Management Organization (TGO) is a public organisation under the Ministry of Natural Resources and Environment, established by royal decree in 2007 (amended 2019 and 2025). It runs the Thailand Voluntary Emission Reduction Program (T-VER) and its registry, licenses carbon labels, and registers the external bodies that validate and verify projects. The national greenhouse-gas inventory is now reported by the Department of Climate Change and Environment (DCCE); Thailand's BTR1, cited in section 06, is a DCCE publication.

On 13 June 2025 TGO presented four remote-sensing platforms that had met its assessment criteria for estimating forest carbon sequestration in T-VER forestry projects: GISTDA Carbon Atlas, THAICOM CarbonWatch, SCGC CERT+ and Varuna Smart Forest (PTT group) (TGO news). The release says they reduce time and cost; it gives no percentage, and it does not describe them as verification. External bodies still verify. Each recognition belongs to that platform. This application is an independent, open screening tool and claims no TGO recognition.

The TGO T-VER database publishes its full project list without login. A snapshot taken on 28 September 2026, limited to the forestry and agriculture sector (FOR&AGR), shows:

  • 257 registered projects, with a combined ex-ante expectation of 2,194,333 tCO₂e per year (median project 771 tCO₂e/yr)
  • 31 projects have had credits issued, 733,914 tCO₂e in total
  • 75 projects include ป่าชุมชน (community forest) in the registered name. The extract does not record the legal instrument behind them.
  • 32 projects mention mangrove (ชายเลน) in the name or methodology. The mangrove methodology tag is on 3; the rest use a general forestry method. The Department of Marine and Coastal Resources is the developer on 30 of the 32.
  • 246 projects are Standard T-VER and 11 are Premium T-VER. Status: 253 active, 2 ended, 1 in revalidation, 1 withdrawn.

Few issuances so far — mostly because most projects are new

31 of 257 projects (12.1%) have received credits. Read by the year of registration, the figure is a timing effect before it is anything else:

Registered Projects With credits issued Share
2021 or earlier 27 15 56%
2022–2023 30 12 40%
2024–2026 200 4 2%

Four in five projects were registered in 2024–2026. Most have not yet reached the end of a first monitoring period, so no credit could have been issued. This snapshot cannot tell whether verification cost also holds projects back: it contains no verification fees, and the page does not estimate them.

What the OTC tape in the snapshot shows: forestry and agriculture trades total 379,304 tCO₂e at a volume-weighted average of ฿416/tCO₂e. Yearly averages run from ฿279 in 2023 (308,030 tCO₂e, the largest year) to ฿2,000 in 2022 (1,270 tCO₂e). There is no stable price band in these data.

Standard and Premium T-VER, as registered

Standard T-VER Premium T-VER
Forestry & agriculture methodologies in use (codes as printed) S-METH-13-01 to 13-06 and their predecessors (METH-FOR-01…04, METH-AGR-01/02) P-METH-13-01 (A/R), 13-02 (mangrove), 13-03 (REDD+), 13-05 (IFM), 13-08 (rice)
Crediting periods registered in this snapshot 10 yr (180 projects), 7 yr (35), 20 yr (25), others 9–23 yr (6) 5 yr (3), 15 yr (5), 20 yr (2), 39 yr (1)
Projects 246 (95.7%) 11 (4.3%)
Earliest crediting start September 2013 July 2023
International use Domestic voluntary use Premium credits are listed as CORSIA-eligible for the 2024–2026 phase; use under Article 6 needs a letter of authorization and a corresponding adjustment, which is not automatic

The crediting periods are measured from each project's start and end dates in the registry, not taken from programme rules. Five Standard projects list a P-METH methodology code; the table keeps the codes as TGO prints them. TGO's Premium rules include a non-permanence buffer; its size is set by TGO's buffer tool and is not reproduced here. The small Premium count mostly reflects how new the programme is.

Double-counting screen at the boundary

TGO's listing and detail pages describe locations as text addresses. Where maps or coordinates exist, they sit inside each project's registration document (a PDF linked from the detail page), not in a machine-readable layer. Checking whether a new parcel overlaps a registered one therefore still needs those documents.

This workbench narrows the search when a boundary is imported:

  • It tests the boundary against the official COD-AB province boundaries.
  • It lists T-VER projects registered in those provinces, with developer, methodology family and crediting term.
  • It shows their combined expected and issued tonnes. A multi-province project's full tonnage appears in every province it names, so these screen totals are not additive.

Sharing a province is not overlap, and it says nothing about additionality. It tells a developer which registration documents to open first.

The Climate Change Bill (status as of September 2026)

Cabinet approved a draft Climate Change Act in principle on 2 December 2025 and sent it to the Council of State (JETRO). Parliament held a public consultation on a bill from 25 May to 24 June 2026, and press coverage in July 2026 still described it as a draft. The drafts include mandatory reporting for large emitters, an emissions trading system and a carbon tax. ICAP reports that DCCE would establish the trading system's registry and that TGO-certified credits could cover a limited share of compliance obligations. Final text, timing and the registry arrangement remain open until enactment.

A reproducible fetch pipeline

scripts/ingest/tgo.py fetches the project list, each forestry project's detail page and the reported OTC trades:

  1. It uses research/raw/tgo/ as a local cache, so repeated runs do not re-download.
  2. It records a SHA-256 fingerprint of the cached raw files in the output.
  3. It assigns a province automatically only when the address text contains จ. or จังหวัด, which avoids false matches on ordinary words that are also province names (เลย, แพร่, ตาก).
  4. Twelve other cases were reviewed by hand; each decision and its reason is in scripts/ingest/tgo_province_overrides.json.
  5. It stops if single-province, multi-province and unlocated totals do not add up to the national totals, or if any project's issuance records do not add up to its listed total.

The output, public/data/tgo/tver-forestry.json (about 390 KB), carries 257 projects tagged with 8 methodology families in use (A/R, large-scale A/R, REDD+, plantation, mangrove, IFM, agricultural land, perennial crops; the peat tag has no projects) and 31 issuance histories.

Why registry figures are context, never project carbon inputs

The registry data on the map describe institutions: where projects are registered, what they expect and what has been issued. Satellite stock (CCI Biomass v7.0, JAXA FNF v2.1.0) and forest flux (GFW v1.4.3) are never added to, subtracted from or divided by registry figures. They sit side by side, each with its source.

12 · What the registry says about itself — slices TGO does not aggregate for you

Pulling all 257 records turns TGO's flat listing into slices the public site does not aggregate. They appear in the T-VER block of the national map view, beside the project list and the OTC table. The figures below were computed from the snapshot data/tgo/tver-forestry.json (28 September 2026); the app computes the same slices from that file.

Slice What it says
Issuance by age 31 of 257 projects (12.1%) have received credits: 56% of projects registered by 2021, 40% of 2022–23, 2% of 2024–26. The 226 without issuance carry an ex-ante expectation of 1,982,918 tCO₂e/yr. That expectation is not a removal and not a credit.
Methodology coverage Family tags, not a partition: reg. 001 carries both A/R and REDD+, and 23 projects have no methodology text. Tags: A/R 110, REDD+ 69, perennial 30, agricultural land 10, plantation 8, A/R large 4, mangrove 3, IFM 1. Mangrove, plantation and IFM have no credits issued. The largest unissued group is A/R, 102 of 110.
Project size (TGO's label) Micro 144, small 89, large 24. Of the micro projects, 45 include ป่าชุมชน in the name (31%). Of the large projects, 13 are perennial-crop projects, 10 of them by the Rubber Authority of Thailand.
Programme and form Standard 246, Premium 11 · single or bundled 243, programme of activities 14.
Developers By project count: Royal Forest Department 35, Department of Marine and Coastal Resources 27, BAAC 12, Rubber Authority of Thailand 10, Department of National Parks 9. By expected tCO₂e/yr: Rubber Authority 653,175, Royal Forest Department 458,576, DMCR 210,920. Names are kept as printed, so two spellings of one foundation stay separate.
Where Ranked by expected tonnes of single-province projects: Nan, Chiang Rai, Surat Thani, Rayong and Chiang Mai hold 33.3% of national expected volume. Multi-province projects (52; 1,075,734 tCO₂e/yr) are outside this ranking. Single-province 199, multi-province 52, no province named 6.
Issuance timeline (tCO₂e) 2016 1.5k, 2017 16, 2018 0.8k, 2022 5.6k, 2023 130k, 2024 424k, 2025 57k, 2026 115k to date. Of 2024, 419,513 tCO₂e (98.9%) is one REDD+ issuance: Doi Tung Development Project, Chiang Rai (reg. 077).
OTC trades (FOR&AGR) Yearly average ฿279 (2023) to ฿2,000 (2022); yearly volume 16 tCO₂e (2021) to 308,030 tCO₂e (2023); volume-weighted average ฿416/tCO₂e. 2026 is year-to-date.

Why this is useful to TGO without being an integration

The slices come from one static snapshot of TGO's public listing. They are not a registry connection, not a verification and not an audit. They are the same data, sliced:

  • No login and no API key. The browser reads data/tgo/tver-forestry.json once.
  • No server processing. Every aggregate runs in the browser.
  • No silent drift. tests/tgo.test.mjs checks that single-province, multi-province and unlocated projects reconcile with the national totals, that 31 projects have issuance, and that every issuance history sums to its project total.
  • Reproducible. scripts/ingest/tgo.py rebuilds the snapshot from the cached raw pages.

Further views TGO may want — retirements by project, vintages, corresponding-adjustment status — would need data the public listing does not carry. Views of what it does carry are small additions to the same snapshot.

13 · Why the name is คาร์บอนนะ

Brand update · 2 October 2026: the owner supplied the CT leaf identity now used in the header, browser icon and mobile web app. Character update · 4 November 2026: the six teaching poses are now Nong Non (น้องนนท์) — the initiator himself as a boy, drawn from his own childhood photographs. A person's own face is the one likeness this project can ship without borrowing one. The face keeps every property the section below cites: large head, large eyes, small body, square props, the same navy and the same two accents. The earlier round-creature exploration stays on disk under images/kabonna/.

The official product name is Carbona, or คาร์บอนนะ in Thai, from 21 October 2026. The name, the mark and the six poses are soft on purpose. Softness is how a person who is not a carbon accountant finds the tab, says the name, and stays. It is not how a tonne is calculated. The ledger, the sources and the uncertainty stay in the square record. The face never sits on a number.

คาร์บอนนะCarbona

The name is a hedge you can hear

คาร์บอนนะ combines the standard Thai spelling of carbon with the particle นะ. The ending softens an utterance; it does not establish the truth of a carbon claim. No official Japanese name is specified. The field this tool sits next to is full of acronyms: TGO, T-VER, CCI, GFW, ODIAC. A distinctive name can help someone find the tool (von Restorff, 1933); it cannot replace source evidence or verification.

The softness is also the claim the product is willing to make. An estimate is not a credit. A name that already sounds like it is checking with you — “carbon, yeah?” — is harder to mistake for a stamp.

Why a round face belongs in a square interface

Faces with a large head, large eyes and a small body are what Lorenz called the baby schema. Glocker and colleagues manipulated those features in infant photographs and found that they raised both rated cuteness and the reported wish to look after the infant (Glocker et al., 2009). Applying that to a drawn mascot is an extrapolation, not a result of the study. The hope is that a familiar face helps readers return to an explanation. That navigation benefit has not been tested here. Nittono and colleagues found that looking at cute images can make the next small task more careful, and can narrow attention (Nittono et al., 2012). That is a reason to hope someone looks closely. It is not a reason to believe the arithmetic got better. A face cannot check a tonne. The carefulness still has to be in the sources, the factors and the tests.

So the mascot is allowed to be round, and almost nothing else is. The map, the rules, the tables and the three props the character holds — the viewing square, the plot flag, the stop palm — stay square, in the same paper, navy and yellow as the rest of the screen. One leaf is forest green, from the stock map. The other is yellow, the only accent. Curves are the exception that makes the face work. They stop at the face.

Six poses, six jobs

The same character, so the face stays one memory. The pose changes, so the face can carry a job without being pasted onto a result.

  • Nong Non wavingGreetOpen hands welcome the reader. Nong Non introduces the notebook; the CT leaf remains the product mark.
  • Nong Non looking at the square beside himLookA square, the drawn box and the satellite cell. Looking is not a verdict.
  • Nong Non holding a leaf and a plume apartBothA leaf in one hand, a plume in the other, with a gap. Absorption and emission are shown together and never added.
  • Nong Non planting a small flagMeasureA flag in a small square plot. Field evidence, not a guess from the portrait.
  • Nong Non puzzled, mouth openWonderEyes up, mouth open. The uncertain part stays visible. Not knowing is a pose, not a hole to be filled with a zero.
  • Nong Non holding up a yellow squareStopPalm forward. The cute layer ends before a credit. Issued units are not this character's job.

Greet is the only pose that keeps the product's name line live across both notebooks — the header itself has carried the owner's CT-leaf mark since 2 October, so the public face on screen is the leaf, not a boy. Look, Both, Measure and Wonder are the work: see the area, keep the two sides apart, ask for a plot, and leave the uncertainty on the screen. Stop is the limit of the whole idea. Cuteness that crosses into the credit line would spend the trust the baby schema borrowed. The boy can wave. He cannot certify.

Global data sources, cadence and fallback rules / แหล่งข้อมูลโลกและรอบการอัปเดต.

14 · Other systems, and whose methods this one uses

Forest-carbon estimation from space is a crowded field. The systems below were reviewed on 29 September 2026 from their own public pages. Where a system publishes no accuracy figure, the table says so rather than guessing one.

System Method, as published Resolution Open? Accuracy it reports
GISTDA Carbon Atlas ALOS-2, Sentinel-1/2, Landsat-8, GEDI forest height and SRTM terrain with AI/ML; over 1,000 field plots measured by terrestrial laser scanning Not stated Free viewer; model not published "Verified accuracy", no figure given
THAICOM CarbonWatch High-resolution imagery and AI Not stated Commercial Not published on its technology page
SCGC CERT+ Imagery to tree height and crown width, then biomass Not stated Commercial Not published
Varuna Smart Forest (TGO announcement) Satellite, drone and ground data with AI, as described by the company Not stated Commercial Not published
CTrees AGB Yearly aboveground biomass density with an uncertainty layer, 2000–2025 100 m Open (CC BY 4.0) Not stated on the dataset page
Kanop Machine-learning biomass model from satellite imagery, checked against LiDAR-derived maps 30 m Commercial Site level: RMSE 41.7 t DM/ha (27%), R² 0.73 over 110 sites; 30 m pixel level: RMSE 94.9 t DM/ha (vendor)
Sylvera Ground, drone and airborne LiDAR chained to satellite models; annual since 2000 30 m Commercial "Project-area errors below 10% for projects over 400 ha" (vendor claim)
Chloris Geospatial Yearly biomass stocks with per-pixel uncertainty Not stated Commercial Says it is validated against NEON field plots, airborne LiDAR and GEDI; figures not on the page
Planet Forest Carbon Diligence Canopy height and cover from airborne LiDAR, carbon from GEDI L4A footprints 30 m Commercial Validation report exists; figures not extracted
Global Forest Watch flux Activity data × emission and removal factors ~30 m Open Global net −5.5 ± 8.1 GtCO₂e/yr (Gibbs et al. 2025)

The four Thai platforms are the ones TGO recognised for T-VER forestry work in June 2025 (section 11). None publishes an accuracy figure that can be checked. The global vendors publish validation reports, mostly for their own models against LiDAR.

What คาร์บอนนะ does differently

Of the systems in this list, it is the one that publishes all of the following together for Thailand (Global Forest Watch also publishes open code for its flux model):

  • Its whole method and code, including the offline pipeline, the fetch log with file hashes, and the tests.
  • A conservation rule: provinces, drawn boxes and the national total are sums of the same 100 m pixels and are tested to agree.
  • An uncertainty range calibrated to the data producer: the central random-error model was tuned against producer aggregates; median SD ratios are 1.23–1.47 across differing processing runs. This is a consistency diagnostic, not independent coverage validation (section 06).
  • A check against Thailand's own forest inventory, across unmatched national forest populations, with published inventory uncertainty and an explicitly conditional allometric sensitivity (section 06).
  • Registry context kept apart from estimates: TGO's registered and issued tonnes sit beside the satellite figures and are never added to them (sections 11–12).

It is also free and needs no account. It does not claim higher accuracy than the commercial systems, and it is not a replacement for a verified project method.

What the others do that this one does not yet

  • Higher resolution and LiDAR-trained models (Sylvera, Kanop, Planet). The 100 m ESA map cannot see individual trees, and drawn boxes work at about 2.8 km.
  • Annual time series (CTrees, Chloris, Sylvera). This map uses one stock year. CCI v7 has yearly maps and a change product with its own quality flag, which would allow change estimates without subtracting two maps naively.
  • Field-calibrated models for Thai forest types (GISTDA). Here, Thai field data enter only as a national check, not as a calibration.
  • More than one biomass map. Map-to-map disagreement is often larger than any single map's stated error (Araza et al. 2023). Adding CTrees AGB (CC BY 4.0, yearly, with uncertainty) as a second map would show that spread by province.
  • Sample-based province estimates from GEDI lidar footprints combined with the map through small-area estimation (Ståhl et al. 2016). This needs an Earthdata account.

These are the next improvements, in roughly that order of value for the effort.

Methods used here, and whom they come from

Step Method Credit
Biomass per 100 m pixel, with error ESA CCI Biomass v7.0 Santoro and Cartus, ESA Climate Change Initiative (DOI 10.5285/6429d1aafe1e43b9b414e4a5a7f8b903)
Forest fraction of each pixel JAXA ALOS-2 PALSAR-2 forest/non-forest map JAXA EORC
Biomass to CO₂e AGB × (1 + R) × CF × 44/12 IPCC 2006 Vol. 4; TGO T-VER-S-TOOL-01-01 v2 factors
Error aggregation with spatial correlation Variance plus covariance, correlation from airborne LiDAR; approximated here with a block model tuned to producer aggregates, not independently validated ESA CCI Biomass PUG v6 §5; propagation along the tree–plot–pixel chain after Réjou-Méchain et al. 2019; spatial aggregation of map uncertainty after Wadoux and Heuvelink 2023
National map versus inventory discrepancy Unmatched national populations; published inventory uncertainty and conditional scenarios Réjou-Méchain et al. 2019; Araza et al. 2022; Thailand FREL/FRL 2021
Rejected forest-type matching experiment Copernicus LC100 v3.0.1, 2017; 97% evergreen versus ~35% in NFI, not used for matched validation Buchhorn et al., Copernicus Global Land Service (CC BY 4.0)
Forest carbon flux Gain–loss model with 30 m activity data Harris et al. 2021; Gibbs et al. 2025
Fire emissions GFED5.1 van der Werf, Chen and colleagues
Fossil CO₂ ODIAC2025 Oda and Maksyutov, NIES
Double-counting screen Province match from TGO addresses TGO public T-VER database

15 · What can the open data actually identify?

The research question and the verdict

For each target quantity in Carbona, do the available observations identify it at the requested spatial and temporal support, and what independent evidence would make the inference defensible? “PhD-level” here means a falsifiable question, explicit assumptions, reproducible experiments and attention to contrary evidence. It does not mean a degree, peer review, official verification or a completed field campaign.

Our conclusion is useful precisely because it is bounded: the deployed products support a model-conditioned landscape account and reproducible calculations from user-supplied measurements. They do not independently identify current parcel biomass, project-attributable mitigation, organizational emissions or credit entitlement. More layers can improve an estimate; they cannot remove a missing counterfactual or establish rights.

1. What the system tries to know

An estimand is the quantity we intend to estimate, with its population, boundary, pools and date. Let θ be that quantity, y the sensor observation, and h the process linking them: y = h(θ, environment, sensor) + error. If two plausible states of the world produce the same y but different θ, the available observations alone do not identify θ. A fitted model supplies assumptions and calibration; it is not a direct carbon measurement.

GFOI states: “no space-based technology directly measures forest AGB stocks or stock-changes” (2025 guidance, Chapter 2, p. 2). This supports the distinction between sensor response and estimated biomass. Our inference is that every product must carry an observation-to-model-to-decision chain.

Target Available evidence Identification and missing evidence
2020 forest biomass stock within a province ESA CCI v7.0 AGB, JAXA FNF v2.1.0 mask, administrative area, R/CF Conditional estimate for the product-defined population; local bias, mask error and factor uncertainty remain
Current stock of a particular parcel One deployed 2020 map; coarse web aggregation Not identified for today; needs suitable dated local observations, support matching and validation
Historical forest flux GFW v1.4.3 province summaries, 2001–2025 totals Model-defined period average; not a current annual observation or a drawn-box flux
Monitoring-period tree-stock change User measurements and dates; implemented TGO arithmetic Conditional calculation; sampling uncertainty and cross-date covariance are not supplied
Project-attributable mitigation Stock or loss observations alone Not identified; applicable baseline/additionality requirements, monitoring and external review remain
Organizational footprint Province inventories and satellite context Not identified; needs organization boundary, activity records, scopes and applicable emission factors
Issued or retired credits Public registry snapshot Issuance can be read as a dated record; retirement, entitlement and transactions need their own records
What is observed, inferred and decided
  1. Observe
    Radar, light, field dimensions, meter readings
  2. Infer
    Biomass, stock, flux or inventory under a named model
  3. Validate
    Independent reference, error, support and transferability
  4. Decide
    Eligibility, verification, issuance or retirement

2. Evidence hierarchy, lineage and contrary findings

The literature review is targeted, not exhaustive or a PRISMA systematic review. Searches on 2 October 2026 covered ESA CCI v7 uncertainty/change, GEDI quality/transferability, biomass-validation protocols, spatial cross-validation and forest-credit counterfactuals. Primary product guides, original papers and official methodology documents were preferred. The source review log records source age, section, role and limitations. A source's recent date does not prove suitability to Thailand.

  • ESA CCI v7.0: the Product User Guide, 19 March 2026, §§3.3–3.4, 4–6, describes validation, local limitations, change products and aggregation. The deployed source remains 2020; newer documentation does not refresh its observation year. Dedicated change products are candidates for research, not an integration now present in Carbona.
  • CEOS validation: the 2021 good-practices protocol, chapters on reference data and validation, is the basis for the proposed support-matching and independent-reference work. A small plot and a hectare pixel are different sampling supports.
  • GEDI: L4A v3, Quality Assessment and Dataset Revisions, model revision 5 June 2026; guide revision 2 September 2026, is a candidate source. A footprint biomass prediction and its standard error are not error-free ground truth. Quality fields must be read from that version; a v2.1 filtering recipe must not be assumed unchanged. No GEDI shots are ingested by this release.
  • Validation dependence: Roberts et al. 2017, pp. 913–916 explain why dependent train/test samples can understate predictive error. Blocking must match the intended deployment task; a very distant holdout tests transfer, not merely interpolation.
  • Contrary evidence: our NFI comparison exposes a national discrepancy. It does not isolate a measured map bias. Forest definitions and areas do not match; the 1.35–2.0× result is conditional on nesting, hypothetical extra-cover density and an allometric sensitivity. The fresh review found that the previous introduction overstated this as “measured bias”; that wording has been corrected in both languages and on the map.

Do not count agreement among products as multiple independent confirmations without checking lineage. ESA's retrieval incorporates lidar information; comparing it with GEDI can be an intercomparison with shared inputs. Independent validation needs held-out references whose measurement and training relationships are documented. The complete dependency graph remains an open audit task, so no independence is assumed.

3. Experiments executed now

The following experiments run against the deployed ledger, with exact input hashes. They are numerical diagnostics and explicitly labelled hypothetical sensitivities. None is an independent field-accuracy experiment. Re-run with npm run build; inspect scripts/scientific-audit.mjs and the machine-readable result.

Executed diagnostics on deployed data

A reproducible analysis of 77 provinces. These results test arithmetic and sensitivity; they are not field-validation results. · JSON + SHA-256 ↗

DiagnosticResultInterpretation
National random-error half-range±1.36%Block and normal assumptions; systematic bias excluded
Median provincial random-error half-range±11.34%77 provinces; not field RMSE
Hypothetical R +0.05+3.94%Algebraic sensitivity; not a confidence interval
Hypothetical CF +0.01+2.13%Calculator factors unchanged

Two-date change depends on error correlation

Hypothetical: stock SD at each date = 10 tCO₂; observed difference = 20 tCO₂. The app does not estimate ρ.

ρHypothetical 95% half-range (tCO₂)Difference interval includes zero?
-0.533.95Yes
027.72Yes
0.519.6No
0.98.77No
10No

Sensitivity to grid-edge sampling

One illustrative triangle on the actual grid. 16×16 is a denser approximation, not truth or a general error bound.

Samples per sideAGB (tonnes)Difference from 16×16
167,709.21-11.93%
476,104.22-1.01%
876,765.6-0.15%
1676,878.570%

Plan sampling without inventing a fixed plot count

CV = SD / mean; e is the target relative half-width; design effect is design variance divided by independent-sample variance. Illustrative planning: n ≈ ceil[(1.96 × CV / e)² × design effect], with e = 10%. Pilot estimates of CV and the sampling structure are required. These are not TGO minimums.

CVIndependent unitsDesign effect = 2
0.33570
0.6139277
1385769

Dataset versions used in this audit

DatasetVersionPeriod / year
cciv7.02020
fnfv2.1.02020
gfwv1.4.3 (data-api v20260327)2001–2025
gfedGFED5.12013–2022
odiacODIAC20252024
codabv01 (valid 2022-01-22)—
climatetraceAPI v72024
btr1Thailand's First Biennial Transparency Report2022

Input hashes are in the JSON; hypothetical assumptions are separate from observations. No new model training, field additionality assessment or proof of 95% interval coverage was performed. · 2026-10-02 · afdad6a

The factor perturbations are deliberately declared before interpretation: R ±0.05 and CF ±0.01. They are not empirical standard errors or proposed replacement factors. Since S = AGB(1+R)CF(44/12), the exact relative responses are ΔR/(1+R) and ΔCF/CF. Shared factor error does not disappear when thousands of pixels are added. This is why a narrow random-map range cannot be read as total uncertainty.

For change, Var(S₁−S₀) = Var(S₁)+Var(S₀)−2Cov(S₁,S₀). Assuming independence without evidence may overstate or understate uncertainty, depending on the covariance. The synthetic experiment shows how the same apparent change can include or exclude zero under different assumed correlations. Even a statistically detectable change does not establish additionality.

The 4×4 versus 16×16 polygon difference applies to one deliberately chosen triangle. It measures sensitivity of the web-grid approximation, not error against the original 100 m raster or the true forest boundary. Conservation checks show arithmetic consistency; they cannot detect a source-wide bias.

4. The counterfactual that imagery cannot supply

Consider identical observations: stock is 100 at the start and 110 at the end. If the no-project outcome would have been 110, additional change is zero; if it would have been 105, additional change is five. The imagery alone cannot distinguish those worlds. This is a conceptual example, not a substitute equation for T-VER-S-METH-13-01 v2. Apply the approved method's actual baseline and additionality rules.

Holland 1986, pp. 945–950 provides the causal-inference distinction. In forest conservation, West et al. 2023, corrected 31 January 2024 found problems with attribution under studied baselines. A 2023 rebuttal preprint disputes aspects of that analysis. This contested literature motivates scrutiny of comparator selection and pre-trends; it does not demonstrate failure of Thai T-VER projects or supply a universal discount.

5. A validation protocol that can actually reject the model

This is a prospective protocol, documented before acquiring new validation outcomes. It is not an externally registered preregistration. The following tasks require field/reference access that is absent from this repository.

  1. Freeze the target. Choose a forest type, biomass pools, reporting dates, intended parcel/stratum scale and acceptable decision error with the scientific reviewer. Map the field and product forest definitions. Identify legal/credit questions separately.
  2. Design the sample. Use probability-based plots or a justified cluster design across the target domain, retaining zero-tree plots. Record strata, inclusion probabilities, GPS uncertainty, plot extent, date, DBH, height, species/wood-density source and disturbance history. The current CSV importer does not represent zero-tree plots; retain them in the external survey dataset. Estimate CV and design effect in a pilot; set the sample size from precision and representation, not an invented universal plot count.
  3. Match support and time. Resolve plot–footprint–pixel differences, terrain and geolocation. Define exclusion rules before examining prediction residuals. Document temporal mismatches and retention after each quality filter.
  4. Freeze splits. Reserve spatial blocks and a genuinely later-time test; keep repeated plots, flight lines and shared-reference clusters together. Estimate separation from dependence and the actual deployment range. Never tune preprocessing, features or hyperparameters on the final holdout.
  5. Compare candidates. Include an area/stratum mean baseline, the unchanged open product, and a simple local regression before considering a more complex model. Fit on training data only. If validation labels come from another model, call the result agreement with that model, not accuracy against nature.
  6. Report uncertainty and failure. Weighted bias, MAE, RMSE, calibration slope/intercept and interval coverage must be reported by stratum, biomass range and support. R² alone is insufficient. Use held-out block/cluster resampling appropriate to the design; carry reference measurement error, allometric error, mask error and temporal covariance. Small evaluation samples cannot certify nominal 95% coverage.
  7. Set the release gate. Before testing, record decision-specific tolerances with their owner. Reject a candidate that does not improve the intended held-out task, misses the agreed bias/coverage target, or extrapolates beyond represented conditions. Numerical tolerances have not been agreed, so this audit does not invent a “passed scientific accuracy” threshold.
  8. Separate publication from issuance. Publish code, factor versions, data-access conditions and failed cases. Assess approved-method requirements separately. A paper or predictive score cannot authorize credit issuance.
A research sequence with a real stopping rule
  1. Define estimand + decision tolerance
  2. Acquire independent, support-matched references
  3. Train / tune without the held-out test
  4. Evaluate bias, error and coverage
  5. Reject, restrict domain, or document a bounded release

6. What would change the conclusion?

A matched-support, independently designed Thai reference sample could quantify local map bias and show whether a locally calibrated model transfers. Paired measurements with documented covariance could validate a monitoring-change interval. An eligible project dossier and assurance opinion could support a credit submission; an issuance/retirement record could establish the registry event. None has been fabricated here.

Our own bias is the wish to make open data useful and the fact that we are auditing a system we built. A fresh reviewer was therefore given the scientific spec and source files, without the author's defence. One material overclaim was confirmed and corrected; the rest remains bounded by the unverified field, temporal and causal tests above. This is a research-strengthened pilot, not an airtight scientific guarantee.

Standards, scope & accountability

Research and assessment pilot · not certified credits. The features below support selected practices relevant to ISO standards. This is a design mapping, not a clause-by-clause conformity assessment, ISO certification or assurance opinion.

ISO 14064-2:2019 · Project accounting
Project boundaries, baseline and monitoring dates, named factors and reproducible exports support transparent quantification. Complete project eligibility, baseline justification and monitoring plans remain project-specific work.
ISO 14064-3:2019 · Validation and verification
Sources, versions, assumptions and calculation records support independent review. No independent validation or verification has been performed by this software.
ISO 14065:2020 · Verification bodies
Relevant when appointing an environmental-information validation or verification body. It applies to those bodies; this application is not an accredited verifier.

T-VER programme rules and the applicable approved methodology govern eligibility and issuance. Satellite stock is not a monitoring-period credit. Aerosol imagery is context, not a carbon-credit measurement.

User project files are processed in browser memory; exports are your record. Map providers receive tile requests. The server retrieves public global feeds. Source licences and dates apply. Organisation marks identify the project context; they do not establish endorsement, ISO certification or TGO approval. Standards references checked 26 September 2026.

16 · From a forest number to a place worth checking: GFW Forest Watch

A carbon estimate is more useful when it helps someone decide where to go next. GFW's portal separates discoverable datasets, source metadata, downloads and alerts. We adopt that discipline: a versioned, inspectable alert snapshot beside the carbon ledger, with a field-investigation path instead of a new claim to credits.

Implemented: gadm__integrated_alerts__adm1_daily_alerts v20261005, Thailand, 5 September–4 October 2026 (end-exclusive 5 October), filtered to is__tree_cover_2022=true. The API returns hectares and alert-pixel counts grouped by province, detection date and confidence. This is the legacy integrated deforestation-alert product (UMD/GLAD + WUR), not the newer global DIST-ALERT vegetation-disturbance product. Source metadata, download and provenance.

The rail separates nominal, high and highest confidence. Its headline is high + highest area, not an event count; its daily chart includes all confidence levels. Province buttons identify the five largest recorded high/highest areas. This is an investigation priority within the query, not a forest-risk score or normalized province comparison. Large provinces, sensor availability, weather and detection lag affect totals. The integrated grid is 10 m; resampling does not create new 10 m Landsat information. Confidence upgrades and removals of unconfirmed alerts can revise historical totals. A zero is absence of recorded detections, not proof of intact forest.

Dated detection
Confidence + context
Imagery + field check
Project monitoring method

No alert is converted into tonnes, assigned to a drawn parcel, deducted from a project or treated as an issued-credit reversal. Province context remains separate from the workbench. JSON export includes the complete selected snapshot; carbon CSV retains only carbon rows. Public files include the exact query, raw SHA-256, mask, dates, attribution and CC BY 4.0 licence. The ingestion script rejects unknown provinces, unexpected confidence values, negative areas and out-of-window dates. Tests reconcile national, province and daily totals.

Reproduction: python3 scripts/ingest/gfw_watch.py --date 2026-10-05. Future refreshes must select an available dataset version and rebuild/deploy; the snapshot does not silently refresh. No user boundary is sent to GFW. The public CSV download succeeded without authentication; absent CORS is handled by offline ingestion. An account subscription alone does not configure a Data API key: none is configured here. Authenticated raster ingestion remains a separate step, so drawn-area flux remains unavailable.

17 · What a carbon footprint is — and which footprint this tool measures

Short answer: a carbon footprint is an emissions account assigned to something you can name — a product, a company, a city, a country — over a stated period, inside a stated boundary. This workbench computes none of those inventories. It screens the forest carbon of a landscape. The two meet at exactly one honest point: an organization that intends to claim forest credits must first know its own footprint, and neither number is allowed to cancel the other. Reduction is claimed against the footprint; removal is claimed by the project; the credit is issued only after section 07's three gates.

The scopes, in one paragraph each

The GHG Protocol Corporate Standard (revised 2004) divided a company's emissions into three scopes, and the vocabulary stuck far beyond companies. Scope 1 is what you burn yourself: fuel in owned vehicles and boilers, process emissions, fugitive releases. Scope 2 is the energy you buy — electricity, steam, heat — accounted with dated grid factors, location-based or market-based, and the choice must be disclosed. Scope 3 is everything up and down the value chain: the Corporate Value Chain Standard (2011) names fifteen categories from purchased goods to end-of-life treatment, and in most sectors Scope 3 dominates the total. A product footprint asks the same question per unit of function through life-cycle assessment (ISO 14040/14044; ISO 14067 for the carbon claim). A territorial inventory asks it per country under the IPCC 2006 Guidelines — that is the shape of Thailand's BTR1 (2022), the same report the carbon map carries as a cross-check. Consumption-based accounting then reassigns trade: the emissions of imported goods follow the importer, not the exporter.

Footprint Governing standard Unit Period This tool's role
Corporate inventory GHG Protocol Corporate + Scope 3 · ISO 14064-1:2018 tCO₂e per year, by scope Reporting year None — no activity data is collected here
Product footprint ISO 14067:2018 via LCA (ISO 14040/14044) tCO₂e per functional unit Life cycle None
Territorial inventory IPCC 2006 Guidelines · Thailand's BTR1 (2022) MtCO₂e per year Calendar year Cross-check table beside the map
Landscape screening This workbench, from open data tCO₂e stock · tCO₂e/yr flux Each dataset's own period The tool itself
Credit project T-VER-S-METH-13-01 v2 (or the fitting method) tCO₂e over a monitoring period Baseline → monitoring date Arithmetic for supplied measurements only
Follow the evidence
  1. Footprint: who emitted, inside which boundary
  2. Reduction: change the activities
  3. Residual emissions remain
  4. Removal: a project grows or protects carbon
  5. Credit: only after rights, method and verification

Four rules survive every one of these frameworks, and this tool borrows each of them. Boundaries come before numbers: a footprint without a stated boundary is a mood, not an account. Scopes never cancel: a forest sink does not shrink a Scope 1 figure — exactly as the map never nets forest flux against fossil CO₂; ODIAC2025 sits beside, never inside. Factors are dated: a grid factor without its year is unusable — the same discipline that puts a version and period on every ledger row. The causal order matters: reduction comes before removal is counted, because a credit bought before any reduction is a transfer, not a claim of change.

What a footprint cannot do

A footprint is a scale, not a licence. Knowing an organization's tonnes does not make its reductions additional, its baselines defensible, or its credits real — that is section 07's territory. Conversely, a beautiful forest estimate does not shrink anyone's footprint. When a presenter shows one number to answer the other question, stop the meeting and ask which account is on screen.

18 · Climate change and Thailand's forests

Short answer: climate change is the reason this accounting exists, and it reaches Thai forests through water and fire more than through temperature alone. The most recent assessed decade (2011–2020) stood about 1.09 °C above the 1850–1900 baseline (IPCC AR6 WG1, 2021); the WMO reported 2023 as the warmest year on record at about 1.45 °C. For the current figure, read the WMO's annual State of the Global Climate — this notebook dates its knowledge and does not quote a moving number as if it stood still.

Thailand's commitments, as documents rather than slogans

Thailand's announced long-term targets are carbon neutrality by 2050 and net-zero greenhouse-gas emissions by 2065, announced at COP26 in Glasgow. The binding arithmetic lives in UNFCCC documents: the Nationally Determined Contribution registered for 2030 and the Biennial Transparency Report (BTR1, 2022) whose LULUCF table the map displays beside GFW's satellite view. Those two views differ by definition, not by error — the national inventory counts managed land under national definitions; GFW counts satellite-mapped forest ecosystems. The tool shows both and chooses neither. Read the current NDC document for the binding percentage; a slogan with a number and no boundary is not a target.

What warming does to these forests — through water and fire

The dry season sharpens: more weeks of high fire weather across the deciduous North, which is precisely the February–April peak the GFED chart shows. Drought stress lowers growth — removals — before it raises mortality — emissions; a flux average like GFW's 2001–2025 spans wet and dry regimes, so the period label on the row is doing real work. Mangroves face sea-level rise on top of the conversion pressure documented in the field observations; a mangrove project therefore carries both a carbon case and an adaptation case. And there is an accounting irony worth saying plainly: forests are Thailand's largest sink and its most climate-exposed asset. The same fire season that drives the ledger's emissions can destroy the stock a credit was issued against — which is why reversals, buffers and permanence belong to the registry's world, not to a screening tool.

Follow the evidence
  1. Warming shifts rainfall and lengthens the dry season
  2. Fire weather rises across the deciduous North
  3. Drought stress lowers growth first, mortality later
  4. GFW forest emissions rise; GFED Feb–Apr peak sharpens
  5. GFW removals soften
  6. Baseline and permanence risk for any credit

What this tool can and cannot say about climate

It can say dated things: a 2001–2025 flux average that spans El Niño and La Niña years, a monthly fire seasonality measured over 2013–2022, an official inventory table from 2022, and alerts from the last 30 days. It cannot say forecast things: no climate projection is a carbon input here, no single year is attributed to a single cause, and no scenario replaces a measurement. Climate data in this tool is context for decisions — where to look, what to verify — exactly as section 05 demanded of every other dataset.

19 · El Niño, La Niña and the burning season

Short answer: ENSO — the El Niño–Southern Oscillation — is the Pacific's multi-year rhythm, and it modulates precisely the quantities this tool charts: rainfall, fire and forest flux across Southeast Asia. The 2023–24 El Niño was the strongest since 2015–16, peaking near +2.0 °C on NOAA's Oceanic Niño Index in late 2023 before fading to neutral during 2024. For the current phase, read the ONI series itself — this notebook dates its own knowledge instead of pretending to today's value.

The index, in three sentences

NOAA's Climate Prediction Center publishes the Oceanic Niño Index (ONI): the three-month running mean sea-surface-temperature anomaly in the Niño 3.4 region (5°N–5°S, 170°W–120°W). El Niño is declared when the anomaly holds at or above +0.5 °C, La Niña at or below −0.5 °C; thresholds of +1.0, +1.5 and +2.0 grade events into moderate, strong and very strong. The index is dated, versioned and public — the same honest-envelope discipline this tool applies to every carbon number.

Event Phase Approximate ONI peak Consequence in this region
1997–98 Very strong El Niño ≈ +2.4 Indonesia's peat fires — the textbook emission episode
2015–16 Very strong El Niño ≈ +2.6 Severe Indonesian fire and haze year; regional drought
2020–23 Triple-dip La Niña ≈ −1.0 to −1.3 Three consecutive cooler events; a different fire geography
2023–24 Strong El Niño ≈ +2.0 Regional drought; strongest since 2015–16; faded to neutral in 2024

Rounded from NOAA CPC's ONI series; read the series for exact monthly values and the current phase.

What ENSO does to the numbers on this map

El Niño's fingerprint on mainland Southeast Asia is a longer, sharper dry season. Fire follows fuel moisture with a lag, so El Niño years load the February–April burning season that the GFED monthly chart shows in every year of its average. Indonesia's great fire years — 1997–98 and 2015–16 — were El Niño years; Thailand's own burning-season severity swings with the same forcing year by year, inside the average. GFW's flux figure here is a 2001–2025 mean that deliberately spans strong El Niño years, the triple La Niña and everything between. That is exactly why the tool prints the period on the label: an average that includes 2015 is not a typical year, and one dry year is not a trend.

Follow the evidence
  1. ENSO state: ONI at or beyond ±0.5 °C
  2. Rainfall shifts over Maritime and Mainland Southeast Asia
  3. Fuel moisture falls through the dry season
  4. Escaped fires multiply — the Feb–Apr peak sharpens
  5. GFW forest emissions rise for that year
  6. Wetter phase: removals recover
  7. Read beside the dated average — never netted into it

What ENSO is not, here

The ONI is context, not input. No ENSO phase enters the CSEQ arithmetic, the stock bands or the fire rows; a forecast is not an observation; and attributing one province's bad fire year to El Niño requires more than a correlation, because the same season carries land-management decisions inside it. The tool's role is narrower and more useful: date every quantity, show the burning season where it lives in the data, and let Forest Watch's 30-day alerts carry the recent, dated reality that an ENSO phase only partially explains.

20 · The life of a credit: issuance, transfer, retirement — and the claim it carries

Short answer: a credit is a registry entry with a serial number, a vintage and a status. Its life has four stations — issuance, holding and transfer, retirement, and the public claim — and only the retirement date tells you when the environmental argument was actually spent. Nothing in this tool performs any of these steps; sections 11–12 show one registry's issuance-side snapshot precisely so a reader can tell the stations apart when someone hands them a credit story.

The four stations

Issuance is where units come into existence: a qualified party verifies measured change against an approved methodology, and the registry mints units carrying a vintage (the monitoring period) and serials. Issued is not the same as sold, and sold is not the same as used — the T-VER snapshot in this tool shows the gap plainly: 257 registered projects, 31 with credits certified at all. Holding and transfer move ownership between registry accounts; a transfer changes who owns the argument, not the atmosphere. Double-claiming risk lives here, which is why serials exist: one unit, one claim, ever. Retirement (or cancellation) marks a unit permanently used — a held unit is an asset, a retired unit is a spent one. The claim is what the retiree then says in public, and it is the station where the market's confusion concentrates.

Station What changes What must never change Where a reader verifies
Issuance Units come into existence Methodology version, monitoring dates, vintage Registry project page
Transfer Owner of record Serial, vintage, status stays unspent Registry holding records
Retirement Status: available → used, permanently Serial, vintage, the period it was measured over Registry retirement records
Claim A public statement attaches to the retirement Scope and period of the claim must match the unit's The claimant's report, audited against the registry
Follow the evidence
  1. Monitoring period: measured, dated change
  2. Verification by a qualified party
  3. Issuance: units minted with serials and vintage
  4. Holding and transfer: ownership moves, atmosphere does not
  5. Retirement: the unit is permanently used
  6. The claim: what the retirement is said to mean

Vintage, serials and the registries' own vocabulary

A vintage names the monitoring period the tonnes were measured over; a 2020-vintage credit retired in 2026 argues about 2020, not 2026. A serial (registry–project–period–batch) makes one unit traceable and non-duplicable across its whole life. Registries publish what they will publish: some list retirements publicly, and some — including TGO for T-VER — do not publish per-project transfers and retirements at all, which this tool's registry notes say outright. Where retirement records are not public, a claim cannot be independently checked against the registry, and the honest response is to say so rather than to round the gap away.

Article 6, in one honest paragraph

The Paris Agreement's Article 6 lets countries cooperate: 6.2 governs bilaterally traded internationally transferred mitigation outcomes (ITMOs), 6.4 defines a new central crediting mechanism, and both require corresponding adjustments so the selling country's inventory does not count the same tonnes its buyer claims — double counting between countries, not just between companies. Thailand's side of this machinery lives in its FREL and its BTR submissions, both referenced elsewhere in this notebook. The workbench displays none of it: Article 6 is context for reading national claims, not a calculation any map can perform.

The claim discipline

A retirement is permanent; the claim built on it is a separate artefact with its own rules. Offsetting-style claims ("this product is carbon neutral") require the retirement to match the claimed scope and period, and must follow the claim language their framework allows — ISO 14068-1:2023 now governs carbon-neutrality claims and phases them toward net-zero transition claims, and the GHG Protocol is revising how market instruments interact with scope accounting. Contribution-style claims ("we funded the restoration of X hectares, expected to remove Y tonnes over Z years") are the more defensible shape: they describe a funding act, not a cancelled debt. Five questions audit any credit claim: which registry, which serial and vintage, retired or merely held, does the claimed scope and period match the unit, and who verified the underlying change. A claim that cannot answer all five is a story, not an accounting entry.

Where this tool stops

Deliberately before all of it. The workbench screens landscapes with open data, computes supplied measurements under a named Thai method, and shows dated registry context — it issues, holds, transfers and retires nothing. The credit chapters (07, 11, 12 and this one) exist so that the distance between a satellite image and a spent serial number is never invisible to the person being asked to believe in it.

Southeast Asia · an auditable regional extension

Open the 11-country map or the regional Bible. Brunei, Cambodia, Indonesia, Lao PDR, Malaysia, Myanmar, Philippines, Singapore, Thailand, Timor-Leste and Viet Nam are included. The original Thai project workflow remains separate. The 17 new bilingual chapters cover six methods and eleven country research profiles.

Comparability is a contract

A regional comparison needs the same construct, unit, period and boundary within each column. The regional table deliberately keeps FAO forest area, GFW forest flux and EDGAR/IEA non-LULUCF CO₂ in different columns. National forest definitions, a satellite model's extent and a territorial emissions boundary are different objects. A common country code does not make them one inventory.

The ingestion script requests the exact eleven ISO3 codes and checks identity, uniqueness, finite values and period. Forest area and share use 2023, matching the displayed CO₂ year. WDI reports its own source update date separately from the observation year. The GFW source remains pinned to v20260327 for a comparable 25-year window. A refresh does not relabel those observations as 2026.

Show the arithmetic and the missingness

Forest hectares = published km² × 100. This is a unit conversion, not a biomass estimate.

Mean annual GFW quantity = reported 2001–2025 period quantity ÷ 25. Mg equals a metric tonne. Gross removals are positive quantities in their own column. Net is positive for a source and negative for a sink. The displayed net uses GFW's own reported net, with a check against emissions minus removals allowing small source rounding differences.

Regional total for metric j = Σ country j, only when all eleven country records contain that metric. If one value is absent, the regional total is withheld rather than presenting a partial sum as the whole region. Do not average country percentages. A weighted regional share would require matching land-area denominators; that headline is not implemented here.

Why no regional carbon balance?

Subtracting GFW forest removals from EDGAR CO₂ would mix a long-run forest-model mean with one year's territorial CO₂ outside LULUCF. It would omit gases and other land-use processes, and could misrepresent the model boundary. The system therefore provides context side by side and no synthesized national or regional net across sources. The only forest net is GFW's own.

What was checked, and what was not

The pipeline checks complete country geometry coverage, valid numerical values, source-internal GFW net consistency, regional sums and reconciliation of Thailand's GFW emissions/removals against the existing ledger. An independent ADM0 summary endpoint returned 404. That unavailable cross-check is recorded, not counted as a passed test. No independent field accuracy or model interval coverage has been established for the regional extension.

Each original response is hashed and cached outside the public site. The public snapshot contains its source URLs, units, dates, versions, licence and digest. The 137 kB country geometry is a rounded cartographic derivative; its areas are never substituted for FAO statistics. If a source changes definition or revises history, retain the prior snapshot and describe the revision before comparing releases.

Source versions / รุ่นข้อมูล

From a useful estimate to a reviewable decision

This is an operating protocol authored for this release, not an external validation opinion. Read the four linked methods below; their teaching arithmetic is separate from the deployed forest figures.

Choose the decision before the number

Carbon Bible →

Start with the decision, not a layer

A client asks, “How much carbon is here?” Write down what “here” and “carbon” mean before opening a map. Is the decision to prioritize a field visit, report an organization's annual emissions, estimate tree biomass change, or support an application to a credit programme? These decisions need different evidence. A green map can be useful without answering all four questions.

The following is our operating decision guide, not a new accounting standard. GHG Protocol's inventory/project comparison distinguishes an inventory within a reporting boundary from the effect of an intervention against a counterfactual. A national forest model adds another scale. An issued unit needs its own registry evidence.

Decision Minimum evidence Appropriate result Stop if…
Compare countries Same source, period, definition and unit Dated national context Someone interprets a country mean as a parcel measurement
Plan a forest survey Boundary, ecosystem, access and proposed strata Sampling and evidence plan Accessible plots are treated as representative without justification
Estimate measured stock change Compatible dated measurements, area and method Conditional change estimate Dates, units or expansion areas are incompatible
Compile a corporate footprint Activities, reporting boundary and applicable factors Inventory by scope A forest sink is subtracted from unrelated activity emissions
Support a credit claim Rights, eligible method, baseline, monitoring, review and registry evidence Evidence pack for the relevant programme Software output is presented as issuance

Walk through one site

Imagine a cooperative considering ten hectares of restoration. That is a teaching scenario, not a real project. Use the map to understand the surrounding landscape. Then obtain the actual boundary and land-use history. Identify which pools and activities the applicable method covers. Design a representative survey, record dated measurements and keep the original records. A regional forest-cover percentage cannot fill those records.

Before comparing two visits, confirm that both cover the same population and area, and that tree dimensions, allometry, root treatment and carbon fraction are compatible. If methods changed, document a bridge or recomputation. Do not interpret a better map or a newly included plot as extra tree growth.

The workbench can trace supplied measurements through its implemented Thai method. It does not establish the cooperative's rights or eligibility. For another Southeast Asian country, the national screen and research profile help frame the enquiry; they do not activate a country project methodology.

Use the first session to make an evidence request

Leave the first meeting with a named decision owner, reporting period, boundary version, list of missing records, responsible data owners and review date. Ask who will be affected by field access and who can challenge the proposed interpretation. Missing records stay missing. An LLM may help organize questions; it must not invent measurements, land rights or registry serials.

A useful result can be “we can screen this location, but cannot estimate eligible credits yet.” That answer protects the next investment in evidence. Reopen the conclusion when a new boundary, local measurements, programme decision or revised source changes the question. Document the reason rather than overwriting the original result.

Work uncertainty without hiding assumptions

Carbon Bible →

A precise-looking answer can still be uncertain

Separate uncertainty in measurements and parameters from uncertainty about the model and the question itself. Repeating a calculation proves that the software is deterministic; it does not prove that the input represents the forest. A narrow interval can coexist with systematic error, an unsuitable allometric equation or the wrong boundary.

The examples below are newly authored teaching calculations. They are not uncertainty estimates for Carbona's countries, forests or credit projects. The deployed landscape's own three random-error scenarios and inventory discrepancy remain separate.

Work an activity-factor example

Let illustrative activity A = 1,000 kWh and factor f = 0.50 kgCO₂e/kWh. The result is E = A × f = 500 kgCO₂e, or 0.50 tCO₂e. Suppose the standard uncertainties are u(A) = 50 kWh and u(f) = 0.05 kgCO₂e/kWh. These factors and uncertainties are hypothetical, not current grid values.

For independent inputs, a first-order propagation is:

u(E)² ≈ f²u(A)² + A²u(f)² = 0.5² × 50² + 1000² × 0.05² = 3125 (kgCO₂e)²

u(E) ≈ 55.90 kgCO₂e

Under an approximately normal, adequately supported distribution, a teaching interval using 1.96 × standard uncertainty is 390.43–609.57 kgCO₂e. Normality, large-sample approximation and independence are assumptions, not facts supplied by a spreadsheet. Correlation adds the term 2Af Cov(A,f). Do not report this interval if those assumptions cannot be defended; describe the unresolved sources instead.

Why correlation changes a forest-change result

Suppose two hypothetical stock estimates have standard uncertainties of 10 tCO₂e each. Their difference has:

u(Δ)² = 10² + 10² − 2ρ × 10 × 10

If ρ = 0, u(Δ) = 14.14 tCO₂e. If ρ = 0.8, u(Δ) = 6.32 tCO₂e. Shared errors can partly cancel in a difference. This does not justify choosing a high correlation because it gives a smaller interval. Estimate or justify the covariance with an appropriate repeated-measurement design and independent evidence. A changing sensor, forest mask, equation or sampling frame can introduce additional error that this simple example omits.

Spatial correlation matters too. Thousands of nearby pixels do not automatically provide thousands of independent observations. The deployed block-correlation scenario is a sensitivity assumption, not proof of interval coverage. Agreement between related producer products is not an independent field test.

Write a usable uncertainty statement

Record the quantity and unit, coverage period, random components, covariance assumptions, distribution, calculation method and exclusions. State whether the interval is standard uncertainty, a statistical confidence interval, a prediction interval or a scenario range; these terms are not interchangeable. Keep systematic uncertainty and boundary mismatch visible even if no defensible numerical distribution exists.

Use sensitivity analysis to decide what to measure next. Change one assumption at a time, then examine defensible joint scenarios. If the decision changes under plausible inputs, request more evidence or state the conditional decision. A programme's prescribed conservative deduction is a separate rule; it must not be invented from this teaching interval. Neither an interval nor a lower bound creates an entitlement to credits.

Prepare an evidence pack another person can reproduce

Carbon Bible →

Make the calculation easy to challenge

A screenshot communicates a result. An evidence pack lets another person examine it. Build the pack while collecting records, rather than reconstructing it after a client asks how the number was obtained. IPCC's national-inventory QA/QC chapter provides a useful historical distinction between routine checks and review. The folder structure below is our practical adaptation for this system, not an IPCC submission template or a verification opinion.

Keep six connected records

Record What to keep A useful rejection test
Decision brief Purpose, intended audience, claim, owner and reporting period Can the reviewer tell screening from an inventory or a credit application?
Boundary register Geometry version, CRS, area basis, exclusions and rights evidence where applicable Can the same physical extent and accounting boundary be reconstructed?
Input register Original measurement or activity, unit, date, collector, evidence ID and corrections Does each input point to a real record rather than a model-generated explanation?
Method register Equation, parameter source, applicable edition, assumptions and exclusions Can another analyst reproduce the unit conversions and know why this method applies?
Result and uncertainty Unrounded calculation, display rounding, missing values, scenarios and warnings Does a missing value remain missing in the export?
Review and change log Checker, issue, resolution, date, approval scope and superseded version Can someone recover the previous conclusion and explain the change?

Use stable evidence IDs rather than personal names in public deliverables. Keep permission to disclose each record separate from permission to calculate with it. Landholder information and precise field locations may need controlled handling. Carbona's supplied files remain in browser memory; it does not create this archive or back it up for you. Export the result before closing or refreshing the assessment tab.

Reproduce a result without guessing

Save the original user-input JSON and any source documents in a controlled project folder. Save the landscape or regional JSON separately; those are contextual datasets, never substitutes for plot inputs. Record the application's release commit and source versions. Preserve the original byte hashes when available; a hash proves byte identity, not truth, lawful access or measurement quality.

Ask a colleague to reconstruct a small subset without verbal coaching. They should identify the quantity, boundary and period, obtain the same unrounded arithmetic within the documented tolerance, and reproduce the displayed rounding. Record any missing software version, hidden default or ambiguous unit as a defect. A copied screenshot matching another screenshot does not satisfy this check.

Review changes and corrections openly

For a corrected tree diameter, retain the original record, correction reason, responsible person and downstream results affected. For a new dataset, distinguish a statistical revision from a real-world change. Rebuild derived outputs and rerun relevant conservation and browser checks; do not hand-edit a published aggregate to make it agree.

Issue an evidence status with the deliverable: prepared, internally checked, independently reviewed, or externally accepted by a named process. These are different statements. Do not call an internal review an accreditation, ISO certification or programme approval. Define who can reopen an issue and what evidence would be needed to close it.

A complete software export still cannot contain rights or measurements that were never collected. The value of the dossier is the visible chain from claim to evidence, including the gaps.

Challenge disagreements and release claims

Carbon Bible →

When two credible sources disagree

Keep both results visible. First ask whether they estimate the same quantity on the same land, in the same period, using compatible definitions and pools. Different answers can follow from different questions. A national inventory total and a satellite raster total do not identify map bias merely because their ratio is large.

Gibbs and colleagues' 2025 forest-flux paper describes revisions to a geospatial modelling framework and its uncertainty. It supports reading model versions and assumptions carefully. It does not independently validate this site's ingestion, every Southeast Asian country or any project parcel. The implemented GFW version is pinned separately in the source manifest; the paper's reporting period must not silently replace the deployed period.

Work through four possible explanations

Possible explanation Evidence to request What would weaken it?
Different forest boundaries Matched masks, area totals and exclusions The discrepancy persists on identical spatial support
Different pools or equations Pool definitions, root treatment and local allometry Recomputing with compatible assumptions leaves the gap
Different dates or disturbance Observation dates, losses, harvest and recovery records Matched dates and documented changes do not explain it
Measurement/model error Independent representative field evidence and error analysis A held-out test supports the estimate within its stated scope

This is a diagnostic agenda authored for Carbona. It is not a claim that any one explanation has been established. Avoid selecting the explanation that makes a preferred source look correct. Keep a competing hypothesis and its strongest contrary evidence in the review notes.

Design a test that can fail

Define the target population, unit of analysis, field protocol and acceptable errors before looking at held-out outcomes. Explain the tolerance in terms of the intended decision; do not invent a universal “accurate enough” percentage. Use spatial separation or appropriately blocked validation when nearby samples share information. Keep model tuning and final testing distinct. If an area is inaccessible, state what population remains untested.

Report signed bias, absolute error and the distribution of residuals at the actual decision scale, alongside sample size and sampling design. If reporting interval coverage, compare each test observation with its applicable interval and explain sampling uncertainty around the observed coverage. A good overall average can conceal poor results in mangroves, plantations or small holdings; inspect prespecified strata. Do not claim those strata were validated unless the samples support that statement.

For causal credit claims, predictive accuracy is insufficient. The baseline must address what would have happened without the activity, together with the programme's other requirements. A high-resolution picture does not observe that counterfactual.

Separate a software release from scientific acceptance

For this release, automated tests check arithmetic, provenance, dataset conservation, navigation, bilingual rendering, exports and failure handling. These checks can reject software defects. They cannot certify field accuracy, lawful rights, additionality, human usability or credit issuance. A browser screenshot is evidence of a rendered state, not a scientific validation report.

The current operational boundary is national screening across eleven countries and a supplied-measurement workbench under its stated Thai method. There is no trained regional parcel model or automatic country approval. Research should become more specific when new independent observations arrive, rather than becoming more certain merely because the interface looks finished.

Write the remaining uncertainties, the next evidence to collect, the reviewer and the date to revisit. An honest release can be operationally usable while leaving a scientific claim unproven. The failure is not having a limit; it is making that limit disappear.

What this release actually supports

Surface Available Outside this implementation
Southeast Asia Eleven-country dated national comparisons and exports Regional parcel model, country project eligibility or issuance
Thailand Landscape screening and supplied measurements under the stated Thai method Field validation, legal rights or a verification opinion
Corporate footprint Detailed bilingual study-design teaching Complete CFO submission or regional emission-factor engine
Evidence and privacy Source receipts, explicit downloads and browser-memory files Automatic archive, upload or backup

The release acceptance checks software behaviour; independent novice usability and scientific acceptance remain separate tasks. Reproducible release scope and checks.

Primary references / เอกสารต้นทาง