Skip to content

add isometric and cercarbono registries#202

Draft
andersy005 wants to merge 10 commits intomainfrom
add-isometric-and-cercarbono
Draft

add isometric and cercarbono registries#202
andersy005 wants to merge 10 commits intomainfrom
add-isometric-and-cercarbono

Conversation

@andersy005
Copy link
Copy Markdown
Member

No description provided.

@katamartin
Copy link
Copy Markdown
Member

This is looking great! Here's a preview.

A couple of small flags:

  • It looks like the Cercarbano prefix is different than CCB, the one configured in Add Cercarbono & Isometric projects and credits processing offsets-db-data#138 (example). Is that intentional? The shorter IDs would be much nicer for rendering.
  • We'll want to update the API docs site to include the new registries.
  • I only updated the list of registries and categories, and it looks like that covers all 7369 projects on staging. The frontend also stores the list of protocols and countries. Do either of those lists need to be extended?
  • Why are there only 7369 projects on staging?

@andersy005
Copy link
Copy Markdown
Member Author

  • Why are there only 7369 projects on staging?

by default, staging doesn't include gold-standard projects/transactions due to the manual process involved in processing those.

  • We'll want to update the API docs site to include the new registries.

fixed

fixed

@katamartin
Copy link
Copy Markdown
Member

@andersy005 bumping the one remainig frontend piece:

I only updated the list of registries and categories, and it looks like that covers all 7369 projects on staging. The frontend also stores the list of protocols and countries. Do either of those lists need to be extended?

is it possible to share the lists of protocols and countries to be sure?

@andersy005
Copy link
Copy Markdown
Member Author

is it possible to share the lists of protocols and countries to be sure?

absolutely! will send you the list later this afternoon

@andersy005
Copy link
Copy Markdown
Member Author

@katamartin, here is the list of countries:

In [17]: import pandas as pd

In [18]: import ast

In [19]: url = "s3://carbonplan-scratch/offsets-db-test/final/2026-03-23/projects-augmented.parquet"

In [20]: df = pd.read_parquet(url)

In [21]: sorted(df.country.unique())
Countries
['Albania',
 'Angola',
 'Argentina',
 'Armenia',
 'Aruba',
 'Australia',
 'Austria',
 'Azerbaijan',
 'Bahamas',
 'Bahrain',
 'Bangladesh',
 'Belgium',
 'Belize',
 'Benin',
 'Bhutan',
 'Bolivia',
 'Botswana',
 'Brazil',
 'Bulgaria',
 'Burkina Faso',
 'Burundi',
 'Cabo Verde',
 'Cambodia',
 'Cameroon',
 'Canada',
 'Central African Republic',
 'Chad',
 'Chile',
 'China',
 'Colombia',
 'Comoros',
 'Congo Republic',
 'Costa Rica',
 "Cote d'Ivoire",
 'Croatia',
 'Cyprus',
 'Czech Republic',
 'DR Congo',
 'Denmark',
 'Djibouti',
 'Dominican Republic',
 'Ecuador',
 'Egypt',
 'El Salvador',
 'Eritrea',
 'Estonia',
 'Ethiopia',
 'Fiji',
 'France',
 'Gabon',
 'Gambia',
 'Georgia',
 'Germany',
 'Ghana',
 'Greece',
 'Guam',
 'Guatemala',
 'Guinea',
 'Guinea-Bissau',
 'Guyana',
 'Haiti',
 'Honduras',
 'Hong Kong',
 'Iceland',
 'India',
 'Indonesia',
 'Iraq',
 'Ireland',
 'Israel',
 'Italy',
 'Jamaica',
 'Japan',
 'Jordan',
 'Kazakhstan',
 'Kenya',
 'Kosovo',
 'Laos',
 'Latvia',
 'Lesotho',
 'Liberia',
 'Lithuania',
 'Madagascar',
 'Malawi',
 'Malaysia',
 'Mali',
 'Mauritania',
 'Mauritius',
 'Mayotte',
 'Mexico',
 'Mongolia',
 'Morocco',
 'Mozambique',
 'Myanmar',
 'Namibia',
 'Nepal',
 'Netherlands',
 'New Caledonia',
 'New Zealand',
 'Nicaragua',
 'Niger',
 'Nigeria',
 'North Macedonia',
 'Norway',
 'Oman',
 'Pakistan',
 'Panama',
 'Papua New Guinea',
 'Paraguay',
 'Peru',
 'Philippines',
 'Poland',
 'Portugal',
 'Romania',
 'Russia',
 'Rwanda',
 'Saudi Arabia',
 'Senegal',
 'Serbia',
 'Sierra Leone',
 'Singapore',
 'Somalia',
 'South Africa',
 'South Korea',
 'Spain',
 'Sri Lanka',
 'Sudan',
 'Suriname',
 'Sweden',
 'Switzerland',
 'Syria',
 'Taiwan',
 'Tajikistan',
 'Tanzania',
 'Thailand',
 'Timor-Leste',
 'Togo',
 'Tunisia',
 'Türkiye',
 'Uganda',
 'Ukraine',
 'United Arab Emirates',
 'United Kingdom',
 'United States',
 'Uruguay',
 'Uzbekistan',
 'Vietnam',
 'Yemen',
 'Zambia',
 'Zimbabwe',
 'not found']

