feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
{
"schema_version" : "0.1" ,
"observed_at" : "2026-08-10" ,
"prices_exclude_vat" : true ,
2026-08-15 02:32:25 +02:00
"fx" : {
"usd_per_eur" : 1.1555 ,
"observed_at" : "2026-08-10" ,
"source" : "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml"
} ,
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
"providers" : [
{
"id" : "host-europe-cloud-storage" ,
"provider" : "Host Europe" ,
"service_class" : "Cloud Storage (historical S3 specification)" ,
"region" : null ,
"storage_eur_per_gb_month" : null ,
"monthly_minimum_eur" : null ,
"included_storage_gb" : 0 ,
"included_egress_gb" : 0 ,
"egress_eur_per_gb" : null ,
"operations_eur_per_month" : null ,
"support_eur_per_month" : null ,
"operator_hours_per_month" : 2 ,
2026-08-15 02:32:25 +02:00
"status" : "not-offered" ,
"source" : "account holder, 2026-08-15; superseding https://www.hosteurope.de/download/PVL/Preis_und_Leistungsverzeichnis_CloudStorage_1-0-1.pdf" ,
"status_evidence" : "Account-holder statement 2026-08-15: Host Europe does not offer a fully managed S3 service, and offers no API to provision storage. The 2020 Cloud Storage price and service specification does not describe a currently orderable product. This is the account holder's knowledge, not vendor-written confirmation; it is recorded as a blocking answer rather than as a verified vendor term."
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
"id" : "scaleway-standard-multi-az" ,
"provider" : "Scaleway" ,
"service_class" : "Standard Multi-AZ" ,
"region" : "nl-ams" ,
"storage_eur_per_gb_month" : 0.01606 ,
"monthly_minimum_eur" : 0 ,
"included_storage_gb" : 0 ,
"included_egress_gb" : 75 ,
"egress_eur_per_gb" : 0.01 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 1 ,
"status" : "priced" ,
"source" : "https://www.scaleway.com/en/pricing/storage/"
} ,
{
"id" : "hetzner-object-storage" ,
"provider" : "Hetzner" ,
"service_class" : "Object Storage" ,
"region" : "nbg1" ,
"storage_eur_per_gb_month" : null ,
"monthly_minimum_eur" : 6.49 ,
"included_storage_gb" : 1000 ,
"included_egress_gb" : 1000 ,
"egress_eur_per_gb" : null ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 1.5 ,
"status" : "priced-within-included-quota" ,
"source" : "https://www.hetzner.com/storage/object-storage/"
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "host-europe-garage-1" ,
"provider" : "Host Europe" ,
"service_class" : "Self-managed Garage, 1 VM" ,
"region" : "Germany" ,
"storage_eur_per_gb_month" : null ,
"monthly_minimum_eur" : 31.92 ,
"included_storage_gb" : 400 ,
"included_egress_gb" : 100000 ,
"egress_eur_per_gb" : 0 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 2 ,
"setup_operator_hours" : 8 ,
"topology" : "1 x 8 vCPU / 16 GB / 400 GB NVMe; replication factor 1; no redundancy" ,
"status" : "estimate-not-production" ,
"source" : "https://www.hosteurope.de/Server/Virtual-Server/"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "host-europe-garage-2" ,
"provider" : "Host Europe" ,
"service_class" : "Self-managed Garage, 2 VMs" ,
"region" : "Germany" ,
"storage_eur_per_gb_month" : null ,
"monthly_minimum_eur" : 63.85 ,
"included_storage_gb" : 400 ,
"included_egress_gb" : 100000 ,
"egress_eur_per_gb" : 0 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 3 ,
"setup_operator_hours" : 12 ,
"topology" : "2 x 8 vCPU / 16 GB / 400 GB NVMe; replication factor 2; one provider/location" ,
"status" : "estimate-degraded-quorum" ,
"source" : "https://www.hosteurope.de/Server/Virtual-Server/"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "host-europe-garage-3" ,
"provider" : "Host Europe" ,
"service_class" : "Self-managed Garage, 3 VMs" ,
"region" : "Germany" ,
"storage_eur_per_gb_month" : null ,
"monthly_minimum_eur" : 95.77 ,
"included_storage_gb" : 400 ,
"included_egress_gb" : 100000 ,
"egress_eur_per_gb" : 0 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 4 ,
"setup_operator_hours" : 16 ,
"topology" : "3 x 8 vCPU / 16 GB / 400 GB NVMe; replication factor 3; one provider/location" ,
"status" : "estimate-production-candidate" ,
"source" : "https://www.hosteurope.de/Server/Virtual-Server/"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "hetzner-garage-1" ,
"provider" : "Hetzner" ,
"service_class" : "Self-managed Garage, 1 VM" ,
"region" : "nbg1" ,
"storage_eur_per_gb_month" : null ,
"monthly_minimum_eur" : 30.09 ,
"included_storage_gb" : 320 ,
"included_egress_gb" : 20000 ,
"egress_eur_per_gb" : 0 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 2 ,
"setup_operator_hours" : 8 ,
"topology" : "1 x CX53 / 16 vCPU / 32 GB / 320 GB local SSD plus IPv4; replication factor 1" ,
"status" : "estimate-not-production" ,
"source" : "https://docs.hetzner.com/general/infrastructure-and-availability/price-adjustment/"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "hetzner-garage-2" ,
"provider" : "Hetzner" ,
"service_class" : "Self-managed Garage, 2 VMs" ,
"region" : "nbg1" ,
"storage_eur_per_gb_month" : null ,
"monthly_minimum_eur" : 60.18 ,
"included_storage_gb" : 320 ,
"included_egress_gb" : 20000 ,
"egress_eur_per_gb" : 0 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 3 ,
"setup_operator_hours" : 12 ,
"topology" : "2 x CX53 / 16 vCPU / 32 GB / 320 GB local SSD plus IPv4; replication factor 2" ,
"status" : "estimate-degraded-quorum" ,
"source" : "https://docs.hetzner.com/general/infrastructure-and-availability/price-adjustment/"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "hetzner-garage-3" ,
"provider" : "Hetzner" ,
"service_class" : "Self-managed Garage, 3 VMs" ,
"region" : "nbg1" ,
"storage_eur_per_gb_month" : null ,
"monthly_minimum_eur" : 90.27 ,
"included_storage_gb" : 320 ,
"included_egress_gb" : 20000 ,
"egress_eur_per_gb" : 0 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 4 ,
"setup_operator_hours" : 16 ,
"topology" : "3 x CX53 / 16 vCPU / 32 GB / 320 GB local SSD plus IPv4; replication factor 3 in one location" ,
"status" : "estimate-production-candidate" ,
"source" : "https://docs.hetzner.com/general/infrastructure-and-availability/price-adjustment/"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "aws-s3-standard" ,
"provider" : "AWS" ,
"service_class" : "S3 Standard" ,
"region" : "eu-central-1" ,
"storage_eur_per_gb_month" : 0.0212 ,
"monthly_minimum_eur" : 0 ,
"included_storage_gb" : 0 ,
"included_egress_gb" : 100 ,
"egress_eur_per_gb" : 0.07789 ,
"write_eur_per_1000" : 0.00467 ,
"read_eur_per_1000" : 0.00037 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 1.5 ,
"setup_operator_hours" : 4 ,
"status" : "priced" ,
"source" : "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonS3/current/eu-central-1/index.json"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "azure-blob-hot-zrs" ,
"provider" : "Microsoft Azure" ,
"service_class" : "Blob Storage Hot ZRS (not S3 API)" ,
"region" : "germanywestcentral" ,
"storage_eur_per_gb_month" : 0.0197 ,
"monthly_minimum_eur" : 0 ,
"included_storage_gb" : 0 ,
"included_egress_gb" : 0 ,
"egress_eur_per_gb" : 0.08 ,
"write_eur_per_1000" : 0.00474 ,
"read_eur_per_1000" : 0.00038 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 2 ,
"setup_operator_hours" : 6 ,
"status" : "priced-egress-estimate" ,
"source" : "https://prices.azure.com/api/retail/prices"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "gcp-cloud-storage-standard" ,
"provider" : "Google Cloud" ,
"service_class" : "Cloud Storage Standard regional (not S3 API)" ,
"region" : "europe-west3" ,
"storage_eur_per_gb_month" : 0.01731 ,
"monthly_minimum_eur" : 0 ,
"included_storage_gb" : 0 ,
"included_egress_gb" : 0 ,
"egress_eur_per_gb" : 0.1 ,
"write_eur_per_1000" : 0.00433 ,
"read_eur_per_1000" : 0.00035 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 2 ,
"setup_operator_hours" : 6 ,
"status" : "priced-egress-estimate" ,
"source" : "https://cloud.google.com/storage/pricing"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
} ,
{
2026-08-15 02:32:25 +02:00
"id" : "stackit-object-storage" ,
"provider" : "STACKIT" ,
"service_class" : "Object Storage Premium-EU01" ,
"region" : "Germany South" ,
"storage_eur_per_gb_month" : 0.02662 ,
"monthly_minimum_eur" : 0 ,
"included_storage_gb" : 0 ,
"included_egress_gb" : 100000 ,
"egress_eur_per_gb" : 0 ,
"write_eur_per_1000" : 0 ,
"read_eur_per_1000" : 0 ,
"operations_eur_per_month" : 0 ,
"support_eur_per_month" : 0 ,
"operator_hours_per_month" : 1.5 ,
"setup_operator_hours" : 4 ,
"status" : "priced" ,
"source" : "https://www.stackit.de/de/preise__trashed/cloud-services/iaas/stackit-storage/"
feat(portfolio): complete RESOURCE-WP-0003 T06 optimization cases and T07 reporting
T06: optimization-case schema, fail-closed evaluator, cadence and decision
template. Every option including the baseline must present all ten decision
fields; one unknown blocks the comparison. Validated on the storage case
(Hetzner computes and loses to Scaleway by EUR 29.14/month on operator labour;
Host Europe blocks on four named gaps) and on the non-storage reef-railiance
k3s rightsizing case (low utilization is real, but nothing is costable while
the railiance01 price is unknown).
T07: portfolio report over coverage, lifecycle, utilization, cost, renewals,
risks, open cases, and next actions, derived only from committed evidence.
Portfolio spend is reported null rather than as a partial sum, unattributed
cost is a named list rather than a spread, and unmeasurable resources are
reported rather than dropped.
RESOURCE-WP-0003 is finished; both cases remain blocked_on_evidence against
live delegated records in other repositories. RESOURCE-WP-0002 is untouched.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-14 09:28:44 +02:00
}
]
}