Documentation Index
Fetch the complete documentation index at: https://methodology.scope3.com/llms.txt
Use this file to discover all available pages before exploring further.
Detailed walkthrough of calculations
Entity Definitions
Channels
| Channel | Description |
|---|
web | Website that is not primarily social or CTV |
app | Mobile app that is not primarily social or CTV |
social | A social platform (Snapchat, Facebook, etc) |
ctv-bvod | A TV-like streaming platform |
streaming-video | Website or app with online video content |
digital-audio | Audio content (podcasts, streaming music) |
dooh | Digital out of home - billboards, transit, etc |
search | A Search engine (Google, Bing, etc) |
linear-tv | Scheduled broadcast or cable television |
traditional-radio | Scheduled audio broadcast |
Device Types
| Device type | Description |
|---|
phone | A phone |
tablet | A tablet |
pc | A pc with a monitor or a laptop |
tv | A TV |
smart-speaker | A smart speaker - Amazon Echo or equivalent |
Network Types
| Network type | Description |
|---|
mobile | A mobile network (3G/4G/5G) |
fixed | A fixed network (broadband) |
Video Player
| Field | Description |
|---|
size_bytes | Size of the javascript/html for a video player if present |
buffering_seconds | Video player buffering - if player preloads content, leave blank |
download_trigger | What starts the content download - impression, view (ie lazy load), play |
| Field | Description |
|---|
rendered_width_pixels | Width of the creative when rendered. Leave blank for responsive (will assume screen width) |
rendered_height_pixels | Height of the creative when rendered. Leave blank for responsive (will assume screen height) |
image_sizes | Array of image dimensions (eg ["300x250", "70x70"]) |
audio_duration_seconds | Audio duration (if applicable) |
video_duration_seconds | Video duration (if applicable) |
video_player | Video player used to render video (if applicable) |
other_assets_bytes | Metadata, text, html, etc |
ad_platforms | Ad serving, verification, and measurement ad platforms wrapping or embedded in the ad format |
300x250 programmatic banner
image_sizes = ['300x250']
rendered_width_pixels = 300,
rendered_height_pixels = 250
30 second audio inserted into a podcast
audio_duration_seconds = 30
15 second outstream video
video_duration_seconds = 15;
video_player = 'default',
rendered_width_pixels = 500,
rendered_height_pixels = 400
Native product carousel
image_sizes = ['400x400','400x400','400x400'],
other_assets_bytes = 7321,
rendered_height_pixels = 600,
rendered_width_pixels = 450
Property
| Field | Description |
|---|
channels | The channel(s) of this property |
average_seconds_per_session_excluding_ads | The average length of a session on this property excluding ads (eg 44 min of a 60 min TV show) |
average_imps_per_session | The average number of impressions per session |
average_data_kb_per_session_excluding_ads | The average number of KB transferred during a session excluding ads |
video_bitrate_kbps | The average bitrate for a CTV-BVOD property (e.g. 4200 kbps) |
ad_funded_percentage | 0-100 The percentage of content funded by advertising (eg 50) |
allocated_adjusted_corporate_emissions_kgco2e | This property’s share of corporate emissions |
total_sessions | Number of sessions in the same time period as corporate emissions |
organization_model_quality | Parent organization model quality (1-5) |
model_quality | Model quality (1-5) |
| Field | Description |
|---|
emissions_per_creative_request_per_geo_gco2_per_imp | Adjusted, allocated emissions per creative request by continent (NAMER, LATAM, EMEA, JAPAC) |
usage_emissions_per_bid_request_per_geo_gco2_per_imp | Adjusted, allocated emissions per bid request by continent (NAMER, LATAM, EMEA, JAPAC) |
usage_emissions_per_rtdp_request_per_geo_gco2_per_imp | Adjusted, allocated emissions per rtdp request by continent (NAMER, LATAM, EMEA, JAPAC) |
bidders | Array of ad platforms that are sent bid requests |
real_time_data_providers | Array of ad platforms that are sent real-time data requests (not propagated) |
distribution_rate_by_bidder_by_country | Traffic shaping data for each bidder by country (eg 'xandr.com', 'US', 0.58) |
average_bid_request_size | Average size of a client-side bid request |
sends_client_side_requests | Does this platform send client-side bid requests (eg prebid client) |
model_quality | Model quality (1-5) |
Placement
| Field | Description |
|---|
ad_platforms | The ad platforms called by this placement |
Delivery Row
| Field | Description |
|---|
impressions | The number of impressions counted (required for all channels other than DOOH) |
views | The number of views counted |
plays | The number of plays (required for DOOH) |
utc_datetime | Date and time, in UTC, when impressions were delivered |
country | The country where the impression was delivered |
region | The region of the country where the impression was delivered |
channel | See channels |
device_type | See device types |
network_type | See network types |
property | See property |
creative_ad_format | Either a basic or vendor-provided ad format |
creative_ad_platforms | Ad serving, verification, and measurement ad platforms wrapping or embedded in the creative |
creative_total_image_data_transfer_bytes | Total bytes for the data transfer for the image itself for all impressions, ideally measured by the CDN |
creative_image_sizes | Array of image sizes included in the creative |
creative_total_audio_data_transfer_bytes | Total bytes for the data transfer for the core audio asset for all impressions, ideally measured by the CDN |
creative_audio_duration_seconds | Average audio duration in seconds for a single impression |
creative_total_video_data_transfer_bytes | Total bytes for the data transfer for the core video asset for all loads, ideally measured by the CDN |
creative_video_vast_bytes | Average size of VAST/VPAID wrapper for the video in bytes for a single load |
creative_video_bitrate_kbps | Video bitrate as delivered in kilobits per second |
creative_video_size_bytes | Average video size as delivered in bytes for a single load |
creative_video_duration_seconds | Video duration in seconds |
creative_video_view_time_seconds | Average time, in seconds, that a video is viewed |
creative_video_view_rate | Average percentage of a video that is viewed |
creative_time_in_view_seconds | Time that the creative was visible on the device |
creative_is_3p_served | Is the ad format served by a third party ad server |
Defaults
Conventional model data transfer by network type
The Scope3 values below are from GMSF 1.2.
SRI values from SRIxAD database 2.1, original source ADEME_220830_v1.4 (now considered outdated).
default_usage_kwh_per_gb:
scope3:
fixed: 0.0165
mobile: 0.117
sri:
fixed: 0.0687
mobile: 0.236
default_network_embodied_emissions_gco2e_per_kb:
scope3:
fixed: 0.00000214
mobile: 0.00000870
sri:
fixed: 0.00000443
mobile: 0.00000797
Power model data transfer by network type
From Carbon impact of video streaming (Carbon Trust), Table 5; and calculated here
default_baseload_watts:
fixed: 9.55
mobile: 1.2
default_dynamic_watts_per_mbps:
fixed: 0.030
mobile: 1.53
Mobile to fixed ratios by country
From ITU Data Hub (2024 data), these ratios do not apply to TV and Smart Speakers for which a specific default_percent_mobile_by_device_type is set.
default_percent_mobile:
scope3: 23.6
sri: 10.0
default_percent_mobile_by_country:
scope3:
AD: 2.982
AE: 12.538
AL: 11.136
AM: 12.329
AO: 81.256
AT: 42.451
AU: 10.022
AZ: 3.017
BD: 47.386
BE: 6.379
BG: 14.554
BH: 37.964
BJ: 80.867
BR: 14.080
BS: 6.093
BT: 99.203
BW: 50.891
BY: 18.362
CA: 3.853
CH: 17.137
CI: 45.733
CL: 16.351
CM: 23.455
CN: 13.541
CO: 39.500
CR: 7.691
CU: 83.348
CV: 23.001
CY: 14.170
CZ: 8.683
DE: 6.048
DJ: 72.578
DK: 15.555
DZ: 31.775
EC: 13.019
EG: 18.791
ES: 9.643
ET: 46.640
FI: 40.870
FR: 48.973
GB: 5.660
GE: 10.658
GH: 85.514
GQ: 99.999
GR: 13.514
HK: 16.645
HN: 43.333
HR: 23.090
HU: 13.856
ID: 66.646
IE: 14.068
IN: 68.162
IQ: 9.969
IR: 75.197
IS: 18.209
IT: 17.130
JM: 13.521
JO: 32.758
JP: 16.092
KE: 40.356
KG: 51.686
KM: 99.934
KR: 8.777
KW: 88.149
KZ: 46.552
LI: 5.123
LK: 69.934
LS: 70.932
LV: 30.723
MA: 30.585
MC: 7.871
ME: 18.232
MG: 50.644
MK: 13.946
MN: 36.233
MU: 21.725
MV: 5.177
MW: 98.758
MX: 11.922
MY: 52.676
NG: 99.451
NI: 51.951
NZ: 4.667
OM: 10.984
PF: 21.958
PK: 50.498
PL: 13.454
PT: 8.261
QA: 15.876
RO: 12.554
RS: 22.423
RU: 23.846
RW: 39.736
SA: 22.528
SC: 27.379
SI: 14.154
SK: 15.316
SM: 7.767
SN: 45.455
ST: 16.373
TG: 10.455
TH: 36.910
TN: 15.826
TR: 19.035
TT: 6.732
TW: 26.130
TZ: 98.330
UG: 92.443
US: 5.723
UY: 14.077
UZ: 59.382
VE: 4.700
VN: 8.577
VU: 97.689
YE: 16.667
ZA: 35.193
ZW: 22.887
default_percent_mobile_by_device_type:
scope3:
pc: 3.0
smart-speaker: 0.001
tablet: 10.0
tv: 0.001
Video player characteristics
Default video player size from GMSF 1.2
default_video_player_size_bytes: 350000
default_video_player_download_trigger:
web: 'impression'
app: 'impression'
ctv-bvod: 'impression'
streaming-video: 'impression'
dooh: 'play'
search: 'impression'
social: 'impression'
Based on YouTube recommendations, Wikipedia
default_image_compression_ratio: 10
default_non_primary_video_bitrate_kbps: 1200
default_video_bitrate_kbps:
phone: 800
tablet: 1000
pc: 1200
tv: 3690
default_audio_bitrate_kbps:
phone: 160
tablet: 160
pc: 160
tv: 160
smart-speaker: 160
radio: 160
Device size
From common devices (Quad HD 27” monitor, iPhone 13, Nexus 5X, iPad Air 1/2, iPad 2/3, Nexus 9, 1080P TV).
Note: We use the software resolution, not the hardware resolution, to avoid underestimating the actual visual coverage of the ad displayed on screen.
default_rendered_device_height:
pc: 1080
phone: 844
tablet: 820
tv: 1080
default_rendered_device_width:
pc: 1920
phone: 390
tablet: 1180
tv: 1920
Device energy use and embodied emissions
See Consumer Devices
default_device_watts:
scope3:
pc: 55.44
phone: 4.68
radio: 6.55
smart-speaker: 2.5
tablet: 5.04
tv: 136.8
sri:
phone: 2.856
pc: 29.4
tablet: 29.4
tv: 81.6
default_device_embodied_emissions_per_second:
scope3:
phone: 0.00655
pc: 0.00545
tablet: 0.0257
tv: 0.00865
smart-speaker: 0.0061
radio: 0.002514375
sri:
phone: 0.00946
pc: 0.0132
tablet: 0.0128
tv: 0.00889
default_audio_power_utilization:
pc: 0.84
phone: 0.36
tablet: 0.36
tv: 0.92
smart-speaker: 1.0
radio: 1.0
default_device_usage_emissions_from_fuel_consumption_per_second:
phone: 0
pc: 0
tablet: 0
tv: 0
smart-speaker: 0
radio: 0.005
Time in view for non-video ads
Default in view time from GMSF 1.2
default_time_in_view_seconds: 3
Observations from various channels and CDN / Edge Node emission factors from GMSF 1.2
default_consumer_device_request_size_bytes:
web: 3000
app: 3000
ctv-bvod: 3000
dooh: 3000
audio: 3000
social: 3000
streaming-video: 3000
search: 300
default_emissions_per_creative_request_gco2_per_imp: 0.0003
default_emissions_per_bid_request_gco2_per_imp: 0.11442
default_emissions_per_rtdp_request_gco2_per_imp: 0.01
default_emissions_generic_ad_server_gco2_per_imp: 0.000016
default_emissions_generic_ad_server_gco2_per_imp_by_channel:
social: 0.0043
default_emissions_ad_selection_gco2_per_imp_by_channel:
search: 0.0012293
dooh: 0.00384
default_count_ad_platform:
search: 1
dooh: 6
generic_creative_ad_server:
emissions_per_creative_request_per_geo_gco2_per_imp:
NAMER: 0.0001
EMEA: 0.0001
JAPAC: 0.0003
LATAM: 0.0001
generic_measurement_platform:
emissions_per_creative_request_per_geo_gco2_per_imp:
NAMER: 0.0001
EMEA: 0.0001
JAPAC: 0.0003
LATAM: 0.0001
default_platform_embodied_emissions_per_bid_request_gco2e_per_imp: 0.000015
edge_node_embodied_gco2e_per_kb: 0.000000588
edge_node_use_watts_per_kb: 0.00000043
Channel and device type mappings
The default ad formats for the Web and App channels are based on the GMSF 1.2 defaults for creative payload.
default_channel_by_device:
phone:
- social
- ctv-bvod
- digital-audio
- app
- web
- search
- streaming-video
- linear-tv
- traditional-radio
tablet:
- social
- ctv-bvod
- digital-audio
- app
- web
- search
- streaming-video
- linear-tv
- traditional-radio
pc:
- ctv-bvod
- social
- digital-audio
- web
- search
- streaming-video
- linear-tv
- traditional-radio
tv:
- linear-tv
- ctv-bvod
- digital-audio
- traditional-radio
- web
- search
smart-speaker:
- digital-audio
radio:
- traditional-radio
default_device_by_channel:
social: phone
ctv-bvod: tv
streaming-video: pc
digital-audio: phone
app: phone
web: pc
dooh: tv
linear-tv: tv
search: phone
traditional-radio: radio
default_platform_ad_format_identifier_by_channel:
dooh: landscape-dooh
social: 1080-1920-sponsored-post-social-phone
ctv-bvod: 15s-video-ctv-bvod-tv
streaming-video: 15s-video-streaming-video-pc
digital-audio: 30s-audio-digital-audio-phone
app: generic-gmsf-1-2-display-ad-app-phone
web: generic-gmsf-1-2-display-ad-web-pc
linear-tv: 30s-video-ctv-bvod-tv
search: generic-search-ad-search-phone
traditional-radio: 30s-radio-traditional-radio-radio
classic-ooh: 6-sheet-classic-ooh-panel
default_platform_ad_format_by_channel:
dooh: Landscape - 1920x1080 Image
social: Sponsored Post - 1080x1920 Image
ctv-bvod: 15s Video
streaming-video: 15s Video
digital-audio: 30s Audio
app: Generic GMSF 1.2 Display Ad
web: Generic GMSF 1.2 Display Ad
linear-tv: 30s Video
search: Generic Search Ad
traditional-radio: 30s Radio
classic-ooh: 6 Sheet
default_print_ad_format_by_medium:
journal: Full Page Magazine
newspaper: Quarter Page Newspaper
magazine: Full Page Magazine
leaflet: Full Page Leaflet
default_property_average_imps_per_session_by_channel:
social: 24
ctv-bvod: 18
streaming-video: 1
digital-audio: 4.8
app: 14
web: 32
linear-tv: 30
search: 12
traditional-radio: 21.5
default_property_ad_funded_percentage_by_channel:
dooh: 100
social: 100
ctv-bvod: 100
streaming-video: 100
digital-audio: 100
app: 100
web: 100
linear-tv: 100
search: 100
traditional-radio: 100
default_average_seconds_per_session_excluding_ads_by_channel:
social: 240
ctv-bvod: 2580
streaming-video: 143
digital-audio: 1500
app: 140
web: 320
linear-tv: 2580
search: 120
traditional-radio: 2580
default_average_data_kb_per_session_seconds_excluding_ads_by_channel:
social: 38
app: 29.5
web: 1.011
search: 1.011
default_property_g_per_imp_by_channel:
dooh: 0.049
social: 0.15
streaming-video: 0.049
ctv-bvod: 0.280
digital-audio: 0.049
app: 0.049
web: 0.049
search: 0.049
Broadcasting defaults
default_percent_tv_distribution_method:
cable: 28.6
iptv: 25.2
ota: 26.2
satellite: 20
default_percent_tv_distribution_method_by_country:
AU:
cable: 9.2
iptv: 40.8
ota: 45.4
satellite: 4.6
DE:
cable: 41.5
iptv: 9.6
ota: 3.4
satellite: 45.5
FR:
cable: 0
iptv: 46
ota: 46
satellite: 8
GB:
cable: 8.9
iptv: 27.5
ota: 40.6
satellite: 23
US:
cable: 43.3
iptv: 20.7
ota: 19.3
satellite: 16.7
default_tv_signal_preparation_power_watt: 16700
default_tv_signal_transmission_power_by_tv_distribution_method_watt:
cable: 16000
ota: 165000
satellite: 3150
default_tv_signal_transmission_embodied_gco2e_per_second: 27
default_tv_home_equipment_power_by_tv_distribution_method_watt:
cable: 16
iptv: 21
ota: 1
satellite: 22
default_tv_home_equipment_embodied_gco2e_per_second_by_tv_distribution_method:
cable: 0.005346759
iptv: 0.005492307
ota: 0.001354252
satellite: 0.011423331
default_device_per_impression:
app: 1
digital-audio: 1
ctv-bvod: 1
linear-tv: 0.667
streaming-video: 1
web: 1
traditional-radio: 0.667
default_property_g_per_play_by_channel:
linear-tv: 790
traditional-radio: 790
default_iptv_network_distribution:
fixed: 0.999
mobile: 0.001
default_percent_radio_distribution_method:
fm: 60
am: 15
ota: 20
satellite: 5
default_radio_signal_transmission_power_by_radio_distribution_method_watt:
fm: 245000
am: 273000
ota: 106000
satellite: 3150
default_radio_signal_transmission_embodied_by_radio_distribution_method_gco2e_per_second:
fm: 7
am: 10
ota: 5
satellite: 6
Creative storage defaults
Emission factors from GMSF 1.2, along with assumptions on average distribution per storage type, default multipliers to estimate the required storage space based on the delivered creative size and default impressions per creative.
default_impressions_per_creative: 1000000
default_storage_kgco2e_per_gb:
cloud_storage: 0.0253
hard_disk_drive: 0.16
linear_tape_open: 0.00114
solid_state_drive: 0.02
default_storage_usage_pct:
cloud_storage: 45
hard_disk_drive: 25
linear_tape_open: 10
solid_state_drive: 20
creative_raw_asset_size_factor_by_channel:
app: 20
ctv-bvod: 50
digital-audio: 5
dooh: 5
linear-tv: 50
search: 0
social: 20
streaming-video: 20
traditional-radio: 5
web: 20
creative_work_iterations_factor_by_channel:
app: 1
ctv-bvod: 1
digital-audio: 1
dooh: 1
linear-tv: 1
search: 1
social: 1
streaming-video: 1
traditional-radio: 1
web: 1
Asset size defaults
default_display_other_assets_bytes: 50000
default_display_creative_overhead_factor: 0.2
Classic OOH defaults
default_ad_landfill_emissions_kgco2e_per_sq_metre: 0.291
default_ad_pct_recycling:
classic-ooh: 20.0
default_ad_recycling_emissions_kgco2e_per_sq_metre: 0.1
default_corporate_emissions_kgco2e_per_panel_per_day: 0.3
default_embodied_emissions_kgco2e_per_sq_metre: 115.0
default_emissions_kgco2e_per_km_travelled: 0.2543
default_mechanical_rotation_power_draw_watts_per_sq_metre_per_hour: 12.5
default_digital_screen_landfill_emissions_kgco2e_per_sq_metre: 20.9
default_expected_lifetime_years: 10.0
default_illumination_power_draw_watts_per_sq_metre_per_hour: 100.0
default_ooh_ad_production_kgco2e_emissions_per_sq_metre: 3.78
default_ooh_campaign_duration_days: 14
default_ooh_share_of_time_pct: 100.0
default_panel_to_disposal_distance_per_ad_km: 4.0
default_printing_to_storage_distance_km_per_ad:
classic-ooh:
AD: 0.5
AE: 0.5
AL: 0.5
AM: 0.5
AO: 0.5
AT: 0.5
AU: 0.5
AZ: 0.5
BD: 0.5
BE: 0.5
BG: 0.5
BH: 0.5
BJ: 0.5
BR: 0.5
BS: 0.5
BT: 0.5
BW: 0.5
BY: 0.5
CA: 0.5
CH: 0.5
CI: 0.5
CL: 0.5
CM: 0.5
CN: 0.5
CO: 0.5
CR: 0.5
CU: 0.5
CV: 0.5
CY: 0.5
CZ: 0.5
DE: 0.5
DJ: 0.5
DK: 0.5
DZ: 0.5
EC: 0.5
EG: 0.5
ES: 0.5
ET: 0.5
FI: 0.5
FR: 0.5
GB: 0.5
GE: 0.5
GH: 0.5
GQ: 0.5
GR: 0.5
HK: 0.5
HN: 0.5
HR: 0.5
HU: 0.5
ID: 0.5
IE: 0.5
IN: 0.5
IQ: 0.5
IR: 0.5
IS: 0.5
IT: 0.5
JM: 0.5
JO: 0.5
JP: 0.5
KE: 0.5
KG: 0.5
KM: 0.5
KR: 0.5
KW: 0.5
KZ: 0.5
LI: 0.5
LK: 0.5
LS: 0.5
LV: 0.5
MA: 0.5
MC: 0.5
ME: 0.5
MG: 0.5
MK: 0.5
MN: 0.5
MU: 0.5
MV: 0.5
MW: 0.5
MX: 0.5
MY: 0.5
NG: 0.5
NI: 0.5
NZ: 0.5
OM: 0.5
PF: 0.5
PK: 0.5
PL: 0.5
PT: 0.5
QA: 0.5
RO: 0.5
RS: 0.5
RU: 0.5
RW: 0.5
SA: 0.5
SC: 0.5
SI: 0.5
SK: 0.5
SM: 0.5
SN: 0.5
ST: 0.5
TG: 0.5
TH: 0.5
TN: 0.5
TR: 0.5
TT: 0.5
TW: 0.5
TZ: 0.5
UG: 0.5
US: 0.5
UY: 0.5
UZ: 0.5
VE: 0.5
VN: 0.5
VU: 0.5
YE: 0.5
ZA: 0.5
ZW: 0.5
default_storage_emissions_kgco2e_per_panel: 0.01648333
default_storage_to_installation_distance_km_per_ad:
classic-ooh:
AD: 4.0
AE: 4.0
AL: 4.0
AM: 4.0
AO: 4.0
AT: 4.0
AU: 4.0
AZ: 4.0
BD: 4.0
BE: 4.0
BG: 4.0
BH: 4.0
BJ: 4.0
BR: 4.0
BS: 4.0
BT: 4.0
BW: 4.0
BY: 4.0
CA: 4.0
CH: 4.0
CI: 4.0
CL: 4.0
CM: 4.0
CN: 4.0
CO: 4.0
CR: 4.0
CU: 4.0
CV: 4.0
CY: 4.0
CZ: 4.0
DE: 4.0
DJ: 4.0
DK: 4.0
DZ: 4.0
EC: 4.0
EG: 4.0
ES: 4.0
ET: 4.0
FI: 4.0
FR: 4.0
GB: 4.0
GE: 4.0
GH: 4.0
GQ: 4.0
GR: 4.0
HK: 4.0
HN: 4.0
HR: 4.0
HU: 4.0
ID: 4.0
IE: 4.0
IN: 4.0
IQ: 4.0
IR: 4.0
IS: 4.0
IT: 4.0
JM: 4.0
JO: 4.0
JP: 4.0
KE: 4.0
KG: 4.0
KM: 4.0
KR: 4.0
KW: 4.0
KZ: 4.0
LI: 4.0
LK: 4.0
LS: 4.0
LV: 4.0
MA: 4.0
MC: 4.0
ME: 4.0
MG: 4.0
MK: 4.0
MN: 4.0
MU: 4.0
MV: 4.0
MW: 4.0
MX: 4.0
MY: 4.0
NG: 4.0
NI: 4.0
NZ: 4.0
OM: 4.0
PF: 4.0
PK: 4.0
PL: 4.0
PT: 4.0
QA: 4.0
RO: 4.0
RS: 4.0
RU: 4.0
RW: 4.0
SA: 4.0
SC: 4.0
SI: 4.0
SK: 4.0
SM: 4.0
SN: 4.0
ST: 4.0
TG: 4.0
TH: 4.0
TN: 4.0
TR: 4.0
TT: 4.0
TW: 4.0
TZ: 4.0
UG: 4.0
US: 4.0
UY: 4.0
UZ: 4.0
VE: 4.0
VN: 4.0
VU: 4.0
YE: 4.0
ZA: 4.0
ZW: 4.0
default_structure_expected_lifetime_years: 10.0
default_structure_landfill_emissions_kgco2e_per_sq_metre: 2.2
default_structure_pct_recycling:
classic-ooh: 58.75
default_structure_recycling_emissions_kgco2e_per_sq_metre: 0.0
Print defaults
default_downstream_transport_emissions_kgco2e_tonne_transported_per_km: 0.6382
default_downstream_travelled_distance_km: 100.0
default_freight_transport_emissions_kgco2e_tonne_transported_per_km: 0.11
default_papermill_to_printer_distance_km: 500.0
default_print_avg_readership:
journal: 5.0
newspaper: 2.0
magazine: 5.0
leaflet: 0.5
default_print_media_corporate_emissions_per_page_gco2e: 0.05
default_print_medium_ad_to_edit_ratio:
journal: 0.50
newspaper: 0.40
magazine: 0.50
leaflet: 1.0
default_print_medium_incineration_emission_factor_kgco2e_per_kg: 0.00641
default_print_medium_landfill_emission_factor_kgco2e_per_kg: 1.16
default_print_medium_page_surface_sq_meter:
journal: 0.062
newspaper: 0.228
magazine: 0.062
leaflet: 0.031
default_print_medium_paper_gsm:
journal: 90
newspaper: 45
magazine: 90
leaflet: 90
default_print_medium_paper_production_emissions_gco2e_gram: 0.001345
default_print_medium_reader_incineration_percentage: 15.0
default_print_medium_reader_incineration_percentage_by_country:
GB: 17.0
FR: 25.0
DE: 13.0
NL: 13.0
ES: 20.0
IT: 16.0
US: 8.0
CA: 10.0
AU: 12.0
JP: 17.0
CN: 15.0
IN: 10.0
default_print_medium_reader_landfill_percentage: 20.0
default_print_medium_reader_landfill_percentage_by_country:
GB: 5.0
FR: 5.0
DE: 2.0
NL: 1.0
ES: 7.0
IT: 5.0
US: 24.0
CA: 20.0
AU: 10.0
JP: 1.0
CN: 35.0
IN: 60.0
default_print_medium_reader_recycling_percentage: 65.0
default_print_medium_reader_recycling_percentage_by_country:
GB: 78.0
FR: 70.0
DE: 85.0
NL: 86.0
ES: 73.0
IT: 79.0
US: 68.0
CA: 70.0
AU: 78.0
JP: 82.0
CN: 50.0
IN: 30.0
default_print_medium_recycling_emission_factor_kgco2e_per_kg: 0.00641
default_print_medium_total_pages:
journal: 100
newspaper: 40
magazine: 100
leaflet: 1
default_print_medium_unsold_incineration_percentage: 15.0
default_print_medium_unsold_landfill_percentage: 5.0
default_print_medium_unsold_recycling_percentage: 80.0
default_print_sellthrough_rate_pct:
journal: 65.0
newspaper: 80.0
magazine: 65.0
leaflet: 100.0
default_print_spoilage_waste_rate:
journal: 0.05
newspaper: 0.05
magazine: 0.05
default_printing_finishing_emissions_gco2e_per_page:
journal: 1.5
newspaper: 1.0
magazine: 1.5
leaflet: 2.0
default_printer_to_storage_distance_km: 100.0
DOOH defaults
default_digital_screen_embodied_emissions_kgco2e_per_second: 0.0000249
Lookups from external sources
Carbon intensity by country, region, and UTC Date/Time
Providers should clearly and publicly document:
- Which data provider is used for carbon intensity data (for instance, WattTime or ElectricityMaps)
- What carbon intensity metric is used (marginal vs average)
lookup_carbon_intensity_gco2e_per_kwh(country, region, utc_datetime) should look up the carbon intensity in gCO2e based on 100-year global warming potential (GWP100) from a database at no less than hourly granularity.
lookup_carbon_intensity_quality(country, region) should return the quality of the underlying grid mix data on a scale of 1-5 per Model Quality.
Fallbacks
We use all data we have available on every single request but in many situations we may lack some information, for this
we have a series of fallbacks to be able to provide reasonable estimates in most situations.
To determine network when it’s not submitted we calculate costs associated to network type
as a weighted average of the fixed and mobile usage in the country (if available) or worldwide.
We can also generally determine the channel from the property or when that is ambiguous but we have device information
we fall back to a default channel by device.
pct_mobile =
country ?
default_percent_mobile_by_country[country] / 100 :
default_percent_mobile / 100
average_embodied_emissions_gco2e_per_kb =
default_network_embodied_emissions_gco2e_per_kb['mobile'] x pct_mobile +
default_network_embodied_emissions_gco2e_per_kb['fixed'] x (1 - pct_mobile)
embodied_emissions_gco2e_per_kb =
network_type ?
default_network_embodied_emissions_gco2e_per_kb[network_type] :
average_embodied_emissions_gco2e_per_kb
average_usage_kwh_per_gb =
default_usage_kwh_per_gb['mobile'] x pct_mobile +
default_usage_kwh_per_gb['fixed'] x (1 - pct_mobile)
usage_kwh_per_gb =
network_type ?
default_usage_kwh_per_gb['network_type'] :
average_usage_kwh_per_gb
average_baseload_watts =
default_baseload_watts['mobile'] x pct_mobile +
default_baseload_watts['fixed'] x (1 - pct_mobile)
average_dynamic_watts_per_mbps =
default_dynamic_watts_per_mbps['mobile'] x pct_mobile +
default_dynamic_watts_per_mbps['fixed'] x (1 - pct_mobile)
baseload_watts =
network_type ?
default_baseload_watts[network_type] :
average_baseload_watts
dynamic_watts_per_mbps =
network_type ?
default_dynamic_watts_per_mbps[network_type] :
average_dynamic_watts_per_mbps
lookup_channel:
if property.channels.length == 1:
return property.channels[0]
if channel && channel in property.channels:
return channel
is_audio_creative =
creative_audio_data_transfer_bytes ||
creative_audio_duration_seconds ||
ad_format.audio_duration_seconds
if is_audio_creative && 'audio' in property.channels:
return 'audio'
if device_type && default_channel_by_device[device_type] in property.channels:
return default_channel_by_device[device_type]
return property.channels[0]
channel = lookup_channel()
device_type = device_type ? default_device_by_channel[channel]
Calculating Emissions
Tech Manipulation - Creative Storage
creative_storage_gco2_per_imp =
(default_linear_tape_open_storage_kgco2e_per_gb * default_linear_tape_open_storage_usage_pct
+ default_hard_disk_drive_storage_kgco2e_per_gb * default_hard_disk_drive_storage_usage_pct
+ default_solid_state_drive_storage_kgco2e_per_gb * default_solid_state_drive_storage_kgco2e_per_gb
+ default_cloud_storage_kgco2e_per_gb * default_cloud_storage_usage_pct)
* 1000
* ((creative_data_transfer_bytes * creative_raw_asset_size_factor[Channel] + creative_data_transfer_bytes * creative_work_iterations_factor[Channel]) / 1000000000)
/ default_impressions_per_creative
Creative Delivery - Data Transfer
creative_data_transfer_emissions_gco2_per_imp =
creative_data_transfer_usage_emissions_gco2_per_imp +
creative_data_transfer_embodied_emissions_gco2_per_imp
For all channels other than CTV/BVOD, use the conventional model:
creative_data_transfer_bytes =
video_bytes +
audio_bytes +
image_bytes +
ad_format.video_player.size_bytes +
ad_format.other_asset_bytes
creative_data_transfer_usage_emissions_gco2 =
creative_data_transfer_bytes / 1000 x
usage_kwh_per_gb / 1000000 x
lookup_carbon_intensity_gco2e_per_kwh(country, region, utc_datetime)
creative_data_transfer_embodied_emissions_gco2 =
creative_data_transfer_bytes / 1000 x
embodied_emissions_gco2e_per_kb
If data transfer is provided in the delivery row, use it:
image_bytes = creative_total_image_data_transfer_bytes
video_bytes = creative_total_video_data_transfer_bytes + (creative_video_vast_bytes x loads)
audio_bytes = creative_total_audio_data_transfer_bytes
Otherwise, calculate data transfer:
image_sizes = creative_image_sizes ? ad_format.image_sizes
image_bytes = SUM(image_sizes[n].width x image_sizes[n].height) x 3 / default_image_compression_ratio x impressions
audio_duration = creative_audio_duration_seconds ?? ad_format.audio_duration_seconds
audio_bytes = audio_duration_seconds x default_audio_bitrate_kbps[device_type] / 8 x 1000 x impressions
is_primary_experience = !ad_format.rendered_width_pixels && !ad_format.rendered_height_pixels
default_bitrate_kbps =
is_primary_experience ?
default_video_bitrate_kbps[device_type] :
default_non_primary_video_bitrate_kbps
video_bitrate_kbps =
creative_video_bitrate_kbps ??
creative_video_size_bytes x 8 / 1000 / creative_video_duration ??
property.video_bitrate_kbps[device_type] ??
default_bitrate_kbps
video_duration = creative_video_duration_seconds ?? ad_format.video_duration_seconds
seconds_watched = creative_video_view_time_seconds ??
creative_video_view_rate x video_duration_seconds ??
video_duration_seconds
buffer = ad_format.video_player.buffering_seconds ?? infinity
seconds_streamed = MIN(seconds_watched + buffer, video_duration_seconds)
loads = switch(ad_format.video_player.download_trigger):
'view': views
'play': plays
'impression': impressions
video_bytes = (video_bitrate_kbps / 8 x 1000 x seconds_streamed + creative_video_vast_bytes) x loads
For CTV/BVOD, use the power model:
video_bitrate_kbps =
creative_video_bitrate_kbps ??
property.video_bitrate_kbps[device_type] ??
default_video_bitrate_kbps[device_type]
power_watts =
baseload_watts +
dynamic_watts_per_mbps x video_bitrate_kbps / 1000
creative_data_transfer_usage_emissions_gco2_per_imp =
creative_video_duration_seconds / 3600 x
power_watts / 1000 x
lookup_carbon_intensity_gco2e_per_kwh(country, region, utc_datetime)
creative_data_transfer_embodied_emissions_gco2_per_imp =
creative_video_duration_seconds x
video_bitrate_kbps / 128 x
embodied_emissions_gco2e_per_kb
default_creative_platforms =
creative_is_3p_served ?
[generic_creative_ad_server, generic_measurement_platform] :
[]
creative_platforms = creative_ad_platforms ?? default_creative_platforms
creative_platform_emissions_gco2_per_imp = 0
for platform in [creative_platforms, ad_format.ad_platforms]:
emissions_per_creative_request_per_geo_gco2_per_imp =
platform.emissions_per_creative_request_per_geo_gco2_per_imp ??
((creative_data_transfer_bytes / 1000) x
(edge_node_use_watts_per_kb / 1000) x
lookup_carbon_intensity_gco2e_per_kwh(country, region, utc_datetime))
+
(creative_data_transfer_bytes / 1000 x
edge_node_embodied_gco2e_per_kb)
creative_platform_emissions_gco2_per_imp += emissions_per_creative_request_per_geo_gco2_per_imp
Creative Delivery - Consumer Device
device_pixels = default_rendered_device_width[device_type] x default_rendered_device_height[device_type]
rendered_width = ad_format.rendered_width_pixels ?? default_rendered_device_width[device_type]
rendered_height = ad_format.rendered_height_pixels ?? default_rendered_device_height[device_type]
visual_device_coverage =
is_primary_experience ?
1 :
MIN(1, rendered_width x rendered_height / device_pixels)
time_in_view =
video_duration ??
creative_time_in_view_seconds ??
default_time_in_view_seconds
if channel == digital-audio :
device_power_utilization == 'smart-speaker' ? 1 : default_audio_power_utilization[device_type]
energy_adjusted_active_seconds = device_power_utilization * audio_duration
else:
energy_adjusted_active_seconds = visual_device_coverage x time_in_view
creative_consumer_device_usage_emissions_gco2_per_imp =
device_coverage_seconds / 3600 x
default_device_watts[device_type] / 1000 x
lookup_carbon_intensity_gco2e_per_kwh(country, region, utc_datetime)
+ default_device_usage_emissions_from_fuel_consumption_per_second[device_type]
creative_consumer_device_embodied_emissions_gco2_per_imp =
device_coverage_seconds x
default_device_embodied_emissions_per_second[device_type]
media_data_transfer_emissions_gco2_per_imp =
media_data_transfer_usage_emissions_gco2_per_imp +
media_data_transfer_embodied_emissions_gco2_per_imp
Determing the session seconds for a single impressions
session_seconds_per_imp =
property.average_seconds_per_session_excluding_ads x
property.ad_funded_percentage/100 /
property.average_imps_per_session
For all channels other than CTV/BVOD, use the conventional model:
media_data_transfer_kb_per_imp =
property.average_data_kb_per_session_excluding_ads x
property.ad_funded_percentage/100 /
property.average_imps_per_session
media_data_transfer_usage_emissions_gco2_per_imp =
media_data_transfer_kb_per_imp x
usage_kwh_per_gb / 1000000 x
lookup_carbon_intensity_gco2e_per_kwh(country, region, utc_datetime)
media_data_transfer_embodied_emissions_gco2_per_imp =
media_data_transfer_kb_per_imp x
embodied_emissions_gco2e_per_kb
For CTV/BVOD, use the power model:
video_bitrate_kbps = property.video_bitrate_kbps[device_type] ?? default_video_bitrate_kbps[device_type]
power_watts =
baseload_watts +
dynamic_watts_per_mbps x video_bitrate_kbps / 1000
media_data_transfer_usage_emissions_gco2_per_imp =
session_seconds_per_imp / 3600 x
power_watts / 1000 x
lookup_carbon_intensity_gco2e_per_kwh(country, region, utc_datetime)
media_data_transfer_embodied_emissions_gco2_per_imp =
session_seconds_per_imp x
video_bitrate_kbps / 128 x
embodied_emissions_gco2e_per_kb
media_consumer_device_usage_emissions_gco2_per_imp =
session_seconds_per_imp / 3600 x
default_device_watts[device_type] / 1000 x
lookup_carbon_intensity_gco2e_per_kwh(country, region, utc_datetime)
+ default_device_usage_emissions_from_fuel_consumption_per_second[device_type]
media_consumer_device_embodied_emissions_gco2_per_imp =
session_seconds_per_imp x
default_device_embodied_emissions_per_second[device_type]
media_corporate_emissions_gco2_per_imp =
property.allocated_adjusted_corporate_emissions_kg x 1000 /
property.total_sessions /
property.average_imps_per_session
get_platform_emissions(ad_platform):
direct_emissions = usage_emissions_per_bid_request_per_geo_gco2_per_imp + default_platform_embodied_emissions_per_bid_request_gco2e_per_imp
rtdp_emissions = 0
for rtdp in ad_platform.real_time_data_providers:
rtdp_emissions += usage_emissions_per_rtdp_request_per_geo_gco2_per_imp + default_platform_embodied_emissions_per_bid_request_gco2e_per_imp
bidder_emissions = 0
for bidder in ad_platform.bidders:
bidder_emissions += get_platform_emissions(bidder) x
ad_platform.distribution_rate_by_bidder_by_country[country, bidder] ?? 1
return direct_emissions + rtdp_emissions + bidder_emissions
ad_selection_platform_emissions_gco2_per_imp = 0
data_transfer_bytes = 0
if channel in ['search', 'dooh']:
data_transfer_bytes = default_count_ad_platform[channel] * default_consumer_device_request_size_bytes[channel]
ad_selection_platform_emissions_gco2_per_imp = default_emissions_ad_selection_gco2_per_imp_by_channel[channel]
else:
for platform in placement.ad_platforms:
ad_selection_platform_emissions_gco2_per_imp += get_platform_emissions(platform)
platform_bytes =
platform.average_bid_request_size ??
default_consumer_device_request_size_bytes[channel]
data_transfer_bytes += default_consumer_device_request_size_bytes[channel]
if platform.sends_client_side_requests:
for bidder in platform.bidders:
bidder_bytes =
bidder.average_bid_request_size ??
default_consumer_device_request_size_bytes[channel]
data_transfer_bytes +=
bidder_bytes x
platform.distribution_rate_by_bidder_by_country[country, bidder] ?? 1
Ad Selection - Data Transfer
ad_selection_data_transfer_usage_emissions_gco2_per_imp =
data_transfer_bytes / 1000 x
usage_kwh_per_gb / 1000000 x
lookup_carbon_intensity_gco2e_per_kwh(country, region, utc_datetime)
ad_selection_data_transfer_embodied_emissions_gco2_per_imp =
data_transfer_bytes / 1000 x
embodied_emissions_gco2e_per_kb
ad_selection_data_transfer_emissions_gco2_per_imp =
ad_selection_data_transfer_usage_emissions_gco2_per_imp +
ad_selection_data_transfer_embodied_emissions_gco2_per_imp
Model Quality
grid_mix_model_quality = lookup_carbon_intensity_quality(country, region)
organization_model_quality = property.organization_model_quality
property_model_quality = property.model_quality
total_platforms = 0
modeled_platforms = 0
for platform in placement.ad_platforms:
total_platforms++
if platform.model_quality > 1
modeled_platforms++
# Model one level of downstream platforms
for bidder in ad_platform.bidders:
total_platforms++
if bidder.model_quality > 1
modeled_platforms++
ad_platform_modeled_ratio = modeled_platforms / total_platforms