and protocols

In [22]: protocols = df.protocol.map(lambda x: ast.literal_eval(x)).tolist()

In [23]: values = set()

In [24]: for entry in protocols:
    ...:     values = values | set(entry)
    ...: 

In [25]: sorted(values)
Unique protocols
['ACM0006; AMS-III.E.',
 'ACM0012; AMS-III.Q',
 'ACM0021',
 'ACM0026 Fossil fuel based cogeneration for identified recipient facility(ies)',
 'AM0016',
 'AM0019 Renewable energy project activities replacing part of the electricity production of one single fossil-fuel-fired power plant that stands alone or supplies electricity to a grid = 21, excluding biomass projects',
 'AM0047',
 'AM0048 New cogeneration facilities supplying electricity and/or steam to multiple customers and displacing grid/off-grid steam and electricity generation with more carbon-intensive fuels',
 'AM0057; Methodology Under Development',
 'AM0058 Introduction of a district heating system',
 'AMS-I.C.; AMS-III.AO.',
 'AMS-I.C.; AMS-III.D.; AMS-III.AO.',
 'AMS-I.D.; AMS-I.F.',
 'AMS-I.D.; AMS-II.C.',
 'AMS-I.E.; AMS-III.AV.',
 'AMS-I.E.; AMS-III.D.',
 'AMS-I.E.; VMR0006; AMS-III.AV.',
 'AMS-I.F.; AM0123',
 'AMS-I.F.; AMS-II.E.',
 'AMS-I.F.; AMS-III.C.; VM0038',
 'AMS-I.F.; VMR0014; AMS-III.C; VM0038',
 'AMS-I.F.; VMR0014; VM0038',
 'AMS-I.J',
 'AMS-I.J; AMS-I.F.; AMS-III.AR',
 'AMS-I.J; AMS-I.L.',
 'AMS-II.G.; VMR0006; AMS-III.AR',
 'AMS-II.M Demand-side energy efficiency activities for installation of low-flow hot water savings devices',
 'AMS-II.S.',
 'AMS-III.AK',
 'AMS-III.AQ. Introduction of Bio-CNG in transportation applications',
 'AMS-III.BL. Integrated methodology for electrification of communities v2',
 'AMS-III.BL.\xa0Integrated methodology for electrification of communities v2',
 'AMS-III.D.; AMS-III.AO.',
 'AMS-III.D.; AMS-III.E.; AMS-III.F.',
 'AMS-III.D.; AMS-III.F.; VMR0007',
 'AMS-III.F.; AMS-III.AO.',
 'AMS-III.J.',
 'AMS-III.L.',
 'AR-ACM0003; VM0042',
 'AR-AM0010',
 'Active Conservation and Sustainable Management on U.S. Forestlands',
 'Anaerobic Digestion',
 'Biochar',
 'CBA001 - Anaerobic Digestion of Organic Waste',
 'CM-WM-ELV-01 Recovery and Recycling of Materials from End-of-Life Vehicles',
 'ECY Compliance Offset Protocol: U.S. Forest Projects',
 'Emissions Reductions through Anti-Idling Technologies',
 'GS Advanced Hull Coatings v2.',
 'GS Baseline and Monitoring Methodology Biodigester v1.',
 'GS Biodiesel from Waste Oil or Fat v1.',
 'GS MS Microscale Electrification and Energization v1.',
 'GS Retrofit Energy Efficiency Measures in Shipping v1.',
 'GS Revised Methodology for Manure Management Systems and MSW v1.',
 'GS SS Ecologically Sound Fuel Switch to Biomass v1.',
 'GS Water Access and WASH Methodology v1.',
 'Improved Forest Management (IFM) on Small Non-Industrial Private Forestlands',
 'Improved Forest Management - WA ECO Compliance',
 'Low Carbon Cement',
 'M/CE-R01: Circular Economy Methodology for Encouraging Plastic Recycling',
 'M/LU/F-W01: Modular Methodology for Climate Change Mitigation Activities on Forest Lands and Wetlands',
 'Methane Emission Reduction By Adjusted Water Management Practice In Rice Cultivation',
 'Methodological guide for the certification of emissions reduced by the implementation of operational improvement projects in the hydrocarbons sector',
 'Methodology CBCP-01 For conservation of intact regional biodiversity using indicator species.',
 'Methodology For Reducing Methane Emissions From Enteric Fermentation In Beef Cattle Through Application Of Feed Supplements',
 'Methodology for animal waste management and biogas application',
 'NTC 6208 - Mitigation actions in the land use, change in land use and forestry sector at the rural level, incorporating social and biodiversity considerations',
 'Nitrous Oxide Abatement Protocol',
 'Ozone Depleting Substances - U.S. - WA ECO Compliance',
 'Soil Organic Carbon Framework Methodology',
 'VM0006; VM0048',
 'VM0007; VM0010; VM0048',
 'VM0007; VM0011',
 'VM0007; VM0033',
 'VM0007; VM0033; VM0047',
 'VM0007; VM0033; VM0047; VM0048',
 'VM0007; VM0042',
 'VM0007; VM0047',
 'VM0015; VM0037',
 'VM0015; VM0048',
 'VM0024; VM0021',
 'VM0032; VM0042',
 'VM0033; VM0042',
 'VM0033; VM0047',
 'VM0035',
 'VM0040',
 'VM0042; VM0047',
 'VM0042; VM0048',
 'VM0049',
 'VM0050',
 'VM0051',
 'VMR0004; VM0038; Methodology Under Development',
 'VMR0006; VM0050',
 'VMR0007',
 'VMR0007; VMR0008',
 'VMR0008',
 'VMR0009',
 'VMR0012',
 'VMR0014',
 'VMR0014; VM0038',
 'acm0001',
 'acm0002',
 'acm0003',
 'acm0005',
 'acm0006',
 'acm0007',
 'acm0008',
 'acm0009',
 'acm0010',
 'acm0011',
 'acm0012',
 'acm0013',
 'acm0014',
 'acm0016',
 'acm0017',
 'acm0018',
 'acm0019',
 'acm0022',
 'acr-abandoned-wells',
 'acr-affor-refor',
 'acr-cali-wetlands',
 'acr-canada-forest',
 'acr-ccs',
 'acr-cogen',
 'acr-foam',
 'acr-grasslands',
 'acr-hfc',
 'acr-idling',
 'acr-ifm-nonfed',
 'acr-international-ods',
 'acr-landfill',
 'acr-mine-methane',
 'acr-n2o',
 'acr-ods',
 'acr-pneumatic',
 'acr-pocosin',
 'acr-refrige',
 'acr-rice',
 'acr-transformer-oil',
 'am0001',
 'am0009',
 'am0010',
 'am0014',
 'am0023',
 'am0024',
 'am0025',
 'am0026',
 'am0028',
 'am0029',
 'am0030',
 'am0031',
 'am0034',
 'am0036',
 'am0046',
 'am0049',
 'am0059',
 'am0064',
 'am0065',
 'am0070',
 'am0072',
 'am0073',
 'am0080',
 'am0090',
 'am0110',
 'am0123',
 'ams-i-a',
 'ams-i-b',
 'ams-i-c',
 'ams-i-d',
 'ams-i-e',
 'ams-i-f',
 'ams-i-i',
 'ams-i-j',
 'ams-i-k',
 'ams-i-l',
 'ams-ii-b',
 'ams-ii-c',
 'ams-ii-d',
 'ams-ii-e',
 'ams-ii-f',
 'ams-ii-g',
 'ams-ii-h',
 'ams-ii-j',
 'ams-ii-l',
 'ams-iii-af',
 'ams-iii-aj',
 'ams-iii-ao',
 'ams-iii-aq',
 'ams-iii-ar',
 'ams-iii-as',
 'ams-iii-at',
 'ams-iii-au',
 'ams-iii-av',
 'ams-iii-b',
 'ams-iii-ba',
 'ams-iii-bb',
 'ams-iii-bc',
 'ams-iii-bg',
 'ams-iii-bm',
 'ams-iii-c',
 'ams-iii-d',
 'ams-iii-e',
 'ams-iii-f',
 'ams-iii-g',
 'ams-iii-h',
 'ams-iii-i',
 'ams-iii-m',
 'ams-iii-q',
 'ams-iii-r',
 'ams-iii-s',
 'ams-iii-u',
 'ams-iii-y',
 'ams-iii-z',
 'ar-acm0001',
 'ar-acm0002',
 'ar-acm0003',
 'ar-am0002',
 'ar-am0003',
 'ar-am0005',
 'ar-am0007',
 'ar-am0014',
 'ar-ams0001',
 'ar-ams0002',
 'ar-ams0003',
 'ar-ams0004',
 'ar-ams0005',
 'ar-ams0006',
 'ar-ams0007',
 'arb-forest',
 'arb-livestock',
 'arb-mine-methane',
 'arb-ozone',
 'art-trees',
 'car-adipic',
 'car-forest',
 'car-forest-mx',
 'car-grassland',
 'car-grassland-ca',
 'car-landfill',
 'car-landfill-mx',
 'car-livestock',
 'car-livestock-mx',
 'car-mine-methane',
 'car-n2o',
 'car-nitric-acid',
 'car-organic-composting',
 'car-ozone',
 'car-soil',
 'car-waste-digestion',
 'ccb-landfills',
 'ccb-redd',
 'ccb-refor',
 'ccb-renewables-eg',
 'ccb-renewables-er',
 'climate-leaders-landfill',
 'ecy-ozone',
 'ert-gas-sub',
 'gs-alt-coal',
 'gs-drinking-water',
 'gs-kitchen-cookstoves',
 'gs-metered-cookstoves',
 'gs-reforest',
 'gs-shipping',
 'gs-simplified-cookstoves',
 'gs-tpddtec',
 'iso-bio-burial',
 'iso-bio-ccs',
 'iso-bio-geo',
 'iso-bio-oil',
 'iso-biochar',
 'iso-dac',
 'iso-erw',
 'iso-refor',
 'iso-river',
 'iso-wastewater',
 'ocean-alkalinity-enhancement',
 'unknown',
 'vm0001',
 'vm0003',
 'vm0004',
 'vm0005',
 'vm0006',
 'vm0007',
 'vm0008',
 'vm0009',
 'vm0010',
 'vm0011',
 'vm0012',
 'vm0013',
 'vm0014',
 'vm0015',
 'vm0016',
 'vm0017',
 'vm0018',
 'vm0019',
 'vm0021',
 'vm0022',
 'vm0023',
 'vm0025',
 'vm0026',
 'vm0032',
 'vm0033',
 'vm0034',
 'vm0036',
 'vm0037',
 'vm0038',
 'vm0039',
 'vm0041',
 'vm0042',
 'vm0043',
 'vm0044',
 'vm0045',
 'vm0046',
 'vm0047',
 'vm0048',
 'vmr0001',
 'vmr0002',
 'vmr0003',
 'vmr0006']

