# DLR Independent Verification Report

## Scope

This report samples the DLR extracted rows against persisted primary-source text produced by `extract_dlr.py`.

Primary source family: Repeatable source family: Digital Realty investor relations quarterly supplement and earnings release materials.

Primary source URL:

https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a

Companion verification artifacts:

- `source_manifest.csv`
- `source_cache_manifest.json`
- `verification_sample_checks.csv`
- `verification_summary.json`
- `validation_report.json`

## Verification Summary

Status: PASS

sampled_row_count: 12  
pass_count: 12  
fail_count: 0  
rows_matched_to_cached_source_text: 12  

## Method

`extract_dlr.py` fetches primary source files into `sources/raw/`, converts them into persisted text files under `sources/text/`, and extracts rows from those cached text files using repeatable line-pattern matching. The extraction no longer emits rows from embedded snippet constants.

`validate_dlr.py` independently reloads `source_cache_manifest.json`, reads the persisted text files when available, falls back to the copied root cached text excerpt when necessary, and confirms that every sampled verification snippet and every extracted row snippet is present in source text. If the auxiliary verification CSV is absent, the validator derives the fixed 12-row verification sample from `extracted_rows.json` so the expected-artifacts-only package remains runnable.

## Sample Checks

| row_id | company | period | metric_name | raw_value | normalized_value | source_url | verdict | confidence |
|---:|---|---|---|---:|---:|---|---|---|
| 1 | DLR | 2026Q1 | live_capacity | 3,024 | 3024 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 2 | DLR | 2026Q1 | live_capacity | 2,408 | 2408 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 3 | DLR | 2026Q1 | capacity_added_this_quarter | 3,024 - 2,963 | 61 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 4 | DLR | 2026Q1 | capacity_under_construction | 1,169 | 1169 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 7 | DLR | 2026Q1 | future_capacity_pipeline_total | 4,640 + 540 | 5180 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | medium |
| 8 | DLR | 2026Q1 | pre_leased_percentage | 61% | 61 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 9 | DLR | 2026Q1 | backlog_rpo_annualized_base_rent | $1.8 billion | 1800000000 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 10 | DLR | 2026Q1 | backlog_rpo_annualized_base_rent | $1.0 billion | 1000000000 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 11 | DLR | 2026Q1 | lease_commitments_bookings_capacity | 312.8 | 312.8 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 12 | DLR | 2026Q1 | lease_commitments_bookings_annualized_base_rent | $422,774 thousand | 422774000 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 13 | DLR | 2026Q1 | expected_commencement_window | nineteen months | 19 | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |
| 16 | DLR | 2026Q1 | capex_guidance_development_net_partner_contributions | $3,500 - $4,000 million | [3500000000,4000000000] | https://investor.digitalrealty.com/static-files/953419cb-91ee-4485-8017-26ee0b29bb2a | PASS | high |

## Normalization Cases

Several USD rows are reported in tables as dollar amounts in thousands and normalized to full USD in `extracted_rows.json`. These are expected normalization cases, not unsupported values:

1. `$422,774 thousand` normalized to `422774000`
2. `$729,959 thousand` normalized to `729959000`
3. `$795,384 thousand` normalized to `795384000`
4. `$2,980,028 thousand` normalized to `2980028000`

## Verification Conclusion

The artifact set now supports a repeatable audit path: HTTPS source URLs are listed in `source_manifest.csv`, extraction reads cached primary-source text, validation checks cited snippets against source text, and the repaired validator exits 0 for both copied-context and expected-artifacts-only layouts.
