{
  "generated_at": "2026-09-19T20:45:38Z",
  "evidence_status": "read-only AWS CLI and public HTTP inspection",
  "api_provenance": {
    "region": "us-east-1",
    "carbon_total_operation": "sustainability:GetEstimatedCarbonEmissions",
    "carbon_total_parameters": {
      "time_period_start": "2026-01-01T00:00:00Z",
      "time_period_end_exclusive": "2026-09-01T00:00:00Z",
      "granularity": "MONTHLY",
      "emissions_types": [
        "TOTAL_LBM_CARBON_EMISSIONS",
        "TOTAL_MBM_CARBON_EMISSIONS",
        "TOTAL_SCOPE_1_CARBON_EMISSIONS",
        "TOTAL_SCOPE_2_LBM_CARBON_EMISSIONS",
        "TOTAL_SCOPE_2_MBM_CARBON_EMISSIONS",
        "TOTAL_SCOPE_3_LBM_CARBON_EMISSIONS",
        "TOTAL_SCOPE_3_MBM_CARBON_EMISSIONS"
      ]
    },
    "carbon_grouped_operation": "sustainability:GetEstimatedCarbonEmissions",
    "carbon_grouped_parameters": {
      "time_period_start": "2026-01-01T00:00:00Z",
      "time_period_end_exclusive": "2026-09-01T00:00:00Z",
      "granularity": "MONTHLY",
      "group_by": [
        "SERVICE",
        "REGION"
      ]
    },
    "water_operation": "sustainability:GetEstimatedWaterAllocation",
    "water_parameters": {
      "time_period_start": "2025-01-01T00:00:00Z",
      "time_period_end_exclusive": "2026-01-01T00:00:00Z",
      "granularity": "YEARLY_CALENDAR",
      "group_by": [
        "SERVICE",
        "REGION"
      ],
      "allocation_types": [
        "TOTAL_WATER_WITHDRAWALS"
      ]
    },
    "aws_response_units": {
      "carbon": "MTCO2e",
      "water": "m3"
    },
    "report_conversion": {
      "carbon": "MTCO2e multiplied by 1000 to kgCO2e",
      "water": "m3 multiplied by 1000 to litres"
    },
    "latest_month_method": "Maximum TimePeriod.Start actually returned by AWS was 2026-08-01; August is not inferred from a lag assumption."
  },
  "aws_sustainability": {
    "coverage": "entire accessible AWS payer account; not limited to the named sites",
    "carbon_period": {
      "start_inclusive": "2026-01-01T00:00:00Z",
      "end_exclusive_requested": "2026-09-01T00:00:00Z",
      "latest_month_returned": "2026-08",
      "model_version": "v3.0.1",
      "unit": "kgCO2e"
    },
    "carbon_monthly": [
      {
        "month": "2026-01",
        "lbm": 34.096,
        "mbm": 13.248,
        "scope1": 0.068,
        "scope2_lbm": 18.523,
        "scope2_mbm": 1.121,
        "scope3_lbm": 15.503,
        "scope3_mbm": 12.06
      },
      {
        "month": "2026-02",
        "lbm": 19.35,
        "mbm": 8.903,
        "scope1": 0.041,
        "scope2_lbm": 9.297,
        "scope2_mbm": 0.565,
        "scope3_lbm": 10.012,
        "scope3_mbm": 8.296
      },
      {
        "month": "2026-03",
        "lbm": 17.065,
        "mbm": 7.599,
        "scope1": 0.05,
        "scope2_lbm": 8.362,
        "scope2_mbm": 0.477,
        "scope3_lbm": 8.653,
        "scope3_mbm": 7.072
      },
      {
        "month": "2026-04",
        "lbm": 14.629,
        "mbm": 5.615,
        "scope1": 0.042,
        "scope2_lbm": 8.016,
        "scope2_mbm": 0.484,
        "scope3_lbm": 6.569,
        "scope3_mbm": 5.088
      },
      {
        "month": "2026-05",
        "lbm": 17.692,
        "mbm": 6.575,
        "scope1": 0.045,
        "scope2_lbm": 9.948,
        "scope2_mbm": 0.618,
        "scope3_lbm": 7.7,
        "scope3_mbm": 5.914
      },
      {
        "month": "2026-06",
        "lbm": 24.706,
        "mbm": 7.995,
        "scope1": 0.07,
        "scope2_lbm": 14.99,
        "scope2_mbm": 0.913,
        "scope3_lbm": 9.646,
        "scope3_mbm": 7.01
      },
      {
        "month": "2026-07",
        "lbm": 17.017,
        "mbm": 6.45,
        "scope1": 0.055,
        "scope2_lbm": 9.029,
        "scope2_mbm": 0.177,
        "scope3_lbm": 7.935,
        "scope3_mbm": 6.217
      },
      {
        "month": "2026-08",
        "lbm": 18.185,
        "mbm": 6.789,
        "scope1": 0.042,
        "scope2_lbm": 9.751,
        "scope2_mbm": 0.189,
        "scope3_lbm": 8.389,
        "scope3_mbm": 6.557
      }
    ],
    "carbon_totals": {
      "lbm": 162.74,
      "mbm": 63.174,
      "scope1": 0.413,
      "scope2_lbm": 87.916,
      "scope2_mbm": 4.544,
      "scope3_lbm": 74.407,
      "scope3_mbm": 58.214
    },
    "carbon_by_service": [
      {
        "service": "AmazonCloudFront",
        "lbm": 0.044,
        "mbm": 0.015
      },
      {
        "service": "AmazonEC2",
        "lbm": 104.638,
        "mbm": 51.332
      },
      {
        "service": "AmazonS3",
        "lbm": 0.106,
        "mbm": 0.028
      },
      {
        "service": "Other",
        "lbm": 57.952,
        "mbm": 11.799
      }
    ],
    "carbon_by_region": [
      {
        "region": "us-east-1",
        "lbm": 128.002,
        "mbm": 56.074
      },
      {
        "region": "ap-southeast-2",
        "lbm": 5.179,
        "mbm": 1.68
      },
      {
        "region": "eu-west-1",
        "lbm": 16.186,
        "mbm": 2.257
      },
      {
        "region": "eu-west-2",
        "lbm": 8.979,
        "mbm": 2.332
      },
      {
        "region": "ap-south-1",
        "lbm": 0.002,
        "mbm": 0.0
      },
      {
        "region": "eu-central-1",
        "lbm": 0.075,
        "mbm": 0.009
      },
      {
        "region": "us-east-2",
        "lbm": 4.317,
        "mbm": 0.822
      }
    ],
    "water": {
      "period": "2025 calendar year",
      "model_version": "v1.0.0",
      "unit": "litres allocated withdrawal",
      "total": 51.909,
      "by_service": [
        {
          "service": "Other",
          "litres": 29.132
        },
        {
          "service": "AmazonEC2",
          "litres": 22.647
        },
        {
          "service": "AmazonCloudFront",
          "litres": 0.127
        },
        {
          "service": "AmazonS3",
          "litres": 0.003
        }
      ]
    },
    "allocation_limit": "The Sustainability API groups only by usage account, AWS region and AWS service. It has no resource-id, tag, hostname or domain dimension. These carbon and water values cannot be defensibly assigned to one of the named sites."
  },
  "sites": {
    "vr.institution.art": {
      "architecture_observed": [
        "Amazon CloudFront",
        "Amazon S3",
        "Unity WebGL client",
        "visitor-device rendering",
        "EC2 multiplayer service in eu-west-2",
        "Supabase external service"
      ],
      "aws_account_boundary": "The CloudFront distribution behind the public CNAME was not present in the accessible account's CloudFront inventory; its traffic metrics and S3 inventory are therefore unavailable here. The eu-west-2 EC2 server is present in the accessible account.",
      "unity_build_bytes": {
        "data": 59224898,
        "framework_js": 610258,
        "wasm": 59367149,
        "loader_js": 13076,
        "core_total": 119215381
      },
      "cache_control_observed": "no-cache, no-store, must-revalidate",
      "ec2_multiplayer": {
        "region": "eu-west-2",
        "availability_zone": "eu-west-2b",
        "instance_type": "t3.medium",
        "vcpu": 2,
        "memory_gib": 4,
        "root_storage_gib": 30,
        "storage_type": "gp3",
        "state": "running",
        "cloudwatch_period": "2026-02-19 through 2026-09-17 UTC",
        "cpu_weighted_average_pct": 19.818,
        "cpu_maximum_pct": 99.698,
        "network_in_bytes": 8131176698,
        "network_out_bytes": 5778089846
      }
    },
    "curator_and_vr_alan": {
      "architecture_observed": [
        "EC2 in us-east-1",
        "nginx/FastAPI",
        "Amazon Bedrock Claude for VR ALAN responses",
        "other shared curator workloads and storage"
      ],
      "important_distinction": "VR ALAN is served under curator.institution.art/vr/alan/* and is not alan.institution.art. alan.institution.art is a separate demo/gateway on another shared host.",
      "shared_host": {
        "region": "us-east-1",
        "availability_zone": "us-east-1d",
        "instance_type": "t3a.medium",
        "vcpu": 2,
        "memory_gib": 4,
        "root_storage_gib": 1000,
        "storage_type": "gp3",
        "state": "running",
        "cloudwatch_period": "2026-04-10 through 2026-09-17 UTC",
        "cpu_weighted_average_pct": 0.567,
        "cpu_maximum_pct": 65.282,
        "network_in_bytes": 9322716676,
        "network_out_bytes": 37470122713
      },
      "allocation_limit": "The host serves the Curator Assistant, VR ALAN and other workloads. Its compute, storage and network totals are shared and cannot be attributed to ALAN alone. The Sustainability API response does not expose Amazon Bedrock as a separate service and does not reveal whether or how Bedrock usage contributes to the aggregated 'Other' category; no per-ALAN inference footprint can be derived."
    },
    "alan.institution.art": {
      "architecture_observed": [
        "EC2 in us-east-1",
        "nginx",
        "shared employee-agents/console/translation host"
      ],
      "shared_host": {
        "region": "us-east-1",
        "availability_zone": "us-east-1d",
        "instance_type": "t3a.medium",
        "vcpu": 2,
        "memory_gib": 4,
        "root_storage_gib": 30,
        "storage_type": "gp3",
        "state": "running",
        "cloudwatch_period": "2026-04-15 through 2026-09-17 UTC",
        "cpu_weighted_average_pct": 1.525,
        "cpu_maximum_pct": 58.649,
        "network_in_bytes": 25760101323,
        "network_out_bytes": 14119207000
      },
      "allocation_limit": "This server hosts several services. The metrics cannot be attributed to alan.institution.art alone."
    },
    "institution.it": {
      "architecture_observed": [
        "CloudFront",
        "CloudFront Functions",
        "S3 redirect",
        "serverless application behind routing layer"
      ],
      "cloudfront_period": "2026-01-01 through 2026-09-17 UTC",
      "cloudfront_www": {
        "requests": 4149505,
        "bytes_downloaded": 129613901276,
        "bytes_uploaded": 305064783
      },
      "cloudfront_apex_redirect": {
        "requests": 315782,
        "bytes_downloaded": 135655437,
        "bytes_uploaded": 46620
      },
      "s3_assets_snapshot": {
        "observed_at": "2026-09-18",
        "bytes": 9308880525
      },
      "allocation_limit": "Traffic is distribution-specific, but AWS carbon is not. The Sustainability API does not expose dynamic functions or downstream services separately, so their representation within the aggregated service categories and their institution.it share cannot be determined from this response."
    },
    "institution.tv": {
      "architecture_observed": [
        "static S3 origin",
        "CloudFront CDN",
        "HTTP/2 and HTTP/3",
        "compressed responses",
        "YouTube embeds for video playback"
      ],
      "region": "S3 us-east-1; CloudFront global edge network",
      "cloudfront_period": "2026-09-03 through 2026-09-17 UTC",
      "cloudfront": {
        "requests": 7485,
        "bytes_downloaded": 101623365,
        "bytes_uploaded": 0
      },
      "s3_snapshot": {
        "observed_at": "2026-09-18",
        "bytes": 5363752
      },
      "allocation_limit": "The site launched after the latest available carbon month (August 2026), so the Jan-Aug AWS carbon figures contain no institution.tv production usage. Embedded YouTube delivery and viewer-device energy are outside this AWS account."
    }
  },
  "infrastructure_observed_at": "2026-09-18",
  "public_disclosure_limitations": [
    "The AWS account supports multiple projects. Its totals cannot currently be assigned reliably to a website, VR visit, video-viewing hour or Alan conversation.",
    "These are modelled provider estimates, not electricity-meter readings or an independently audited Institution carbon inventory.",
    "The two carbon methods describe the same activity using different electricity accounting. They must not be added together. Their difference is not a reduction achieved by this website.",
    "Current architecture and traffic cannot be used to allocate historical emissions without a documented method. Missing data does not mean zero impact.",
    "The VR website’s CloudFront distribution was not present in the accessible AWS account inventory. Its traffic and storage metrics were unavailable in this review; the London multiplayer server was visible."
  ],
  "local_source_review": {
    "date": "2026-09-18",
    "alan": "Local VR integration guide and source specify Bedrock Claude Sonnet 4.6 with fallbacks. Runtime model settings and inference location were not verified."
  }
}