let me know if these suffice

@katamartin
Copy link
Copy Markdown
Member

Thanks @andersy005!

  • For countries, there are several countries that used to be on the list that are no longer (Afghanistan, Hungary, Palestine, Qatar, Turkmenistan) -- is that expected? Also does the not found value raise any flags for you?
  • The list of protocols looks like it might need more sanitization/normalization. Previously, all of the protocols were lowercase and consistently used kebab-case. Now there's a lot of heterogeneity (e.g., ACM0006; AMS-III.E., ACM0026 Fossil fuel based cogeneration for identified recipient facility(ies)). Do we expect this list to get further cleaned up, perhaps with more of @badgley's mapping work?

@andersy005
Copy link
Copy Markdown
Member Author

andersy005 commented Mar 24, 2026

For countries, there are several countries that used to be on the list that are no longer (Afghanistan, Hungary, Palestine, Qatar, Turkmenistan) -- is that expected?

my understanding is given that registries retract projects from time to time, it's likely that when we last compiled this list, these countries had projects that are no longer present in the latest registry data. for instance, when I search for the countries above, i get zero results.

Screenshot 2026-03-24 at 08 45 48

Also does the not found value raise any flags for you?

nope. we've always had projects with country = 'not found'. for instance, https://registry.goldstandard.org/projects?q=gs11577&page=1

- Resolve Dockerfile conflict: use pinned pixi:0.67.0 from main
- Accept main's pixi.lock and regenerate with updated dependencies
- Drop stale migration (7880172b664a); regenerate as dd782201e5e5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants