Scope 3 Methodology
How selected DDF Scope 3 source exports are translated into carbon activity rows and estimated emissions for the public dashboard.
Core Method
- Import each source export and record the file name, checksum, source system, parser version, period, row counts, and validation summary.
- Translate source rows into non-financial
CarbonActivityRowrecords with date, source, public label, quantity, unit, data quality, and optional hashed actor. - Match each activity row to a versioned
EmissionFactorby domain, activity type, unit, source label, and factor hint. - Calculate
kgCO2e, uncertainty bounds, and optional secondary metrics such as kWh, water, land, or eutrophication when the factor supports them. - Aggregate only complete months into the public dashboard. Users can open a month/source cell to see the driver categories behind that number.
Choose a source tab above to jump to its detailed methodology, data inputs, assumptions, and exclusions.
Category 1: Purchased goods and services
Selected DDF meals, approved Duke Farms Amazon Business purchases, and externally provided AI services are reported in GHG Protocol Scope 3 Category 1. The source methods below retain their distinct activity measures, factors, uncertainty, and exclusions.
NY Office Lunch Program
What data we use
We count what was ordered, not what it cost. A lunch-program export provides the date, restaurant, meal type, and menu items ordered. We do not use meal prices, invoices, tips, or other financial fields.
How the estimate is made
We split each menu item into likely food ingredients and portions—for example, a salad may be treated as vegetables, legumes, dairy, and dressing. We multiply each estimated portion by a published carbon factor for that food type, then add the ingredients together to estimate the meal’s emissions.
Assumptions and limits
The export does not include the restaurant’s exact recipe or serving weights. When a reviewed recipe mapping is available, we use it; otherwise, we use a consistent category-based estimate and flag it as lower confidence. Restaurant cooking energy, delivery transportation, and packaging are outside the calculation unless they are included in a future factor.
DDF ChatGPT Use
What data we use
The latest workspace analytics export provides daily aggregate ChatGPT tokens on covered days and daily message counts for all days. We use token activity whenever it is available and use message counts only as a labeled fallback. We do not use dollars, credits, or billing totals.
How the estimate is made
For token-covered days, we multiply the reported token total by the documented capability-class energy factor, then convert estimated electricity using the IEA 2024 global electricity intensity of 0.445 kgCO2e/kWh. On days without tokens, each message uses a 0.34 Wh fallback estimate.
Assumptions and limits
DDF does not receive a meter reading for the electricity used by each ChatGPT message, so this is an operational proxy based on published AI and cloud-accounting guidance. It has a wide uncertainty range and excludes model training, data-center construction, and hardware manufacturing.
Codex Use
What data we use
Codex reports the amount of text it processes as tokens—small pieces of text rather than words. We separately count new input, previously processed (cached) input, and generated output because they require different amounts of computing work.
How the estimate is made
We convert each token type into estimated electricity, include data-center overhead, and then convert that electricity to carbon. Codex remains separate from ChatGPT because its source export and activity units are different.
Assumptions and limits
The current export does not provide a direct energy reading or a model-by-model carbon reading. These consistent token-type assumptions are best used to understand patterns over time and compare periods on the same basis—not as a precise measure for a single coding session. Training and hardware emissions are excluded.
12-Month Workspace AI Update
Where detailed records are unavailable, the refresh uses daily aggregate tokens and then daily messages as a higher-uncertainty fallback. The aggregate-token factor is calibrated from the detailed Codex token mix. Credits by product, model, and metered item are usage-context audit data only and never enter carbon calculations. September 2026 is month-to-date through September 10.
Category 6: Business travel
Employee air travel in non-company-owned aircraft is reported in GHG Protocol Scope 3 Category 6. Airfare price is never used to estimate emissions.
Flights
What data we use
We estimate a flight’s emissions from how far the traveler flew, not from the airfare price. The export provides the date, airline or vendor, and business-purpose text. Financial fields are not used.
How the estimate is made
When the record identifies an origin and destination, we turn the trip into one or more flight legs, calculate the straight-line distance between airports, and apply the published emissions factor for an economy flight of that length.
How incomplete records are handled
If a row appears to be airfare but does not state a usable route, we use a consistent NYC–Chicago round-trip placeholder and label it for review. Refunds, cancellations, upgrades, seat or baggage fees, personal travel, rail, and ground transportation are kept out of the automatic total. The travel date comes from the trip text when available; otherwise we use the expense posted date.
How to Explain the Numbers
The dashboard follows the same simple pattern for every source: start with an observable activity, apply a documented emissions factor, and show the result as an estimate in kilograms of carbon-dioxide equivalent (kgCO2e). “Carbon-dioxide equivalent” is a common unit that combines climate-warming gases into one comparable number.
Lunch orders: “What was served?”
We read the ordered menu items, estimate the ingredients and serving sizes, and apply food-production factors. A beef-heavy meal generally has a larger estimated footprint than a vegetable- or legume-heavy meal because producing those foods typically releases different amounts of greenhouse gas. We never use the meal price to estimate emissions.
ChatGPT and Codex: “How much computing work occurred?”
For ChatGPT, the activity is the number of messages by model. For Codex, it is the number and type of tokens processed. We translate that activity into estimated electricity, add an allowance for operating the data center, and apply a grid-emissions factor. We keep the two products separate because they arrive in different units and are calculated differently.
Airfare: “How far did the traveler fly?”
We identify the route when the record provides it, calculate the distance for each flight leg, and apply a distance-based economy-flight factor. If the route is missing, the row is clearly marked as a standard placeholder for later review. Airfare cost is never used as the carbon measure.
What directors should take from the dashboard
These figures are designed to show the scale and direction of selected DDF activities, reveal the largest drivers, and help prioritize better data. They are not invoices, utility-meter readings, or a complete Scope 3 inventory. We retain the source, method, and factor version for each calculation so a better recipe, route, or usage export can replace an estimate transparently.
Source Metrics: Worked Examples
These examples make the source metrics above concrete: each begins with the observed activity, shows the documented factor or conversion, and ends with the estimated kgCO2e shown in the dashboard.
1. Real Lunch Item: Naya Build-Your-Own Salad
A Relish lunch row for a Naya salad is translated into separate ingredient activity rows. Each row carries the menu item, restaurant, estimated ingredient grams, factor hint, and a stable activity ID.
| Ingredient row | Calculation | kgCO2e |
|---|---|---|
| Dairy | 70 g x 0.003 kgCO2e/g | 0.210 |
| Legumes | 140 g x 0.0009 kgCO2e/g | 0.126 |
| Sauce | 30 g x 0.002 kgCO2e/g | 0.060 |
| Vegetables | 280 g x 0.0007 kgCO2e/g | 0.196 |
This is an example from the translated January Relish data. The dashboard groups these ingredient rows back up under NY Office Lunch Program driver categories.
2. Illustrative Hamburger
If a lunch menu item is a hamburger, the recipe mapper turns one ordered item into ingredient masses. A reviewed recipe would replace these illustrative grams.
| Ingredient row | Calculation | kgCO2e |
|---|---|---|
| Beef patty | 113 g x 0.060 kgCO2e/g | 6.780 |
| Bun / bread | 50 g x 0.0011 kgCO2e/g | 0.055 |
| Cheese / dairy | 20 g x 0.003 kgCO2e/g | 0.060 |
| Lettuce, tomato, onion | 30 g x 0.0007 kgCO2e/g | 0.021 |
| Sauce | 15 g x 0.002 kgCO2e/g | 0.030 |
The high total is driven by beef. That is why the dashboard drilldown separates red meat, fish, chicken, dairy, vegetables, grains, and other drivers instead of only showing restaurant totals.
3. DDF ChatGPT Use: One Week of GPT-5 Messages
ChatGPT exports arrive as model-message counts. Credits are ignored. The calculator converts message count into estimated energy, then into carbon using PUE and grid intensity assumptions.
For a token-covered day, the dashboard instead multiplies the reported aggregate tokens by the token factor and labels the result token-based.
4. Codex Use: Token Counts
Codex exports are token-based, so the translator creates separate activity rows for uncached input, cached input, and output tokens.
The dashboard still shows Codex separately from DDF ChatGPT Use because the source data and activity units are different.
5. Flights: Expense Text to Passenger Distance
A row like Delta - JFK<>SLC - Sundance Film Festival becomes two economy passenger-distance segments: JFK to SLC and SLC to JFK. Rows with no clear route but real airfare text use a round-trip NYC-Chicago fallback and are tagged for review.
EPA 2025 Table 10 passenger-mile factors are converted to passenger-km and include CO2, CH4, and N2O as CO2e. The public dashboard shows the shared January-April 2026 window.
Amazon Business Purchased Goods & Services — Duke Farms
What data we use
We read only approved Duke Farms Amazon Business emissions records from the DDF Carbon ledger. The public dashboard retains the activity date, approved factor and method identifiers, estimated kgCO2e, and a limited set of product examples. It does not publish order identifiers, purchase amounts, invoices, taxes, fees, or other financial fields.
How the estimate is made
The upstream purchasing workflow maps each approved purchase category to an approved EPA Supply Chain GHG Emission Factors factor. This dashboard imports the approved result from that ledger rather than recalculating it, preserving the ledger’s factor version and citation.
Assumptions and limits
Only records marked Amazon Business, Duke Farms, and Approved are included. The method is a spend-based supply-chain proxy in the source ledger, so it is best used for portfolio-level trends and category comparison. The dashboard publishes complete calendar months only; current-month records remain out of totals until month close.
Example Upload Files
These are examples of the source files already translated into the carbon ledger. File names are retained for import provenance; financial columns, where present in source exports, are ignored.
- NY Office Lunch Program:
relish-2026-01-26-to-2026-02-01.csvandmeal-program-2026-04-20-to-2026-04-26.csv - DDF ChatGPT Use:
Doris Duke Foundation users export (2026-04-01 - 2026-04-30).csv - Codex Use:
codex-daily-sessions-messages-counts-2026-04-30.csv - Flights:
Airfare 2023-2026.xlsx
Methodology Sources
- Overall accounting: GHG Protocol Scope 3 Calculation Guidance
- Food LCA factors: AGRIBALYSE with serving and weight support from USDA FoodData Central
- Flight factors: EPA GHG Emission Factors Hub, UK conversion factors, and ICAO
- AI methodology: ITU AI environmental impact guidance and Cloud Carbon Footprint methodology