diff --git a/README.md b/README.md index 2e1370d..b8b9198 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,8 @@ This repository provides: and metadata that Microplex may use to compose calibration targets. - **Microdata**: Survey and administrative microdata ingestion for CPS, PUF, FRS, and related datasets. -- **Jurisdiction loaders**: US and UK source-specific ETL. +- **Jurisdiction loaders**: Source-specific ETL that emits the shared Arch + schema. Arch facts are not PolicyEngine's assertion that a source claim is ultimately true. They are source-backed claims with provenance. @@ -47,6 +48,41 @@ The load-bearing rule: | Arch Target Inputs | Source facts shaped for calibration | SOI EITC totals, CBO baselines, source-published growth factors | | Microplex Targets | Model-ready target sets | Source selection, reconciliation, aging, activation profiles | +The storage split is documented in +[`docs/storage-architecture.md`](docs/storage-architecture.md): `arch-raw` +stores immutable source bytes, `arch-derived` stores reproducible build +artifacts, and Supabase/Postgres hosts the queryable relational Arch registry +mirrored from accepted builds. + +## Repository Model + +Arch is global at the schema, validation, database, and build-harness layer. +Jurisdiction packages are modular source packages that emit the same Arch +objects. + +```text +GitHub repositories: + PolicyEngine/arch-data # Core schema, validation, harness, DB schema + PolicyEngine/arch-us # US source parsers/specs; emits Arch records + PolicyEngine/arch-uk # UK source parsers/specs; emits Arch records + +Python distributions: + policyengine-arch-data + policyengine-arch-us + policyengine-arch-uk + +Python imports: + arch + arch_us + arch_uk +``` + +The current `arch.jurisdictions.us` package is an in-repo prototype while the +core schema is still moving. Once the Arch contract stabilizes, US and UK +source packages should move to `arch-us` and `arch-uk`. They must not fork +`AggregateConstraint`, source-row/source-cell lineage, stable keys, validation, or the +relational DB schema. + ## Structure ```text @@ -57,7 +93,7 @@ arch/ │ ├── normalization/ # Low-assumption representation helpers │ ├── targets/ # Target input schema, client, loaders │ ├── microdata/ # Microdata registry, ingestion, queries -│ ├── jurisdictions/ # Jurisdiction-specific loaders +│ ├── jurisdictions/ # Temporary in-repo jurisdiction source prototypes ├── db/ # SQLModel persistence and source loaders │ ├── schema.py # SQLModel: Target, Stratum, StratumConstraint │ ├── supabase_client.py # Supabase client helpers @@ -84,7 +120,7 @@ cd arch pip install -e ".[dev]" ``` -### 2. Initialize and Load Target Inputs +### 2. Initialize and Load Legacy Target Inputs ```bash arch init @@ -92,7 +128,330 @@ arch load soi --years 2021 arch stats ``` -### 3. Query Target Inputs in Python +### 3. Validate Fixture Facts + +The standalone Arch fact harness validates JSONL aggregate facts and emits a +JSON report with fact counts, QA counts, warnings, and validation errors: + +```bash +uv run python -m arch.harness validate-facts --fixture +# Equivalent when the console script is installed: +uv run arch validate-facts --fixture +``` + +To build a tiny source-backed fixture from the packaged IRS SOI Table 1.1 +workbook and validate it: + +```bash +uv run arch build-fixture-facts soi-table-1-1 --year 2023 --output /tmp/arch-soi-facts.jsonl +uv run arch validate-facts --input /tmp/arch-soi-facts.jsonl +``` + +To preserve the whole used range of that workbook as source-cell records before +semantic fact construction: + +```bash +uv run arch build-source-cells soi-table-1-1 --year 2023 --output /tmp/arch-soi-cells.jsonl +uv run arch validate-source-cells --input /tmp/arch-soi-cells.jsonl +``` + +Delimited source packages should preserve the whole file as row records before +selecting facts. For example, the BEA NIPA flat file pilot parses all source +rows, then emits two selected pension contribution facts: + +```bash +uv run arch build-source-rows bea-nipa-pension-contributions --year 2022 --output /tmp/arch-bea-rows.jsonl +uv run arch validate-source-rows --input /tmp/arch-bea-rows.jsonl +``` + +ZIP archives with rectangular publisher files use the same row-first contract. +The CMS Marketplace OEP state-level package preserves the raw CMS ZIP, parses +its CSV member into source rows/cells, and emits state-level enrollment and +APTC facts: + +```bash +uv run arch validate-package cms-aca-oep-state-level --year 2024 +uv run arch build-suite cms-aca-oep-state-level --year 2024 --out /tmp/arch-cms-aca-oep-2024 --replace +``` + +To build a relational Arch DB artifact with aggregate facts, first-class +constraints, source-cell lineage, and source-row lineage when available: + +```bash +uv run arch build-db --fixture --db /tmp/arch-fixture.db --replace +``` + +This writes queryable Arch-owned tables such as `source_rows`, +`source_columns`, `source_row_values`, `source_cells`, `aggregate_facts`, +`aggregate_constraints`, `concept_alignments`, `fact_source_cells`, and +`fact_source_rows`. The DB is a deterministic build artifact from source +manifests, parsers, and checked-in specs; hosted Postgres/Supabase should mirror +this schema rather than become the unreproducible origin of source-backed facts. + +To run the source-package build suite agents should target, build the source +rows/cells, source-region spec, selector report, aggregate facts, DB artifact, +and JSON reports into one output directory: + +```bash +uv run arch build-suite soi-table-1-1 --year 2023 --out /tmp/arch-suite --replace +``` + +The same command accepts a declarative package directory. This is the preferred +agent authoring surface: + +```bash +uv run arch build-suite packages/irs_soi/table_1_1 --year 2023 --out /tmp/arch-suite --replace +``` + +The first UK source packages use the OBR March 2026 EFO receipts and +expenditure workbooks and emit 2025-26 fiscal-year aggregate facts: + +```bash +uv run arch validate-package obr-efo-receipts --year 2025 +uv run arch build-suite obr-efo-receipts --year 2025 --out /tmp/arch-obr-efo-receipts-2025 --replace +uv run arch validate-package obr-efo-expenditure --year 2025 +uv run arch build-suite obr-efo-expenditure --year 2025 --out /tmp/arch-obr-efo-expenditure-2025 --replace +uv run arch validate-package slc-student-support-england-2025 --year 2025 +uv run arch build-suite slc-student-support-england-2025 --year 2025 --out /tmp/arch-slc-student-support-england-2025 --replace +``` + +The first ZIP-backed PE migration package is CMS Marketplace OEP state-level +PUF: + +```bash +uv run arch validate-package cms-aca-oep-state-level --year 2024 +uv run arch build-suite cms-aca-oep-state-level --year 2024 --out /tmp/arch-cms-aca-oep-2024 --replace +``` + +This writes: + +```text +/ + datapackage.json + ro-crate-metadata.json + source_rows.jsonl + source_cells.jsonl + source_regions.jsonl + facts.jsonl + consumer_facts.jsonl + arch.db + reports/ + source_rows.json + source_cells.json + source_regions.json + selectors.json + source_records.json + facts.json + consumer_facts.json + concept_alignments.json + database.json + agent_acceptance.json + build_summary.json +``` + +Agent-authored source packages should be judged by these reports. They should +add or update source manifests, parsers, selector specs, and source-record +specs; they should not hand-edit DB artifacts or core schemas. +The quick gate is `reports/agent_acceptance.json`, which checks raw R2 links, +full-document parsing, fact provenance, source-cell/source-row lineage, +expected first-class constraints, row-backed filter/constraint evidence, +concept alignment evidence, Axiom concept validation status, and stage-report +validity. + +To build the downstream integration artifact Microplex should consume, merge +available source-package suites for a year into one bundle: + +```bash +uv run arch build-bundle --year 2023 --out /tmp/arch-us-2023 --replace +``` + +This writes a root `consumer_facts.jsonl`, `source_packages.json`, +`coverage.json`, and `reports/build_bundle.json`. Source-specific suite outputs +remain nested under `sources//`. The bundle coverage report +includes counts by source, geography, entity, period, observed measure, and +concept plus duplicate `aggregate_fact_key` and `semantic_fact_key` diagnostics. +The row-level downstream contract is `consumer_facts.jsonl`; the other bundle +files are diagnostic reports for gating and review. Consumer-contract rows must +carry canonical constraints explicitly in `universe_constraints`; source-layout +`dimensions` are metadata and are not target constraints. + +Builds without an Axiom CLI still pass when the source package is otherwise +valid, but `agent_acceptance.json` warns with +`concept_alignment_validation_skipped`. For strict agent review, require every +canonical concept to resolve through Axiom: + +```bash +uv run arch build-suite packages/irs_soi/table_1_1 \ + --year 2023 \ + --out /tmp/arch-suite \ + --replace \ + --axiom-cli axiom \ + --axiom-root ../rules-us \ + --require-axiom-validation +``` + +For the faster authoring loop before running the full build suite, validate a +package directory directly: + +```bash +uv run arch validate-package packages/irs_soi/table_1_1 --year 2023 +``` + +To start a new package from the constrained YAML template: + +```bash +uv run arch scaffold-package --source-id irs_soi --package-id soi-table-1-2 \ + --out packages/irs_soi/table_1_2 \ + --source-table "Publication 1304 Table 1.2" \ + --resource-directory data/irs_soi/table_1_2 +``` + +Raw source artifacts should be content-addressed and checksum-locked before a +package spec depends on them. Tiny fixtures can stay in Git, but production raw +files should live in private Cloudflare R2 buckets, with `manifest.yaml` and the +hosted database carrying the queryable provenance: + +```bash +# One-time after creating the PolicyEngine Cloudflare account and running +# `npx wrangler login`: +uv run arch bootstrap-r2 --raw-bucket arch-raw --derived-bucket arch-derived + +# Fetch/register a source artifact, write db/data/.../manifest.yaml, and upload +# the exact bytes to R2 when Wrangler is authenticated: +uv run arch fetch-artifact \ + --url https://www.irs.gov/pub/irs-soi/23in12ms.xls \ + --source-id irs_soi \ + --package-id soi-table-1-2 \ + --year 2023 \ + --out-dir db/data/irs_soi/table_1_2 \ + --source-page https://www.irs.gov/statistics/soi-tax-stats-individual-income-tax-returns-complete-report-publication-1304-basic-tables-part-1 \ + --table "Publication 1304 Table 1.2" \ + --upload-r2 + +# Audit local manifests and checksums: +uv run arch inventory-artifacts --root db/data + +# Upload all existing manifest-declared local artifacts to arch-raw and write +# storage.r2 metadata back into the manifests: +uv run arch publish-raw --root db/data +``` + +To coordinate broad PE source migration without jumping straight to semantic +target construction, generate an agent batch plan from the PE manifest: + +```bash +uv run arch plan-pe-sources \ + --manifest docs/pe-us-source-manifest.csv \ + --out docs/pe-us-source-agent-plan.json \ + --markdown docs/pe-us-source-agent-plan.md +``` + +The plan marks existing source packages, primary-source lookup work, +fetch/register work, source-cell scaffolds, and repair items. Fetch hints +include `--upload-r2`; semantic target work still requires a package to pass +`build-suite`. Aggregators such as FRED stay in the migration plan only as +publisher-source lookup clues; they should not become canonical Arch source +artifacts or target provenance. + +R2 owns the immutable bytes. Arch manifests and Supabase/Postgres mirrors own +metadata such as source URL, checksum, size, vintage, extraction date, and R2 +key. Source-package parsers still read deterministic local/package resources, +so builds remain reproducible without making hosted storage the source of +schema truth. + +The same build-suite path also supports the SOI Table 1.4 wage pilot: + +```bash +uv run arch build-suite soi-table-1-4 --year 2023 --out /tmp/arch-suite-1-4 --replace +uv run arch build-suite packages/irs_soi/table_1_4 --year 2023 --out /tmp/arch-suite-1-4 --replace +``` + +To prepare the deterministic SQLite artifact for a hosted Supabase/Postgres +mirror, export each relational table to JSONL plus a manifest: + +```bash +uv run arch export-db-tables --db /tmp/arch-suite/arch.db --out /tmp/arch-mirror --replace +``` + +To publish the deterministic build outputs to the `arch-derived` R2 bucket: + +```bash +uv run arch publish-derived \ + --dir /tmp/arch-suite \ + --source-id irs_soi \ + --package-id soi-table-1-1 \ + --year 2023 \ + --build-artifacts-out /tmp/arch-build-artifacts.jsonl +``` + +The Supabase schema for this mirror lives at +`supabase/migrations/20260504_arch_bronze.sql`. Raw government spreadsheets are +mirrored as artifact metadata plus one row per parsed cell, not one tidy table +per sheet. Typed rectangular microdata can still use separate raw microdata +tables. + +After the migration is applied and the `arch` schema is exposed through the +Supabase Data API, accepted mirror exports can be upserted with: + +```bash +uv run arch load-supabase-mirror \ + --dir /tmp/arch-mirror \ + --build-artifacts /tmp/arch-build-artifacts.jsonl +``` + +Use `--dry-run` first to validate JSONL row counts and file coverage without +writing to Supabase. + +Arch facts keep source concepts and canonical concepts separately. For example, +the SOI Table 1.1 adjusted gross income column is preserved as +`irs_soi.adjusted_gross_income`, while the canonical concept is +`us:statutes/26/62#adjusted_gross_income` with an `exact` alignment assertion. +The SOI Table 1.4 wage amount column is preserved as `irs_soi.total_wages`, +while the canonical concept is `us:statutes/26/62#input.wages` with a +`broad_match` assertion because Axiom currently treats wages as an inferred +input under IRC section 62 rather than an exact statutory term. +This lets Arch share vocabulary with Axiom legal terms without importing Axiom +runtime code. + +To validate source-to-canonical concept alignments against an installed Axiom +concept CLI outside the full suite: + +```bash +uv run arch validate-concept-alignments --input /tmp/arch-soi-facts.jsonl \ + --axiom-cli axiom \ + --axiom-root ../rules-us +``` + +The command emits JSON with the alignments checked, validation errors, and +warnings. If the Axiom CLI is omitted, Arch still reports alignment metadata and +warns that external concept validation was skipped. `build-suite` accepts the +same `--axiom-cli` and `--axiom-root` flags, plus +`--require-axiom-validation` when skipped concept checks should fail agent +acceptance. + +### 4. Run Arch Explorer + +Arch Explorer is a Next/Tailwind app that reads the fixture fact JSONL and +source-cell JSONL, then shows aggregate facts, source-cell lineage, and +consumer-contract fields: + +```bash +cd explorer +npm install +npm run dev -- --port 3090 +``` + +Then open `http://localhost:3090`. + +By default, the workbench reads the current local suite outputs at +`/tmp/arch-us-2023-parity/sources/*` and +`/tmp/arch-soi-historic-table-2-2022`. To point it at another build, set: + +```bash +ARCH_EXPLORER_DATA_DIRS=/tmp/arch-build-a,/tmp/arch-build-b npm run dev -- --port 3090 +``` + +### 5. Query Target Inputs in Python ```python from arch.targets import DataSource, Target, TargetType @@ -105,7 +464,7 @@ target_inputs = get_targets( ) ``` -### 4. Query Microdata +### 6. Query Microdata ```python from arch.microdata import query_cps_asec @@ -125,9 +484,10 @@ Target inputs use a three-table schema: These are inputs to Microplex target composition. Microplex owns the active, reconciled, aged target sets used for calibration. -## Arch Facts And Target Inputs +## Arch Facts And Microplex Targets -Source facts should be structurally normalized before becoming target inputs. +Source facts should be structurally normalized before Microplex considers them +as calibration target candidates. Normalization is about representation, not modeling: units, scales, typed values, geography IDs, period IDs, and same-source arithmetic where the source publishes the total/share relationship. @@ -182,14 +542,16 @@ target_input = as_target( ## Boundaries -- **Arch** owns source data, provenance, source facts, target inputs, and +- **Arch** owns source data, provenance, source facts, aggregate facts, and microdata ingestion. - **Microplex Targets** owns source selection, reconciliation, aging, imputation, active target sets, and calibration profiles. - **Microplex** owns simulation interfaces, entity modeling, weights, and calibration execution. -- **Jurisdiction packages** such as `microplex-us` own simulation-specific - variable mappings and target recipes. +- **Jurisdiction source packages** such as `arch-us` and `arch-uk` own + source-specific parsers and specs that emit shared Arch records. +- **Jurisdiction simulation packages** such as `microplex-us` own + simulation-specific variable mappings and target recipes. - **PolicyEngine** owns policy-facing tools and analysis workflows. ## Related Repositories diff --git a/arch/__init__.py b/arch/__init__.py index 263dc0f..c5c4004 100644 --- a/arch/__init__.py +++ b/arch/__init__.py @@ -1,16 +1,27 @@ """Arch source-data foundation. -Arch owns source-backed facts, target inputs, and microdata ingestion. Modeling -choices such as source reconciliation, aging, imputation, target activation, -and calibration profiles belong in Microplex packages. +Arch owns source artifacts, source-backed facts, constraints, provenance, and +microdata ingestion. Modeling choices such as source reconciliation, aging, +imputation, target activation, and calibration profiles belong in Microplex +packages. """ __all__ = [ + "bundle", "client", + "concepts", + "consumer_contract", + "core", + "database", "facts", + "harness", "jurisdictions", + "mirror", "microdata", "normalization", + "source_package", + "store", "sources", + "suite", "targets", ] diff --git a/arch/artifacts.py b/arch/artifacts.py new file mode 100644 index 0000000..456caa2 --- /dev/null +++ b/arch/artifacts.py @@ -0,0 +1,1134 @@ +"""Source artifact acquisition and storage helpers for Arch.""" + +from __future__ import annotations + +import hashlib +import json +import mimetypes +from dataclasses import dataclass +from datetime import UTC, datetime +from pathlib import Path +import posixpath +import shlex +import sqlite3 +import subprocess +from typing import Any +from urllib.parse import unquote, urlparse + +import httpx +import yaml + + +DEFAULT_R2_RAW_BUCKET = "arch-raw" +DEFAULT_R2_DERIVED_BUCKET = "arch-derived" +DEFAULT_R2_PREFIX = "raw" +DEFAULT_R2_DERIVED_PREFIX = "derived" + + +@dataclass(frozen=True) +class ArtifactStorageLocation: + """Location metadata for a stored artifact.""" + + provider: str + bucket: str + key: str + + @property + def uri(self) -> str: + """Return a storage URI.""" + return f"{self.provider}://{self.bucket}/{self.key}" + + def to_dict(self) -> dict[str, str]: + """Return a JSON-serializable location.""" + return { + "provider": self.provider, + "bucket": self.bucket, + "key": self.key, + "uri": self.uri, + } + + +@dataclass(frozen=True) +class ArtifactCommandResult: + """Result from a storage command.""" + + command: tuple[str, ...] + returncode: int + stdout: str + stderr: str + + @property + def ok(self) -> bool: + """Whether the command succeeded.""" + return self.returncode == 0 + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable result.""" + return { + "command": list(self.command), + "returncode": self.returncode, + "stdout": self.stdout, + "stderr": self.stderr, + } + + +@dataclass(frozen=True) +class ArtifactFetchReport: + """Report from fetching and storing one source artifact.""" + + source_id: str + package_id: str + year: int + source_url: str + filename: str + local_path: str + manifest_path: str + sha256: str + size_bytes: int + fetched_at: str + r2_location: ArtifactStorageLocation | None + r2_upload: ArtifactCommandResult | None + errors: tuple[str, ...] = () + + @property + def valid(self) -> bool: + """Whether acquisition and optional upload succeeded.""" + return not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "source_id": self.source_id, + "package_id": self.package_id, + "year": self.year, + "source_url": self.source_url, + "filename": self.filename, + "local_path": self.local_path, + "manifest_path": self.manifest_path, + "sha256": self.sha256, + "size_bytes": self.size_bytes, + "fetched_at": self.fetched_at, + "r2_location": ( + self.r2_location.to_dict() if self.r2_location else None + ), + "r2_upload": self.r2_upload.to_dict() if self.r2_upload else None, + "errors": list(self.errors), + } + + +@dataclass(frozen=True) +class ArtifactInventoryEntry: + """One manifest-declared source artifact status.""" + + manifest_path: str + year: str + filename: str + local_path: str + exists: bool + sha256_expected: str | None + sha256_actual: str | None + size_bytes: int | None + source_url: str | None + r2: dict[str, Any] | None + errors: tuple[str, ...] + + @property + def valid(self) -> bool: + """Whether this artifact is locally available and checksum-valid.""" + return not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable inventory entry.""" + return { + "valid": self.valid, + "manifest_path": self.manifest_path, + "year": self.year, + "filename": self.filename, + "local_path": self.local_path, + "exists": self.exists, + "sha256_expected": self.sha256_expected, + "sha256_actual": self.sha256_actual, + "size_bytes": self.size_bytes, + "source_url": self.source_url, + "r2": self.r2, + "errors": list(self.errors), + } + + +@dataclass(frozen=True) +class ArtifactInventoryReport: + """Manifest inventory report for source artifacts.""" + + root: str + counts: dict[str, int] + entries: tuple[ArtifactInventoryEntry, ...] + errors: tuple[str, ...] = () + + @property + def valid(self) -> bool: + """Whether every manifest entry is locally available and valid.""" + return not self.errors and all(entry.valid for entry in self.entries) + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "root": self.root, + "counts": self.counts, + "entries": [entry.to_dict() for entry in self.entries], + "errors": list(self.errors), + } + + +@dataclass(frozen=True) +class RawArtifactPublishEntry: + """One manifest-declared raw artifact upload status.""" + + manifest_path: str + source_id: str + package_id: str + year: str + filename: str + local_path: str + sha256: str | None + size_bytes: int | None + r2_location: ArtifactStorageLocation | None + upload: ArtifactCommandResult | None + errors: tuple[str, ...] = () + + @property + def valid(self) -> bool: + """Whether this raw artifact uploaded and was registered.""" + return not self.errors and self.upload is not None and self.upload.ok + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable entry.""" + return { + "valid": self.valid, + "manifest_path": self.manifest_path, + "source_id": self.source_id, + "package_id": self.package_id, + "year": self.year, + "filename": self.filename, + "local_path": self.local_path, + "sha256": self.sha256, + "size_bytes": self.size_bytes, + "r2_location": ( + self.r2_location.to_dict() if self.r2_location else None + ), + "upload": self.upload.to_dict() if self.upload else None, + "errors": list(self.errors), + } + + +@dataclass(frozen=True) +class RawArtifactPublishReport: + """Report from publishing local manifest-declared raw artifacts to R2.""" + + root: str + entries: tuple[RawArtifactPublishEntry, ...] + errors: tuple[str, ...] = () + + @property + def valid(self) -> bool: + """Whether every raw artifact uploaded and manifest metadata was updated.""" + return not self.errors and all(entry.valid for entry in self.entries) + + @property + def counts(self) -> dict[str, int]: + """Return summary counts.""" + manifest_paths = {entry.manifest_path for entry in self.entries} + return { + "manifest_count": len(manifest_paths), + "artifact_count": len(self.entries), + "uploaded_count": sum(1 for entry in self.entries if entry.valid), + "failed_count": sum(1 for entry in self.entries if not entry.valid), + "r2_link_count": sum( + 1 for entry in self.entries if entry.r2_location is not None + ), + } + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "root": self.root, + "counts": self.counts, + "entries": [entry.to_dict() for entry in self.entries], + "errors": list(self.errors), + } + + +@dataclass(frozen=True) +class R2BootstrapReport: + """Report from bootstrapping Arch R2 buckets.""" + + buckets: tuple[str, ...] + commands: tuple[ArtifactCommandResult, ...] + authenticated: bool + errors: tuple[str, ...] + + @property + def valid(self) -> bool: + """Whether all requested buckets were created or already available.""" + return self.authenticated and not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "authenticated": self.authenticated, + "buckets": list(self.buckets), + "commands": [command.to_dict() for command in self.commands], + "errors": list(self.errors), + } + + +@dataclass(frozen=True) +class DerivedArtifactUploadEntry: + """One derived build artifact upload status.""" + + artifact_name: str + local_path: str + sha256: str + size_bytes: int + r2_location: ArtifactStorageLocation + upload: ArtifactCommandResult + + @property + def valid(self) -> bool: + """Whether this derived artifact uploaded successfully.""" + return self.upload.ok + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable entry.""" + return { + "valid": self.valid, + "artifact_name": self.artifact_name, + "local_path": self.local_path, + "sha256": self.sha256, + "size_bytes": self.size_bytes, + "r2_location": self.r2_location.to_dict(), + "upload": self.upload.to_dict(), + } + + +@dataclass(frozen=True) +class DerivedArtifactPublishReport: + """Report from publishing deterministic build outputs to R2.""" + + input_dir: str + source_id: str + package_id: str + year: int + build_id: str + entries: tuple[DerivedArtifactUploadEntry, ...] + build_artifacts_path: str | None = None + errors: tuple[str, ...] = () + + @property + def valid(self) -> bool: + """Whether every derived artifact uploaded successfully.""" + return not self.errors and all(entry.valid for entry in self.entries) + + @property + def counts(self) -> dict[str, int]: + """Return summary counts.""" + return { + "artifact_count": len(self.entries), + "uploaded_count": sum(1 for entry in self.entries if entry.valid), + "failed_count": sum(1 for entry in self.entries if not entry.valid), + } + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "input_dir": self.input_dir, + "source_id": self.source_id, + "package_id": self.package_id, + "year": self.year, + "build_id": self.build_id, + "build_artifacts_path": self.build_artifacts_path, + "counts": self.counts, + "entries": [entry.to_dict() for entry in self.entries], + "errors": list(self.errors), + } + + +def fetch_source_artifact( + source_url: str, + *, + source_id: str, + package_id: str, + year: int, + output_dir: str | Path, + dataset: str | None = None, + source_page: str | None = None, + table: str | None = None, + filename: str | None = None, + upload_r2: bool = False, + r2_bucket: str = DEFAULT_R2_RAW_BUCKET, + r2_prefix: str = DEFAULT_R2_PREFIX, + wrangler_command: str = "npx wrangler", +) -> ArtifactFetchReport: + """Fetch/register a source artifact and optionally upload it to R2.""" + fetched_at = datetime.now(UTC).replace(microsecond=0).isoformat() + content, inferred_filename = _read_artifact(source_url) + artifact_filename = filename or inferred_filename + if not artifact_filename: + raise ValueError("Could not infer artifact filename; pass --filename.") + + output = Path(output_dir) + output.mkdir(parents=True, exist_ok=True) + local_path = output / artifact_filename + local_path.write_bytes(content) + + sha256 = hashlib.sha256(content).hexdigest() + size_bytes = len(content) + manifest_path = output / "manifest.yaml" + + r2_location = ArtifactStorageLocation( + provider="r2", + bucket=r2_bucket, + key=build_r2_key( + source_id=source_id, + package_id=package_id, + year=year, + sha256=sha256, + filename=artifact_filename, + prefix=r2_prefix, + ), + ) + r2_upload = None + errors: list[str] = [] + if upload_r2: + r2_upload = _upload_r2_object( + r2_location, + local_path, + wrangler_command=wrangler_command, + ) + if not r2_upload.ok: + errors.append("r2_upload_failed") + + _upsert_manifest( + manifest_path, + source_id=source_id, + package_id=package_id, + dataset=dataset or f"{source_id}_{package_id}", + source_page=source_page or source_url, + table=table or package_id, + year=year, + filename=artifact_filename, + source_url=source_url, + sha256=sha256, + size_bytes=size_bytes, + fetched_at=fetched_at, + r2_location=( + r2_location if upload_r2 and r2_upload and r2_upload.ok else None + ), + ) + + return ArtifactFetchReport( + source_id=source_id, + package_id=package_id, + year=year, + source_url=source_url, + filename=artifact_filename, + local_path=str(local_path), + manifest_path=str(manifest_path), + sha256=sha256, + size_bytes=size_bytes, + fetched_at=fetched_at, + r2_location=r2_location if upload_r2 and r2_upload and r2_upload.ok else None, + r2_upload=r2_upload, + errors=tuple(errors), + ) + + +def publish_derived_artifacts( + input_dir: str | Path, + *, + source_id: str, + package_id: str, + year: int, + build_id: str | None = None, + r2_bucket: str = DEFAULT_R2_DERIVED_BUCKET, + r2_prefix: str = DEFAULT_R2_DERIVED_PREFIX, + wrangler_command: str = "npx wrangler", + build_artifacts_output: str | Path | None = None, +) -> DerivedArtifactPublishReport: + """Upload a deterministic build output directory to the derived R2 bucket.""" + input_path = Path(input_dir) + if not input_path.exists(): + return DerivedArtifactPublishReport( + input_dir=str(input_path), + source_id=source_id, + package_id=package_id, + year=year, + build_id=build_id or "", + entries=(), + build_artifacts_path=str(build_artifacts_output) + if build_artifacts_output + else None, + errors=(f"input_dir_not_found:{input_path}",), + ) + if not input_path.is_dir(): + return DerivedArtifactPublishReport( + input_dir=str(input_path), + source_id=source_id, + package_id=package_id, + year=year, + build_id=build_id or "", + entries=(), + build_artifacts_path=str(build_artifacts_output) + if build_artifacts_output + else None, + errors=(f"input_dir_is_not_directory:{input_path}",), + ) + + resolved_build_id = build_id or infer_build_id(input_path) + if not resolved_build_id: + return DerivedArtifactPublishReport( + input_dir=str(input_path), + source_id=source_id, + package_id=package_id, + year=year, + build_id="", + entries=(), + build_artifacts_path=str(build_artifacts_output) + if build_artifacts_output + else None, + errors=("missing_build_id",), + ) + + entries: list[DerivedArtifactUploadEntry] = [] + errors: list[str] = [] + artifact_paths = sorted( + path for path in input_path.rglob("*") if path.is_file() + ) + for artifact_path in artifact_paths: + relative_path = artifact_path.relative_to(input_path).as_posix() + if relative_path == "build_artifacts.jsonl": + continue + content = artifact_path.read_bytes() + sha256 = hashlib.sha256(content).hexdigest() + location = ArtifactStorageLocation( + provider="r2", + bucket=r2_bucket, + key=build_derived_r2_key( + source_id=source_id, + package_id=package_id, + year=year, + build_id=resolved_build_id, + artifact_name=relative_path, + prefix=r2_prefix, + ), + ) + upload = _upload_r2_object( + location, + artifact_path, + wrangler_command=wrangler_command, + ) + if not upload.ok: + errors.append(f"derived_upload_failed:{relative_path}") + entries.append( + DerivedArtifactUploadEntry( + artifact_name=relative_path, + local_path=str(artifact_path), + sha256=sha256, + size_bytes=len(content), + r2_location=location, + upload=upload, + ) + ) + + report = DerivedArtifactPublishReport( + input_dir=str(input_path), + source_id=source_id, + package_id=package_id, + year=year, + build_id=resolved_build_id, + entries=tuple(entries), + build_artifacts_path=str(build_artifacts_output) + if build_artifacts_output + else None, + errors=tuple(errors), + ) + if build_artifacts_output is not None: + write_build_artifacts_jsonl(report, build_artifacts_output) + return report + + +def publish_source_artifacts( + root: str | Path, + *, + manifest_filename: str = "manifest.yaml", + source_id: str | None = None, + package_id: str | None = None, + r2_bucket: str = DEFAULT_R2_RAW_BUCKET, + r2_prefix: str = DEFAULT_R2_PREFIX, + wrangler_command: str = "npx wrangler", +) -> RawArtifactPublishReport: + """Upload manifest-declared raw source artifacts and record R2 locations.""" + root_path = Path(root) + if not root_path.exists(): + return RawArtifactPublishReport( + root=str(root_path), + entries=(), + errors=(f"Root does not exist: {root_path}",), + ) + + entries: list[RawArtifactPublishEntry] = [] + errors: list[str] = [] + for manifest_path in sorted(root_path.rglob(manifest_filename)): + try: + manifest = yaml.safe_load( + manifest_path.read_text(encoding="utf-8") + ) or {} + except (OSError, yaml.YAMLError) as exc: + errors.append(f"Could not read {manifest_path}: {exc}") + continue + + manifest_source_id = source_id or manifest.get("source_id") + manifest_package_id = package_id or manifest.get("package_id") + files = manifest.get("files") or {} + if not manifest_source_id: + errors.append(f"Manifest missing source_id: {manifest_path}") + continue + if not manifest_package_id: + errors.append(f"Manifest missing package_id: {manifest_path}") + continue + if not isinstance(files, dict): + errors.append(f"Manifest files must be a mapping: {manifest_path}") + continue + + updated = False + for year, spec in files.items(): + entry, updated_spec = _publish_raw_manifest_entry( + manifest_path, + manifest_source_id, + manifest_package_id, + year, + spec, + r2_bucket=r2_bucket, + r2_prefix=r2_prefix, + wrangler_command=wrangler_command, + ) + entries.append(entry) + if updated_spec is not None and isinstance(spec, dict): + spec.update(updated_spec) + updated = True + if updated: + manifest.setdefault("source_id", manifest_source_id) + manifest.setdefault("package_id", manifest_package_id) + manifest_path.write_text( + yaml.safe_dump(manifest, sort_keys=False), + encoding="utf-8", + ) + + return RawArtifactPublishReport( + root=str(root_path), + entries=tuple(entries), + errors=tuple(errors), + ) + + +def build_artifact_rows( + report: DerivedArtifactPublishReport, +) -> tuple[dict[str, Any], ...]: + """Build relational build_artifacts rows from a derived publish report.""" + rows: list[dict[str, Any]] = [] + for entry in report.entries: + if not entry.valid: + continue + rows.append( + { + "build_artifact_key": build_artifact_key( + build_id=report.build_id, + artifact_name=entry.artifact_name, + sha256=entry.sha256, + ), + "build_id": report.build_id, + "artifact_kind": _derived_artifact_kind(entry.artifact_name), + "artifact_name": entry.artifact_name, + "sha256": entry.sha256, + "size_bytes": entry.size_bytes, + "r2_bucket": entry.r2_location.bucket, + "r2_key": entry.r2_location.key, + "r2_uri": entry.r2_location.uri, + } + ) + return tuple(rows) + + +def write_build_artifacts_jsonl( + report: DerivedArtifactPublishReport, + output_path: str | Path, +) -> None: + """Write build_artifacts JSONL rows for a derived publish report.""" + path = Path(output_path) + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", encoding="utf-8") as file: + for row in build_artifact_rows(report): + file.write(json.dumps(row, sort_keys=True)) + file.write("\n") + + +def inventory_source_artifacts( + root: str | Path, + *, + manifest_filename: str = "manifest.yaml", +) -> ArtifactInventoryReport: + """Inventory manifest-declared source artifacts under a root directory.""" + root_path = Path(root) + errors: list[str] = [] + entries: list[ArtifactInventoryEntry] = [] + if not root_path.exists(): + return ArtifactInventoryReport( + root=str(root_path), + counts={ + "manifest_count": 0, + "artifact_count": 0, + "missing_count": 0, + "checksum_mismatch_count": 0, + "r2_link_count": 0, + }, + entries=(), + errors=(f"Root does not exist: {root_path}",), + ) + + manifests = sorted(root_path.rglob(manifest_filename)) + for manifest_path in manifests: + try: + manifest = yaml.safe_load(manifest_path.read_text(encoding="utf-8")) or {} + files = manifest.get("files") or {} + except (OSError, yaml.YAMLError) as exc: + errors.append(f"Could not read {manifest_path}: {exc}") + continue + if not isinstance(files, dict): + errors.append(f"Manifest files must be a mapping: {manifest_path}") + continue + for year, spec in files.items(): + entries.append(_inventory_entry(manifest_path, year, spec)) + + counts = { + "manifest_count": len(manifests), + "artifact_count": len(entries), + "missing_count": sum(1 for entry in entries if not entry.exists), + "checksum_mismatch_count": sum( + 1 for entry in entries if "checksum_mismatch" in entry.errors + ), + "r2_link_count": sum(1 for entry in entries if entry.r2 is not None), + } + return ArtifactInventoryReport( + root=str(root_path), + counts=counts, + entries=tuple(entries), + errors=tuple(errors), + ) + + +def bootstrap_r2_buckets( + *, + raw_bucket: str = DEFAULT_R2_RAW_BUCKET, + derived_bucket: str = DEFAULT_R2_DERIVED_BUCKET, + wrangler_command: str = "npx wrangler", +) -> R2BootstrapReport: + """Create the R2 buckets Arch expects, if Wrangler is authenticated.""" + buckets = (raw_bucket, derived_bucket) + commands: list[ArtifactCommandResult] = [] + errors: list[str] = [] + + auth = _run_command([*shlex.split(wrangler_command), "whoami"]) + commands.append(auth) + authenticated = auth.ok and "not authenticated" not in ( + auth.stdout + auth.stderr + ).lower() + if not authenticated: + return R2BootstrapReport( + buckets=buckets, + commands=tuple(commands), + authenticated=False, + errors=( + "wrangler_not_authenticated: run `npx wrangler login` in the " + "PolicyEngine Cloudflare account, then rerun this command.", + ), + ) + + for bucket in buckets: + command = _run_command( + [*shlex.split(wrangler_command), "r2", "bucket", "create", bucket] + ) + commands.append(command) + combined_output = (command.stdout + command.stderr).lower() + if not command.ok and "already exists" not in combined_output: + errors.append(f"r2_bucket_create_failed:{bucket}") + + return R2BootstrapReport( + buckets=buckets, + commands=tuple(commands), + authenticated=authenticated, + errors=tuple(errors), + ) + + +def build_r2_key( + *, + source_id: str, + package_id: str, + year: int, + sha256: str, + filename: str, + prefix: str = DEFAULT_R2_PREFIX, +) -> str: + """Build the canonical immutable R2 key for a raw source artifact.""" + return posixpath.join( + _clean_key_part(prefix), + _clean_key_part(source_id), + _clean_key_part(package_id), + str(year), + sha256, + Path(filename).name, + ) + + +def build_derived_r2_key( + *, + source_id: str, + package_id: str, + year: int, + build_id: str, + artifact_name: str, + prefix: str = DEFAULT_R2_DERIVED_PREFIX, +) -> str: + """Build the canonical R2 key for a derived build artifact.""" + return posixpath.join( + _clean_key_part(prefix), + _clean_key_part(source_id), + _clean_key_part(package_id), + str(year), + _clean_key_part(build_id), + *_clean_relative_key_parts(artifact_name), + ) + + +def build_artifact_key( + *, + build_id: str, + artifact_name: str, + sha256: str, +) -> str: + """Build a stable key for a derived build artifact registry row.""" + payload = json.dumps( + { + "artifact_name": artifact_name, + "build_id": build_id, + "sha256": sha256, + }, + sort_keys=True, + separators=(",", ":"), + ).encode("utf-8") + return f"arch.build_artifact.v1:{hashlib.sha256(payload).hexdigest()[:32]}" + + +def infer_build_id(input_dir: str | Path) -> str | None: + """Infer a build ID from standard Arch build-suite outputs.""" + input_path = Path(input_dir) + summary_path = input_path / "reports" / "build_summary.json" + if summary_path.exists(): + payload = json.loads(summary_path.read_text(encoding="utf-8")) + build_id = payload.get("reports", {}).get("database", {}).get("build_id") + if build_id: + return str(build_id) + + database_report_path = input_path / "reports" / "database.json" + if database_report_path.exists(): + payload = json.loads(database_report_path.read_text(encoding="utf-8")) + build_id = payload.get("build_id") + if build_id: + return str(build_id) + + db_path = input_path / "arch.db" + if db_path.exists(): + with sqlite3.connect(db_path) as connection: + row = connection.execute( + "SELECT build_id FROM arch_builds ORDER BY build_id LIMIT 1" + ).fetchone() + if row: + return str(row[0]) + return None + + +def _read_artifact(source_url: str) -> tuple[bytes, str]: + parsed = urlparse(source_url) + if parsed.scheme in ("http", "https"): + response = httpx.get(source_url, follow_redirects=True, timeout=60) + response.raise_for_status() + return response.content, _filename_from_url(source_url) + if parsed.scheme == "file": + path = Path(unquote(parsed.path)) + return path.read_bytes(), path.name + if not parsed.scheme: + path = Path(source_url) + return path.read_bytes(), path.name + raise ValueError(f"Unsupported source URL scheme: {parsed.scheme}") + + +def _filename_from_url(source_url: str) -> str: + parsed = urlparse(source_url) + return Path(unquote(parsed.path)).name + + +def _upsert_manifest( + manifest_path: Path, + *, + source_id: str, + package_id: str, + dataset: str, + source_page: str, + table: str, + year: int, + filename: str, + source_url: str, + sha256: str, + size_bytes: int, + fetched_at: str, + r2_location: ArtifactStorageLocation | None, +) -> None: + if manifest_path.exists(): + payload = yaml.safe_load(manifest_path.read_text(encoding="utf-8")) or {} + else: + payload = {} + payload.setdefault("source_id", source_id) + payload.setdefault("package_id", package_id) + payload.setdefault("dataset", dataset) + payload.setdefault("source_page", source_page) + payload.setdefault("table", table) + payload.setdefault("files", {}) + file_entry: dict[str, Any] = { + "filename": filename, + "source_url": source_url, + "sha256": sha256, + "size_bytes": size_bytes, + "fetched_at": fetched_at, + } + if r2_location is not None: + file_entry["storage"] = {"r2": r2_location.to_dict()} + payload["files"][year] = file_entry + manifest_path.write_text( + yaml.safe_dump(payload, sort_keys=False), + encoding="utf-8", + ) + + +def _upload_r2_object( + location: ArtifactStorageLocation, + local_path: Path, + *, + wrangler_command: str, +) -> ArtifactCommandResult: + content_type, _ = mimetypes.guess_type(local_path.name) + command = [ + *shlex.split(wrangler_command), + "r2", + "object", + "put", + f"{location.bucket}/{location.key}", + "--file", + str(local_path), + "--remote", + "--force", + ] + if content_type: + command.extend(["--content-type", content_type]) + return _run_command(command) + + +def _publish_raw_manifest_entry( + manifest_path: Path, + source_id: str, + package_id: str, + year: Any, + spec: Any, + *, + r2_bucket: str, + r2_prefix: str, + wrangler_command: str, +) -> tuple[RawArtifactPublishEntry, dict[str, Any] | None]: + errors: list[str] = [] + if not isinstance(spec, dict): + spec = {} + errors.append("malformed_file_spec") + filename = str(spec.get("filename") or "") + artifact_path = manifest_path.parent / filename + sha256_expected = spec.get("sha256") + sha256_actual = None + size_bytes = None + if not filename: + errors.append("missing_filename") + elif not artifact_path.exists(): + errors.append("missing_file") + else: + content = artifact_path.read_bytes() + sha256_actual = hashlib.sha256(content).hexdigest() + size_bytes = len(content) + if sha256_expected and sha256_actual != sha256_expected: + errors.append("checksum_mismatch") + + if errors: + return ( + RawArtifactPublishEntry( + manifest_path=str(manifest_path), + source_id=source_id, + package_id=package_id, + year=str(year), + filename=filename, + local_path=str(artifact_path), + sha256=sha256_actual, + size_bytes=size_bytes, + r2_location=None, + upload=None, + errors=tuple(errors), + ), + None, + ) + + location = ArtifactStorageLocation( + provider="r2", + bucket=r2_bucket, + key=build_r2_key( + source_id=source_id, + package_id=package_id, + year=int(year), + sha256=sha256_actual or "", + filename=filename, + prefix=r2_prefix, + ), + ) + upload = _upload_r2_object( + location, + artifact_path, + wrangler_command=wrangler_command, + ) + if not upload.ok: + errors.append("r2_upload_failed") + + updated_spec: dict[str, Any] | None = None + if upload.ok: + updated_spec = { + "sha256": sha256_actual, + "size_bytes": size_bytes, + "storage": { + **( + spec.get("storage") + if isinstance(spec.get("storage"), dict) + else {} + ), + "r2": location.to_dict(), + }, + } + + return ( + RawArtifactPublishEntry( + manifest_path=str(manifest_path), + source_id=source_id, + package_id=package_id, + year=str(year), + filename=filename, + local_path=str(artifact_path), + sha256=sha256_actual, + size_bytes=size_bytes, + r2_location=location if upload.ok else None, + upload=upload, + errors=tuple(errors), + ), + updated_spec, + ) + + +def _inventory_entry( + manifest_path: Path, + year: Any, + spec: Any, +) -> ArtifactInventoryEntry: + errors: list[str] = [] + if not isinstance(spec, dict): + spec = {} + errors.append("malformed_file_spec") + filename = str(spec.get("filename") or "") + artifact_path = manifest_path.parent / filename + exists = bool(filename) and artifact_path.exists() + sha256_expected = spec.get("sha256") + sha256_actual = None + size_bytes = None + if not filename: + errors.append("missing_filename") + elif not exists: + errors.append("missing_file") + else: + content = artifact_path.read_bytes() + sha256_actual = hashlib.sha256(content).hexdigest() + size_bytes = len(content) + if sha256_expected and sha256_actual != sha256_expected: + errors.append("checksum_mismatch") + storage = spec.get("storage") if isinstance(spec, dict) else None + r2 = storage.get("r2") if isinstance(storage, dict) else None + return ArtifactInventoryEntry( + manifest_path=str(manifest_path), + year=str(year), + filename=filename, + local_path=str(artifact_path), + exists=exists, + sha256_expected=sha256_expected, + sha256_actual=sha256_actual, + size_bytes=size_bytes, + source_url=spec.get("source_url"), + r2=r2, + errors=tuple(errors), + ) + + +def _derived_artifact_kind(artifact_name: str) -> str: + if artifact_name == "arch.db": + return "sqlite_database" + if artifact_name.endswith(".jsonl"): + return "jsonl" + if artifact_name.startswith("reports/"): + return "report" + if artifact_name.endswith(".json"): + return "json" + return "artifact" + + +def _run_command(command: list[str]) -> ArtifactCommandResult: + completed = subprocess.run( + command, + check=False, + capture_output=True, + text=True, + ) + return ArtifactCommandResult( + command=tuple(command), + returncode=completed.returncode, + stdout=completed.stdout, + stderr=completed.stderr, + ) + + +def _clean_key_part(value: str) -> str: + cleaned = value.strip().strip("/") + if not cleaned: + raise ValueError("R2 key parts cannot be empty.") + return cleaned.replace(" ", "_") + + +def _clean_relative_key_parts(value: str) -> tuple[str, ...]: + path = Path(value) + if path.is_absolute(): + raise ValueError("R2 artifact paths must be relative.") + parts = tuple(_clean_key_part(part) for part in path.parts if part != ".") + if not parts or any(part == ".." for part in parts): + raise ValueError("R2 artifact paths cannot be empty or contain '..'.") + return parts diff --git a/arch/bundle.py b/arch/bundle.py new file mode 100644 index 0000000..73d0a10 --- /dev/null +++ b/arch/bundle.py @@ -0,0 +1,498 @@ +"""Bundle-level Arch build artifacts for downstream consumers.""" + +from __future__ import annotations + +import json +import re +import shutil +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Any, Callable, Sequence + +from arch.source_package import SOURCE_PACKAGE_ALIASES, validate_source_package +from arch.suite import BuildSuiteReport, build_source_suite + +BUNDLE_SCHEMA_VERSION = "arch.bundle.v1" +BUNDLE_COVERAGE_SCHEMA_VERSION = "arch.bundle_coverage.v1" +BUNDLE_SOURCES_SCHEMA_VERSION = "arch.bundle_sources.v1" +DEFAULT_BUNDLE_SOURCES = tuple(sorted(SOURCE_PACKAGE_ALIASES)) + + +@dataclass(frozen=True) +class BuildBundleIssue: + """One bundle-level build issue.""" + + code: str + message: str + source: str | None = None + key: str | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + return { + key: value + for key, value in asdict(self).items() + if value is not None + } + + +@dataclass(frozen=True) +class SkippedSourceReport: + """A source package omitted from a default bundle for this year.""" + + source: str + reason: str + validation: dict[str, Any] + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return asdict(self) + + +@dataclass(frozen=True) +class BundleSourceReport: + """Summary for one source-package suite inside a bundle.""" + + source: str + suite_source: str + output_dir: str + valid: bool + counts: dict[str, Any] + outputs: dict[str, str] + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return asdict(self) + + +@dataclass(frozen=True) +class BuildBundleReport: + """End-to-end report for a merged Arch consumer bundle.""" + + schema_version: str + year: int + output_dir: str + outputs: dict[str, str] + source_packages: tuple[BundleSourceReport, ...] + skipped_sources: tuple[SkippedSourceReport, ...] + coverage: dict[str, Any] + errors: tuple[BuildBundleIssue, ...] + warnings: tuple[BuildBundleIssue, ...] = () + + @property + def valid(self) -> bool: + """Whether the bundle passed source-suite and duplicate checks.""" + return not self.errors and all( + source.valid for source in self.source_packages + ) + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + duplicates = self.coverage["duplicates"] + return { + "schema_version": self.schema_version, + "valid": self.valid, + "year": self.year, + "output_dir": self.output_dir, + "outputs": self.outputs, + "counts": { + "source_package_count": len(self.source_packages), + "skipped_source_count": len(self.skipped_sources), + "fact_count": self.coverage["fact_count"], + "source_count": len(self.coverage["counts"]["by_source"]), + "period_count": len(self.coverage["counts"]["by_period"]), + "geography_count": len(self.coverage["counts"]["by_geography"]), + "entity_count": len(self.coverage["counts"]["by_entity"]), + "aggregate_duplicate_key_count": len( + duplicates["aggregate_fact_keys"] + ), + "semantic_duplicate_key_count": len( + duplicates["semantic_fact_keys"] + ), + "error_count": len(self.errors), + "warning_count": len(self.warnings), + }, + "source_packages": [ + source.to_dict() for source in self.source_packages + ], + "skipped_sources": [ + skipped.to_dict() for skipped in self.skipped_sources + ], + "coverage": self.coverage, + "errors": [issue.to_dict() for issue in self.errors], + "warnings": [issue.to_dict() for issue in self.warnings], + } + + +def build_bundle( + output_dir: str | Path, + *, + year: int = 2023, + sources: Sequence[str | Path] | None = None, + axiom_command: Sequence[str] | None = None, + axiom_roots: Sequence[str | Path] = (), + require_axiom_validation: bool = False, + replace: bool = False, +) -> BuildBundleReport: + """Build source-package suites and merge their consumer-contract facts.""" + output_path = Path(output_dir) + _prepare_output_dir(output_path, replace=replace) + reports_path = output_path / "reports" + sources_path = output_path / "sources" + reports_path.mkdir(parents=True, exist_ok=True) + sources_path.mkdir(parents=True, exist_ok=True) + + explicit_sources = sources is not None + requested_sources = tuple(str(source) for source in (sources or DEFAULT_BUNDLE_SOURCES)) + build_sources, skipped_sources = _resolve_bundle_sources( + requested_sources, + year=year, + explicit=explicit_sources, + ) + + errors: list[BuildBundleIssue] = [] + warnings: list[BuildBundleIssue] = [] + source_reports: list[BundleSourceReport] = [] + consumer_rows: list[dict[str, Any]] = [] + + for source in build_sources: + suite_dir = sources_path / _safe_source_dir_name(source) + try: + suite_report = build_source_suite( + source, + suite_dir, + year=year, + axiom_command=axiom_command, + axiom_roots=axiom_roots, + require_axiom_validation=require_axiom_validation, + replace=True, + ) + except Exception as exc: + errors.append( + BuildBundleIssue( + code="source_suite_build_failed", + message=str(exc), + source=source, + ) + ) + continue + + if not suite_report.valid: + errors.append( + BuildBundleIssue( + code="source_suite_invalid", + message="Nested source-package suite did not pass validation.", + source=source, + ) + ) + rows = _load_jsonl(Path(suite_report.outputs["consumer_facts"])) + consumer_rows.extend(rows) + source_reports.append(_bundle_source_report(source, suite_report)) + + aggregate_duplicates = _duplicate_key_reports( + consumer_rows, + "aggregate_fact_key", + ) + semantic_duplicates = _duplicate_key_reports( + consumer_rows, + "semantic_fact_key", + ) + for duplicate in aggregate_duplicates: + errors.append( + BuildBundleIssue( + code="duplicate_aggregate_fact_key", + message="Aggregate fact keys must be unique within a bundle.", + key=duplicate["key"], + ) + ) + if semantic_duplicates: + warnings.append( + BuildBundleIssue( + code="duplicate_semantic_fact_key", + message=( + "One or more semantic facts appear in multiple rows; " + "downstream consumers should reconcile or select sources." + ), + ) + ) + + consumer_facts_path = output_path / "consumer_facts.jsonl" + source_packages_path = output_path / "source_packages.json" + coverage_path = output_path / "coverage.json" + report_path = reports_path / "build_bundle.json" + + _write_jsonl(consumer_facts_path, consumer_rows) + coverage = build_bundle_coverage( + consumer_rows, + aggregate_duplicates=aggregate_duplicates, + semantic_duplicates=semantic_duplicates, + ) + _write_report(coverage_path, coverage) + _write_report( + source_packages_path, + { + "schema_version": BUNDLE_SOURCES_SCHEMA_VERSION, + "year": year, + "source_package_count": len(source_reports), + "skipped_source_count": len(skipped_sources), + "source_packages": [ + source_report.to_dict() for source_report in source_reports + ], + "skipped_sources": [ + skipped_source.to_dict() for skipped_source in skipped_sources + ], + }, + ) + report = BuildBundleReport( + schema_version=BUNDLE_SCHEMA_VERSION, + year=year, + output_dir=str(output_path), + outputs={ + "consumer_facts": str(consumer_facts_path), + "source_packages": str(source_packages_path), + "coverage": str(coverage_path), + "reports": str(reports_path), + "build_bundle": str(report_path), + "sources": str(sources_path), + }, + source_packages=tuple(source_reports), + skipped_sources=tuple(skipped_sources), + coverage=coverage, + errors=tuple(errors), + warnings=tuple(warnings), + ) + _write_report(report_path, report.to_dict()) + return report + + +def build_bundle_coverage( + rows: list[dict[str, Any]], + *, + aggregate_duplicates: list[dict[str, Any]] | None = None, + semantic_duplicates: list[dict[str, Any]] | None = None, +) -> dict[str, Any]: + """Build source/concept/geography coverage diagnostics for consumer rows.""" + aggregate_duplicates = ( + aggregate_duplicates + if aggregate_duplicates is not None + else _duplicate_key_reports(rows, "aggregate_fact_key") + ) + semantic_duplicates = ( + semantic_duplicates + if semantic_duplicates is not None + else _duplicate_key_reports(rows, "semantic_fact_key") + ) + return { + "schema_version": BUNDLE_COVERAGE_SCHEMA_VERSION, + "fact_count": len(rows), + "counts": { + "by_source": _counts_by(rows, _source_name), + "by_source_table": _counts_by(rows, _source_table_key), + "by_period": _counts_by(rows, _period_key), + "by_geography": _counts_by(rows, _geography_key), + "by_entity": _counts_by(rows, _entity_key), + "by_observed_measure": _counts_by(rows, _observed_measure_key), + "by_observed_concept": _counts_by(rows, _observed_concept_key), + "by_canonical_concept": _counts_by(rows, _canonical_concept_key), + }, + "unique_counts": { + "aggregate_fact_key": _unique_count(rows, "aggregate_fact_key"), + "semantic_fact_key": _unique_count(rows, "semantic_fact_key"), + "source_release_key": _unique_count(rows, "source_release_key"), + "source_series_key": _unique_count(rows, "source_series_key"), + "observed_measure_key": _unique_count(rows, "observed_measure_key"), + "dimension_set_key": _unique_count(rows, "dimension_set_key"), + "universe_constraint_set_key": _unique_count( + rows, + "universe_constraint_set_key", + ), + }, + "duplicates": { + "aggregate_fact_keys": aggregate_duplicates, + "semantic_fact_keys": semantic_duplicates, + }, + } + + +def _resolve_bundle_sources( + requested_sources: tuple[str, ...], + *, + year: int, + explicit: bool, +) -> tuple[list[str], list[SkippedSourceReport]]: + build_sources: list[str] = [] + skipped_sources: list[SkippedSourceReport] = [] + for source in requested_sources: + report = validate_source_package(source, year=year) + if report.valid or explicit or not _source_unavailable_for_year(report, year): + build_sources.append(source) + continue + skipped_sources.append( + SkippedSourceReport( + source=source, + reason="source package is not available for requested year", + validation=report.to_dict(), + ) + ) + return build_sources, skipped_sources + + +def _source_unavailable_for_year(report: Any, year: int) -> bool: + unavailable_messages = {repr(str(year)), f"No source artifact for year {year}"} + unavailable_codes = { + "record_set_compile_failed", + "source_artifact_unavailable", + } + return bool(report.errors) and all( + error.code in unavailable_codes and error.message in unavailable_messages + for error in report.errors + ) + + +def _bundle_source_report( + source: str, + suite_report: BuildSuiteReport, +) -> BundleSourceReport: + payload = suite_report.to_dict() + return BundleSourceReport( + source=source, + suite_source=suite_report.source, + output_dir=suite_report.output_dir, + valid=suite_report.valid, + counts=payload["counts"], + outputs=suite_report.outputs, + ) + + +def _duplicate_key_reports( + rows: list[dict[str, Any]], + key: str, +) -> list[dict[str, Any]]: + grouped: dict[str, list[dict[str, Any]]] = {} + for row in rows: + grouped.setdefault(row[key], []).append(row) + return [ + { + "key": key_value, + "count": len(key_rows), + "sources": sorted({_source_table_key(row) for row in key_rows}), + "legacy_fact_keys": sorted( + { + legacy_key + for row in key_rows + if (legacy_key := row.get("legacy_fact_key")) + } + ), + } + for key_value, key_rows in sorted(grouped.items()) + if len(key_rows) > 1 + ] + + +def _counts_by( + rows: list[dict[str, Any]], + key_fn: Callable[[dict[str, Any]], str | None], +) -> dict[str, int]: + counts: dict[str, int] = {} + for row in rows: + key = key_fn(row) + if key is None: + continue + counts[key] = counts.get(key, 0) + 1 + return dict(sorted(counts.items())) + + +def _unique_count(rows: list[dict[str, Any]], key: str) -> int: + return len({row[key] for row in rows if key in row}) + + +def _source_name(row: dict[str, Any]) -> str | None: + return row.get("source", {}).get("source_name") + + +def _source_table_key(row: dict[str, Any]) -> str | None: + source = row.get("source", {}) + source_name = source.get("source_name") + source_table = source.get("source_table") + if not source_name or not source_table: + return source_name or source_table + return f"{source_name}:{source_table}" + + +def _period_key(row: dict[str, Any]) -> str | None: + period = row.get("period", {}) + period_type = period.get("type") + period_value = period.get("value") + if period_type is None or period_value is None: + return None + return f"{period_type}:{period_value}" + + +def _geography_key(row: dict[str, Any]) -> str | None: + geography = row.get("geography", {}) + level = geography.get("level") + geography_id = geography.get("id") + if level is None or geography_id is None: + return None + return f"{level}:{geography_id}" + + +def _entity_key(row: dict[str, Any]) -> str | None: + return row.get("entity", {}).get("name") + + +def _observed_measure_key(row: dict[str, Any]) -> str | None: + measure = row.get("observed_measure", {}) + source_name = measure.get("source_name") + source_measure_id = measure.get("source_measure_id") + if not source_name or not source_measure_id: + return source_measure_id or source_name + return f"{source_name}:{source_measure_id}" + + +def _observed_concept_key(row: dict[str, Any]) -> str | None: + return row.get("observed_measure", {}).get("source_concept") + + +def _canonical_concept_key(row: dict[str, Any]) -> str | None: + return row.get("concept_alignment", {}).get("canonical_concept") + + +def _safe_source_dir_name(source: str) -> str: + safe = re.sub(r"[^A-Za-z0-9._-]+", "-", source).strip("-") + return safe or "source" + + +def _prepare_output_dir(output_path: Path, *, replace: bool) -> None: + if output_path.exists() and any(output_path.iterdir()): + if not replace: + raise FileExistsError( + f"Build bundle output directory is not empty: {output_path}" + ) + if output_path.resolve() in {Path("/").resolve(), Path.home().resolve()}: + raise ValueError( + f"Refusing to replace unsafe output directory: {output_path}" + ) + shutil.rmtree(output_path) + output_path.mkdir(parents=True, exist_ok=True) + + +def _load_jsonl(path: Path) -> list[dict[str, Any]]: + return [ + json.loads(line) + for line in path.read_text(encoding="utf-8").splitlines() + if line + ] + + +def _write_jsonl(path: Path, rows: list[dict[str, Any]]) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w", encoding="utf-8") as file: + for row in rows: + file.write(json.dumps(row, sort_keys=True)) + file.write("\n") + + +def _write_report(path: Path, payload: dict[str, Any]) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(json.dumps(payload, indent=2, sort_keys=True), encoding="utf-8") diff --git a/arch/cli.py b/arch/cli.py index 8ccfbde..bbb4ee3 100644 --- a/arch/cli.py +++ b/arch/cli.py @@ -1,6 +1,42 @@ """Arch CLI entry point.""" -from db.cli import main +from __future__ import annotations + +import sys + +from db.cli import main as db_main + + +def main() -> None: + """Dispatch Arch-owned harness commands or the legacy DB CLI.""" + if sys.argv[1:2] in ( + ["bootstrap-r2"], + ["build-bundle"], + ["build-db"], + ["build-fixture-facts"], + ["build-source-cells"], + ["build-source-rows"], + ["build-suite"], + ["export-consumer-facts"], + ["export-db-tables"], + ["fetch-artifact"], + ["inventory-artifacts"], + ["load-supabase-mirror"], + ["plan-pe-sources"], + ["publish-derived"], + ["publish-raw"], + ["scaffold-package"], + ["validate-concept-alignments"], + ["validate-package"], + ["validate-source-cells"], + ["validate-source-rows"], + ["validate-facts"], + ): + from arch.harness import main as harness_main + + raise SystemExit(harness_main(sys.argv[1:])) + + db_main() __all__ = ["main"] diff --git a/arch/concepts.py b/arch/concepts.py new file mode 100644 index 0000000..635376b --- /dev/null +++ b/arch/concepts.py @@ -0,0 +1,260 @@ +"""Concept-alignment validation for Arch facts.""" + +from __future__ import annotations + +import json +import subprocess +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Any, Sequence + +from arch.core import AggregateFact, build_fact_key + + +@dataclass(frozen=True) +class ConceptAlignment: + """One source-to-canonical concept alignment asserted by Arch.""" + + canonical_concept: str + source_concept: str + relation: str + fact_key: str + source_record_id: str | None + authority: str | None + evidence_url: str | None + evidence_notes: str | None + legal_vintage: str | None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable alignment.""" + data = asdict(self) + return {key: value for key, value in data.items() if value is not None} + + +@dataclass(frozen=True) +class ConceptAlignmentIssue: + """One concept-alignment validation issue.""" + + code: str + message: str + canonical_concept: str | None = None + source_concept: str | None = None + fact_key: str | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + data = asdict(self) + return {key: value for key, value in data.items() if value is not None} + + +@dataclass(frozen=True) +class ConceptAlignmentReport: + """Validation report for source-to-canonical concept alignments.""" + + alignment_count: int + checked_count: int + alignments: tuple[ConceptAlignment, ...] + errors: tuple[ConceptAlignmentIssue, ...] + warnings: tuple[ConceptAlignmentIssue, ...] = () + + @property + def valid(self) -> bool: + """Whether no validation errors were found.""" + return not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "alignment_count": self.alignment_count, + "checked_count": self.checked_count, + "alignments": [alignment.to_dict() for alignment in self.alignments], + "errors": [issue.to_dict() for issue in self.errors], + "warnings": [issue.to_dict() for issue in self.warnings], + } + + +def collect_concept_alignments( + facts: list[AggregateFact], +) -> tuple[ConceptAlignment, ...]: + """Collect unique source-to-canonical concept alignments from facts.""" + alignments: dict[tuple[str, str, str, str | None], ConceptAlignment] = {} + for fact in facts: + measure = fact.measure + if not measure.source_concept or not measure.concept_relation: + continue + key = ( + measure.source_concept, + measure.concept, + measure.concept_relation, + measure.legal_vintage, + ) + alignments.setdefault( + key, + ConceptAlignment( + canonical_concept=measure.concept, + source_concept=measure.source_concept, + relation=measure.concept_relation, + fact_key=build_fact_key(fact), + source_record_id=fact.source_record_id, + authority=measure.concept_authority, + evidence_url=measure.concept_evidence_url, + evidence_notes=measure.concept_evidence_notes, + legal_vintage=measure.legal_vintage, + ), + ) + return tuple(alignments.values()) + + +def validate_concept_alignments( + facts: list[AggregateFact], + *, + axiom_command: Sequence[str] | None = None, + axiom_roots: Sequence[str | Path] = (), +) -> ConceptAlignmentReport: + """Validate Arch concept alignments against optional Axiom CLI metadata.""" + alignments = collect_concept_alignments(facts) + errors = list(_alignment_metadata_errors(alignments)) + warnings: list[ConceptAlignmentIssue] = [] + checked_count = 0 + + if not alignments: + return ConceptAlignmentReport( + alignment_count=0, + checked_count=0, + alignments=(), + errors=tuple(errors), + warnings=(), + ) + + if axiom_command is None: + warnings.append( + ConceptAlignmentIssue( + code="axiom_cli_not_configured", + message="Axiom CLI validation skipped because no command was provided.", + ) + ) + return ConceptAlignmentReport( + alignment_count=len(alignments), + checked_count=checked_count, + alignments=alignments, + errors=tuple(errors), + warnings=tuple(warnings), + ) + + for alignment in alignments: + result = _run_axiom_validate( + axiom_command, + alignment.canonical_concept, + axiom_roots=axiom_roots, + ) + if result is None: + warnings.append( + ConceptAlignmentIssue( + code="axiom_cli_unavailable", + message="Axiom CLI validation skipped because command failed to run.", + canonical_concept=alignment.canonical_concept, + source_concept=alignment.source_concept, + fact_key=alignment.fact_key, + ) + ) + break + checked_count += 1 + if not result.get("valid"): + message = _axiom_error_message(result) + errors.append( + ConceptAlignmentIssue( + code="axiom_concept_invalid", + message=message, + canonical_concept=alignment.canonical_concept, + source_concept=alignment.source_concept, + fact_key=alignment.fact_key, + ) + ) + + return ConceptAlignmentReport( + alignment_count=len(alignments), + checked_count=checked_count, + alignments=alignments, + errors=tuple(errors), + warnings=tuple(warnings), + ) + + +def _alignment_metadata_errors( + alignments: tuple[ConceptAlignment, ...], +) -> tuple[ConceptAlignmentIssue, ...]: + errors = [] + for alignment in alignments: + if alignment.relation == "exact" and not ( + alignment.evidence_url or alignment.evidence_notes + ): + errors.append( + ConceptAlignmentIssue( + code="missing_concept_evidence", + message="Exact source-to-canonical concept alignments need evidence.", + canonical_concept=alignment.canonical_concept, + source_concept=alignment.source_concept, + fact_key=alignment.fact_key, + ) + ) + return tuple(errors) + + +def _run_axiom_validate( + axiom_command: Sequence[str], + concept_id: str, + *, + axiom_roots: Sequence[str | Path], +) -> dict[str, Any] | None: + command = [ + *axiom_command, + "concepts", + "validate", + concept_id, + "--json", + ] + for root in axiom_roots: + command.extend(["--root", str(root)]) + try: + completed = subprocess.run( + command, + check=False, + capture_output=True, + text=True, + ) + except OSError: + return None + try: + payload = json.loads(completed.stdout) + except json.JSONDecodeError: + return { + "valid": False, + "errors": [ + { + "code": "invalid_axiom_cli_output", + "message": completed.stderr.strip() + or "Axiom CLI did not emit JSON.", + } + ], + } + if isinstance(payload, dict): + return payload + return { + "valid": False, + "errors": [ + { + "code": "invalid_axiom_cli_output", + "message": "Axiom CLI emitted non-object JSON.", + } + ], + } + + +def _axiom_error_message(result: dict[str, Any]) -> str: + errors = result.get("errors") + if isinstance(errors, list) and errors: + first = errors[0] + if isinstance(first, dict) and first.get("message"): + return str(first["message"]) + return "Axiom CLI reported invalid concept." diff --git a/arch/consumer_contract.py b/arch/consumer_contract.py new file mode 100644 index 0000000..12c939a --- /dev/null +++ b/arch/consumer_contract.py @@ -0,0 +1,654 @@ +"""Arch-owned downstream consumer contract exports. + +The rows produced here are source-fact contract rows, not Microplex target rows. +They expose stable Arch identity and audit fields that downstream adapters can +consume without importing Arch internals or depending on source table layout. +""" + +from __future__ import annotations + +import hashlib +import json +from collections import Counter +from dataclasses import asdict, dataclass, replace +from decimal import Decimal +from pathlib import Path +from typing import Any + +from arch.core import ( + AggregateConstraint, + AggregateFact, + build_aggregate_constraints, + build_fact_key, +) +from arch.store import fact_to_mapping + +CONSUMER_FACT_SCHEMA_VERSION = "arch.consumer_fact.v1" + + +@dataclass(frozen=True) +class ConsumerFactExportReport: + """Counts from exporting Arch facts to consumer-contract JSONL.""" + + schema_version: str + fact_count: int + output: str + + def to_dict(self) -> dict[str, int | str]: + """Return a JSON-serializable report.""" + return asdict(self) + + +@dataclass(frozen=True) +class ConsumerFactContractIssue: + """One consumer-contract validation issue.""" + + code: str + message: str + fact_index: int | None = None + fact_key: str | None = None + field: str | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + return { + key: value + for key, value in asdict(self).items() + if value is not None + } + + +@dataclass(frozen=True) +class ConsumerFactContractReport: + """Validation report for consumer-contract rows.""" + + schema_version: str + fact_count: int + errors: tuple[ConsumerFactContractIssue, ...] + + @property + def valid(self) -> bool: + """Whether every fact can be exported as a valid contract row.""" + return not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "schema_version": self.schema_version, + "valid": self.valid, + "fact_count": self.fact_count, + "errors": [issue.to_dict() for issue in self.errors], + } + + +def build_source_release_key(fact: AggregateFact) -> str: + """Build the current best v2 source-release key from fact provenance.""" + return _hash_key( + "arch.source_release.v2", + { + "source_name": fact.source.source_name, + "source_table": fact.source.source_table, + "source_file": fact.source.source_file, + "url": fact.source.url, + "vintage": fact.source.vintage, + "source_sha256": fact.source.source_sha256, + "source_size_bytes": fact.source.source_size_bytes, + "raw_r2_uri": fact.source.raw_r2_uri, + }, + ) + + +def build_source_series_key(fact: AggregateFact) -> str: + """Build a source-series key for a logical publisher table or series.""" + return _hash_key( + "arch.source_series.v2", + { + "source_name": fact.source.source_name, + "source_table": fact.source.source_table, + "record_set_spec_id": ( + fact.layout.record_set_spec_id if fact.layout else None + ), + }, + ) + + +def build_observed_measure_key(fact: AggregateFact) -> str: + """Build a source-observed measure key, separate from concept alignment.""" + return _hash_key("arch.observed_measure.v2", _observed_measure_payload(fact)) + + +def build_dimension_set_key(fact: AggregateFact) -> str: + """Build a canonical key for fact dimensions represented as filters.""" + return _hash_key("arch.dimension_set.v2", _dimension_set_payload(fact)) + + +def build_universe_constraint_set_key(fact: AggregateFact) -> str: + """Build a canonical key for semantic universe constraints.""" + return _hash_key( + "arch.universe_constraint_set.v2", + _universe_constraint_set_payload(fact), + ) + + +def build_aggregate_fact_key(fact: AggregateFact) -> str: + """Build v2 source-specific aggregate fact identity.""" + return _hash_key( + "arch.aggregate_fact.v2", + { + "source_release_key": build_source_release_key(fact), + "source_series_key": build_source_series_key(fact), + "observed_measure_key": build_observed_measure_key(fact), + "aggregation": _aggregation_payload(fact), + "period": asdict(fact.period), + "geography": _geography_payload(fact), + "entity": asdict(fact.entity), + "dimension_set_key": build_dimension_set_key(fact), + "universe_constraint_set_key": build_universe_constraint_set_key(fact), + }, + ) + + +def build_semantic_fact_key(fact: AggregateFact) -> str: + """Build v2 source-agnostic fact identity for downstream reconciliation.""" + return _hash_key( + "arch.semantic_fact.v2", + { + "canonical_measure": { + "concept": fact.measure.concept, + "unit": fact.measure.unit, + }, + "aggregation": _aggregation_payload(fact), + "period": asdict(fact.period), + "geography": _geography_payload(fact), + "entity": asdict(fact.entity), + "universe_constraint_set_key": build_universe_constraint_set_key(fact), + }, + ) + + +def build_concept_alignment_key(fact: AggregateFact) -> str | None: + """Build a concept-alignment key when source alignment metadata exists.""" + if not ( + fact.measure.source_concept + or fact.measure.concept_relation + or fact.measure.concept_authority + or fact.measure.legal_vintage + ): + return None + return _hash_key( + "arch.concept_alignment.v2", + { + "observed_measure_key": build_observed_measure_key(fact), + "canonical_concept": fact.measure.concept, + "relation": fact.measure.concept_relation, + "authority": fact.measure.concept_authority, + "legal_vintage": fact.measure.legal_vintage, + }, + ) + + +def consumer_fact_rows(facts: list[AggregateFact]) -> list[dict[str, Any]]: + """Build JSON-compatible consumer-contract rows for facts.""" + contract_report = validate_consumer_fact_contract(facts) + if not contract_report.valid: + raise ValueError("Cannot export invalid Arch consumer-contract facts.") + return [_consumer_fact_row(fact) for fact in facts] + + +def validate_consumer_fact_contract( + facts: list[AggregateFact], +) -> ConsumerFactContractReport: + """Validate that facts can be emitted as consumer-contract rows.""" + errors: list[ConsumerFactContractIssue] = [] + for index, fact in enumerate(facts): + fact_key = build_fact_key(fact) + filter_constraints = _filter_derived_constraints(fact) + source_filter_variables = _source_filter_variables(fact, filter_constraints) + if filter_constraints and not fact.constraints: + errors.append( + ConsumerFactContractIssue( + code="implicit_constraints_from_filters", + message=( + "Consumer-contract facts must carry semantic " + "constraints explicitly; source-layout filters are " + "metadata only." + ), + fact_index=index, + fact_key=fact_key, + field="constraints", + ) + ) + elif filter_constraints: + expected_constraint_payloads = Counter( + _constraint_compare_payload( + _canonical_filter_constraint( + fact, + constraint, + source_filter_variables=source_filter_variables, + ) + ) + for constraint in filter_constraints + ) + explicit_constraint_payloads = Counter( + _constraint_compare_payload(constraint) + for constraint in fact.constraints + ) + for constraint_payload, expected_count in ( + expected_constraint_payloads.items() + ): + if explicit_constraint_payloads[constraint_payload] >= expected_count: + continue + errors.append( + ConsumerFactContractIssue( + code="constraint_filter_mismatch", + message=( + "Source-layout filters imply a semantic constraint " + "that is not present in explicit constraints." + ), + fact_index=index, + fact_key=fact_key, + field="constraints", + ) + ) + + for constraint in fact.constraints: + if _is_source_specific_variable(fact, constraint.variable): + errors.append( + ConsumerFactContractIssue( + code="source_specific_constraint_variable", + message=( + "Consumer-contract universe constraints must use " + "canonical variables; source-specific variables " + "belong in observed-measure metadata." + ), + fact_index=index, + fact_key=fact_key, + field="constraints", + ) + ) + continue + canonical_constraint = _canonical_filter_constraint( + fact, + constraint, + source_filter_variables=source_filter_variables, + ) + if canonical_constraint.variable == constraint.variable: + continue + errors.append( + ConsumerFactContractIssue( + code="source_specific_constraint_variable", + message=( + "Consumer-contract universe constraints must use the " + "canonical constraint variable when one is known." + ), + fact_index=index, + fact_key=fact_key, + field="constraints", + ) + ) + + for field_name in ( + "source_file", + "source_sha256", + "source_size_bytes", + "raw_r2_uri", + ): + value = getattr(fact.source, field_name) + if value in (None, ""): + errors.append( + ConsumerFactContractIssue( + code="missing_contract_provenance", + message=( + "Consumer-contract source provenance must include " + f"{field_name}." + ), + fact_index=index, + fact_key=fact_key, + field=f"source.{field_name}", + ) + ) + + if not fact.source_record_id: + errors.append( + ConsumerFactContractIssue( + code="missing_contract_lineage", + message="Consumer-contract facts must carry source_record_id.", + fact_index=index, + fact_key=fact_key, + field="source_record_id", + ) + ) + if not fact.source_cell_keys: + errors.append( + ConsumerFactContractIssue( + code="missing_contract_lineage", + message="Consumer-contract facts must carry source_cell_keys.", + fact_index=index, + fact_key=fact_key, + field="source_cell_keys", + ) + ) + + row = _consumer_fact_row(fact) + for field_name in _CONSUMER_REQUIRED_FIELDS: + if field_name not in row: + errors.append( + ConsumerFactContractIssue( + code="missing_contract_field", + message=( + "Consumer-contract row is missing required field " + f"{field_name}." + ), + fact_index=index, + fact_key=fact_key, + field=field_name, + ) + ) + + return ConsumerFactContractReport( + schema_version=CONSUMER_FACT_SCHEMA_VERSION, + fact_count=len(facts), + errors=tuple(errors), + ) + + +def _filter_derived_constraints( + fact: AggregateFact, +) -> tuple[AggregateConstraint, ...]: + """Return the legacy filter-derived constraint fallback for comparison.""" + return build_aggregate_constraints(replace(fact, constraints=())) + + +def _source_filter_variables( + fact: AggregateFact, + filter_constraints: tuple[AggregateConstraint, ...], +) -> frozenset[str]: + """Return source-specific variables that Arch can map from filters.""" + return frozenset( + constraint.variable + for constraint in filter_constraints + if _is_source_specific_variable(fact, constraint.variable) + ) + + +def _canonical_filter_constraint( + fact: AggregateFact, + constraint: AggregateConstraint, + *, + source_filter_variables: frozenset[str], +) -> AggregateConstraint: + """Canonicalize a source-derived filter constraint when metadata permits.""" + variable = _canonical_filter_variable( + fact, + constraint, + source_filter_variables=source_filter_variables, + ) + if variable == constraint.variable: + return constraint + return replace(constraint, variable=variable) + + +def _canonical_filter_variable( + fact: AggregateFact, + constraint: AggregateConstraint, + *, + source_filter_variables: frozenset[str], +) -> str: + """Resolve source-layout filter variables to canonical constraint variables.""" + if ( + constraint.variable in source_filter_variables + and fact.layout + and fact.layout.groupby_dimension + and _concept_leaf(constraint.variable) + == _concept_leaf(fact.layout.groupby_dimension) + ): + return fact.layout.groupby_dimension + return constraint.variable + + +def _is_source_specific_variable(fact: AggregateFact, variable: str) -> bool: + """Return whether a constraint variable uses the current source namespace.""" + source_name = fact.source.source_name + return bool( + source_name + and ( + variable.startswith(f"{source_name}.") + or variable.startswith(f"{source_name}:") + ) + ) + + +def _concept_leaf(concept: str) -> str: + """Return the local concept name for source-to-canonical comparisons.""" + return concept.rsplit("#", maxsplit=1)[-1].rsplit( + "/", + maxsplit=1, + )[-1].rsplit(".", maxsplit=1)[-1].rsplit(":", maxsplit=1)[-1] + + +def _constraint_compare_payload(constraint: AggregateConstraint) -> str: + """Return a stable comparable representation of an aggregate constraint.""" + payload = _constraint_payload(constraint) + return json.dumps( + payload, + sort_keys=True, + separators=(",", ":"), + ) + + +def consumer_fact_row(fact: AggregateFact) -> dict[str, Any]: + """Build one consumer-contract row from an aggregate fact.""" + return consumer_fact_rows([fact])[0] + + +def _consumer_fact_row(fact: AggregateFact) -> dict[str, Any]: + """Build one consumer-contract row without recursive validation.""" + aggregate_fact_key = build_aggregate_fact_key(fact) + semantic_fact_key = build_semantic_fact_key(fact) + concept_alignment_key = build_concept_alignment_key(fact) + + row: dict[str, Any] = { + "schema_version": CONSUMER_FACT_SCHEMA_VERSION, + "aggregate_fact_key": aggregate_fact_key, + "semantic_fact_key": semantic_fact_key, + "legacy_fact_key": build_fact_key(fact), + "source_release_key": build_source_release_key(fact), + "source_series_key": build_source_series_key(fact), + "observed_measure_key": build_observed_measure_key(fact), + "dimension_set_key": build_dimension_set_key(fact), + "universe_constraint_set_key": build_universe_constraint_set_key(fact), + "value": _json_value(fact.value), + "value_type": _value_type(fact.value), + "period": asdict(fact.period), + "geography": _geography_payload(fact), + "entity": asdict(fact.entity), + "aggregation": _aggregation_payload(fact), + "observed_measure": _observed_measure_payload(fact), + "dimensions": _dimension_set_payload(fact), + "universe_constraints": _universe_constraint_set_payload(fact), + "source": _clean(fact_to_mapping(fact)["source"]), + "lineage": { + "source_record_id": fact.source_record_id, + "source_cell_keys": list(fact.source_cell_keys), + "source_row_keys": list(fact.source_row_keys), + }, + "layout": _clean(asdict(fact.layout)) if fact.layout else {}, + "label": fact.label, + } + if concept_alignment_key: + row["concept_alignment"] = { + "concept_alignment_key": concept_alignment_key, + "source_concept": fact.measure.source_concept, + "canonical_concept": fact.measure.concept, + "relation": fact.measure.concept_relation, + "authority": fact.measure.concept_authority, + "evidence_url": fact.measure.concept_evidence_url, + "evidence_notes": fact.measure.concept_evidence_notes, + "legal_vintage": fact.measure.legal_vintage, + } + return _clean_consumer_row(row) + + +def write_consumer_facts_jsonl( + facts: list[AggregateFact], + path: str | Path, +) -> ConsumerFactExportReport: + """Write consumer-contract fact rows to JSON Lines.""" + rows = consumer_fact_rows(facts) + output_path = Path(path) + output_path.parent.mkdir(parents=True, exist_ok=True) + with output_path.open("w") as file: + for row in rows: + file.write(json.dumps(row, sort_keys=True)) + file.write("\n") + return ConsumerFactExportReport( + schema_version=CONSUMER_FACT_SCHEMA_VERSION, + fact_count=len(rows), + output=str(output_path), + ) + + +def _hash_key(namespace: str, payload: dict[str, Any]) -> str: + raw = json.dumps( + _clean(payload), + sort_keys=True, + separators=(",", ":"), + ) + digest = hashlib.sha256(raw.encode("utf-8")).hexdigest()[:24] + return f"{namespace}:{digest}" + + +def _observed_measure_payload(fact: AggregateFact) -> dict[str, Any]: + return { + "source_name": fact.source.source_name, + "source_table": fact.source.source_table, + "source_measure_id": _source_measure_id(fact), + "source_concept": fact.measure.source_concept or fact.measure.concept, + "unit": fact.measure.unit, + } + + +def _source_measure_id(fact: AggregateFact) -> str: + if fact.layout and fact.layout.measure_id: + return fact.layout.measure_id + return fact.measure.source_concept or fact.measure.concept + + +def _dimension_set_payload(fact: AggregateFact) -> dict[str, Any]: + return { + key: _json_value(value) + for key, value in sorted(fact.filters.items()) + if value is not None + } + + +def _universe_constraint_set_payload(fact: AggregateFact) -> dict[str, Any]: + constraints = [ + _constraint_payload(constraint) + for constraint in fact.constraints + ] + return { + "domain": fact.domain, + "constraints": sorted( + constraints, + key=lambda constraint: json.dumps( + constraint, + sort_keys=True, + separators=(",", ":"), + ), + ), + } + + +def _constraint_payload(constraint: AggregateConstraint) -> dict[str, Any]: + return _clean( + { + "variable": constraint.variable, + "operator": constraint.operator, + "value": _json_value(constraint.value), + "unit": constraint.unit, + "role": constraint.role, + } + ) + + +def _geography_payload(fact: AggregateFact) -> dict[str, Any]: + return _clean( + { + "level": fact.geography.level, + "id": fact.geography.id, + "vintage": fact.geography.vintage, + } + ) + + +def _aggregation_payload(fact: AggregateFact) -> dict[str, Any]: + return _clean(asdict(fact.aggregation)) + + +def _value_type(value: Any) -> str: + if isinstance(value, bool): + return "boolean" + if isinstance(value, Decimal): + return "decimal" + if isinstance(value, int): + return "integer" + if isinstance(value, float): + return "number" + return "string" + + +def _json_value(value: Any) -> Any: + if isinstance(value, Decimal): + return str(value) + return value + + +_CONSUMER_REQUIRED_FIELDS = ( + "schema_version", + "aggregate_fact_key", + "semantic_fact_key", + "legacy_fact_key", + "source_release_key", + "source_series_key", + "observed_measure_key", + "dimension_set_key", + "universe_constraint_set_key", + "value", + "value_type", + "period", + "geography", + "entity", + "aggregation", + "observed_measure", + "dimensions", + "universe_constraints", + "source", + "lineage", +) + + +def _clean_consumer_row(row: dict[str, Any]) -> dict[str, Any]: + cleaned = _clean(row) + cleaned["dimensions"] = _clean(row["dimensions"]) + cleaned["lineage"] = { + "source_record_id": row["lineage"]["source_record_id"], + "source_cell_keys": row["lineage"]["source_cell_keys"], + "source_row_keys": row["lineage"]["source_row_keys"], + } + cleaned["layout"] = _clean(row["layout"]) + return cleaned + + +def _clean(value: Any) -> Any: + if isinstance(value, dict): + return { + key: cleaned + for key, item in sorted(value.items()) + if (cleaned := _clean(item)) not in (None, {}, []) + } + if isinstance(value, list | tuple): + return [_clean(item) for item in value] + if isinstance(value, Decimal): + return str(value) + return value diff --git a/arch/core.py b/arch/core.py new file mode 100644 index 0000000..c4e681c --- /dev/null +++ b/arch/core.py @@ -0,0 +1,672 @@ +"""Canonical Arch aggregate facts and validation. + +This module is intentionally independent of Microplex. It defines source-backed +aggregate facts, deterministic fact keys, human-readable labels, and +schema-level validation for Arch fact sets. +""" + +from __future__ import annotations + +import hashlib +import json +import re +from collections import Counter +from dataclasses import asdict, dataclass, field +from decimal import Decimal +from typing import Any + +Scalar = str | int | float | bool | None + +ALLOWED_PERIOD_TYPES = {"calendar_year", "tax_year", "fiscal_year", "month"} +ALLOWED_GEOGRAPHY_LEVELS = { + "country", + "region", + "state", + "county", + "congressional_district", + "state_legislative_district_upper", + "state_legislative_district_lower", + "parliamentary_constituency", + "local_authority", + "metro_area", + "zip_code", + "statistical_scope", +} +ALLOWED_ENTITIES = { + "person", + "household", + "tax_unit", + "family", + "benefit_unit", + "return", + "pension_plan", + "government", + "dwelling", + "institutional_sector", +} +ALLOWED_AGGREGATIONS = { + "count", + "sum", + "mean", + "median", + "rate", + "ratio", + "share", +} +ALLOWED_CONSTRAINT_OPERATORS = {"==", "!=", ">", ">=", "<", "<=", "in"} +ALLOWED_CONCEPT_RELATIONS = { + "exact", + "broad_match", + "narrow_match", + "approximate", + "source_label", +} +FACT_KEY_PREFIX = "arch.fact.v1" + + +@dataclass(frozen=True) +class PeriodDimension: + """Fact period identity.""" + + type: str + value: int | str + + +@dataclass(frozen=True) +class GeographyDimension: + """Fact geography identity. + + ``name`` is human-readable metadata and is excluded from stable keys. + """ + + level: str + id: str + vintage: str | None = None + name: str | None = None + + +@dataclass(frozen=True) +class EntityDimension: + """Unit/entity measured by the fact.""" + + name: str + role: str | None = None + + +@dataclass(frozen=True) +class Measure: + """Simulator-neutral fact measure.""" + + concept: str + unit: str + source_concept: str | None = None + concept_relation: str | None = None + concept_authority: str | None = None + concept_evidence_url: str | None = None + concept_evidence_notes: str | None = None + legal_vintage: str | None = None + + +@dataclass(frozen=True) +class Aggregation: + """How source observations are aggregated into the fact value.""" + + method: str + count_entity: str | None = None + denominator: str | None = None + + +@dataclass(frozen=True) +class SourceProvenance: + """Source identity and extraction provenance for a fact.""" + + source_name: str | None + source_table: str | None = None + source_file: str | None = None + url: str | None = None + vintage: str | None = None + extracted_at: str | None = None + extraction_method: str | None = None + method_notes: str | None = None + source_sha256: str | None = None + source_size_bytes: int | None = None + raw_r2_bucket: str | None = None + raw_r2_key: str | None = None + raw_r2_uri: str | None = None + + +@dataclass(frozen=True) +class AggregateConstraint: + """One semantic filter that scopes an aggregate fact.""" + + variable: str + operator: str + value: Scalar + unit: str | None = None + role: str = "filter" + label: str | None = None + + +@dataclass(frozen=True) +class SourceRecordLayout: + """Non-semantic layout metadata for rebuilding source tables. + + These fields help humans and tools reconstitute compact source tables from + atomic facts. They are intentionally excluded from stable fact keys. + """ + + record_set_id: str | None = None + record_set_spec_id: str | None = None + record_set_spec_hash: str | None = None + groupby_dimension: str | None = None + groupby_value_id: str | None = None + groupby_value_label: str | None = None + groupby_ordinal: int | None = None + measure_id: str | None = None + measure_label: str | None = None + measure_ordinal: int | None = None + source_row_id: str | None = None + source_column_id: str | None = None + table_record_kind: str | None = None + parent_record_set_id: str | None = None + total_record_id: str | None = None + + +@dataclass(frozen=True) +class AggregateFact: + """Canonical Arch published aggregate fact.""" + + value: int | float | str | Decimal + period: PeriodDimension + geography: GeographyDimension + entity: EntityDimension + measure: Measure + aggregation: Aggregation + source: SourceProvenance + filters: dict[str, Scalar] = field(default_factory=dict) + domain: str = "all" + label: str | None = None + source_record_id: str | None = None + source_cell_keys: tuple[str, ...] = () + source_row_keys: tuple[str, ...] = () + constraints: tuple[AggregateConstraint, ...] = () + layout: SourceRecordLayout | None = None + + +@dataclass(frozen=True) +class ValidationIssue: + """One fact validation issue.""" + + code: str + message: str + field: str | None = None + fact_key: str | None = None + fact_index: int | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + data = asdict(self) + return {key: value for key, value in data.items() if value is not None} + + +@dataclass(frozen=True) +class ValidationReport: + """Validation and QA summary for a fact set.""" + + fact_count: int + counts: dict[str, dict[str, int]] + errors: tuple[ValidationIssue, ...] + warnings: tuple[ValidationIssue, ...] = () + + @property + def valid(self) -> bool: + """Whether the fact set has no validation errors.""" + return not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "fact_count": self.fact_count, + "counts": self.counts, + "errors": [issue.to_dict() for issue in self.errors], + "warnings": [issue.to_dict() for issue in self.warnings], + } + + +def build_fact_key(fact: AggregateFact) -> str: + """Build a stable key from fact schema fields, not human labels.""" + payload = _canonical_key_payload(fact) + raw = json.dumps(payload, sort_keys=True, separators=(",", ":")) + digest = hashlib.sha256(raw.encode("utf-8")).hexdigest()[:24] + return f"{FACT_KEY_PREFIX}:{digest}" + + +def build_label(fact: AggregateFact) -> str: + """Build a human-readable label from fact metadata.""" + concept = _humanize(fact.measure.concept) + aggregation = _humanize(fact.aggregation.method) + entity = _humanize(fact.entity.name) + period = f"{fact.period.value} {_humanize(fact.period.type)}" + geography = fact.geography.name or fact.geography.id + source = _source_label(fact.source) + + label = f"{geography} {period} {aggregation} {concept} for {entity}" + if fact.filters: + label = f"{label} ({_format_filters(fact.filters)})" + if source: + label = f"{label} [{source}]" + return label + + +def build_aggregate_constraints( + fact: AggregateFact, +) -> tuple[AggregateConstraint, ...]: + """Build first-class aggregate constraints from fact metadata. + + Source loaders can provide explicit constraints. For the current fixture + slice, older fact records carry SOI bracket boundaries in ``filters``; + this function lifts those into queryable semantic constraints. + """ + if fact.constraints: + return fact.constraints + + constraints: list[AggregateConstraint] = [] + filing_status = fact.filters.get("filing_status") + if filing_status not in (None, "all"): + constraints.append( + AggregateConstraint( + variable="irs_soi.filing_status", + operator="==", + value=filing_status, + label="Filing status", + ) + ) + + lower = fact.filters.get("agi_lower_usd") + if lower is not None: + constraints.append( + AggregateConstraint( + variable="irs_soi.adjusted_gross_income", + operator=">=", + value=lower, + unit="usd", + label="Adjusted gross income lower bound", + ) + ) + + upper = fact.filters.get("agi_upper_usd") + if upper is not None: + constraints.append( + AggregateConstraint( + variable="irs_soi.adjusted_gross_income", + operator="<", + value=upper, + unit="usd", + label="Adjusted gross income upper bound", + ) + ) + + handled_filters = { + "agi_lower_usd", + "agi_upper_usd", + "filing_status", + "income_range", + } + for key, value in sorted(fact.filters.items()): + if key in handled_filters or value in (None, "all"): + continue + constraints.append( + AggregateConstraint( + variable=key, + operator="==", + value=value, + label=_humanize(key), + ) + ) + + return tuple(constraints) + + +def validate_fact(fact: AggregateFact) -> tuple[ValidationIssue, ...]: + """Validate one aggregate fact.""" + errors: list[ValidationIssue] = [] + + _require_nonempty(errors, fact.measure.concept, "measure.concept") + _require_nonempty(errors, fact.measure.unit, "measure.unit") + _validate_measure_concept_alignment(errors, fact.measure) + _require_nonempty(errors, fact.domain, "domain") + + if fact.period.type not in ALLOWED_PERIOD_TYPES: + errors.append( + _issue( + "malformed_period", + f"Unsupported period type: {fact.period.type!r}", + "period.type", + ) + ) + if isinstance(fact.period.value, str) and not fact.period.value.strip(): + errors.append( + _issue("missing_period", "Period value is required", "period.value") + ) + + if fact.geography.level not in ALLOWED_GEOGRAPHY_LEVELS: + errors.append( + _issue( + "malformed_geography", + f"Unsupported geography level: {fact.geography.level!r}", + "geography.level", + ) + ) + _require_nonempty(errors, fact.geography.id, "geography.id") + + if fact.entity.name not in ALLOWED_ENTITIES: + errors.append( + _issue( + "malformed_entity", + f"Unsupported entity: {fact.entity.name!r}", + "entity.name", + ) + ) + + if fact.aggregation.method not in ALLOWED_AGGREGATIONS: + errors.append( + _issue( + "malformed_aggregation", + f"Unsupported aggregation method: {fact.aggregation.method!r}", + "aggregation.method", + ) + ) + if ( + fact.aggregation.count_entity is not None + and fact.aggregation.count_entity not in ALLOWED_ENTITIES + ): + errors.append( + _issue( + "malformed_aggregation", + "Unsupported aggregation count entity: " + f"{fact.aggregation.count_entity!r}", + "aggregation.count_entity", + ) + ) + + _validate_value(errors, fact.value) + _validate_filters(errors, fact.filters) + _validate_constraints(errors, fact.constraints) + _validate_provenance(errors, fact.source) + + return tuple(errors) + + +def validate_facts(facts: list[AggregateFact]) -> ValidationReport: + """Validate a fact set and return QA counts plus issues.""" + errors: list[ValidationIssue] = [] + warnings: list[ValidationIssue] = [] + key_indices: dict[str, list[int]] = {} + + for index, fact in enumerate(facts): + key = build_fact_key(fact) + key_indices.setdefault(key, []).append(index) + for issue in validate_fact(fact): + errors.append( + ValidationIssue( + code=issue.code, + message=issue.message, + field=issue.field, + fact_key=key, + fact_index=index, + ) + ) + if not fact.label: + warnings.append( + ValidationIssue( + code="missing_label", + message="Fact has no human-readable label metadata", + field="label", + fact_key=key, + fact_index=index, + ) + ) + + for key, indices in key_indices.items(): + if len(indices) > 1: + errors.append( + ValidationIssue( + code="duplicate_key", + message=f"Duplicate fact key appears at indices {indices}", + fact_key=key, + fact_index=indices[0], + ) + ) + + return ValidationReport( + fact_count=len(facts), + counts=fact_counts(facts), + errors=tuple(errors), + warnings=tuple(warnings), + ) + + +def fact_counts(facts: list[AggregateFact]) -> dict[str, dict[str, int]]: + """Count facts across the main QA dimensions.""" + return { + "by_source": _counter_dict( + fact.source.source_name or "missing" for fact in facts + ), + "by_geography": _counter_dict( + f"{fact.geography.level}:{fact.geography.id}" for fact in facts + ), + "by_entity": _counter_dict(fact.entity.name for fact in facts), + "by_period": _counter_dict( + f"{fact.period.type}:{fact.period.value}" for fact in facts + ), + "missing_labels": {"count": sum(1 for fact in facts if not fact.label)}, + "missing_provenance": { + "count": sum(1 for fact in facts if _has_missing_provenance(fact)) + }, + "missing_lineage": { + "count": sum( + 1 + for fact in facts + if not fact.source_cell_keys and not fact.source_row_keys + ) + }, + } + + +def _canonical_key_payload(fact: AggregateFact) -> dict[str, Any]: + payload = { + "period": asdict(fact.period), + "geography": { + "level": fact.geography.level, + "id": fact.geography.id, + "vintage": fact.geography.vintage, + }, + "entity": asdict(fact.entity), + "measure": asdict(fact.measure), + "aggregation": asdict(fact.aggregation), + "domain": fact.domain, + "filters": { + key: fact.filters[key] + for key in sorted(fact.filters) + if fact.filters[key] is not None + }, + "source": { + "source_name": fact.source.source_name, + "source_table": fact.source.source_table, + "source_file": fact.source.source_file, + "vintage": fact.source.vintage, + }, + } + if fact.constraints: + payload["constraints"] = [asdict(constraint) for constraint in fact.constraints] + return payload + + +def _validate_value(errors: list[ValidationIssue], value: Any) -> None: + if isinstance(value, Decimal): + return + if isinstance(value, bool) or not isinstance(value, int | float | str): + errors.append(_issue("malformed_value", "Fact value must be scalar", "value")) + return + if isinstance(value, str) and not value.strip(): + errors.append(_issue("missing_value", "Fact value is required", "value")) + + +def _validate_filters( + errors: list[ValidationIssue], + filters: dict[str, Scalar], +) -> None: + for key, value in filters.items(): + if not key.strip(): + errors.append( + _issue("malformed_filter", "Filter keys must be nonempty", "filters") + ) + if isinstance(value, Decimal): + continue + if isinstance(value, list | dict | tuple | set): + errors.append( + _issue( + "malformed_filter", + f"Filter {key!r} has non-scalar value", + f"filters.{key}", + ) + ) + + +def _validate_measure_concept_alignment( + errors: list[ValidationIssue], + measure: Measure, +) -> None: + relation = measure.concept_relation + if relation is not None and relation not in ALLOWED_CONCEPT_RELATIONS: + errors.append( + _issue( + "malformed_concept_relation", + f"Unsupported concept relation: {relation!r}", + "measure.concept_relation", + ) + ) + if measure.source_concept is not None and not measure.source_concept.strip(): + errors.append( + _issue( + "missing_field", + "Source concept must be nonempty when provided", + "measure.source_concept", + ) + ) + if measure.source_concept and relation is None: + errors.append( + _issue( + "missing_field", + "Concept relation is required when source_concept is provided", + "measure.concept_relation", + ) + ) + + +def _validate_constraints( + errors: list[ValidationIssue], + constraints: tuple[AggregateConstraint, ...], +) -> None: + for index, constraint in enumerate(constraints): + if not constraint.variable.strip(): + errors.append( + _issue( + "malformed_constraint", + "Constraint variable must be nonempty", + f"constraints.{index}.variable", + ) + ) + if constraint.operator not in ALLOWED_CONSTRAINT_OPERATORS: + errors.append( + _issue( + "malformed_constraint", + f"Unsupported constraint operator: {constraint.operator!r}", + f"constraints.{index}.operator", + ) + ) + value = constraint.value + if isinstance(value, Decimal): + continue + if isinstance(value, list | dict | tuple | set): + errors.append( + _issue( + "malformed_constraint", + f"Constraint {constraint.variable!r} has non-scalar value", + f"constraints.{index}.value", + ) + ) + + +def _validate_provenance( + errors: list[ValidationIssue], + source: SourceProvenance, +) -> None: + _require_nonempty(errors, source.source_name, "source.source_name") + if not (source.source_table or source.source_file): + errors.append( + _issue( + "missing_provenance", + "Source provenance must include source_table or source_file", + "source.source_table", + ) + ) + _require_nonempty(errors, source.vintage, "source.vintage") + _require_nonempty(errors, source.extracted_at, "source.extracted_at") + _require_nonempty(errors, source.extraction_method, "source.extraction_method") + + +def _has_missing_provenance(fact: AggregateFact) -> bool: + return any( + issue.field is not None + and issue.field.startswith("source.") + and issue.code in {"missing_field", "missing_provenance"} + for issue in validate_fact(fact) + ) + + +def _require_nonempty( + errors: list[ValidationIssue], + value: str | None, + field_name: str, +) -> None: + if value is None or not str(value).strip(): + errors.append( + _issue( + "missing_field", + f"Required field is missing: {field_name}", + field_name, + ) + ) + + +def _issue(code: str, message: str, field_name: str) -> ValidationIssue: + return ValidationIssue(code=code, message=message, field=field_name) + + +def _counter_dict(values: Any) -> dict[str, int]: + return dict(sorted(Counter(values).items())) + + +def _humanize(value: object) -> str: + text = str(value) + text = re.sub(r"[_\-.]+", " ", text) + return " ".join(text.split()) + + +def _format_filters(filters: dict[str, Scalar]) -> str: + return ", ".join( + f"{_humanize(key)}={_humanize(value)}" + for key, value in sorted(filters.items()) + if value is not None + ) + + +def _source_label(source: SourceProvenance) -> str: + parts = [part for part in (source.source_name, source.source_table) if part] + if source.source_file and source.source_file not in parts: + parts.append(source.source_file) + if source.vintage: + parts.append(str(source.vintage)) + return " ".join(parts) diff --git a/arch/database.py b/arch/database.py new file mode 100644 index 0000000..d426e5a --- /dev/null +++ b/arch/database.py @@ -0,0 +1,973 @@ +"""Build a relational Arch database artifact. + +The database is an Arch-owned query surface for source-backed aggregate facts. +It is deterministic output from source artifacts, selectors, and aggregate facts; +hosted systems such as Supabase can mirror this schema later. +""" + +from __future__ import annotations + +import hashlib +import json +import sqlite3 +from dataclasses import asdict, dataclass +from datetime import datetime, timezone +from decimal import Decimal +from pathlib import Path +from typing import Any + +from arch.core import AggregateFact, build_aggregate_constraints, build_fact_key +from arch.sources.cells import ( + SourceCell, + build_source_cell_key, + source_cell_to_mapping, +) +from arch.sources.rows import ( + SourceColumn, + SourceRow, + SourceRowValue, + build_source_column_key, + build_source_row_key, + build_source_row_value_key, + source_columns_from_source_rows, + source_row_to_mapping, +) + +ARCH_DB_SCHEMA_VERSION = "arch.relational.v1" + + +@dataclass(frozen=True) +class ArchDbBuildReport: + """Counts from building a relational Arch DB artifact.""" + + build_id: str + facts_count: int + constraints_count: int + source_records_count: int + source_rows_count: int + source_columns_count: int + source_row_values_count: int + source_cells_count: int + source_artifacts_count: int + + def to_dict(self) -> dict[str, int | str]: + """Return a JSON-serializable report.""" + return asdict(self) + + +def build_arch_db( + facts: list[AggregateFact], + db_path: str | Path, + *, + source_cells: list[SourceCell] | None = None, + source_rows: list[SourceRow] | None = None, + build_id: str | None = None, + replace: bool = False, +) -> ArchDbBuildReport: + """Build a deterministic SQLite Arch database artifact.""" + path = Path(db_path) + if path.exists(): + if not replace: + raise FileExistsError(f"Arch DB already exists: {path}") + path.unlink() + path.parent.mkdir(parents=True, exist_ok=True) + + cells = source_cells or [] + rows = source_rows or [] + columns = source_columns_from_source_rows(rows) + source_row_values_count = sum(len(row.values) for row in rows) + resolved_build_id = build_id or _build_id(facts, cells, rows) + fact_constraints = [ + (fact, build_aggregate_constraints(fact)) for fact in facts + ] + source_record_ids = { + fact.source_record_id for fact in facts if fact.source_record_id is not None + } + artifact_sha256s = { + *(cell.artifact.sha256 for cell in cells), + *(row.artifact.sha256 for row in rows), + } + + with sqlite3.connect(path) as connection: + connection.execute("PRAGMA foreign_keys = ON") + _create_schema(connection) + _insert_build( + connection, + build_id=resolved_build_id, + facts_count=len(facts), + constraints_count=sum( + len(constraints) for _, constraints in fact_constraints + ), + source_records_count=len(source_record_ids), + source_rows_count=len(rows), + source_columns_count=len(columns), + source_row_values_count=source_row_values_count, + source_cells_count=len(cells), + source_artifacts_count=len(artifact_sha256s), + ) + _insert_source_rows(connection, rows) + _insert_source_columns(connection, columns) + _insert_source_row_values(connection, rows, columns) + _insert_source_cells(connection, cells) + _insert_concept_alignments(connection, facts, resolved_build_id) + _insert_facts(connection, fact_constraints, resolved_build_id) + _create_indexes(connection) + connection.commit() + + return ArchDbBuildReport( + build_id=resolved_build_id, + facts_count=len(facts), + constraints_count=sum( + len(constraints) for _, constraints in fact_constraints + ), + source_records_count=len(source_record_ids), + source_rows_count=len(rows), + source_columns_count=len(columns), + source_row_values_count=source_row_values_count, + source_cells_count=len(cells), + source_artifacts_count=len(artifact_sha256s), + ) + + +def _create_schema(connection: sqlite3.Connection) -> None: + connection.executescript( + """ + CREATE TABLE arch_builds ( + build_id TEXT PRIMARY KEY, + schema_version TEXT NOT NULL, + created_at TEXT NOT NULL, + facts_count INTEGER NOT NULL, + constraints_count INTEGER NOT NULL, + source_records_count INTEGER NOT NULL, + source_rows_count INTEGER NOT NULL, + source_columns_count INTEGER NOT NULL, + source_row_values_count INTEGER NOT NULL, + source_cells_count INTEGER NOT NULL, + source_artifacts_count INTEGER NOT NULL + ); + + CREATE TABLE build_artifacts ( + build_artifact_key TEXT PRIMARY KEY, + build_id TEXT NOT NULL REFERENCES arch_builds(build_id), + artifact_kind TEXT NOT NULL, + artifact_name TEXT NOT NULL, + sha256 TEXT NOT NULL, + size_bytes INTEGER NOT NULL, + r2_bucket TEXT, + r2_key TEXT, + r2_uri TEXT + ); + + CREATE TABLE source_artifacts ( + artifact_sha256 TEXT PRIMARY KEY, + source_name TEXT NOT NULL, + source_table TEXT NOT NULL, + source_file TEXT NOT NULL, + url TEXT, + vintage TEXT NOT NULL, + size_bytes INTEGER NOT NULL, + extracted_at TEXT NOT NULL, + extraction_method TEXT NOT NULL, + raw_r2_bucket TEXT, + raw_r2_key TEXT, + raw_r2_uri TEXT + ); + + CREATE TABLE source_rows ( + source_row_key TEXT PRIMARY KEY, + artifact_sha256 TEXT NOT NULL REFERENCES source_artifacts(artifact_sha256), + sheet_name TEXT NOT NULL, + row_number INTEGER NOT NULL, + values_json TEXT NOT NULL + ); + + CREATE TABLE source_columns ( + source_column_key TEXT PRIMARY KEY, + artifact_sha256 TEXT NOT NULL REFERENCES source_artifacts(artifact_sha256), + sheet_name TEXT NOT NULL, + column_number INTEGER NOT NULL, + raw_name TEXT NOT NULL, + normalized_name TEXT NOT NULL + ); + + CREATE TABLE source_row_values ( + source_row_value_key TEXT PRIMARY KEY, + source_row_key TEXT NOT NULL REFERENCES source_rows(source_row_key), + source_column_key TEXT NOT NULL REFERENCES source_columns(source_column_key), + artifact_sha256 TEXT NOT NULL REFERENCES source_artifacts(artifact_sha256), + sheet_name TEXT NOT NULL, + row_number INTEGER NOT NULL, + column_number INTEGER NOT NULL, + raw_column_name TEXT NOT NULL, + normalized_column_name TEXT NOT NULL, + value_json TEXT NOT NULL, + value_text TEXT, + value_numeric REAL + ); + + CREATE TABLE source_cells ( + source_cell_key TEXT PRIMARY KEY, + artifact_sha256 TEXT NOT NULL REFERENCES source_artifacts(artifact_sha256), + source_row_key TEXT REFERENCES source_rows(source_row_key), + sheet_name TEXT NOT NULL, + row_number INTEGER NOT NULL, + column_number INTEGER NOT NULL, + address TEXT NOT NULL, + cell_type TEXT NOT NULL, + raw_value_json TEXT NOT NULL, + raw_value_text TEXT, + raw_value_numeric REAL, + display_value TEXT, + formula TEXT, + note TEXT + ); + + CREATE TABLE source_records ( + source_record_id TEXT PRIMARY KEY, + build_id TEXT NOT NULL REFERENCES arch_builds(build_id), + source_name TEXT, + source_table TEXT, + source_file TEXT, + source_vintage TEXT, + source_row_count INTEGER NOT NULL, + source_cell_count INTEGER NOT NULL + ); + + CREATE TABLE concept_alignments ( + source_concept TEXT NOT NULL, + canonical_concept TEXT NOT NULL, + build_id TEXT NOT NULL REFERENCES arch_builds(build_id), + relation TEXT NOT NULL, + authority TEXT, + evidence_url TEXT, + evidence_notes TEXT, + legal_vintage TEXT, + period_type TEXT, + period_value TEXT, + PRIMARY KEY ( + source_concept, + canonical_concept, + relation, + legal_vintage, + period_type, + period_value + ) + ); + + CREATE TABLE aggregate_facts ( + fact_key TEXT PRIMARY KEY, + build_id TEXT NOT NULL REFERENCES arch_builds(build_id), + source_record_id TEXT REFERENCES source_records(source_record_id), + layout_record_set_id TEXT, + layout_record_set_spec_id TEXT, + layout_record_set_spec_hash TEXT, + layout_groupby_dimension TEXT, + layout_groupby_value_id TEXT, + layout_groupby_value_label TEXT, + layout_groupby_ordinal INTEGER, + layout_measure_id TEXT, + layout_measure_label TEXT, + layout_measure_ordinal INTEGER, + layout_source_row_id TEXT, + layout_source_column_id TEXT, + layout_table_record_kind TEXT, + layout_parent_record_set_id TEXT, + layout_total_record_id TEXT, + value_json TEXT NOT NULL, + value_text TEXT, + value_numeric REAL, + period_type TEXT NOT NULL, + period_value TEXT NOT NULL, + geography_level TEXT NOT NULL, + geography_id TEXT NOT NULL, + geography_vintage TEXT, + geography_name TEXT, + entity_name TEXT NOT NULL, + entity_role TEXT, + measure_concept TEXT NOT NULL, + measure_source_concept TEXT, + measure_concept_relation TEXT, + measure_concept_authority TEXT, + measure_concept_evidence_url TEXT, + measure_concept_evidence_notes TEXT, + measure_legal_vintage TEXT, + measure_unit TEXT NOT NULL, + aggregation_method TEXT NOT NULL, + aggregation_count_entity TEXT, + aggregation_denominator TEXT, + domain TEXT NOT NULL, + filters_json TEXT NOT NULL, + label TEXT, + source_name TEXT, + source_table TEXT, + source_file TEXT, + source_url TEXT, + source_vintage TEXT, + source_extracted_at TEXT, + source_extraction_method TEXT, + source_method_notes TEXT + ); + + CREATE TABLE aggregate_constraints ( + fact_key TEXT NOT NULL REFERENCES aggregate_facts(fact_key), + ordinal INTEGER NOT NULL, + variable TEXT NOT NULL, + operator TEXT NOT NULL, + value_json TEXT NOT NULL, + value_text TEXT, + value_numeric REAL, + unit TEXT, + role TEXT NOT NULL, + label TEXT, + PRIMARY KEY (fact_key, ordinal) + ); + + CREATE TABLE fact_source_cells ( + fact_key TEXT NOT NULL REFERENCES aggregate_facts(fact_key), + source_cell_key TEXT NOT NULL REFERENCES source_cells(source_cell_key), + ordinal INTEGER NOT NULL, + PRIMARY KEY (fact_key, source_cell_key) + ); + + CREATE TABLE fact_source_rows ( + fact_key TEXT NOT NULL REFERENCES aggregate_facts(fact_key), + source_row_key TEXT NOT NULL REFERENCES source_rows(source_row_key), + ordinal INTEGER NOT NULL, + PRIMARY KEY (fact_key, source_row_key) + ); + """ + ) + + +def _create_indexes(connection: sqlite3.Connection) -> None: + connection.executescript( + """ + CREATE INDEX idx_aggregate_facts_source_record + ON aggregate_facts(source_record_id); + CREATE INDEX idx_build_artifacts_build + ON build_artifacts(build_id); + CREATE INDEX idx_source_artifacts_raw_r2_key + ON source_artifacts(raw_r2_bucket, raw_r2_key); + CREATE INDEX idx_source_rows_artifact_sheet_row + ON source_rows(artifact_sha256, sheet_name, row_number); + CREATE INDEX idx_source_columns_artifact_sheet_column + ON source_columns(artifact_sha256, sheet_name, column_number); + CREATE INDEX idx_source_columns_normalized_name + ON source_columns(normalized_name); + CREATE INDEX idx_source_row_values_row + ON source_row_values(source_row_key); + CREATE INDEX idx_source_row_values_column + ON source_row_values(source_column_key); + CREATE INDEX idx_source_row_values_text_lookup + ON source_row_values(normalized_column_name, value_text); + CREATE INDEX idx_source_row_values_numeric_lookup + ON source_row_values(normalized_column_name, value_numeric); + CREATE INDEX idx_source_cells_source_row + ON source_cells(source_row_key); + CREATE INDEX idx_aggregate_facts_record_set + ON aggregate_facts(layout_record_set_id, layout_groupby_ordinal, layout_measure_ordinal); + CREATE INDEX idx_aggregate_facts_measure + ON aggregate_facts(measure_concept); + CREATE INDEX idx_concept_alignments_canonical + ON concept_alignments(canonical_concept); + CREATE INDEX idx_aggregate_facts_period_geo + ON aggregate_facts(period_type, period_value, geography_level, geography_id); + CREATE INDEX idx_aggregate_constraints_variable + ON aggregate_constraints(variable, operator); + CREATE INDEX idx_fact_source_cells_cell + ON fact_source_cells(source_cell_key); + CREATE INDEX idx_fact_source_rows_row + ON fact_source_rows(source_row_key); + """ + ) + + +def _insert_build( + connection: sqlite3.Connection, + *, + build_id: str, + facts_count: int, + constraints_count: int, + source_records_count: int, + source_rows_count: int, + source_columns_count: int, + source_row_values_count: int, + source_cells_count: int, + source_artifacts_count: int, +) -> None: + connection.execute( + """ + INSERT INTO arch_builds ( + build_id, + schema_version, + created_at, + facts_count, + constraints_count, + source_records_count, + source_rows_count, + source_columns_count, + source_row_values_count, + source_cells_count, + source_artifacts_count + ) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + build_id, + ARCH_DB_SCHEMA_VERSION, + datetime.now(timezone.utc).isoformat(), + facts_count, + constraints_count, + source_records_count, + source_rows_count, + source_columns_count, + source_row_values_count, + source_cells_count, + source_artifacts_count, + ), + ) + + +def _insert_source_cells( + connection: sqlite3.Connection, + cells: list[SourceCell], +) -> None: + artifacts = {cell.artifact.sha256: cell.artifact for cell in cells} + for artifact in artifacts.values(): + _insert_source_artifact(connection, artifact) + + for cell in cells: + numeric_value = _numeric_value(cell.raw_value) + connection.execute( + """ + INSERT INTO source_cells ( + source_cell_key, + artifact_sha256, + source_row_key, + sheet_name, + row_number, + column_number, + address, + cell_type, + raw_value_json, + raw_value_text, + raw_value_numeric, + display_value, + formula, + note + ) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + build_source_cell_key(cell), + cell.artifact.sha256, + cell.source_row_key, + cell.sheet_name, + cell.row_number, + cell.column_number, + cell.address, + cell.cell_type, + _json_dumps(cell.raw_value), + None if cell.raw_value is None else str(cell.raw_value), + numeric_value, + cell.display_value, + cell.formula, + cell.note, + ), + ) + + +def _insert_source_rows( + connection: sqlite3.Connection, + rows: list[SourceRow], +) -> None: + artifacts = {row.artifact.sha256: row.artifact for row in rows} + for artifact in artifacts.values(): + _insert_source_artifact(connection, artifact) + + for row in rows: + connection.execute( + """ + INSERT INTO source_rows ( + source_row_key, + artifact_sha256, + sheet_name, + row_number, + values_json + ) + VALUES (?, ?, ?, ?, ?) + """, + ( + build_source_row_key(row), + row.artifact.sha256, + row.sheet_name, + row.row_number, + _json_dumps(row.values), + ), + ) + + +def _insert_source_columns( + connection: sqlite3.Connection, + columns: list[SourceColumn], +) -> None: + for column in columns: + connection.execute( + """ + INSERT INTO source_columns ( + source_column_key, + artifact_sha256, + sheet_name, + column_number, + raw_name, + normalized_name + ) + VALUES (?, ?, ?, ?, ?, ?) + """, + ( + build_source_column_key(column), + column.artifact.sha256, + column.sheet_name, + column.column_number, + column.raw_name, + column.normalized_name, + ), + ) + + +def _insert_source_row_values( + connection: sqlite3.Connection, + rows: list[SourceRow], + columns: list[SourceColumn], +) -> None: + column_keys = { + (column.artifact.sha256, column.sheet_name, column.column_number): ( + build_source_column_key(column), + column.normalized_name, + ) + for column in columns + } + insert_sql = """ + INSERT INTO source_row_values ( + source_row_value_key, + source_row_key, + source_column_key, + artifact_sha256, + sheet_name, + row_number, + column_number, + raw_column_name, + normalized_column_name, + value_json, + value_text, + value_numeric + ) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """ + batch = [] + for row in rows: + source_row_key = build_source_row_key(row) + for column_number, (raw_name, value) in enumerate( + row.values.items(), + start=1, + ): + source_column_key, normalized_name = column_keys[ + (row.artifact.sha256, row.sheet_name, column_number) + ] + row_value = SourceRowValue( + source_row_key=source_row_key, + source_column_key=source_column_key, + row_number=row.row_number, + column_number=column_number, + raw_column_name=raw_name, + normalized_column_name=normalized_name, + value=value, + ) + batch.append( + ( + build_source_row_value_key(row_value), + source_row_key, + source_column_key, + row.artifact.sha256, + row.sheet_name, + row.row_number, + column_number, + raw_name, + normalized_name, + _json_dumps(value), + None if value is None else str(value), + _numeric_value(value), + ) + ) + if len(batch) >= 10_000: + connection.executemany(insert_sql, batch) + batch = [] + if batch: + connection.executemany(insert_sql, batch) + + +def _insert_source_artifact( + connection: sqlite3.Connection, + artifact: Any, +) -> None: + connection.execute( + """ + INSERT OR IGNORE INTO source_artifacts ( + artifact_sha256, + source_name, + source_table, + source_file, + url, + vintage, + size_bytes, + extracted_at, + extraction_method, + raw_r2_bucket, + raw_r2_key, + raw_r2_uri + ) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + artifact.sha256, + artifact.source_name, + artifact.source_table, + artifact.source_file, + artifact.url, + artifact.vintage, + artifact.size_bytes, + artifact.extracted_at, + artifact.extraction_method, + artifact.raw_r2_bucket, + artifact.raw_r2_key, + artifact.raw_r2_uri, + ), + ) + + +def _insert_facts( + connection: sqlite3.Connection, + fact_constraints: list[tuple[AggregateFact, tuple[Any, ...]]], + build_id: str, +) -> None: + for fact, constraints in fact_constraints: + fact_key = build_fact_key(fact) + if fact.source_record_id is not None: + connection.execute( + """ + INSERT OR IGNORE INTO source_records ( + source_record_id, + build_id, + source_name, + source_table, + source_file, + source_vintage, + source_row_count, + source_cell_count + ) + VALUES (?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + fact.source_record_id, + build_id, + fact.source.source_name, + fact.source.source_table, + fact.source.source_file, + fact.source.vintage, + len(fact.source_row_keys), + len(fact.source_cell_keys), + ), + ) + _insert_aggregate_fact(connection, fact, fact_key, build_id) + for ordinal, constraint in enumerate(constraints): + connection.execute( + """ + INSERT INTO aggregate_constraints ( + fact_key, + ordinal, + variable, + operator, + value_json, + value_text, + value_numeric, + unit, + role, + label + ) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + fact_key, + ordinal, + constraint.variable, + constraint.operator, + _json_dumps(constraint.value), + None if constraint.value is None else str(constraint.value), + _numeric_value(constraint.value), + constraint.unit, + constraint.role, + constraint.label, + ), + ) + for ordinal, source_cell_key in enumerate(fact.source_cell_keys): + connection.execute( + """ + INSERT INTO fact_source_cells ( + fact_key, + source_cell_key, + ordinal + ) + VALUES (?, ?, ?) + """, + (fact_key, source_cell_key, ordinal), + ) + for ordinal, source_row_key in enumerate(fact.source_row_keys): + connection.execute( + """ + INSERT INTO fact_source_rows ( + fact_key, + source_row_key, + ordinal + ) + VALUES (?, ?, ?) + """, + (fact_key, source_row_key, ordinal), + ) + + +def _insert_concept_alignments( + connection: sqlite3.Connection, + facts: list[AggregateFact], + build_id: str, +) -> None: + seen: set[tuple[str, str, str, str | None, str, str]] = set() + for fact in facts: + measure = fact.measure + if not measure.source_concept or not measure.concept_relation: + continue + key = ( + measure.source_concept, + measure.concept, + measure.concept_relation, + measure.legal_vintage, + fact.period.type, + str(fact.period.value), + ) + if key in seen: + continue + seen.add(key) + connection.execute( + """ + INSERT INTO concept_alignments ( + source_concept, + canonical_concept, + build_id, + relation, + authority, + evidence_url, + evidence_notes, + legal_vintage, + period_type, + period_value + ) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + measure.source_concept, + measure.concept, + build_id, + measure.concept_relation, + measure.concept_authority, + measure.concept_evidence_url, + measure.concept_evidence_notes, + measure.legal_vintage, + fact.period.type, + str(fact.period.value), + ), + ) + + +def _insert_aggregate_fact( + connection: sqlite3.Connection, + fact: AggregateFact, + fact_key: str, + build_id: str, +) -> None: + layout = fact.layout + connection.execute( + """ + INSERT INTO aggregate_facts ( + fact_key, + build_id, + source_record_id, + layout_record_set_id, + layout_record_set_spec_id, + layout_record_set_spec_hash, + layout_groupby_dimension, + layout_groupby_value_id, + layout_groupby_value_label, + layout_groupby_ordinal, + layout_measure_id, + layout_measure_label, + layout_measure_ordinal, + layout_source_row_id, + layout_source_column_id, + layout_table_record_kind, + layout_parent_record_set_id, + layout_total_record_id, + value_json, + value_text, + value_numeric, + period_type, + period_value, + geography_level, + geography_id, + geography_vintage, + geography_name, + entity_name, + entity_role, + measure_concept, + measure_source_concept, + measure_concept_relation, + measure_concept_authority, + measure_concept_evidence_url, + measure_concept_evidence_notes, + measure_legal_vintage, + measure_unit, + aggregation_method, + aggregation_count_entity, + aggregation_denominator, + domain, + filters_json, + label, + source_name, + source_table, + source_file, + source_url, + source_vintage, + source_extracted_at, + source_extraction_method, + source_method_notes + ) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) + """, + ( + fact_key, + build_id, + fact.source_record_id, + layout.record_set_id if layout else None, + layout.record_set_spec_id if layout else None, + layout.record_set_spec_hash if layout else None, + layout.groupby_dimension if layout else None, + layout.groupby_value_id if layout else None, + layout.groupby_value_label if layout else None, + layout.groupby_ordinal if layout else None, + layout.measure_id if layout else None, + layout.measure_label if layout else None, + layout.measure_ordinal if layout else None, + layout.source_row_id if layout else None, + layout.source_column_id if layout else None, + layout.table_record_kind if layout else None, + layout.parent_record_set_id if layout else None, + layout.total_record_id if layout else None, + _json_dumps(fact.value), + str(fact.value), + _numeric_value(fact.value), + fact.period.type, + str(fact.period.value), + fact.geography.level, + fact.geography.id, + fact.geography.vintage, + fact.geography.name, + fact.entity.name, + fact.entity.role, + fact.measure.concept, + fact.measure.source_concept, + fact.measure.concept_relation, + fact.measure.concept_authority, + fact.measure.concept_evidence_url, + fact.measure.concept_evidence_notes, + fact.measure.legal_vintage, + fact.measure.unit, + fact.aggregation.method, + fact.aggregation.count_entity, + fact.aggregation.denominator, + fact.domain, + _json_dumps(fact.filters), + fact.label, + fact.source.source_name, + fact.source.source_table, + fact.source.source_file, + fact.source.url, + fact.source.vintage, + fact.source.extracted_at, + fact.source.extraction_method, + fact.source.method_notes, + ), + ) + + +def _build_id( + facts: list[AggregateFact], + cells: list[SourceCell], + rows: list[SourceRow], +) -> str: + digest = hashlib.sha256() + _update_build_hash(digest, "schema", {"version": ARCH_DB_SCHEMA_VERSION}) + for fact in sorted(facts, key=build_fact_key): + _update_build_hash( + digest, + "fact", + { + "fact_key": build_fact_key(fact), + "fact": asdict(fact), + "constraints": [ + asdict(constraint) + for constraint in build_aggregate_constraints(fact) + ], + }, + ) + for cell in sorted(cells, key=build_source_cell_key): + _update_build_hash( + digest, + "source_cell", + { + "source_cell_key": build_source_cell_key(cell), + "source_cell": source_cell_to_mapping(cell), + }, + ) + for row in sorted(rows, key=build_source_row_key): + _update_build_hash( + digest, + "source_row", + { + "source_row_key": build_source_row_key(row), + "source_row": source_row_to_mapping(row), + }, + ) + return f"arch.build.v1:{digest.hexdigest()[:24]}" + + +def _update_build_hash( + digest: Any, + record_type: str, + payload: dict[str, Any], +) -> None: + digest.update(record_type.encode("utf-8")) + digest.update(b"\0") + digest.update(_json_dumps(payload).encode("utf-8")) + digest.update(b"\n") + + +def _json_dumps(value: Any) -> str: + return json.dumps(value, sort_keys=True, separators=(",", ":"), default=str) + + +def _numeric_value(value: Any) -> float | None: + if isinstance(value, bool): + return None + if isinstance(value, Decimal): + return float(value) + if isinstance(value, int | float): + return float(value) + return None diff --git a/arch/facts/__init__.py b/arch/facts/__init__.py index f37bd59..1647024 100644 --- a/arch/facts/__init__.py +++ b/arch/facts/__init__.py @@ -1,5 +1,6 @@ -"""Normalized source facts.""" +"""Arch fact models.""" +from arch.core import AggregateFact from .models import DerivationStep, SourceFact -__all__ = ["DerivationStep", "SourceFact"] +__all__ = ["AggregateFact", "DerivationStep", "SourceFact"] diff --git a/arch/fixtures/consumer_facts.jsonl b/arch/fixtures/consumer_facts.jsonl new file mode 100644 index 0000000..fec39bd --- /dev/null +++ b/arch/fixtures/consumer_facts.jsonl @@ -0,0 +1,3 @@ +{"aggregate_fact_key": "arch.aggregate_fact.v2:04e0a761ebfc49dade38e2cf", "aggregation": {"method": "count"}, "dimension_set_key": "arch.dimension_set.v2:a55266d8b1d53a8a7e49927d", "dimensions": {"filing_status": "all", "income_range": "all"}, "entity": {"name": "tax_unit", "role": "filing_unit"}, "geography": {"id": "0100000US", "level": "country", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (filing status=all, income range=all) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 0, "groupby_value_id": "all", "groupby_value_label": "All returns", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "all", "table_record_kind": "total"}, "legacy_fact_key": "arch.fact.v1:59654ee1d44dbc3c56641ae5", "lineage": {"source_cell_keys": ["arch.source_cell.v1:82f39b2a5aeab53c1b717928"], "source_record_id": "irs_soi.ty2023.table_1_1.all.return_count", "source_row_keys": []}, "observed_measure": {"source_concept": "irs_soi.individual_income_tax_returns", "source_measure_id": "return_count", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "unit": "count"}, "observed_measure_key": "arch.observed_measure.v2:bc96277bae6ef31da4a5794c", "period": {"type": "tax_year", "value": 2023}, "schema_version": "arch.consumer_fact.v1", "semantic_fact_key": "arch.semantic_fact.v2:24aa6b0873b03d50c9af0e7c", "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_release_key": "arch.source_release.v2:9b6fc934e3bd04586ece23a8", "source_series_key": "arch.source_series.v2:ac7ef40c4f9adbd84a82f24c", "universe_constraint_set_key": "arch.universe_constraint_set.v2:18df86d027cde55a3f217b77", "universe_constraints": {"domain": "all_individual_income_tax_returns"}, "value": 160602107, "value_type": "integer"} +{"aggregate_fact_key": "arch.aggregate_fact.v2:81fc50c3cbdb7eb0d6bf191f", "aggregation": {"method": "sum"}, "concept_alignment": {"authority": "arch-us", "canonical_concept": "us:statutes/26/62#adjusted_gross_income", "concept_alignment_key": "arch.concept_alignment.v2:b20222a897a8859efd9112a5", "evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "legal_vintage": "tax_year_2023", "relation": "exact", "source_concept": "irs_soi.adjusted_gross_income"}, "dimension_set_key": "arch.dimension_set.v2:a55266d8b1d53a8a7e49927d", "dimensions": {"filing_status": "all", "income_range": "all"}, "entity": {"name": "tax_unit", "role": "filing_unit"}, "geography": {"id": "0100000US", "level": "country", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (filing status=all, income range=all) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 0, "groupby_value_id": "all", "groupby_value_label": "All returns", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "all", "table_record_kind": "total"}, "legacy_fact_key": "arch.fact.v1:dea062ca895a3227987c60c5", "lineage": {"source_cell_keys": ["arch.source_cell.v1:c3d349e26856fb6224303675"], "source_record_id": "irs_soi.ty2023.table_1_1.all.adjusted_gross_income", "source_row_keys": []}, "observed_measure": {"source_concept": "irs_soi.adjusted_gross_income", "source_measure_id": "adjusted_gross_income", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "unit": "usd"}, "observed_measure_key": "arch.observed_measure.v2:ac9c3cef252ef7ead0066cb1", "period": {"type": "tax_year", "value": 2023}, "schema_version": "arch.consumer_fact.v1", "semantic_fact_key": "arch.semantic_fact.v2:71b0d11cb9ae450d36ea29ed", "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_release_key": "arch.source_release.v2:9b6fc934e3bd04586ece23a8", "source_series_key": "arch.source_series.v2:ac7ef40c4f9adbd84a82f24c", "universe_constraint_set_key": "arch.universe_constraint_set.v2:18df86d027cde55a3f217b77", "universe_constraints": {"domain": "all_individual_income_tax_returns"}, "value": 15286017359000, "value_type": "integer"} +{"aggregate_fact_key": "arch.aggregate_fact.v2:158c9cacdb2fc231a78faee6", "aggregation": {"method": "sum"}, "dimension_set_key": "arch.dimension_set.v2:a55266d8b1d53a8a7e49927d", "dimensions": {"filing_status": "all", "income_range": "all"}, "entity": {"name": "tax_unit", "role": "filing_unit"}, "geography": {"id": "0100000US", "level": "country", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (filing status=all, income range=all) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 0, "groupby_value_id": "all", "groupby_value_label": "All returns", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "all", "table_record_kind": "total"}, "legacy_fact_key": "arch.fact.v1:67bd62b36a72e8e24d363e8c", "lineage": {"source_cell_keys": ["arch.source_cell.v1:f38c48e6e2f23204eb997143"], "source_record_id": "irs_soi.ty2023.table_1_1.all.total_income_tax", "source_row_keys": []}, "observed_measure": {"source_concept": "irs_soi.total_income_tax", "source_measure_id": "total_income_tax", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "unit": "usd"}, "observed_measure_key": "arch.observed_measure.v2:c11ff13c2dfe8af0795a1194", "period": {"type": "tax_year", "value": 2023}, "schema_version": "arch.consumer_fact.v1", "semantic_fact_key": "arch.semantic_fact.v2:213cf02b6a97c76384c6c6cd", "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_release_key": "arch.source_release.v2:9b6fc934e3bd04586ece23a8", "source_series_key": "arch.source_series.v2:ac7ef40c4f9adbd84a82f24c", "universe_constraint_set_key": "arch.universe_constraint_set.v2:18df86d027cde55a3f217b77", "universe_constraints": {"domain": "all_individual_income_tax_returns"}, "value": 2147909818000, "value_type": "integer"} diff --git a/arch/fixtures/facts.jsonl b/arch/fixtures/facts.jsonl new file mode 100644 index 0000000..e35ca66 --- /dev/null +++ b/arch/fixtures/facts.jsonl @@ -0,0 +1,80 @@ +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"filing_status": "all", "income_range": "all"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (filing status=all, income range=all) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 0, "groupby_value_id": "all", "groupby_value_label": "All returns", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "all", "table_record_kind": "total"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:82f39b2a5aeab53c1b717928"], "source_record_id": "irs_soi.ty2023.table_1_1.all.return_count", "value": 160602107} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"filing_status": "all", "income_range": "all"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (filing status=all, income range=all) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 0, "groupby_value_id": "all", "groupby_value_label": "All returns", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "all", "table_record_kind": "total"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:c3d349e26856fb6224303675"], "source_record_id": "irs_soi.ty2023.table_1_1.all.adjusted_gross_income", "value": 15286017359000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"filing_status": "all", "income_range": "all"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (filing status=all, income range=all) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 0, "groupby_value_id": "all", "groupby_value_label": "All returns", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "all", "table_record_kind": "total"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:f38c48e6e2f23204eb997143"], "source_record_id": "irs_soi.ty2023.table_1_1.all.total_income_tax", "value": 2147909818000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"filing_status": "all", "income_range": "all"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (filing status=all, income range=all) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 0, "groupby_value_id": "all", "groupby_value_label": "All returns", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "all", "table_record_kind": "total"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:a38dfdc6310412d2e73b8127"], "source_record_id": "irs_soi.ty2023.table_1_1.all.income_tax_after_credits_returns", "value": 111545061} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_upper_usd": 1, "filing_status": "all", "income_range": "under_1"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi upper usd=1, filing status=all, income range=under 1) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 1, "groupby_value_id": "under_1", "groupby_value_label": "No adjusted gross income", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "under_1", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:ceb83e9230a93d55f2053863"], "source_record_id": "irs_soi.ty2023.table_1_1.under_1.return_count", "value": 2180146} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_upper_usd": 1, "filing_status": "all", "income_range": "under_1"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi upper usd=1, filing status=all, income range=under 1) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 1, "groupby_value_id": "under_1", "groupby_value_label": "No adjusted gross income", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "under_1", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:466950fa78f909ef709f6fb1"], "source_record_id": "irs_soi.ty2023.table_1_1.under_1.adjusted_gross_income", "value": -144194936000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_upper_usd": 1, "filing_status": "all", "income_range": "under_1"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi upper usd=1, filing status=all, income range=under 1) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 1, "groupby_value_id": "under_1", "groupby_value_label": "No adjusted gross income", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "under_1", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:baf9717375de9c436d3145fa"], "source_record_id": "irs_soi.ty2023.table_1_1.under_1.total_income_tax", "value": 114270000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_upper_usd": 1, "filing_status": "all", "income_range": "under_1"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi upper usd=1, filing status=all, income range=under 1) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 1, "groupby_value_id": "under_1", "groupby_value_label": "No adjusted gross income", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "under_1", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:2a5558c2590d587f45069ff3"], "source_record_id": "irs_soi.ty2023.table_1_1.under_1.income_tax_after_credits_returns", "value": 2094} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 5000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1, "agi_upper_usd": 5000, "filing_status": "all", "income_range": "1_to_5k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=1, agi upper usd=5000, filing status=all, income range=1 to 5k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 2, "groupby_value_id": "1_to_5k", "groupby_value_label": "$1 under $5,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "1_to_5k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:9ed3dffe7ec9f552b3e87f32"], "source_record_id": "irs_soi.ty2023.table_1_1.1_to_5k.return_count", "value": 7357751} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 5000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1, "agi_upper_usd": 5000, "filing_status": "all", "income_range": "1_to_5k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=1, agi upper usd=5000, filing status=all, income range=1 to 5k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 2, "groupby_value_id": "1_to_5k", "groupby_value_label": "$1 under $5,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "1_to_5k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:edcb37ab86bd6a3677097395"], "source_record_id": "irs_soi.ty2023.table_1_1.1_to_5k.adjusted_gross_income", "value": 17450063000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 5000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1, "agi_upper_usd": 5000, "filing_status": "all", "income_range": "1_to_5k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=1, agi upper usd=5000, filing status=all, income range=1 to 5k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 2, "groupby_value_id": "1_to_5k", "groupby_value_label": "$1 under $5,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "1_to_5k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:74c39ed21f3bec1e7e1dc310"], "source_record_id": "irs_soi.ty2023.table_1_1.1_to_5k.total_income_tax", "value": 15081000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 5000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1, "agi_upper_usd": 5000, "filing_status": "all", "income_range": "1_to_5k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=1, agi upper usd=5000, filing status=all, income range=1 to 5k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 2, "groupby_value_id": "1_to_5k", "groupby_value_label": "$1 under $5,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "1_to_5k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:d23f00f39572b45032df6c86"], "source_record_id": "irs_soi.ty2023.table_1_1.1_to_5k.income_tax_after_credits_returns", "value": 120341} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 5000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 10000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 5000, "agi_upper_usd": 10000, "filing_status": "all", "income_range": "5k_to_10k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=5000, agi upper usd=10000, filing status=all, income range=5k to 10k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 3, "groupby_value_id": "5k_to_10k", "groupby_value_label": "$5,000 under $10,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "5k_to_10k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:bc69eccdbbf8bb2f3e287a47"], "source_record_id": "irs_soi.ty2023.table_1_1.5k_to_10k.return_count", "value": 8077917} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 5000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 10000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 5000, "agi_upper_usd": 10000, "filing_status": "all", "income_range": "5k_to_10k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=5000, agi upper usd=10000, filing status=all, income range=5k to 10k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 3, "groupby_value_id": "5k_to_10k", "groupby_value_label": "$5,000 under $10,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "5k_to_10k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:5d8a501f1302fd90621b23d8"], "source_record_id": "irs_soi.ty2023.table_1_1.5k_to_10k.adjusted_gross_income", "value": 60949546000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 5000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 10000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 5000, "agi_upper_usd": 10000, "filing_status": "all", "income_range": "5k_to_10k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=5000, agi upper usd=10000, filing status=all, income range=5k to 10k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 3, "groupby_value_id": "5k_to_10k", "groupby_value_label": "$5,000 under $10,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "5k_to_10k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:441a5cc260757ac4a2de9e9f"], "source_record_id": "irs_soi.ty2023.table_1_1.5k_to_10k.total_income_tax", "value": 42411000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 5000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 10000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 5000, "agi_upper_usd": 10000, "filing_status": "all", "income_range": "5k_to_10k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=5000, agi upper usd=10000, filing status=all, income range=5k to 10k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 3, "groupby_value_id": "5k_to_10k", "groupby_value_label": "$5,000 under $10,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "5k_to_10k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:eb9b98de2d84d3611d2c1893"], "source_record_id": "irs_soi.ty2023.table_1_1.5k_to_10k.income_tax_after_credits_returns", "value": 141213} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 10000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 15000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 10000, "agi_upper_usd": 15000, "filing_status": "all", "income_range": "10k_to_15k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=10000, agi upper usd=15000, filing status=all, income range=10k to 15k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 4, "groupby_value_id": "10k_to_15k", "groupby_value_label": "$10,000 under $15,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "10k_to_15k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:672db9222e472629ef577997"], "source_record_id": "irs_soi.ty2023.table_1_1.10k_to_15k.return_count", "value": 8986005} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 10000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 15000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 10000, "agi_upper_usd": 15000, "filing_status": "all", "income_range": "10k_to_15k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=10000, agi upper usd=15000, filing status=all, income range=10k to 15k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 4, "groupby_value_id": "10k_to_15k", "groupby_value_label": "$10,000 under $15,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "10k_to_15k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:5914b8de515ed267b348f42e"], "source_record_id": "irs_soi.ty2023.table_1_1.10k_to_15k.adjusted_gross_income", "value": 112353814000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 10000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 15000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 10000, "agi_upper_usd": 15000, "filing_status": "all", "income_range": "10k_to_15k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=10000, agi upper usd=15000, filing status=all, income range=10k to 15k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 4, "groupby_value_id": "10k_to_15k", "groupby_value_label": "$10,000 under $15,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "10k_to_15k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:c49d092e66a51c9853b7481b"], "source_record_id": "irs_soi.ty2023.table_1_1.10k_to_15k.total_income_tax", "value": 88533000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 10000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 15000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 10000, "agi_upper_usd": 15000, "filing_status": "all", "income_range": "10k_to_15k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=10000, agi upper usd=15000, filing status=all, income range=10k to 15k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 4, "groupby_value_id": "10k_to_15k", "groupby_value_label": "$10,000 under $15,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "10k_to_15k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:a4f71cae59b3a6b0a62abec8"], "source_record_id": "irs_soi.ty2023.table_1_1.10k_to_15k.income_tax_after_credits_returns", "value": 640711} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 15000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 20000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 15000, "agi_upper_usd": 20000, "filing_status": "all", "income_range": "15k_to_20k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=15000, agi upper usd=20000, filing status=all, income range=15k to 20k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 5, "groupby_value_id": "15k_to_20k", "groupby_value_label": "$15,000 under $20,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "15k_to_20k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:45537963eb128fd35f6dafb5"], "source_record_id": "irs_soi.ty2023.table_1_1.15k_to_20k.return_count", "value": 8702094} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 15000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 20000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 15000, "agi_upper_usd": 20000, "filing_status": "all", "income_range": "15k_to_20k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=15000, agi upper usd=20000, filing status=all, income range=15k to 20k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 5, "groupby_value_id": "15k_to_20k", "groupby_value_label": "$15,000 under $20,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "15k_to_20k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:17230c1719fb9f0f5c4968c5"], "source_record_id": "irs_soi.ty2023.table_1_1.15k_to_20k.adjusted_gross_income", "value": 151828408000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 15000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 20000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 15000, "agi_upper_usd": 20000, "filing_status": "all", "income_range": "15k_to_20k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=15000, agi upper usd=20000, filing status=all, income range=15k to 20k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 5, "groupby_value_id": "15k_to_20k", "groupby_value_label": "$15,000 under $20,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "15k_to_20k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:34405797a7630c1edfb03be6"], "source_record_id": "irs_soi.ty2023.table_1_1.15k_to_20k.total_income_tax", "value": 1317468000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 15000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 20000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 15000, "agi_upper_usd": 20000, "filing_status": "all", "income_range": "15k_to_20k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=15000, agi upper usd=20000, filing status=all, income range=15k to 20k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 5, "groupby_value_id": "15k_to_20k", "groupby_value_label": "$15,000 under $20,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "15k_to_20k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:ea81f4639f81bb9d067f0e2c"], "source_record_id": "irs_soi.ty2023.table_1_1.15k_to_20k.income_tax_after_credits_returns", "value": 4028010} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 20000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 25000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 20000, "agi_upper_usd": 25000, "filing_status": "all", "income_range": "20k_to_25k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=20000, agi upper usd=25000, filing status=all, income range=20k to 25k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 6, "groupby_value_id": "20k_to_25k", "groupby_value_label": "$20,000 under $25,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "20k_to_25k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:b0312631f8cd32ba4d564707"], "source_record_id": "irs_soi.ty2023.table_1_1.20k_to_25k.return_count", "value": 7925999} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 20000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 25000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 20000, "agi_upper_usd": 25000, "filing_status": "all", "income_range": "20k_to_25k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=20000, agi upper usd=25000, filing status=all, income range=20k to 25k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 6, "groupby_value_id": "20k_to_25k", "groupby_value_label": "$20,000 under $25,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "20k_to_25k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:62a6567af007c28cbf693e93"], "source_record_id": "irs_soi.ty2023.table_1_1.20k_to_25k.adjusted_gross_income", "value": 178000708000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 20000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 25000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 20000, "agi_upper_usd": 25000, "filing_status": "all", "income_range": "20k_to_25k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=20000, agi upper usd=25000, filing status=all, income range=20k to 25k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 6, "groupby_value_id": "20k_to_25k", "groupby_value_label": "$20,000 under $25,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "20k_to_25k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:158e624e28bd48bdf2865357"], "source_record_id": "irs_soi.ty2023.table_1_1.20k_to_25k.total_income_tax", "value": 3257177000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 20000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 25000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 20000, "agi_upper_usd": 25000, "filing_status": "all", "income_range": "20k_to_25k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=20000, agi upper usd=25000, filing status=all, income range=20k to 25k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 6, "groupby_value_id": "20k_to_25k", "groupby_value_label": "$20,000 under $25,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "20k_to_25k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:c91735fa289d705faa810309"], "source_record_id": "irs_soi.ty2023.table_1_1.20k_to_25k.income_tax_after_credits_returns", "value": 4176659} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 25000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 30000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 25000, "agi_upper_usd": 30000, "filing_status": "all", "income_range": "25k_to_30k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=25000, agi upper usd=30000, filing status=all, income range=25k to 30k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 7, "groupby_value_id": "25k_to_30k", "groupby_value_label": "$25,000 under $30,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "25k_to_30k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:3f4b696f72cc3d854336ae52"], "source_record_id": "irs_soi.ty2023.table_1_1.25k_to_30k.return_count", "value": 7594157} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 25000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 30000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 25000, "agi_upper_usd": 30000, "filing_status": "all", "income_range": "25k_to_30k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=25000, agi upper usd=30000, filing status=all, income range=25k to 30k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 7, "groupby_value_id": "25k_to_30k", "groupby_value_label": "$25,000 under $30,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "25k_to_30k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:a835afa28b05f037b2e19508"], "source_record_id": "irs_soi.ty2023.table_1_1.25k_to_30k.adjusted_gross_income", "value": 208919443000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 25000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 30000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 25000, "agi_upper_usd": 30000, "filing_status": "all", "income_range": "25k_to_30k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=25000, agi upper usd=30000, filing status=all, income range=25k to 30k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 7, "groupby_value_id": "25k_to_30k", "groupby_value_label": "$25,000 under $30,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "25k_to_30k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:b415ae6a8a379ed0ac4e4667"], "source_record_id": "irs_soi.ty2023.table_1_1.25k_to_30k.total_income_tax", "value": 5552159000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 25000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 30000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 25000, "agi_upper_usd": 30000, "filing_status": "all", "income_range": "25k_to_30k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=25000, agi upper usd=30000, filing status=all, income range=25k to 30k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 7, "groupby_value_id": "25k_to_30k", "groupby_value_label": "$25,000 under $30,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "25k_to_30k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:32eda382fc4064979da75618"], "source_record_id": "irs_soi.ty2023.table_1_1.25k_to_30k.income_tax_after_credits_returns", "value": 4416066} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 30000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 40000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 30000, "agi_upper_usd": 40000, "filing_status": "all", "income_range": "30k_to_40k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=30000, agi upper usd=40000, filing status=all, income range=30k to 40k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 8, "groupby_value_id": "30k_to_40k", "groupby_value_label": "$30,000 under $40,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "30k_to_40k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:0fbff6776403b5959436b0a2"], "source_record_id": "irs_soi.ty2023.table_1_1.30k_to_40k.return_count", "value": 15210266} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 30000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 40000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 30000, "agi_upper_usd": 40000, "filing_status": "all", "income_range": "30k_to_40k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=30000, agi upper usd=40000, filing status=all, income range=30k to 40k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 8, "groupby_value_id": "30k_to_40k", "groupby_value_label": "$30,000 under $40,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "30k_to_40k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:90c0895d3cb3dfdacab482e1"], "source_record_id": "irs_soi.ty2023.table_1_1.30k_to_40k.adjusted_gross_income", "value": 531782365000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 30000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 40000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 30000, "agi_upper_usd": 40000, "filing_status": "all", "income_range": "30k_to_40k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=30000, agi upper usd=40000, filing status=all, income range=30k to 40k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 8, "groupby_value_id": "30k_to_40k", "groupby_value_label": "$30,000 under $40,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "30k_to_40k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:f7a0209f2f2e7ceba9ec1f61"], "source_record_id": "irs_soi.ty2023.table_1_1.30k_to_40k.total_income_tax", "value": 19428590000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 30000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 40000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 30000, "agi_upper_usd": 40000, "filing_status": "all", "income_range": "30k_to_40k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=30000, agi upper usd=40000, filing status=all, income range=30k to 40k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 8, "groupby_value_id": "30k_to_40k", "groupby_value_label": "$30,000 under $40,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "30k_to_40k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:355de415994a094e1d813712"], "source_record_id": "irs_soi.ty2023.table_1_1.30k_to_40k.income_tax_after_credits_returns", "value": 10192082} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 40000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 50000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 40000, "agi_upper_usd": 50000, "filing_status": "all", "income_range": "40k_to_50k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=40000, agi upper usd=50000, filing status=all, income range=40k to 50k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 9, "groupby_value_id": "40k_to_50k", "groupby_value_label": "$40,000 under $50,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "40k_to_50k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:d17d73b6443c6ce57ac958b3"], "source_record_id": "irs_soi.ty2023.table_1_1.40k_to_50k.return_count", "value": 13519034} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 40000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 50000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 40000, "agi_upper_usd": 50000, "filing_status": "all", "income_range": "40k_to_50k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=40000, agi upper usd=50000, filing status=all, income range=40k to 50k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 9, "groupby_value_id": "40k_to_50k", "groupby_value_label": "$40,000 under $50,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "40k_to_50k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:de1cd59485532408db38b0c5"], "source_record_id": "irs_soi.ty2023.table_1_1.40k_to_50k.adjusted_gross_income", "value": 606242938000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 40000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 50000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 40000, "agi_upper_usd": 50000, "filing_status": "all", "income_range": "40k_to_50k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=40000, agi upper usd=50000, filing status=all, income range=40k to 50k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 9, "groupby_value_id": "40k_to_50k", "groupby_value_label": "$40,000 under $50,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "40k_to_50k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:5c0eea620b269c73fcca5770"], "source_record_id": "irs_soi.ty2023.table_1_1.40k_to_50k.total_income_tax", "value": 29591551000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 40000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 50000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 40000, "agi_upper_usd": 50000, "filing_status": "all", "income_range": "40k_to_50k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=40000, agi upper usd=50000, filing status=all, income range=40k to 50k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 9, "groupby_value_id": "40k_to_50k", "groupby_value_label": "$40,000 under $50,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "40k_to_50k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:cf2143efd5f7b8bc7fbf2192"], "source_record_id": "irs_soi.ty2023.table_1_1.40k_to_50k.income_tax_after_credits_returns", "value": 10574219} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 50000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 75000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 50000, "agi_upper_usd": 75000, "filing_status": "all", "income_range": "50k_to_75k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=50000, agi upper usd=75000, filing status=all, income range=50k to 75k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 10, "groupby_value_id": "50k_to_75k", "groupby_value_label": "$50,000 under $75,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "50k_to_75k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:3dafbb7175fa56a27612bd41"], "source_record_id": "irs_soi.ty2023.table_1_1.50k_to_75k.return_count", "value": 24135884} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 50000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 75000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 50000, "agi_upper_usd": 75000, "filing_status": "all", "income_range": "50k_to_75k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=50000, agi upper usd=75000, filing status=all, income range=50k to 75k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 10, "groupby_value_id": "50k_to_75k", "groupby_value_label": "$50,000 under $75,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "50k_to_75k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:f902d5a210fc3debc5a642f6"], "source_record_id": "irs_soi.ty2023.table_1_1.50k_to_75k.adjusted_gross_income", "value": 1485510450000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 50000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 75000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 50000, "agi_upper_usd": 75000, "filing_status": "all", "income_range": "50k_to_75k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=50000, agi upper usd=75000, filing status=all, income range=50k to 75k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 10, "groupby_value_id": "50k_to_75k", "groupby_value_label": "$50,000 under $75,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "50k_to_75k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:0111c7b045cb1ee487c7f312"], "source_record_id": "irs_soi.ty2023.table_1_1.50k_to_75k.total_income_tax", "value": 96759453000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 50000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 75000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 50000, "agi_upper_usd": 75000, "filing_status": "all", "income_range": "50k_to_75k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=50000, agi upper usd=75000, filing status=all, income range=50k to 75k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 10, "groupby_value_id": "50k_to_75k", "groupby_value_label": "$50,000 under $75,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "50k_to_75k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:1f5935b6440fe6a57e19d78f"], "source_record_id": "irs_soi.ty2023.table_1_1.50k_to_75k.income_tax_after_credits_returns", "value": 21494289} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 75000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 100000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 75000, "agi_upper_usd": 100000, "filing_status": "all", "income_range": "75k_to_100k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=75000, agi upper usd=100000, filing status=all, income range=75k to 100k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 11, "groupby_value_id": "75k_to_100k", "groupby_value_label": "$75,000 under $100,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "75k_to_100k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:fec57b4f1e9a035c4d00c5ef"], "source_record_id": "irs_soi.ty2023.table_1_1.75k_to_100k.return_count", "value": 15775468} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 75000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 100000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 75000, "agi_upper_usd": 100000, "filing_status": "all", "income_range": "75k_to_100k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=75000, agi upper usd=100000, filing status=all, income range=75k to 100k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 11, "groupby_value_id": "75k_to_100k", "groupby_value_label": "$75,000 under $100,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "75k_to_100k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:643e8d75da2af9f1dda832b8"], "source_record_id": "irs_soi.ty2023.table_1_1.75k_to_100k.adjusted_gross_income", "value": 1366616429000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 75000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 100000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 75000, "agi_upper_usd": 100000, "filing_status": "all", "income_range": "75k_to_100k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=75000, agi upper usd=100000, filing status=all, income range=75k to 100k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 11, "groupby_value_id": "75k_to_100k", "groupby_value_label": "$75,000 under $100,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "75k_to_100k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:f08de0554ce7dff8d54e8ee3"], "source_record_id": "irs_soi.ty2023.table_1_1.75k_to_100k.total_income_tax", "value": 114197559000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 75000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 100000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 75000, "agi_upper_usd": 100000, "filing_status": "all", "income_range": "75k_to_100k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=75000, agi upper usd=100000, filing status=all, income range=75k to 100k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 11, "groupby_value_id": "75k_to_100k", "groupby_value_label": "$75,000 under $100,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "75k_to_100k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:d91e4f8c785b1749e5427354"], "source_record_id": "irs_soi.ty2023.table_1_1.75k_to_100k.income_tax_after_credits_returns", "value": 15064744} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 100000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 200000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 100000, "agi_upper_usd": 200000, "filing_status": "all", "income_range": "100k_to_200k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=100000, agi upper usd=200000, filing status=all, income range=100k to 200k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 12, "groupby_value_id": "100k_to_200k", "groupby_value_label": "$100,000 under $200,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "100k_to_200k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:dd032848d8c542f41ead89e8"], "source_record_id": "irs_soi.ty2023.table_1_1.100k_to_200k.return_count", "value": 27602755} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 100000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 200000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 100000, "agi_upper_usd": 200000, "filing_status": "all", "income_range": "100k_to_200k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=100000, agi upper usd=200000, filing status=all, income range=100k to 200k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 12, "groupby_value_id": "100k_to_200k", "groupby_value_label": "$100,000 under $200,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "100k_to_200k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:20416a106160edba48eee425"], "source_record_id": "irs_soi.ty2023.table_1_1.100k_to_200k.adjusted_gross_income", "value": 3818295141000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 100000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 200000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 100000, "agi_upper_usd": 200000, "filing_status": "all", "income_range": "100k_to_200k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=100000, agi upper usd=200000, filing status=all, income range=100k to 200k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 12, "groupby_value_id": "100k_to_200k", "groupby_value_label": "$100,000 under $200,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "100k_to_200k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:325154d1d7dbd5b9c5fc650d"], "source_record_id": "irs_soi.ty2023.table_1_1.100k_to_200k.total_income_tax", "value": 409532689000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 100000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 200000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 100000, "agi_upper_usd": 200000, "filing_status": "all", "income_range": "100k_to_200k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=100000, agi upper usd=200000, filing status=all, income range=100k to 200k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 12, "groupby_value_id": "100k_to_200k", "groupby_value_label": "$100,000 under $200,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "100k_to_200k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:5a2145887658330d8bc2a5ef"], "source_record_id": "irs_soi.ty2023.table_1_1.100k_to_200k.income_tax_after_credits_returns", "value": 27208705} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 200000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 500000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 200000, "agi_upper_usd": 500000, "filing_status": "all", "income_range": "200k_to_500k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=200000, agi upper usd=500000, filing status=all, income range=200k to 500k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 13, "groupby_value_id": "200k_to_500k", "groupby_value_label": "$200,000 under $500,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "200k_to_500k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:711d49b75298db5e1f045dba"], "source_record_id": "irs_soi.ty2023.table_1_1.200k_to_500k.return_count", "value": 10955818} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 200000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 500000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 200000, "agi_upper_usd": 500000, "filing_status": "all", "income_range": "200k_to_500k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=200000, agi upper usd=500000, filing status=all, income range=200k to 500k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 13, "groupby_value_id": "200k_to_500k", "groupby_value_label": "$200,000 under $500,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "200k_to_500k", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:5267ad143623c9a67f4494ce"], "source_record_id": "irs_soi.ty2023.table_1_1.200k_to_500k.adjusted_gross_income", "value": 3153877437000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 200000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 500000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 200000, "agi_upper_usd": 500000, "filing_status": "all", "income_range": "200k_to_500k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=200000, agi upper usd=500000, filing status=all, income range=200k to 500k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 13, "groupby_value_id": "200k_to_500k", "groupby_value_label": "$200,000 under $500,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "200k_to_500k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:1c0b9c0c5d403fb65ca635c2"], "source_record_id": "irs_soi.ty2023.table_1_1.200k_to_500k.total_income_tax", "value": 513407398000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 200000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 500000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 200000, "agi_upper_usd": 500000, "filing_status": "all", "income_range": "200k_to_500k"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=200000, agi upper usd=500000, filing status=all, income range=200k to 500k) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 13, "groupby_value_id": "200k_to_500k", "groupby_value_label": "$200,000 under $500,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "200k_to_500k", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:bc809587957e03eda3d4ec1a"], "source_record_id": "irs_soi.ty2023.table_1_1.200k_to_500k.income_tax_after_credits_returns", "value": 10916814} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 500000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 500000, "agi_upper_usd": 1000000, "filing_status": "all", "income_range": "500k_to_1m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=500000, agi upper usd=1000000, filing status=all, income range=500k to 1m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 14, "groupby_value_id": "500k_to_1m", "groupby_value_label": "$500,000 under $1,000,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "500k_to_1m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:c7271e11e795ee028af606c3"], "source_record_id": "irs_soi.ty2023.table_1_1.500k_to_1m.return_count", "value": 1779720} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 500000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 500000, "agi_upper_usd": 1000000, "filing_status": "all", "income_range": "500k_to_1m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=500000, agi upper usd=1000000, filing status=all, income range=500k to 1m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 14, "groupby_value_id": "500k_to_1m", "groupby_value_label": "$500,000 under $1,000,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "500k_to_1m", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:5cca809f7c7fb7c52cb8c254"], "source_record_id": "irs_soi.ty2023.table_1_1.500k_to_1m.adjusted_gross_income", "value": 1194934962000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 500000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 500000, "agi_upper_usd": 1000000, "filing_status": "all", "income_range": "500k_to_1m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=500000, agi upper usd=1000000, filing status=all, income range=500k to 1m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 14, "groupby_value_id": "500k_to_1m", "groupby_value_label": "$500,000 under $1,000,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "500k_to_1m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:f9c096208d32b1ebde0908c1"], "source_record_id": "irs_soi.ty2023.table_1_1.500k_to_1m.total_income_tax", "value": 273875800000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 500000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 500000, "agi_upper_usd": 1000000, "filing_status": "all", "income_range": "500k_to_1m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=500000, agi upper usd=1000000, filing status=all, income range=500k to 1m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 14, "groupby_value_id": "500k_to_1m", "groupby_value_label": "$500,000 under $1,000,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "500k_to_1m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:a729edf3e70229e2b5437d68"], "source_record_id": "irs_soi.ty2023.table_1_1.500k_to_1m.income_tax_after_credits_returns", "value": 1773247} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1500000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1000000, "agi_upper_usd": 1500000, "filing_status": "all", "income_range": "1m_to_1_5m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=1000000, agi upper usd=1500000, filing status=all, income range=1m to 1 5m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 15, "groupby_value_id": "1m_to_1_5m", "groupby_value_label": "$1,000,000 under $1,500,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "1m_to_1_5m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:fc95bbd4a9d52c008f76c699"], "source_record_id": "irs_soi.ty2023.table_1_1.1m_to_1_5m.return_count", "value": 368931} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1500000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1000000, "agi_upper_usd": 1500000, "filing_status": "all", "income_range": "1m_to_1_5m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=1000000, agi upper usd=1500000, filing status=all, income range=1m to 1 5m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 15, "groupby_value_id": "1m_to_1_5m", "groupby_value_label": "$1,000,000 under $1,500,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "1m_to_1_5m", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:8d9962b70cb041cdd580deeb"], "source_record_id": "irs_soi.ty2023.table_1_1.1m_to_1_5m.adjusted_gross_income", "value": 443658405000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1500000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1000000, "agi_upper_usd": 1500000, "filing_status": "all", "income_range": "1m_to_1_5m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=1000000, agi upper usd=1500000, filing status=all, income range=1m to 1 5m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 15, "groupby_value_id": "1m_to_1_5m", "groupby_value_label": "$1,000,000 under $1,500,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "1m_to_1_5m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:e33ed9ce5bc177d8a0b43c54"], "source_record_id": "irs_soi.ty2023.table_1_1.1m_to_1_5m.total_income_tax", "value": 115740460000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 1500000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1000000, "agi_upper_usd": 1500000, "filing_status": "all", "income_range": "1m_to_1_5m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=1000000, agi upper usd=1500000, filing status=all, income range=1m to 1 5m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 15, "groupby_value_id": "1m_to_1_5m", "groupby_value_label": "$1,000,000 under $1,500,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "1m_to_1_5m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:a3b31883f7e32168663dabb1"], "source_record_id": "irs_soi.ty2023.table_1_1.1m_to_1_5m.income_tax_after_credits_returns", "value": 367694} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1500000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 2000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1500000, "agi_upper_usd": 2000000, "filing_status": "all", "income_range": "1_5m_to_2m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=1500000, agi upper usd=2000000, filing status=all, income range=1 5m to 2m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 16, "groupby_value_id": "1_5m_to_2m", "groupby_value_label": "$1,500,000 under $2,000,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "1_5m_to_2m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:e9b4c3016b8fc0fa84467827"], "source_record_id": "irs_soi.ty2023.table_1_1.1_5m_to_2m.return_count", "value": 147290} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1500000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 2000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1500000, "agi_upper_usd": 2000000, "filing_status": "all", "income_range": "1_5m_to_2m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=1500000, agi upper usd=2000000, filing status=all, income range=1 5m to 2m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 16, "groupby_value_id": "1_5m_to_2m", "groupby_value_label": "$1,500,000 under $2,000,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "1_5m_to_2m", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:411e2cac0767ce26fa6a63e1"], "source_record_id": "irs_soi.ty2023.table_1_1.1_5m_to_2m.adjusted_gross_income", "value": 252903399000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1500000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 2000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1500000, "agi_upper_usd": 2000000, "filing_status": "all", "income_range": "1_5m_to_2m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=1500000, agi upper usd=2000000, filing status=all, income range=1 5m to 2m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 16, "groupby_value_id": "1_5m_to_2m", "groupby_value_label": "$1,500,000 under $2,000,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "1_5m_to_2m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:b51a5f7eac0af873708d1b62"], "source_record_id": "irs_soi.ty2023.table_1_1.1_5m_to_2m.total_income_tax", "value": 69021581000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 1500000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 2000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 1500000, "agi_upper_usd": 2000000, "filing_status": "all", "income_range": "1_5m_to_2m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=1500000, agi upper usd=2000000, filing status=all, income range=1 5m to 2m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 16, "groupby_value_id": "1_5m_to_2m", "groupby_value_label": "$1,500,000 under $2,000,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "1_5m_to_2m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:dc4c52186a5e1723249e08ed"], "source_record_id": "irs_soi.ty2023.table_1_1.1_5m_to_2m.income_tax_after_credits_returns", "value": 146550} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 2000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 5000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 2000000, "agi_upper_usd": 5000000, "filing_status": "all", "income_range": "2m_to_5m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=2000000, agi upper usd=5000000, filing status=all, income range=2m to 5m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 17, "groupby_value_id": "2m_to_5m", "groupby_value_label": "$2,000,000 under $5,000,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "2m_to_5m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:c1f0eb992f99b7cfdda24071"], "source_record_id": "irs_soi.ty2023.table_1_1.2m_to_5m.return_count", "value": 203229} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 2000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 5000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 2000000, "agi_upper_usd": 5000000, "filing_status": "all", "income_range": "2m_to_5m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=2000000, agi upper usd=5000000, filing status=all, income range=2m to 5m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 17, "groupby_value_id": "2m_to_5m", "groupby_value_label": "$2,000,000 under $5,000,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "2m_to_5m", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:aac883cf2b1ce59f93303802"], "source_record_id": "irs_soi.ty2023.table_1_1.2m_to_5m.adjusted_gross_income", "value": 602653109000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 2000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 5000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 2000000, "agi_upper_usd": 5000000, "filing_status": "all", "income_range": "2m_to_5m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=2000000, agi upper usd=5000000, filing status=all, income range=2m to 5m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 17, "groupby_value_id": "2m_to_5m", "groupby_value_label": "$2,000,000 under $5,000,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "2m_to_5m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:f6bb630dc38984f1b5f04e03"], "source_record_id": "irs_soi.ty2023.table_1_1.2m_to_5m.total_income_tax", "value": 168461033000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 2000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 5000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 2000000, "agi_upper_usd": 5000000, "filing_status": "all", "income_range": "2m_to_5m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=2000000, agi upper usd=5000000, filing status=all, income range=2m to 5m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 17, "groupby_value_id": "2m_to_5m", "groupby_value_label": "$2,000,000 under $5,000,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "2m_to_5m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:6051f924e9f4c5608adfcaf7"], "source_record_id": "irs_soi.ty2023.table_1_1.2m_to_5m.income_tax_after_credits_returns", "value": 202338} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 5000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 10000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 5000000, "agi_upper_usd": 10000000, "filing_status": "all", "income_range": "5m_to_10m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=5000000, agi upper usd=10000000, filing status=all, income range=5m to 10m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 18, "groupby_value_id": "5m_to_10m", "groupby_value_label": "$5,000,000 under $10,000,000", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "5m_to_10m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:69a1a01ce31d346f713f8484"], "source_record_id": "irs_soi.ty2023.table_1_1.5m_to_10m.return_count", "value": 49262} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 5000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 10000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 5000000, "agi_upper_usd": 10000000, "filing_status": "all", "income_range": "5m_to_10m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=5000000, agi upper usd=10000000, filing status=all, income range=5m to 10m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 18, "groupby_value_id": "5m_to_10m", "groupby_value_label": "$5,000,000 under $10,000,000", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "5m_to_10m", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:1cb425b696b9568cc286d7ed"], "source_record_id": "irs_soi.ty2023.table_1_1.5m_to_10m.adjusted_gross_income", "value": 336334760000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 5000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 10000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 5000000, "agi_upper_usd": 10000000, "filing_status": "all", "income_range": "5m_to_10m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=5000000, agi upper usd=10000000, filing status=all, income range=5m to 10m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 18, "groupby_value_id": "5m_to_10m", "groupby_value_label": "$5,000,000 under $10,000,000", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "5m_to_10m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:25c6c2d2fc2108eee3d3916b"], "source_record_id": "irs_soi.ty2023.table_1_1.5m_to_10m.total_income_tax", "value": 94042477000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 5000000, "variable": "us:statutes/26/62#adjusted_gross_income"}, {"label": "Adjusted gross income upper bound", "operator": "<", "role": "filter", "unit": "usd", "value": 10000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 5000000, "agi_upper_usd": 10000000, "filing_status": "all", "income_range": "5m_to_10m"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=5000000, agi upper usd=10000000, filing status=all, income range=5m to 10m) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 18, "groupby_value_id": "5m_to_10m", "groupby_value_label": "$5,000,000 under $10,000,000", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "5m_to_10m", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:31d24a3edc283c406bd10c20"], "source_record_id": "irs_soi.ty2023.table_1_1.5m_to_10m.income_tax_after_credits_returns", "value": 49056} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 10000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 10000000, "filing_status": "all", "income_range": "10m_plus"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi individual income tax returns for tax unit (agi lower usd=10000000, filing status=all, income range=10m plus) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 19, "groupby_value_id": "10m_plus", "groupby_value_label": "$10,000,000 or more", "measure_id": "return_count", "measure_label": "Number of returns", "measure_ordinal": 0, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "return_count", "source_row_id": "10m_plus", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.individual_income_tax_returns", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:a0863ef3532fdd89549beaf8"], "source_record_id": "irs_soi.ty2023.table_1_1.10m_plus.return_count", "value": 30382} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 10000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 10000000, "filing_status": "all", "income_range": "10m_plus"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum us:statutes/26/62#adjusted gross income for tax unit (agi lower usd=10000000, filing status=all, income range=10m plus) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 19, "groupby_value_id": "10m_plus", "groupby_value_label": "$10,000,000 or more", "measure_id": "adjusted_gross_income", "measure_label": "Adjusted gross income", "measure_ordinal": 1, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "adjusted_gross_income", "source_row_id": "10m_plus", "table_record_kind": "detail"}, "measure": {"concept": "us:statutes/26/62#adjusted_gross_income", "concept_authority": "arch-us", "concept_evidence_notes": "IRS SOI Table 1.1 reports adjusted gross income for individual income tax returns; IRC section 62 defines adjusted gross income. This Arch assertion treats the SOI AGI column as exactly adopting that legal concept for the tax-year source record.", "concept_evidence_url": "https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim)", "concept_relation": "exact", "legal_vintage": "tax_year_2023", "source_concept": "irs_soi.adjusted_gross_income", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:afec0774d7c31446cdfc7450"], "source_record_id": "irs_soi.ty2023.table_1_1.10m_plus.adjusted_gross_income", "value": 907900917000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "sum"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 10000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 10000000, "filing_status": "all", "income_range": "10m_plus"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year sum irs soi total income tax for tax unit (agi lower usd=10000000, filing status=all, income range=10m plus) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 19, "groupby_value_id": "10m_plus", "groupby_value_label": "$10,000,000 or more", "measure_id": "total_income_tax", "measure_label": "Total income tax", "measure_ordinal": 2, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "total_income_tax", "source_row_id": "10m_plus", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.total_income_tax", "unit": "usd"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:435ef10058a92b9fc1edf88b"], "source_record_id": "irs_soi.ty2023.table_1_1.10m_plus.total_income_tax", "value": 233464129000} +{"aggregation": {"count_entity": null, "denominator": null, "method": "count"}, "constraints": [{"label": "Adjusted gross income lower bound", "operator": ">=", "role": "filter", "unit": "usd", "value": 10000000, "variable": "us:statutes/26/62#adjusted_gross_income"}], "domain": "all_individual_income_tax_returns", "entity": {"name": "tax_unit", "role": "filing_unit"}, "filters": {"agi_lower_usd": 10000000, "filing_status": "all", "income_range": "10m_plus"}, "geography": {"id": "0100000US", "level": "country", "name": "United States", "vintage": "2020_census"}, "label": "United States 2023 tax year count irs soi returns with income tax after credits for tax unit (agi lower usd=10000000, filing status=all, income range=10m plus) [irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]", "layout": {"groupby_dimension": "us:statutes/26/62#adjusted_gross_income", "groupby_ordinal": 19, "groupby_value_id": "10m_plus", "groupby_value_label": "$10,000,000 or more", "measure_id": "income_tax_after_credits_returns", "measure_label": "Returns with income tax after credits", "measure_ordinal": 3, "record_set_id": "irs_soi.ty2023.table_1_1", "record_set_spec_hash": "d606c87f11948c197386dfa4", "record_set_spec_id": "irs_soi.table_1_1.v1", "source_column_id": "income_tax_after_credits_returns", "source_row_id": "10m_plus", "table_record_kind": "detail"}, "measure": {"concept": "irs_soi.returns_with_income_tax_after_credits", "unit": "count"}, "period": {"type": "tax_year", "value": 2023}, "source": {"extracted_at": "2026-05-04", "extraction_method": "CellSelectorSpec and SourceRecordSpec resolved from cells", "method_notes": "Each fact carries source_record_id, source_cell_keys, and source_row_keys when available.", "raw_r2_bucket": "arch-raw", "raw_r2_key": "raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "raw_r2_uri": "r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls", "source_file": "23in11si.xls", "source_name": "irs_soi", "source_sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "source_size_bytes": 54272, "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "source_cell_keys": ["arch.source_cell.v1:e27b5a87bb00d439953cbe6b"], "source_record_id": "irs_soi.ty2023.table_1_1.10m_plus.income_tax_after_credits_returns", "value": 30229} diff --git a/arch/fixtures/source_cells/soi_table_1_1_2023_cells.jsonl b/arch/fixtures/source_cells/soi_table_1_1_2023_cells.jsonl new file mode 100644 index 0000000..f62c184 --- /dev/null +++ b/arch/fixtures/source_cells/soi_table_1_1_2023_cells.jsonl @@ -0,0 +1,1932 @@ +{"address": "A1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "Table 1.1. All Returns: Selected Income and Tax Items, by Size and Accumulated\nSize of Adjusted Gross Income, Tax Year 2023 (Filing Year 2024)", "formula": null, "note": null, "raw_value": "Table 1.1. All Returns: Selected Income and Tax Items, by Size and Accumulated\nSize of Adjusted Gross Income, Tax Year 2023 (Filing Year 2024)", "row_number": 1, "sheet_name": "TBL11"} +{"address": "B1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "C1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "D1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "E1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "F1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "G1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "H1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "I1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "J1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "K1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "L1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "M1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "N1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "O1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "P1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "Q1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "R1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "S1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "T1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "U1", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 1, "sheet_name": "TBL11"} +{"address": "A2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "(All figures are estimates based on samples\u2014money amounts are in thousands of dollars except as indicated)", "formula": null, "note": null, "raw_value": "(All figures are estimates based on samples\u2014money amounts are in thousands of dollars except as indicated)", "row_number": 2, "sheet_name": "TBL11"} +{"address": "B2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "C2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "D2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "E2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "F2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "G2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "H2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "I2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "J2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "K2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "L2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "M2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "N2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "O2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "P2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "Q2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "R2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "S2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "T2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "U2", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 2, "sheet_name": "TBL11"} +{"address": "A3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "Size and accumulated size\nof adjusted gross income", "formula": null, "note": null, "raw_value": "Size and accumulated size\nof adjusted gross income", "row_number": 3, "sheet_name": "TBL11"} +{"address": "B3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 2, "display_value": "All returns", "formula": null, "note": null, "raw_value": "All returns", "row_number": 3, "sheet_name": "TBL11"} +{"address": "C3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "D3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "E3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "F3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "G3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 7, "display_value": "Taxable returns", "formula": null, "note": null, "raw_value": "Taxable returns", "row_number": 3, "sheet_name": "TBL11"} +{"address": "H3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "I3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "J3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "K3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "L3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "M3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "N3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "O3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "P3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "Q3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "R3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "S3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "T3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "U3", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 3, "sheet_name": "TBL11"} +{"address": "A4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "B4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 2, "display_value": "Number\nof\nreturns", "formula": null, "note": null, "raw_value": "Number\nof\nreturns", "row_number": 4, "sheet_name": "TBL11"} +{"address": "C4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 3, "display_value": "Percent\nof total", "formula": null, "note": null, "raw_value": "Percent\nof total", "row_number": 4, "sheet_name": "TBL11"} +{"address": "D4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 4, "display_value": "Adjusted gross\nincome less deficit", "formula": null, "note": null, "raw_value": "Adjusted gross\nincome less deficit", "row_number": 4, "sheet_name": "TBL11"} +{"address": "E4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "F4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "G4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 7, "display_value": "Number\nof\nreturns", "formula": null, "note": null, "raw_value": "Number\nof\nreturns", "row_number": 4, "sheet_name": "TBL11"} +{"address": "H4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 8, "display_value": "Percent\nof total", "formula": null, "note": null, "raw_value": "Percent\nof total", "row_number": 4, "sheet_name": "TBL11"} +{"address": "I4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 9, "display_value": "Adjusted gross\nincome less deficit", "formula": null, "note": null, "raw_value": "Adjusted gross\nincome less deficit", "row_number": 4, "sheet_name": "TBL11"} +{"address": "J4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "K4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 11, "display_value": "Taxable income", "formula": null, "note": null, "raw_value": "Taxable income", "row_number": 4, "sheet_name": "TBL11"} +{"address": "L4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "M4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "N4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 14, "display_value": "Income tax after credits", "formula": null, "note": null, "raw_value": "Income tax after credits", "row_number": 4, "sheet_name": "TBL11"} +{"address": "O4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "P4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "Q4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 17, "display_value": "Total income tax", "formula": null, "note": null, "raw_value": "Total income tax", "row_number": 4, "sheet_name": "TBL11"} +{"address": "R4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "S4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "T4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "U4", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 4, "sheet_name": "TBL11"} +{"address": "A5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "B5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "C5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "D5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "E5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "F5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "G5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "H5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "I5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "J5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "K5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 11, "display_value": "Number of\nreturns", "formula": null, "note": null, "raw_value": "Number of\nreturns", "row_number": 5, "sheet_name": "TBL11"} +{"address": "L5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 12, "display_value": "Amount", "formula": null, "note": null, "raw_value": "Amount", "row_number": 5, "sheet_name": "TBL11"} +{"address": "M5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 13, "display_value": "Percent of\ntotal", "formula": null, "note": null, "raw_value": "Percent of\ntotal", "row_number": 5, "sheet_name": "TBL11"} +{"address": "N5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 14, "display_value": "Number of\nreturns", "formula": null, "note": null, "raw_value": "Number of\nreturns", "row_number": 5, "sheet_name": "TBL11"} +{"address": "O5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 15, "display_value": "Amount", "formula": null, "note": null, "raw_value": "Amount", "row_number": 5, "sheet_name": "TBL11"} +{"address": "P5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 16, "display_value": "Percent of\ntotal", "formula": null, "note": null, "raw_value": "Percent of\ntotal", "row_number": 5, "sheet_name": "TBL11"} +{"address": "Q5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 17, "display_value": "Amount", "formula": null, "note": null, "raw_value": "Amount", "row_number": 5, "sheet_name": "TBL11"} +{"address": "R5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "Percent of", "formula": null, "note": null, "raw_value": "Percent of", "row_number": 5, "sheet_name": "TBL11"} +{"address": "S5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "T5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 5, "sheet_name": "TBL11"} +{"address": "U5", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 21, "display_value": "Average\ntotal income \ntax (dollars)", "formula": null, "note": null, "raw_value": "Average\ntotal income \ntax (dollars)", "row_number": 5, "sheet_name": "TBL11"} +{"address": "A6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "B6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "C6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "D6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 4, "display_value": "Amount", "formula": null, "note": null, "raw_value": "Amount", "row_number": 6, "sheet_name": "TBL11"} +{"address": "E6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 5, "display_value": "Percent\nof total", "formula": null, "note": null, "raw_value": "Percent\nof total", "row_number": 6, "sheet_name": "TBL11"} +{"address": "F6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 6, "display_value": "Average\n(dollars)", "formula": null, "note": null, "raw_value": "Average\n(dollars)", "row_number": 6, "sheet_name": "TBL11"} +{"address": "G6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "H6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "I6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 9, "display_value": "Amount", "formula": null, "note": null, "raw_value": "Amount", "row_number": 6, "sheet_name": "TBL11"} +{"address": "J6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 10, "display_value": "Percent\nof total", "formula": null, "note": null, "raw_value": "Percent\nof total", "row_number": 6, "sheet_name": "TBL11"} +{"address": "K6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "L6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "M6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "N6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "O6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "P6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "Q6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "R6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "Total", "formula": null, "note": null, "raw_value": "Total", "row_number": 6, "sheet_name": "TBL11"} +{"address": "S6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 19, "display_value": "Taxable\nincome", "formula": null, "note": null, "raw_value": "Taxable\nincome", "row_number": 6, "sheet_name": "TBL11"} +{"address": "T6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 20, "display_value": "Adjusted gross\nincome less deficit", "formula": null, "note": null, "raw_value": "Adjusted gross\nincome less deficit", "row_number": 6, "sheet_name": "TBL11"} +{"address": "U6", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 6, "sheet_name": "TBL11"} +{"address": "A7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "B7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "C7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "D7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "E7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "F7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "G7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "H7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "I7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "J7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "K7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "L7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "M7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "N7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "O7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "P7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "Q7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "R7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "S7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "T7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "U7", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 7, "sheet_name": "TBL11"} +{"address": "A8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 8, "sheet_name": "TBL11"} +{"address": "B8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "1", "formula": null, "note": null, "raw_value": 1, "row_number": 8, "sheet_name": "TBL11"} +{"address": "C8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "2", "formula": null, "note": null, "raw_value": 2, "row_number": 8, "sheet_name": "TBL11"} +{"address": "D8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "3", "formula": null, "note": null, "raw_value": 3, "row_number": 8, "sheet_name": "TBL11"} +{"address": "E8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "4", "formula": null, "note": null, "raw_value": 4, "row_number": 8, "sheet_name": "TBL11"} +{"address": "F8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "5", "formula": null, "note": null, "raw_value": 5, "row_number": 8, "sheet_name": "TBL11"} +{"address": "G8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "6", "formula": null, "note": null, "raw_value": 6, "row_number": 8, "sheet_name": "TBL11"} +{"address": "H8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "7", "formula": null, "note": null, "raw_value": 7, "row_number": 8, "sheet_name": "TBL11"} +{"address": "I8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "8", "formula": null, "note": null, "raw_value": 8, "row_number": 8, "sheet_name": "TBL11"} +{"address": "J8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "9", "formula": null, "note": null, "raw_value": 9, "row_number": 8, "sheet_name": "TBL11"} +{"address": "K8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "10", "formula": null, "note": null, "raw_value": 10, "row_number": 8, "sheet_name": "TBL11"} +{"address": "L8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11", "formula": null, "note": null, "raw_value": 11, "row_number": 8, "sheet_name": "TBL11"} +{"address": "M8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "12", "formula": null, "note": null, "raw_value": 12, "row_number": 8, "sheet_name": "TBL11"} +{"address": "N8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "13", "formula": null, "note": null, "raw_value": 13, "row_number": 8, "sheet_name": "TBL11"} +{"address": "O8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "14", "formula": null, "note": null, "raw_value": 14, "row_number": 8, "sheet_name": "TBL11"} +{"address": "P8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "15", "formula": null, "note": null, "raw_value": 15, "row_number": 8, "sheet_name": "TBL11"} +{"address": "Q8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "16", "formula": null, "note": null, "raw_value": 16, "row_number": 8, "sheet_name": "TBL11"} +{"address": "R8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "17", "formula": null, "note": null, "raw_value": 17, "row_number": 8, "sheet_name": "TBL11"} +{"address": "S8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18", "formula": null, "note": null, "raw_value": 18, "row_number": 8, "sheet_name": "TBL11"} +{"address": "T8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "19", "formula": null, "note": null, "raw_value": 19, "row_number": 8, "sheet_name": "TBL11"} +{"address": "U8", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "20", "formula": null, "note": null, "raw_value": 20, "row_number": 8, "sheet_name": "TBL11"} +{"address": "A9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "Size of adjusted gross income", "formula": null, "note": null, "raw_value": "Size of adjusted gross income", "row_number": 9, "sheet_name": "TBL11"} +{"address": "B9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "C9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "D9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "E9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "F9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "G9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "H9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "I9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "J9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "K9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "L9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "M9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "N9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "O9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "P9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "Q9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "R9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "S9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "T9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "U9", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 9, "sheet_name": "TBL11"} +{"address": "A10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "All returns", "formula": null, "note": null, "raw_value": "All returns", "row_number": 10, "sheet_name": "TBL11"} +{"address": "B10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "160602107", "formula": null, "note": null, "raw_value": 160602107, "row_number": 10, "sheet_name": "TBL11"} +{"address": "C10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 10, "sheet_name": "TBL11"} +{"address": "D10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "15286017359", "formula": null, "note": null, "raw_value": 15286017359, "row_number": 10, "sheet_name": "TBL11"} +{"address": "E10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 10, "sheet_name": "TBL11"} +{"address": "F10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "95179", "formula": null, "note": null, "raw_value": 95179, "row_number": 10, "sheet_name": "TBL11"} +{"address": "G10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111572368", "formula": null, "note": null, "raw_value": 111572368, "row_number": 10, "sheet_name": "TBL11"} +{"address": "H10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 10, "sheet_name": "TBL11"} +{"address": "I10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14402366694", "formula": null, "note": null, "raw_value": 14402366694, "row_number": 10, "sheet_name": "TBL11"} +{"address": "J10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 10, "sheet_name": "TBL11"} +{"address": "K10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111564470", "formula": null, "note": null, "raw_value": 111564470, "row_number": 10, "sheet_name": "TBL11"} +{"address": "L10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11625278987", "formula": null, "note": null, "raw_value": 11625278987, "row_number": 10, "sheet_name": "TBL11"} +{"address": "M10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 10, "sheet_name": "TBL11"} +{"address": "N10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111545061", "formula": null, "note": null, "raw_value": 111545061, "row_number": 10, "sheet_name": "TBL11"} +{"address": "O10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2108587001", "formula": null, "note": null, "raw_value": 2108587001, "row_number": 10, "sheet_name": "TBL11"} +{"address": "P10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 10, "sheet_name": "TBL11"} +{"address": "Q10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2147909818", "formula": null, "note": null, "raw_value": 2147909818, "row_number": 10, "sheet_name": "TBL11"} +{"address": "R10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 10, "sheet_name": "TBL11"} +{"address": "S10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 10, "sheet_name": "TBL11"} +{"address": "T10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "14.9", "formula": null, "note": null, "raw_value": 14.9, "row_number": 10, "sheet_name": "TBL11"} +{"address": "U10", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "19251", "formula": null, "note": null, "raw_value": 19251, "row_number": 10, "sheet_name": "TBL11"} +{"address": "A11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "No adjusted gross income", "formula": null, "note": null, "raw_value": "No adjusted gross income", "row_number": 11, "sheet_name": "TBL11"} +{"address": "B11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "2180146", "formula": null, "note": null, "raw_value": 2180146, "row_number": 11, "sheet_name": "TBL11"} +{"address": "C11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "1.4", "formula": null, "note": null, "raw_value": 1.4, "row_number": 11, "sheet_name": "TBL11"} +{"address": "D11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "-144194936", "formula": null, "note": null, "raw_value": -144194936, "row_number": 11, "sheet_name": "TBL11"} +{"address": "E11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 5, "display_value": "[1]", "formula": null, "note": null, "raw_value": "[1]", "row_number": 11, "sheet_name": "TBL11"} +{"address": "F11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "-66140", "formula": null, "note": null, "raw_value": -66140, "row_number": 11, "sheet_name": "TBL11"} +{"address": "G11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "2096", "formula": null, "note": null, "raw_value": 2096, "row_number": 11, "sheet_name": "TBL11"} +{"address": "H11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 8, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 11, "sheet_name": "TBL11"} +{"address": "I11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "-6882431", "formula": null, "note": null, "raw_value": -6882431, "row_number": 11, "sheet_name": "TBL11"} +{"address": "J11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 10, "display_value": "[1]", "formula": null, "note": null, "raw_value": "[1]", "row_number": 11, "sheet_name": "TBL11"} +{"address": "K11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "0", "formula": null, "note": null, "raw_value": 0, "row_number": 11, "sheet_name": "TBL11"} +{"address": "L11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "0", "formula": null, "note": null, "raw_value": 0, "row_number": 11, "sheet_name": "TBL11"} +{"address": "M11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "0", "formula": null, "note": null, "raw_value": 0, "row_number": 11, "sheet_name": "TBL11"} +{"address": "N11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "2094", "formula": null, "note": null, "raw_value": 2094, "row_number": 11, "sheet_name": "TBL11"} +{"address": "O11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "113851", "formula": null, "note": null, "raw_value": 113851, "row_number": 11, "sheet_name": "TBL11"} +{"address": "P11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 16, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 11, "sheet_name": "TBL11"} +{"address": "Q11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "114270", "formula": null, "note": null, "raw_value": 114270, "row_number": 11, "sheet_name": "TBL11"} +{"address": "R11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 11, "sheet_name": "TBL11"} +{"address": "S11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 19, "display_value": "[1]", "formula": null, "note": null, "raw_value": "[1]", "row_number": 11, "sheet_name": "TBL11"} +{"address": "T11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 20, "display_value": "[1]", "formula": null, "note": null, "raw_value": "[1]", "row_number": 11, "sheet_name": "TBL11"} +{"address": "U11", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "54518", "formula": null, "note": null, "raw_value": 54518, "row_number": 11, "sheet_name": "TBL11"} +{"address": "A12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $5,000", "formula": null, "note": null, "raw_value": "$1 under $5,000", "row_number": 12, "sheet_name": "TBL11"} +{"address": "B12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "7357751", "formula": null, "note": null, "raw_value": 7357751, "row_number": 12, "sheet_name": "TBL11"} +{"address": "C12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "4.6", "formula": null, "note": null, "raw_value": 4.6, "row_number": 12, "sheet_name": "TBL11"} +{"address": "D12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "17450063", "formula": null, "note": null, "raw_value": 17450063, "row_number": 12, "sheet_name": "TBL11"} +{"address": "E12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 12, "sheet_name": "TBL11"} +{"address": "F12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "2372", "formula": null, "note": null, "raw_value": 2372, "row_number": 12, "sheet_name": "TBL11"} +{"address": "G12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "120341", "formula": null, "note": null, "raw_value": 120341, "row_number": 12, "sheet_name": "TBL11"} +{"address": "H12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 12, "sheet_name": "TBL11"} +{"address": "I12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "382609", "formula": null, "note": null, "raw_value": 382609, "row_number": 12, "sheet_name": "TBL11"} +{"address": "J12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 10, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 12, "sheet_name": "TBL11"} +{"address": "K12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "120306", "formula": null, "note": null, "raw_value": 120306, "row_number": 12, "sheet_name": "TBL11"} +{"address": "L12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "162380", "formula": null, "note": null, "raw_value": 162380, "row_number": 12, "sheet_name": "TBL11"} +{"address": "M12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 13, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 12, "sheet_name": "TBL11"} +{"address": "N12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "120341", "formula": null, "note": null, "raw_value": 120341, "row_number": 12, "sheet_name": "TBL11"} +{"address": "O12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "15081", "formula": null, "note": null, "raw_value": 15081, "row_number": 12, "sheet_name": "TBL11"} +{"address": "P12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 16, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 12, "sheet_name": "TBL11"} +{"address": "Q12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "15081", "formula": null, "note": null, "raw_value": 15081, "row_number": 12, "sheet_name": "TBL11"} +{"address": "R12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 12, "sheet_name": "TBL11"} +{"address": "S12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "9.3", "formula": null, "note": null, "raw_value": 9.3, "row_number": 12, "sheet_name": "TBL11"} +{"address": "T12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "3.9", "formula": null, "note": null, "raw_value": 3.9, "row_number": 12, "sheet_name": "TBL11"} +{"address": "U12", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "125", "formula": null, "note": null, "raw_value": 125, "row_number": 12, "sheet_name": "TBL11"} +{"address": "A13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$5,000 under $10,000", "formula": null, "note": null, "raw_value": "$5,000 under $10,000", "row_number": 13, "sheet_name": "TBL11"} +{"address": "B13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "8077917", "formula": null, "note": null, "raw_value": 8077917, "row_number": 13, "sheet_name": "TBL11"} +{"address": "C13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "5", "formula": null, "note": null, "raw_value": 5, "row_number": 13, "sheet_name": "TBL11"} +{"address": "D13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "60949546", "formula": null, "note": null, "raw_value": 60949546, "row_number": 13, "sheet_name": "TBL11"} +{"address": "E13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "0.4", "formula": null, "note": null, "raw_value": 0.4, "row_number": 13, "sheet_name": "TBL11"} +{"address": "F13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "7545", "formula": null, "note": null, "raw_value": 7545, "row_number": 13, "sheet_name": "TBL11"} +{"address": "G13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "141213", "formula": null, "note": null, "raw_value": 141213, "row_number": 13, "sheet_name": "TBL11"} +{"address": "H13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 13, "sheet_name": "TBL11"} +{"address": "I13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "1028949", "formula": null, "note": null, "raw_value": 1028949, "row_number": 13, "sheet_name": "TBL11"} +{"address": "J13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 10, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 13, "sheet_name": "TBL11"} +{"address": "K13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "141104", "formula": null, "note": null, "raw_value": 141104, "row_number": 13, "sheet_name": "TBL11"} +{"address": "L13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "397647", "formula": null, "note": null, "raw_value": 397647, "row_number": 13, "sheet_name": "TBL11"} +{"address": "M13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 13, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 13, "sheet_name": "TBL11"} +{"address": "N13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "141213", "formula": null, "note": null, "raw_value": 141213, "row_number": 13, "sheet_name": "TBL11"} +{"address": "O13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "42411", "formula": null, "note": null, "raw_value": 42411, "row_number": 13, "sheet_name": "TBL11"} +{"address": "P13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 16, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 13, "sheet_name": "TBL11"} +{"address": "Q13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "42411", "formula": null, "note": null, "raw_value": 42411, "row_number": 13, "sheet_name": "TBL11"} +{"address": "R13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 13, "sheet_name": "TBL11"} +{"address": "S13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10.7", "formula": null, "note": null, "raw_value": 10.7, "row_number": 13, "sheet_name": "TBL11"} +{"address": "T13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "4.1", "formula": null, "note": null, "raw_value": 4.1, "row_number": 13, "sheet_name": "TBL11"} +{"address": "U13", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "300", "formula": null, "note": null, "raw_value": 300, "row_number": 13, "sheet_name": "TBL11"} +{"address": "A14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$10,000 under $15,000", "formula": null, "note": null, "raw_value": "$10,000 under $15,000", "row_number": 14, "sheet_name": "TBL11"} +{"address": "B14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "8986005", "formula": null, "note": null, "raw_value": 8986005, "row_number": 14, "sheet_name": "TBL11"} +{"address": "C14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "5.6", "formula": null, "note": null, "raw_value": 5.6, "row_number": 14, "sheet_name": "TBL11"} +{"address": "D14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "112353814", "formula": null, "note": null, "raw_value": 112353814, "row_number": 14, "sheet_name": "TBL11"} +{"address": "E14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "0.7", "formula": null, "note": null, "raw_value": 0.7, "row_number": 14, "sheet_name": "TBL11"} +{"address": "F14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "12503", "formula": null, "note": null, "raw_value": 12503, "row_number": 14, "sheet_name": "TBL11"} +{"address": "G14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "641689", "formula": null, "note": null, "raw_value": 641689, "row_number": 14, "sheet_name": "TBL11"} +{"address": "H14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.6", "formula": null, "note": null, "raw_value": 0.6, "row_number": 14, "sheet_name": "TBL11"} +{"address": "I14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "9086630", "formula": null, "note": null, "raw_value": 9086630, "row_number": 14, "sheet_name": "TBL11"} +{"address": "J14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 14, "sheet_name": "TBL11"} +{"address": "K14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "639676", "formula": null, "note": null, "raw_value": 639676, "row_number": 14, "sheet_name": "TBL11"} +{"address": "L14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "812171", "formula": null, "note": null, "raw_value": 812171, "row_number": 14, "sheet_name": "TBL11"} +{"address": "M14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 13, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 14, "sheet_name": "TBL11"} +{"address": "N14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "640711", "formula": null, "note": null, "raw_value": 640711, "row_number": 14, "sheet_name": "TBL11"} +{"address": "O14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "88480", "formula": null, "note": null, "raw_value": 88480, "row_number": 14, "sheet_name": "TBL11"} +{"address": "P14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 16, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 14, "sheet_name": "TBL11"} +{"address": "Q14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "88533", "formula": null, "note": null, "raw_value": 88533, "row_number": 14, "sheet_name": "TBL11"} +{"address": "R14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 14, "sheet_name": "TBL11"} +{"address": "S14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10.9", "formula": null, "note": null, "raw_value": 10.9, "row_number": 14, "sheet_name": "TBL11"} +{"address": "T14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "1", "formula": null, "note": null, "raw_value": 1, "row_number": 14, "sheet_name": "TBL11"} +{"address": "U14", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "138", "formula": null, "note": null, "raw_value": 138, "row_number": 14, "sheet_name": "TBL11"} +{"address": "A15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$15,000 under $20,000", "formula": null, "note": null, "raw_value": "$15,000 under $20,000", "row_number": 15, "sheet_name": "TBL11"} +{"address": "B15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "8702094", "formula": null, "note": null, "raw_value": 8702094, "row_number": 15, "sheet_name": "TBL11"} +{"address": "C15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "5.4", "formula": null, "note": null, "raw_value": 5.4, "row_number": 15, "sheet_name": "TBL11"} +{"address": "D15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "151828408", "formula": null, "note": null, "raw_value": 151828408, "row_number": 15, "sheet_name": "TBL11"} +{"address": "E15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "1", "formula": null, "note": null, "raw_value": 1, "row_number": 15, "sheet_name": "TBL11"} +{"address": "F15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "17447", "formula": null, "note": null, "raw_value": 17447, "row_number": 15, "sheet_name": "TBL11"} +{"address": "G15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "4028011", "formula": null, "note": null, "raw_value": 4028011, "row_number": 15, "sheet_name": "TBL11"} +{"address": "H15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "3.6", "formula": null, "note": null, "raw_value": 3.6, "row_number": 15, "sheet_name": "TBL11"} +{"address": "I15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "70833555", "formula": null, "note": null, "raw_value": 70833555, "row_number": 15, "sheet_name": "TBL11"} +{"address": "J15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "0.5", "formula": null, "note": null, "raw_value": 0.5, "row_number": 15, "sheet_name": "TBL11"} +{"address": "K15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "4027993", "formula": null, "note": null, "raw_value": 4027993, "row_number": 15, "sheet_name": "TBL11"} +{"address": "L15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "14056862", "formula": null, "note": null, "raw_value": 14056862, "row_number": 15, "sheet_name": "TBL11"} +{"address": "M15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 15, "sheet_name": "TBL11"} +{"address": "N15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "4028010", "formula": null, "note": null, "raw_value": 4028010, "row_number": 15, "sheet_name": "TBL11"} +{"address": "O15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1317320", "formula": null, "note": null, "raw_value": 1317320, "row_number": 15, "sheet_name": "TBL11"} +{"address": "P15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 15, "sheet_name": "TBL11"} +{"address": "Q15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1317468", "formula": null, "note": null, "raw_value": 1317468, "row_number": 15, "sheet_name": "TBL11"} +{"address": "R15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 15, "sheet_name": "TBL11"} +{"address": "S15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "9.4", "formula": null, "note": null, "raw_value": 9.4, "row_number": 15, "sheet_name": "TBL11"} +{"address": "T15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "1.9", "formula": null, "note": null, "raw_value": 1.9, "row_number": 15, "sheet_name": "TBL11"} +{"address": "U15", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "327", "formula": null, "note": null, "raw_value": 327, "row_number": 15, "sheet_name": "TBL11"} +{"address": "A16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$20,000 under $25,000", "formula": null, "note": null, "raw_value": "$20,000 under $25,000", "row_number": 16, "sheet_name": "TBL11"} +{"address": "B16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "7925999", "formula": null, "note": null, "raw_value": 7925999, "row_number": 16, "sheet_name": "TBL11"} +{"address": "C16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "4.9", "formula": null, "note": null, "raw_value": 4.9, "row_number": 16, "sheet_name": "TBL11"} +{"address": "D16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "178000708", "formula": null, "note": null, "raw_value": 178000708, "row_number": 16, "sheet_name": "TBL11"} +{"address": "E16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "1.2", "formula": null, "note": null, "raw_value": 1.2, "row_number": 16, "sheet_name": "TBL11"} +{"address": "F16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "22458", "formula": null, "note": null, "raw_value": 22458, "row_number": 16, "sheet_name": "TBL11"} +{"address": "G16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "4176659", "formula": null, "note": null, "raw_value": 4176659, "row_number": 16, "sheet_name": "TBL11"} +{"address": "H16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "3.7", "formula": null, "note": null, "raw_value": 3.7, "row_number": 16, "sheet_name": "TBL11"} +{"address": "I16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "93935906", "formula": null, "note": null, "raw_value": 93935906, "row_number": 16, "sheet_name": "TBL11"} +{"address": "J16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "0.7", "formula": null, "note": null, "raw_value": 0.7, "row_number": 16, "sheet_name": "TBL11"} +{"address": "K16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "4176585", "formula": null, "note": null, "raw_value": 4176585, "row_number": 16, "sheet_name": "TBL11"} +{"address": "L16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "34355660", "formula": null, "note": null, "raw_value": 34355660, "row_number": 16, "sheet_name": "TBL11"} +{"address": "M16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "0.3", "formula": null, "note": null, "raw_value": 0.3, "row_number": 16, "sheet_name": "TBL11"} +{"address": "N16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "4176659", "formula": null, "note": null, "raw_value": 4176659, "row_number": 16, "sheet_name": "TBL11"} +{"address": "O16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "3257177", "formula": null, "note": null, "raw_value": 3257177, "row_number": 16, "sheet_name": "TBL11"} +{"address": "P16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "0.2", "formula": null, "note": null, "raw_value": 0.2, "row_number": 16, "sheet_name": "TBL11"} +{"address": "Q16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "3257177", "formula": null, "note": null, "raw_value": 3257177, "row_number": 16, "sheet_name": "TBL11"} +{"address": "R16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "0.2", "formula": null, "note": null, "raw_value": 0.2, "row_number": 16, "sheet_name": "TBL11"} +{"address": "S16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "9.5", "formula": null, "note": null, "raw_value": 9.5, "row_number": 16, "sheet_name": "TBL11"} +{"address": "T16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "3.5", "formula": null, "note": null, "raw_value": 3.5, "row_number": 16, "sheet_name": "TBL11"} +{"address": "U16", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "780", "formula": null, "note": null, "raw_value": 780, "row_number": 16, "sheet_name": "TBL11"} +{"address": "A17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$25,000 under $30,000", "formula": null, "note": null, "raw_value": "$25,000 under $30,000", "row_number": 17, "sheet_name": "TBL11"} +{"address": "B17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "7594157", "formula": null, "note": null, "raw_value": 7594157, "row_number": 17, "sheet_name": "TBL11"} +{"address": "C17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "4.7", "formula": null, "note": null, "raw_value": 4.7, "row_number": 17, "sheet_name": "TBL11"} +{"address": "D17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "208919443", "formula": null, "note": null, "raw_value": 208919443, "row_number": 17, "sheet_name": "TBL11"} +{"address": "E17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "1.4", "formula": null, "note": null, "raw_value": 1.4, "row_number": 17, "sheet_name": "TBL11"} +{"address": "F17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "27511", "formula": null, "note": null, "raw_value": 27511, "row_number": 17, "sheet_name": "TBL11"} +{"address": "G17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "4418022", "formula": null, "note": null, "raw_value": 4418022, "row_number": 17, "sheet_name": "TBL11"} +{"address": "H17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "4", "formula": null, "note": null, "raw_value": 4, "row_number": 17, "sheet_name": "TBL11"} +{"address": "I17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "121706340", "formula": null, "note": null, "raw_value": 121706340, "row_number": 17, "sheet_name": "TBL11"} +{"address": "J17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "0.8", "formula": null, "note": null, "raw_value": 0.8, "row_number": 17, "sheet_name": "TBL11"} +{"address": "K17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "4418022", "formula": null, "note": null, "raw_value": 4418022, "row_number": 17, "sheet_name": "TBL11"} +{"address": "L17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "56798615", "formula": null, "note": null, "raw_value": 56798615, "row_number": 17, "sheet_name": "TBL11"} +{"address": "M17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "0.5", "formula": null, "note": null, "raw_value": 0.5, "row_number": 17, "sheet_name": "TBL11"} +{"address": "N17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "4416066", "formula": null, "note": null, "raw_value": 4416066, "row_number": 17, "sheet_name": "TBL11"} +{"address": "O17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "5552001", "formula": null, "note": null, "raw_value": 5552001, "row_number": 17, "sheet_name": "TBL11"} +{"address": "P17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "0.3", "formula": null, "note": null, "raw_value": 0.3, "row_number": 17, "sheet_name": "TBL11"} +{"address": "Q17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "5552159", "formula": null, "note": null, "raw_value": 5552159, "row_number": 17, "sheet_name": "TBL11"} +{"address": "R17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "0.3", "formula": null, "note": null, "raw_value": 0.3, "row_number": 17, "sheet_name": "TBL11"} +{"address": "S17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "9.8", "formula": null, "note": null, "raw_value": 9.8, "row_number": 17, "sheet_name": "TBL11"} +{"address": "T17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "4.6", "formula": null, "note": null, "raw_value": 4.6, "row_number": 17, "sheet_name": "TBL11"} +{"address": "U17", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "1257", "formula": null, "note": null, "raw_value": 1257, "row_number": 17, "sheet_name": "TBL11"} +{"address": "A18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$30,000 under $40,000", "formula": null, "note": null, "raw_value": "$30,000 under $40,000", "row_number": 18, "sheet_name": "TBL11"} +{"address": "B18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "15210266", "formula": null, "note": null, "raw_value": 15210266, "row_number": 18, "sheet_name": "TBL11"} +{"address": "C18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "9.5", "formula": null, "note": null, "raw_value": 9.5, "row_number": 18, "sheet_name": "TBL11"} +{"address": "D18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "531782365", "formula": null, "note": null, "raw_value": 531782365, "row_number": 18, "sheet_name": "TBL11"} +{"address": "E18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "3.5", "formula": null, "note": null, "raw_value": 3.5, "row_number": 18, "sheet_name": "TBL11"} +{"address": "F18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "34962", "formula": null, "note": null, "raw_value": 34962, "row_number": 18, "sheet_name": "TBL11"} +{"address": "G18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "10192082", "formula": null, "note": null, "raw_value": 10192082, "row_number": 18, "sheet_name": "TBL11"} +{"address": "H18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "9.1", "formula": null, "note": null, "raw_value": 9.1, "row_number": 18, "sheet_name": "TBL11"} +{"address": "I18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "357555176", "formula": null, "note": null, "raw_value": 357555176, "row_number": 18, "sheet_name": "TBL11"} +{"address": "J18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "2.5", "formula": null, "note": null, "raw_value": 2.5, "row_number": 18, "sheet_name": "TBL11"} +{"address": "K18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "10192075", "formula": null, "note": null, "raw_value": 10192075, "row_number": 18, "sheet_name": "TBL11"} +{"address": "L18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "191946306", "formula": null, "note": null, "raw_value": 191946306, "row_number": 18, "sheet_name": "TBL11"} +{"address": "M18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "1.7", "formula": null, "note": null, "raw_value": 1.7, "row_number": 18, "sheet_name": "TBL11"} +{"address": "N18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "10192082", "formula": null, "note": null, "raw_value": 10192082, "row_number": 18, "sheet_name": "TBL11"} +{"address": "O18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "19427980", "formula": null, "note": null, "raw_value": 19427980, "row_number": 18, "sheet_name": "TBL11"} +{"address": "P18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "0.9", "formula": null, "note": null, "raw_value": 0.9, "row_number": 18, "sheet_name": "TBL11"} +{"address": "Q18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "19428590", "formula": null, "note": null, "raw_value": 19428590, "row_number": 18, "sheet_name": "TBL11"} +{"address": "R18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "0.9", "formula": null, "note": null, "raw_value": 0.9, "row_number": 18, "sheet_name": "TBL11"} +{"address": "S18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10.1", "formula": null, "note": null, "raw_value": 10.1, "row_number": 18, "sheet_name": "TBL11"} +{"address": "T18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "5.4", "formula": null, "note": null, "raw_value": 5.4, "row_number": 18, "sheet_name": "TBL11"} +{"address": "U18", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "1906", "formula": null, "note": null, "raw_value": 1906, "row_number": 18, "sheet_name": "TBL11"} +{"address": "A19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$40,000 under $50,000", "formula": null, "note": null, "raw_value": "$40,000 under $50,000", "row_number": 19, "sheet_name": "TBL11"} +{"address": "B19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "13519034", "formula": null, "note": null, "raw_value": 13519034, "row_number": 19, "sheet_name": "TBL11"} +{"address": "C19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "8.4", "formula": null, "note": null, "raw_value": 8.4, "row_number": 19, "sheet_name": "TBL11"} +{"address": "D19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "606242938", "formula": null, "note": null, "raw_value": 606242938, "row_number": 19, "sheet_name": "TBL11"} +{"address": "E19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "4", "formula": null, "note": null, "raw_value": 4, "row_number": 19, "sheet_name": "TBL11"} +{"address": "F19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "44844", "formula": null, "note": null, "raw_value": 44844, "row_number": 19, "sheet_name": "TBL11"} +{"address": "G19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "10574219", "formula": null, "note": null, "raw_value": 10574219, "row_number": 19, "sheet_name": "TBL11"} +{"address": "H19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "9.5", "formula": null, "note": null, "raw_value": 9.5, "row_number": 19, "sheet_name": "TBL11"} +{"address": "I19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "475698679", "formula": null, "note": null, "raw_value": 475698679, "row_number": 19, "sheet_name": "TBL11"} +{"address": "J19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "3.3", "formula": null, "note": null, "raw_value": 3.3, "row_number": 19, "sheet_name": "TBL11"} +{"address": "K19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "10574210", "formula": null, "note": null, "raw_value": 10574210, "row_number": 19, "sheet_name": "TBL11"} +{"address": "L19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "295164186", "formula": null, "note": null, "raw_value": 295164186, "row_number": 19, "sheet_name": "TBL11"} +{"address": "M19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "2.5", "formula": null, "note": null, "raw_value": 2.5, "row_number": 19, "sheet_name": "TBL11"} +{"address": "N19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "10574219", "formula": null, "note": null, "raw_value": 10574219, "row_number": 19, "sheet_name": "TBL11"} +{"address": "O19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "29591551", "formula": null, "note": null, "raw_value": 29591551, "row_number": 19, "sheet_name": "TBL11"} +{"address": "P19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "1.4", "formula": null, "note": null, "raw_value": 1.4, "row_number": 19, "sheet_name": "TBL11"} +{"address": "Q19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "29591551", "formula": null, "note": null, "raw_value": 29591551, "row_number": 19, "sheet_name": "TBL11"} +{"address": "R19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "1.4", "formula": null, "note": null, "raw_value": 1.4, "row_number": 19, "sheet_name": "TBL11"} +{"address": "S19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10", "formula": null, "note": null, "raw_value": 10, "row_number": 19, "sheet_name": "TBL11"} +{"address": "T19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "6.2", "formula": null, "note": null, "raw_value": 6.2, "row_number": 19, "sheet_name": "TBL11"} +{"address": "U19", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "2798", "formula": null, "note": null, "raw_value": 2798, "row_number": 19, "sheet_name": "TBL11"} +{"address": "A20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$50,000 under $75,000", "formula": null, "note": null, "raw_value": "$50,000 under $75,000", "row_number": 20, "sheet_name": "TBL11"} +{"address": "B20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "24135884", "formula": null, "note": null, "raw_value": 24135884, "row_number": 20, "sheet_name": "TBL11"} +{"address": "C20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "15", "formula": null, "note": null, "raw_value": 15, "row_number": 20, "sheet_name": "TBL11"} +{"address": "D20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "1485510450", "formula": null, "note": null, "raw_value": 1485510450, "row_number": 20, "sheet_name": "TBL11"} +{"address": "E20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "9.7", "formula": null, "note": null, "raw_value": 9.7, "row_number": 20, "sheet_name": "TBL11"} +{"address": "F20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "61548", "formula": null, "note": null, "raw_value": 61548, "row_number": 20, "sheet_name": "TBL11"} +{"address": "G20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "21494289", "formula": null, "note": null, "raw_value": 21494289, "row_number": 20, "sheet_name": "TBL11"} +{"address": "H20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "19.3", "formula": null, "note": null, "raw_value": 19.3, "row_number": 20, "sheet_name": "TBL11"} +{"address": "I20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "1328067521", "formula": null, "note": null, "raw_value": 1328067521, "row_number": 20, "sheet_name": "TBL11"} +{"address": "J20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "9.2", "formula": null, "note": null, "raw_value": 9.2, "row_number": 20, "sheet_name": "TBL11"} +{"address": "K20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "21494268", "formula": null, "note": null, "raw_value": 21494268, "row_number": 20, "sheet_name": "TBL11"} +{"address": "L20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "915001270", "formula": null, "note": null, "raw_value": 915001270, "row_number": 20, "sheet_name": "TBL11"} +{"address": "M20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "7.9", "formula": null, "note": null, "raw_value": 7.9, "row_number": 20, "sheet_name": "TBL11"} +{"address": "N20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "21494289", "formula": null, "note": null, "raw_value": 21494289, "row_number": 20, "sheet_name": "TBL11"} +{"address": "O20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "96758151", "formula": null, "note": null, "raw_value": 96758151, "row_number": 20, "sheet_name": "TBL11"} +{"address": "P20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "4.6", "formula": null, "note": null, "raw_value": 4.6, "row_number": 20, "sheet_name": "TBL11"} +{"address": "Q20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "96759453", "formula": null, "note": null, "raw_value": 96759453, "row_number": 20, "sheet_name": "TBL11"} +{"address": "R20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "4.5", "formula": null, "note": null, "raw_value": 4.5, "row_number": 20, "sheet_name": "TBL11"} +{"address": "S20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10.6", "formula": null, "note": null, "raw_value": 10.6, "row_number": 20, "sheet_name": "TBL11"} +{"address": "T20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "7.3", "formula": null, "note": null, "raw_value": 7.3, "row_number": 20, "sheet_name": "TBL11"} +{"address": "U20", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "4502", "formula": null, "note": null, "raw_value": 4502, "row_number": 20, "sheet_name": "TBL11"} +{"address": "A21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$75,000 under $100,000", "formula": null, "note": null, "raw_value": "$75,000 under $100,000", "row_number": 21, "sheet_name": "TBL11"} +{"address": "B21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "15775468", "formula": null, "note": null, "raw_value": 15775468, "row_number": 21, "sheet_name": "TBL11"} +{"address": "C21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "9.8", "formula": null, "note": null, "raw_value": 9.8, "row_number": 21, "sheet_name": "TBL11"} +{"address": "D21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "1366616429", "formula": null, "note": null, "raw_value": 1366616429, "row_number": 21, "sheet_name": "TBL11"} +{"address": "E21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "8.9", "formula": null, "note": null, "raw_value": 8.9, "row_number": 21, "sheet_name": "TBL11"} +{"address": "F21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "86629", "formula": null, "note": null, "raw_value": 86629, "row_number": 21, "sheet_name": "TBL11"} +{"address": "G21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "15065384", "formula": null, "note": null, "raw_value": 15065384, "row_number": 21, "sheet_name": "TBL11"} +{"address": "H21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "13.5", "formula": null, "note": null, "raw_value": 13.5, "row_number": 21, "sheet_name": "TBL11"} +{"address": "I21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "1306200302", "formula": null, "note": null, "raw_value": 1306200302, "row_number": 21, "sheet_name": "TBL11"} +{"address": "J21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "9.1", "formula": null, "note": null, "raw_value": 9.1, "row_number": 21, "sheet_name": "TBL11"} +{"address": "K21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "15065371", "formula": null, "note": null, "raw_value": 15065371, "row_number": 21, "sheet_name": "TBL11"} +{"address": "L21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "964806605", "formula": null, "note": null, "raw_value": 964806605, "row_number": 21, "sheet_name": "TBL11"} +{"address": "M21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "8.3", "formula": null, "note": null, "raw_value": 8.3, "row_number": 21, "sheet_name": "TBL11"} +{"address": "N21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "15064744", "formula": null, "note": null, "raw_value": 15064744, "row_number": 21, "sheet_name": "TBL11"} +{"address": "O21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "114196479", "formula": null, "note": null, "raw_value": 114196479, "row_number": 21, "sheet_name": "TBL11"} +{"address": "P21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "5.4", "formula": null, "note": null, "raw_value": 5.4, "row_number": 21, "sheet_name": "TBL11"} +{"address": "Q21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "114197559", "formula": null, "note": null, "raw_value": 114197559, "row_number": 21, "sheet_name": "TBL11"} +{"address": "R21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "5.3", "formula": null, "note": null, "raw_value": 5.3, "row_number": 21, "sheet_name": "TBL11"} +{"address": "S21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "11.8", "formula": null, "note": null, "raw_value": 11.8, "row_number": 21, "sheet_name": "TBL11"} +{"address": "T21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "8.7", "formula": null, "note": null, "raw_value": 8.7, "row_number": 21, "sheet_name": "TBL11"} +{"address": "U21", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "7580", "formula": null, "note": null, "raw_value": 7580, "row_number": 21, "sheet_name": "TBL11"} +{"address": "A22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$100,000 under $200,000", "formula": null, "note": null, "raw_value": "$100,000 under $200,000", "row_number": 22, "sheet_name": "TBL11"} +{"address": "B22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "27602755", "formula": null, "note": null, "raw_value": 27602755, "row_number": 22, "sheet_name": "TBL11"} +{"address": "C22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "17.2", "formula": null, "note": null, "raw_value": 17.2, "row_number": 22, "sheet_name": "TBL11"} +{"address": "D22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "3818295141", "formula": null, "note": null, "raw_value": 3818295141, "row_number": 22, "sheet_name": "TBL11"} +{"address": "E22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "25", "formula": null, "note": null, "raw_value": 25, "row_number": 22, "sheet_name": "TBL11"} +{"address": "F22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "138330", "formula": null, "note": null, "raw_value": 138330, "row_number": 22, "sheet_name": "TBL11"} +{"address": "G22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "27211633", "formula": null, "note": null, "raw_value": 27211633, "row_number": 22, "sheet_name": "TBL11"} +{"address": "H22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "24.4", "formula": null, "note": null, "raw_value": 24.4, "row_number": 22, "sheet_name": "TBL11"} +{"address": "I22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "3769472892", "formula": null, "note": null, "raw_value": 3769472892, "row_number": 22, "sheet_name": "TBL11"} +{"address": "J22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "26.2", "formula": null, "note": null, "raw_value": 26.2, "row_number": 22, "sheet_name": "TBL11"} +{"address": "K22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "27211619", "formula": null, "note": null, "raw_value": 27211619, "row_number": 22, "sheet_name": "TBL11"} +{"address": "L22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "3024103032", "formula": null, "note": null, "raw_value": 3024103032, "row_number": 22, "sheet_name": "TBL11"} +{"address": "M22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "26", "formula": null, "note": null, "raw_value": 26, "row_number": 22, "sheet_name": "TBL11"} +{"address": "N22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "27208705", "formula": null, "note": null, "raw_value": 27208705, "row_number": 22, "sheet_name": "TBL11"} +{"address": "O22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "409472473", "formula": null, "note": null, "raw_value": 409472473, "row_number": 22, "sheet_name": "TBL11"} +{"address": "P22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "19.4", "formula": null, "note": null, "raw_value": 19.4, "row_number": 22, "sheet_name": "TBL11"} +{"address": "Q22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "409532689", "formula": null, "note": null, "raw_value": 409532689, "row_number": 22, "sheet_name": "TBL11"} +{"address": "R22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "19.1", "formula": null, "note": null, "raw_value": 19.1, "row_number": 22, "sheet_name": "TBL11"} +{"address": "S22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "13.5", "formula": null, "note": null, "raw_value": 13.5, "row_number": 22, "sheet_name": "TBL11"} +{"address": "T22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "10.9", "formula": null, "note": null, "raw_value": 10.9, "row_number": 22, "sheet_name": "TBL11"} +{"address": "U22", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "15050", "formula": null, "note": null, "raw_value": 15050, "row_number": 22, "sheet_name": "TBL11"} +{"address": "A23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$200,000 under $500,000", "formula": null, "note": null, "raw_value": "$200,000 under $500,000", "row_number": 23, "sheet_name": "TBL11"} +{"address": "B23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "10955818", "formula": null, "note": null, "raw_value": 10955818, "row_number": 23, "sheet_name": "TBL11"} +{"address": "C23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "6.8", "formula": null, "note": null, "raw_value": 6.8, "row_number": 23, "sheet_name": "TBL11"} +{"address": "D23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "3153877437", "formula": null, "note": null, "raw_value": 3153877437, "row_number": 23, "sheet_name": "TBL11"} +{"address": "E23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "20.6", "formula": null, "note": null, "raw_value": 20.6, "row_number": 23, "sheet_name": "TBL11"} +{"address": "F23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "287872", "formula": null, "note": null, "raw_value": 287872, "row_number": 23, "sheet_name": "TBL11"} +{"address": "G23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "10930853", "formula": null, "note": null, "raw_value": 10930853, "row_number": 23, "sheet_name": "TBL11"} +{"address": "H23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "9.8", "formula": null, "note": null, "raw_value": 9.8, "row_number": 23, "sheet_name": "TBL11"} +{"address": "I23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "3147258883", "formula": null, "note": null, "raw_value": 3147258883, "row_number": 23, "sheet_name": "TBL11"} +{"address": "J23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "21.9", "formula": null, "note": null, "raw_value": 21.9, "row_number": 23, "sheet_name": "TBL11"} +{"address": "K23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "10928961", "formula": null, "note": null, "raw_value": 10928961, "row_number": 23, "sheet_name": "TBL11"} +{"address": "L23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "2756213132", "formula": null, "note": null, "raw_value": 2756213132, "row_number": 23, "sheet_name": "TBL11"} +{"address": "M23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "23.7", "formula": null, "note": null, "raw_value": 23.7, "row_number": 23, "sheet_name": "TBL11"} +{"address": "N23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "10916814", "formula": null, "note": null, "raw_value": 10916814, "row_number": 23, "sheet_name": "TBL11"} +{"address": "O23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "507817738", "formula": null, "note": null, "raw_value": 507817738, "row_number": 23, "sheet_name": "TBL11"} +{"address": "P23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "24.1", "formula": null, "note": null, "raw_value": 24.1, "row_number": 23, "sheet_name": "TBL11"} +{"address": "Q23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "513407398", "formula": null, "note": null, "raw_value": 513407398, "row_number": 23, "sheet_name": "TBL11"} +{"address": "R23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "23.9", "formula": null, "note": null, "raw_value": 23.9, "row_number": 23, "sheet_name": "TBL11"} +{"address": "S23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.6", "formula": null, "note": null, "raw_value": 18.6, "row_number": 23, "sheet_name": "TBL11"} +{"address": "T23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "16.3", "formula": null, "note": null, "raw_value": 16.3, "row_number": 23, "sheet_name": "TBL11"} +{"address": "U23", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "46969", "formula": null, "note": null, "raw_value": 46969, "row_number": 23, "sheet_name": "TBL11"} +{"address": "A24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$500,000 under $1,000,000", "formula": null, "note": null, "raw_value": "$500,000 under $1,000,000", "row_number": 24, "sheet_name": "TBL11"} +{"address": "B24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "1779720", "formula": null, "note": null, "raw_value": 1779720, "row_number": 24, "sheet_name": "TBL11"} +{"address": "C24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "1.1", "formula": null, "note": null, "raw_value": 1.1, "row_number": 24, "sheet_name": "TBL11"} +{"address": "D24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "1194934962", "formula": null, "note": null, "raw_value": 1194934962, "row_number": 24, "sheet_name": "TBL11"} +{"address": "E24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "7.8", "formula": null, "note": null, "raw_value": 7.8, "row_number": 24, "sheet_name": "TBL11"} +{"address": "F24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "671417", "formula": null, "note": null, "raw_value": 671417, "row_number": 24, "sheet_name": "TBL11"} +{"address": "G24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "1777679", "formula": null, "note": null, "raw_value": 1777679, "row_number": 24, "sheet_name": "TBL11"} +{"address": "H24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "1.6", "formula": null, "note": null, "raw_value": 1.6, "row_number": 24, "sheet_name": "TBL11"} +{"address": "I24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "1193569992", "formula": null, "note": null, "raw_value": 1193569992, "row_number": 24, "sheet_name": "TBL11"} +{"address": "J24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "8.3", "formula": null, "note": null, "raw_value": 8.3, "row_number": 24, "sheet_name": "TBL11"} +{"address": "K24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "1776432", "formula": null, "note": null, "raw_value": 1776432, "row_number": 24, "sheet_name": "TBL11"} +{"address": "L24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "1091013911", "formula": null, "note": null, "raw_value": 1091013911, "row_number": 24, "sheet_name": "TBL11"} +{"address": "M24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "9.4", "formula": null, "note": null, "raw_value": 9.4, "row_number": 24, "sheet_name": "TBL11"} +{"address": "N24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "1773247", "formula": null, "note": null, "raw_value": 1773247, "row_number": 24, "sheet_name": "TBL11"} +{"address": "O24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "267531097", "formula": null, "note": null, "raw_value": 267531097, "row_number": 24, "sheet_name": "TBL11"} +{"address": "P24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "12.7", "formula": null, "note": null, "raw_value": 12.7, "row_number": 24, "sheet_name": "TBL11"} +{"address": "Q24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "273875800", "formula": null, "note": null, "raw_value": 273875800, "row_number": 24, "sheet_name": "TBL11"} +{"address": "R24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "12.8", "formula": null, "note": null, "raw_value": 12.8, "row_number": 24, "sheet_name": "TBL11"} +{"address": "S24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "25.1", "formula": null, "note": null, "raw_value": 25.1, "row_number": 24, "sheet_name": "TBL11"} +{"address": "T24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "22.9", "formula": null, "note": null, "raw_value": 22.9, "row_number": 24, "sheet_name": "TBL11"} +{"address": "U24", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "154064", "formula": null, "note": null, "raw_value": 154064, "row_number": 24, "sheet_name": "TBL11"} +{"address": "A25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1,000,000 under $1,500,000", "formula": null, "note": null, "raw_value": "$1,000,000 under $1,500,000", "row_number": 25, "sheet_name": "TBL11"} +{"address": "B25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "368931", "formula": null, "note": null, "raw_value": 368931, "row_number": 25, "sheet_name": "TBL11"} +{"address": "C25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "0.2", "formula": null, "note": null, "raw_value": 0.2, "row_number": 25, "sheet_name": "TBL11"} +{"address": "D25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "443658405", "formula": null, "note": null, "raw_value": 443658405, "row_number": 25, "sheet_name": "TBL11"} +{"address": "E25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "2.9", "formula": null, "note": null, "raw_value": 2.9, "row_number": 25, "sheet_name": "TBL11"} +{"address": "F25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "1202551", "formula": null, "note": null, "raw_value": 1202551, "row_number": 25, "sheet_name": "TBL11"} +{"address": "G25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "368514", "formula": null, "note": null, "raw_value": 368514, "row_number": 25, "sheet_name": "TBL11"} +{"address": "H25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.3", "formula": null, "note": null, "raw_value": 0.3, "row_number": 25, "sheet_name": "TBL11"} +{"address": "I25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "443152434", "formula": null, "note": null, "raw_value": 443152434, "row_number": 25, "sheet_name": "TBL11"} +{"address": "J25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "3.1", "formula": null, "note": null, "raw_value": 3.1, "row_number": 25, "sheet_name": "TBL11"} +{"address": "K25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "368428", "formula": null, "note": null, "raw_value": 368428, "row_number": 25, "sheet_name": "TBL11"} +{"address": "L25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "404984088", "formula": null, "note": null, "raw_value": 404984088, "row_number": 25, "sheet_name": "TBL11"} +{"address": "M25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "3.5", "formula": null, "note": null, "raw_value": 3.5, "row_number": 25, "sheet_name": "TBL11"} +{"address": "N25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "367694", "formula": null, "note": null, "raw_value": 367694, "row_number": 25, "sheet_name": "TBL11"} +{"address": "O25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "112468857", "formula": null, "note": null, "raw_value": 112468857, "row_number": 25, "sheet_name": "TBL11"} +{"address": "P25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "5.3", "formula": null, "note": null, "raw_value": 5.3, "row_number": 25, "sheet_name": "TBL11"} +{"address": "Q25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "115740460", "formula": null, "note": null, "raw_value": 115740460, "row_number": 25, "sheet_name": "TBL11"} +{"address": "R25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "5.4", "formula": null, "note": null, "raw_value": 5.4, "row_number": 25, "sheet_name": "TBL11"} +{"address": "S25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "28.6", "formula": null, "note": null, "raw_value": 28.6, "row_number": 25, "sheet_name": "TBL11"} +{"address": "T25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "26.1", "formula": null, "note": null, "raw_value": 26.1, "row_number": 25, "sheet_name": "TBL11"} +{"address": "U25", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "314073", "formula": null, "note": null, "raw_value": 314073, "row_number": 25, "sheet_name": "TBL11"} +{"address": "A26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1,500,000 under $2,000,000", "formula": null, "note": null, "raw_value": "$1,500,000 under $2,000,000", "row_number": 26, "sheet_name": "TBL11"} +{"address": "B26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "147290", "formula": null, "note": null, "raw_value": 147290, "row_number": 26, "sheet_name": "TBL11"} +{"address": "C26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 26, "sheet_name": "TBL11"} +{"address": "D26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "252903399", "formula": null, "note": null, "raw_value": 252903399, "row_number": 26, "sheet_name": "TBL11"} +{"address": "E26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "1.7", "formula": null, "note": null, "raw_value": 1.7, "row_number": 26, "sheet_name": "TBL11"} +{"address": "F26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "1717044", "formula": null, "note": null, "raw_value": 1717044, "row_number": 26, "sheet_name": "TBL11"} +{"address": "G26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "147132", "formula": null, "note": null, "raw_value": 147132, "row_number": 26, "sheet_name": "TBL11"} +{"address": "H26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 26, "sheet_name": "TBL11"} +{"address": "I26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "252632818", "formula": null, "note": null, "raw_value": 252632818, "row_number": 26, "sheet_name": "TBL11"} +{"address": "J26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "1.8", "formula": null, "note": null, "raw_value": 1.8, "row_number": 26, "sheet_name": "TBL11"} +{"address": "K26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "147053", "formula": null, "note": null, "raw_value": 147053, "row_number": 26, "sheet_name": "TBL11"} +{"address": "L26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "229833394", "formula": null, "note": null, "raw_value": 229833394, "row_number": 26, "sheet_name": "TBL11"} +{"address": "M26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "2", "formula": null, "note": null, "raw_value": 2, "row_number": 26, "sheet_name": "TBL11"} +{"address": "N26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "146550", "formula": null, "note": null, "raw_value": 146550, "row_number": 26, "sheet_name": "TBL11"} +{"address": "O26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "66883369", "formula": null, "note": null, "raw_value": 66883369, "row_number": 26, "sheet_name": "TBL11"} +{"address": "P26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "3.2", "formula": null, "note": null, "raw_value": 3.2, "row_number": 26, "sheet_name": "TBL11"} +{"address": "Q26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "69021581", "formula": null, "note": null, "raw_value": 69021581, "row_number": 26, "sheet_name": "TBL11"} +{"address": "R26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "3.2", "formula": null, "note": null, "raw_value": 3.2, "row_number": 26, "sheet_name": "TBL11"} +{"address": "S26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "30", "formula": null, "note": null, "raw_value": 30, "row_number": 26, "sheet_name": "TBL11"} +{"address": "T26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "27.3", "formula": null, "note": null, "raw_value": 27.3, "row_number": 26, "sheet_name": "TBL11"} +{"address": "U26", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "469113", "formula": null, "note": null, "raw_value": 469113, "row_number": 26, "sheet_name": "TBL11"} +{"address": "A27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$2,000,000 under $5,000,000", "formula": null, "note": null, "raw_value": "$2,000,000 under $5,000,000", "row_number": 27, "sheet_name": "TBL11"} +{"address": "B27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "203229", "formula": null, "note": null, "raw_value": 203229, "row_number": 27, "sheet_name": "TBL11"} +{"address": "C27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 27, "sheet_name": "TBL11"} +{"address": "D27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "602653109", "formula": null, "note": null, "raw_value": 602653109, "row_number": 27, "sheet_name": "TBL11"} +{"address": "E27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "3.9", "formula": null, "note": null, "raw_value": 3.9, "row_number": 27, "sheet_name": "TBL11"} +{"address": "F27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "2965389", "formula": null, "note": null, "raw_value": 2965389, "row_number": 27, "sheet_name": "TBL11"} +{"address": "G27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "202992", "formula": null, "note": null, "raw_value": 202992, "row_number": 27, "sheet_name": "TBL11"} +{"address": "H27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.2", "formula": null, "note": null, "raw_value": 0.2, "row_number": 27, "sheet_name": "TBL11"} +{"address": "I27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "601927601", "formula": null, "note": null, "raw_value": 601927601, "row_number": 27, "sheet_name": "TBL11"} +{"address": "J27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "4.2", "formula": null, "note": null, "raw_value": 4.2, "row_number": 27, "sheet_name": "TBL11"} +{"address": "K27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "202858", "formula": null, "note": null, "raw_value": 202858, "row_number": 27, "sheet_name": "TBL11"} +{"address": "L27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "544460616", "formula": null, "note": null, "raw_value": 544460616, "row_number": 27, "sheet_name": "TBL11"} +{"address": "M27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "4.7", "formula": null, "note": null, "raw_value": 4.7, "row_number": 27, "sheet_name": "TBL11"} +{"address": "N27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "202338", "formula": null, "note": null, "raw_value": 202338, "row_number": 27, "sheet_name": "TBL11"} +{"address": "O27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "162811816", "formula": null, "note": null, "raw_value": 162811816, "row_number": 27, "sheet_name": "TBL11"} +{"address": "P27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "7.7", "formula": null, "note": null, "raw_value": 7.7, "row_number": 27, "sheet_name": "TBL11"} +{"address": "Q27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "168461033", "formula": null, "note": null, "raw_value": 168461033, "row_number": 27, "sheet_name": "TBL11"} +{"address": "R27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "7.8", "formula": null, "note": null, "raw_value": 7.8, "row_number": 27, "sheet_name": "TBL11"} +{"address": "S27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "30.9", "formula": null, "note": null, "raw_value": 30.9, "row_number": 27, "sheet_name": "TBL11"} +{"address": "T27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "28", "formula": null, "note": null, "raw_value": 28, "row_number": 27, "sheet_name": "TBL11"} +{"address": "U27", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "829890", "formula": null, "note": null, "raw_value": 829890, "row_number": 27, "sheet_name": "TBL11"} +{"address": "A28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$5,000,000 under $10,000,000", "formula": null, "note": null, "raw_value": "$5,000,000 under $10,000,000", "row_number": 28, "sheet_name": "TBL11"} +{"address": "B28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "49262", "formula": null, "note": null, "raw_value": 49262, "row_number": 28, "sheet_name": "TBL11"} +{"address": "C28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 3, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 28, "sheet_name": "TBL11"} +{"address": "D28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "336334760", "formula": null, "note": null, "raw_value": 336334760, "row_number": 28, "sheet_name": "TBL11"} +{"address": "E28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "2.2", "formula": null, "note": null, "raw_value": 2.2, "row_number": 28, "sheet_name": "TBL11"} +{"address": "F28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "6827469", "formula": null, "note": null, "raw_value": 6827469, "row_number": 28, "sheet_name": "TBL11"} +{"address": "G28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "49212", "formula": null, "note": null, "raw_value": 49212, "row_number": 28, "sheet_name": "TBL11"} +{"address": "H28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 8, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 28, "sheet_name": "TBL11"} +{"address": "I28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "336006813", "formula": null, "note": null, "raw_value": 336006813, "row_number": 28, "sheet_name": "TBL11"} +{"address": "J28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "2.3", "formula": null, "note": null, "raw_value": 2.3, "row_number": 28, "sheet_name": "TBL11"} +{"address": "K28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "49186", "formula": null, "note": null, "raw_value": 49186, "row_number": 28, "sheet_name": "TBL11"} +{"address": "L28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "302464214", "formula": null, "note": null, "raw_value": 302464214, "row_number": 28, "sheet_name": "TBL11"} +{"address": "M28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "2.6", "formula": null, "note": null, "raw_value": 2.6, "row_number": 28, "sheet_name": "TBL11"} +{"address": "N28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "49056", "formula": null, "note": null, "raw_value": 49056, "row_number": 28, "sheet_name": "TBL11"} +{"address": "O28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "90455235", "formula": null, "note": null, "raw_value": 90455235, "row_number": 28, "sheet_name": "TBL11"} +{"address": "P28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "4.3", "formula": null, "note": null, "raw_value": 4.3, "row_number": 28, "sheet_name": "TBL11"} +{"address": "Q28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "94042477", "formula": null, "note": null, "raw_value": 94042477, "row_number": 28, "sheet_name": "TBL11"} +{"address": "R28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "4.4", "formula": null, "note": null, "raw_value": 4.4, "row_number": 28, "sheet_name": "TBL11"} +{"address": "S28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "31.1", "formula": null, "note": null, "raw_value": 31.1, "row_number": 28, "sheet_name": "TBL11"} +{"address": "T28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "28", "formula": null, "note": null, "raw_value": 28, "row_number": 28, "sheet_name": "TBL11"} +{"address": "U28", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "1910966", "formula": null, "note": null, "raw_value": 1910966, "row_number": 28, "sheet_name": "TBL11"} +{"address": "A29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$10,000,000 or more", "formula": null, "note": null, "raw_value": "$10,000,000 or more", "row_number": 29, "sheet_name": "TBL11"} +{"address": "B29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "30382", "formula": null, "note": null, "raw_value": 30382, "row_number": 29, "sheet_name": "TBL11"} +{"address": "C29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 3, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 29, "sheet_name": "TBL11"} +{"address": "D29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "907900917", "formula": null, "note": null, "raw_value": 907900917, "row_number": 29, "sheet_name": "TBL11"} +{"address": "E29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "5.9", "formula": null, "note": null, "raw_value": 5.9, "row_number": 29, "sheet_name": "TBL11"} +{"address": "F29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "29882856", "formula": null, "note": null, "raw_value": 29882856, "row_number": 29, "sheet_name": "TBL11"} +{"address": "G29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "30346", "formula": null, "note": null, "raw_value": 30346, "row_number": 29, "sheet_name": "TBL11"} +{"address": "H29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 8, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 29, "sheet_name": "TBL11"} +{"address": "I29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "900732027", "formula": null, "note": null, "raw_value": 900732027, "row_number": 29, "sheet_name": "TBL11"} +{"address": "J29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "6.3", "formula": null, "note": null, "raw_value": 6.3, "row_number": 29, "sheet_name": "TBL11"} +{"address": "K29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "30325", "formula": null, "note": null, "raw_value": 30325, "row_number": 29, "sheet_name": "TBL11"} +{"address": "L29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "798704898", "formula": null, "note": null, "raw_value": 798704898, "row_number": 29, "sheet_name": "TBL11"} +{"address": "M29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "6.9", "formula": null, "note": null, "raw_value": 6.9, "row_number": 29, "sheet_name": "TBL11"} +{"address": "N29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "30229", "formula": null, "note": null, "raw_value": 30229, "row_number": 29, "sheet_name": "TBL11"} +{"address": "O29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "220785934", "formula": null, "note": null, "raw_value": 220785934, "row_number": 29, "sheet_name": "TBL11"} +{"address": "P29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "10.5", "formula": null, "note": null, "raw_value": 10.5, "row_number": 29, "sheet_name": "TBL11"} +{"address": "Q29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "233464129", "formula": null, "note": null, "raw_value": 233464129, "row_number": 29, "sheet_name": "TBL11"} +{"address": "R29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "10.9", "formula": null, "note": null, "raw_value": 10.9, "row_number": 29, "sheet_name": "TBL11"} +{"address": "S29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "29.2", "formula": null, "note": null, "raw_value": 29.2, "row_number": 29, "sheet_name": "TBL11"} +{"address": "T29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "25.9", "formula": null, "note": null, "raw_value": 25.9, "row_number": 29, "sheet_name": "TBL11"} +{"address": "U29", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "7693407", "formula": null, "note": null, "raw_value": 7693407, "row_number": 29, "sheet_name": "TBL11"} +{"address": "A30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "Accumulated from smallest size of adjusted gross income", "formula": null, "note": null, "raw_value": "Accumulated from smallest size of adjusted gross income", "row_number": 30, "sheet_name": "TBL11"} +{"address": "B30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "C30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "D30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "E30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "F30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "G30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "H30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "I30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "J30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "K30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "L30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "M30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "N30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "O30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "P30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "Q30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "R30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "S30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "T30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "U30", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 30, "sheet_name": "TBL11"} +{"address": "A31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "No adjusted gross income", "formula": null, "note": null, "raw_value": "No adjusted gross income", "row_number": 31, "sheet_name": "TBL11"} +{"address": "B31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "2180146", "formula": null, "note": null, "raw_value": 2180146, "row_number": 31, "sheet_name": "TBL11"} +{"address": "C31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "1.4", "formula": null, "note": null, "raw_value": 1.4, "row_number": 31, "sheet_name": "TBL11"} +{"address": "D31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "-144194936", "formula": null, "note": null, "raw_value": -144194936, "row_number": 31, "sheet_name": "TBL11"} +{"address": "E31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 5, "display_value": "[1]", "formula": null, "note": null, "raw_value": "[1]", "row_number": 31, "sheet_name": "TBL11"} +{"address": "F31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "-66140", "formula": null, "note": null, "raw_value": -66140, "row_number": 31, "sheet_name": "TBL11"} +{"address": "G31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "2096", "formula": null, "note": null, "raw_value": 2096, "row_number": 31, "sheet_name": "TBL11"} +{"address": "H31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 8, "display_value": "[1]", "formula": null, "note": null, "raw_value": "[1]", "row_number": 31, "sheet_name": "TBL11"} +{"address": "I31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "-6882431", "formula": null, "note": null, "raw_value": -6882431, "row_number": 31, "sheet_name": "TBL11"} +{"address": "J31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 10, "display_value": "[1]", "formula": null, "note": null, "raw_value": "[1]", "row_number": 31, "sheet_name": "TBL11"} +{"address": "K31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "0", "formula": null, "note": null, "raw_value": 0, "row_number": 31, "sheet_name": "TBL11"} +{"address": "L31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "0", "formula": null, "note": null, "raw_value": 0, "row_number": 31, "sheet_name": "TBL11"} +{"address": "M31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "0", "formula": null, "note": null, "raw_value": 0, "row_number": 31, "sheet_name": "TBL11"} +{"address": "N31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "2094", "formula": null, "note": null, "raw_value": 2094, "row_number": 31, "sheet_name": "TBL11"} +{"address": "O31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "113851", "formula": null, "note": null, "raw_value": 113851, "row_number": 31, "sheet_name": "TBL11"} +{"address": "P31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 16, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 31, "sheet_name": "TBL11"} +{"address": "Q31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "114270", "formula": null, "note": null, "raw_value": 114270, "row_number": 31, "sheet_name": "TBL11"} +{"address": "R31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 31, "sheet_name": "TBL11"} +{"address": "S31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 19, "display_value": "[1]", "formula": null, "note": null, "raw_value": "[1]", "row_number": 31, "sheet_name": "TBL11"} +{"address": "T31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 20, "display_value": "[1]", "formula": null, "note": null, "raw_value": "[1]", "row_number": 31, "sheet_name": "TBL11"} +{"address": "U31", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "54518", "formula": null, "note": null, "raw_value": 54518, "row_number": 31, "sheet_name": "TBL11"} +{"address": "A32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $5,000", "formula": null, "note": null, "raw_value": "$1 under $5,000", "row_number": 32, "sheet_name": "TBL11"} +{"address": "B32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "7357751", "formula": null, "note": null, "raw_value": 7357751, "row_number": 32, "sheet_name": "TBL11"} +{"address": "C32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "4.6", "formula": null, "note": null, "raw_value": 4.6, "row_number": 32, "sheet_name": "TBL11"} +{"address": "D32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "17450063", "formula": null, "note": null, "raw_value": 17450063, "row_number": 32, "sheet_name": "TBL11"} +{"address": "E32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 32, "sheet_name": "TBL11"} +{"address": "F32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "2372", "formula": null, "note": null, "raw_value": 2372, "row_number": 32, "sheet_name": "TBL11"} +{"address": "G32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "120341", "formula": null, "note": null, "raw_value": 120341, "row_number": 32, "sheet_name": "TBL11"} +{"address": "H32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 32, "sheet_name": "TBL11"} +{"address": "I32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "382609", "formula": null, "note": null, "raw_value": 382609, "row_number": 32, "sheet_name": "TBL11"} +{"address": "J32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 10, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 32, "sheet_name": "TBL11"} +{"address": "K32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "120306", "formula": null, "note": null, "raw_value": 120306, "row_number": 32, "sheet_name": "TBL11"} +{"address": "L32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "162380", "formula": null, "note": null, "raw_value": 162380, "row_number": 32, "sheet_name": "TBL11"} +{"address": "M32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 13, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 32, "sheet_name": "TBL11"} +{"address": "N32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "120341", "formula": null, "note": null, "raw_value": 120341, "row_number": 32, "sheet_name": "TBL11"} +{"address": "O32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "15081", "formula": null, "note": null, "raw_value": 15081, "row_number": 32, "sheet_name": "TBL11"} +{"address": "P32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 16, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 32, "sheet_name": "TBL11"} +{"address": "Q32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "15081", "formula": null, "note": null, "raw_value": 15081, "row_number": 32, "sheet_name": "TBL11"} +{"address": "R32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 32, "sheet_name": "TBL11"} +{"address": "S32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "9.3", "formula": null, "note": null, "raw_value": 9.3, "row_number": 32, "sheet_name": "TBL11"} +{"address": "T32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "3.9", "formula": null, "note": null, "raw_value": 3.9, "row_number": 32, "sheet_name": "TBL11"} +{"address": "U32", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "125", "formula": null, "note": null, "raw_value": 125, "row_number": 32, "sheet_name": "TBL11"} +{"address": "A33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $10,000", "formula": null, "note": null, "raw_value": "$1 under $10,000", "row_number": 33, "sheet_name": "TBL11"} +{"address": "B33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "15435668", "formula": null, "note": null, "raw_value": 15435668, "row_number": 33, "sheet_name": "TBL11"} +{"address": "C33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "9.6", "formula": null, "note": null, "raw_value": 9.6, "row_number": 33, "sheet_name": "TBL11"} +{"address": "D33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "78399609", "formula": null, "note": null, "raw_value": 78399609, "row_number": 33, "sheet_name": "TBL11"} +{"address": "E33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "0.5", "formula": null, "note": null, "raw_value": 0.5, "row_number": 33, "sheet_name": "TBL11"} +{"address": "F33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "5079", "formula": null, "note": null, "raw_value": 5079, "row_number": 33, "sheet_name": "TBL11"} +{"address": "G33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "261554", "formula": null, "note": null, "raw_value": 261554, "row_number": 33, "sheet_name": "TBL11"} +{"address": "H33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.2", "formula": null, "note": null, "raw_value": 0.2, "row_number": 33, "sheet_name": "TBL11"} +{"address": "I33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "1411558", "formula": null, "note": null, "raw_value": 1411558, "row_number": 33, "sheet_name": "TBL11"} +{"address": "J33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 10, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 33, "sheet_name": "TBL11"} +{"address": "K33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "261409", "formula": null, "note": null, "raw_value": 261409, "row_number": 33, "sheet_name": "TBL11"} +{"address": "L33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "560027", "formula": null, "note": null, "raw_value": 560027, "row_number": 33, "sheet_name": "TBL11"} +{"address": "M33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 13, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 33, "sheet_name": "TBL11"} +{"address": "N33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "261554", "formula": null, "note": null, "raw_value": 261554, "row_number": 33, "sheet_name": "TBL11"} +{"address": "O33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "57492", "formula": null, "note": null, "raw_value": 57492, "row_number": 33, "sheet_name": "TBL11"} +{"address": "P33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 16, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 33, "sheet_name": "TBL11"} +{"address": "Q33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "57492", "formula": null, "note": null, "raw_value": 57492, "row_number": 33, "sheet_name": "TBL11"} +{"address": "R33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 33, "sheet_name": "TBL11"} +{"address": "S33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10.3", "formula": null, "note": null, "raw_value": 10.3, "row_number": 33, "sheet_name": "TBL11"} +{"address": "T33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "4.1", "formula": null, "note": null, "raw_value": 4.1, "row_number": 33, "sheet_name": "TBL11"} +{"address": "U33", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "220", "formula": null, "note": null, "raw_value": 220, "row_number": 33, "sheet_name": "TBL11"} +{"address": "A34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $15,000", "formula": null, "note": null, "raw_value": "$1 under $15,000", "row_number": 34, "sheet_name": "TBL11"} +{"address": "B34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "24421673", "formula": null, "note": null, "raw_value": 24421673, "row_number": 34, "sheet_name": "TBL11"} +{"address": "C34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "15.2", "formula": null, "note": null, "raw_value": 15.2, "row_number": 34, "sheet_name": "TBL11"} +{"address": "D34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "190753423", "formula": null, "note": null, "raw_value": 190753423, "row_number": 34, "sheet_name": "TBL11"} +{"address": "E34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "1.2", "formula": null, "note": null, "raw_value": 1.2, "row_number": 34, "sheet_name": "TBL11"} +{"address": "F34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "7811", "formula": null, "note": null, "raw_value": 7811, "row_number": 34, "sheet_name": "TBL11"} +{"address": "G34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "903243", "formula": null, "note": null, "raw_value": 903243, "row_number": 34, "sheet_name": "TBL11"} +{"address": "H34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.8", "formula": null, "note": null, "raw_value": 0.8, "row_number": 34, "sheet_name": "TBL11"} +{"address": "I34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "10498187", "formula": null, "note": null, "raw_value": 10498187, "row_number": 34, "sheet_name": "TBL11"} +{"address": "J34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 34, "sheet_name": "TBL11"} +{"address": "K34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "901085", "formula": null, "note": null, "raw_value": 901085, "row_number": 34, "sheet_name": "TBL11"} +{"address": "L34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "1372198", "formula": null, "note": null, "raw_value": 1372198, "row_number": 34, "sheet_name": "TBL11"} +{"address": "M34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 13, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 34, "sheet_name": "TBL11"} +{"address": "N34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "902265", "formula": null, "note": null, "raw_value": 902265, "row_number": 34, "sheet_name": "TBL11"} +{"address": "O34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "145972", "formula": null, "note": null, "raw_value": 145972, "row_number": 34, "sheet_name": "TBL11"} +{"address": "P34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 16, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 34, "sheet_name": "TBL11"} +{"address": "Q34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "146025", "formula": null, "note": null, "raw_value": 146025, "row_number": 34, "sheet_name": "TBL11"} +{"address": "R34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 18, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 34, "sheet_name": "TBL11"} +{"address": "S34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10.6", "formula": null, "note": null, "raw_value": 10.6, "row_number": 34, "sheet_name": "TBL11"} +{"address": "T34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "1.4", "formula": null, "note": null, "raw_value": 1.4, "row_number": 34, "sheet_name": "TBL11"} +{"address": "U34", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "162", "formula": null, "note": null, "raw_value": 162, "row_number": 34, "sheet_name": "TBL11"} +{"address": "A35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $20,000", "formula": null, "note": null, "raw_value": "$1 under $20,000", "row_number": 35, "sheet_name": "TBL11"} +{"address": "B35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "33123767", "formula": null, "note": null, "raw_value": 33123767, "row_number": 35, "sheet_name": "TBL11"} +{"address": "C35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "20.6", "formula": null, "note": null, "raw_value": 20.6, "row_number": 35, "sheet_name": "TBL11"} +{"address": "D35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "342581831", "formula": null, "note": null, "raw_value": 342581831, "row_number": 35, "sheet_name": "TBL11"} +{"address": "E35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "2.2", "formula": null, "note": null, "raw_value": 2.2, "row_number": 35, "sheet_name": "TBL11"} +{"address": "F35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "10342", "formula": null, "note": null, "raw_value": 10342, "row_number": 35, "sheet_name": "TBL11"} +{"address": "G35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "4931254", "formula": null, "note": null, "raw_value": 4931254, "row_number": 35, "sheet_name": "TBL11"} +{"address": "H35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "4.4", "formula": null, "note": null, "raw_value": 4.4, "row_number": 35, "sheet_name": "TBL11"} +{"address": "I35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "81331743", "formula": null, "note": null, "raw_value": 81331743, "row_number": 35, "sheet_name": "TBL11"} +{"address": "J35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "0.6", "formula": null, "note": null, "raw_value": 0.6, "row_number": 35, "sheet_name": "TBL11"} +{"address": "K35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "4929078", "formula": null, "note": null, "raw_value": 4929078, "row_number": 35, "sheet_name": "TBL11"} +{"address": "L35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "15429060", "formula": null, "note": null, "raw_value": 15429060, "row_number": 35, "sheet_name": "TBL11"} +{"address": "M35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 35, "sheet_name": "TBL11"} +{"address": "N35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "4930275", "formula": null, "note": null, "raw_value": 4930275, "row_number": 35, "sheet_name": "TBL11"} +{"address": "O35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1463292", "formula": null, "note": null, "raw_value": 1463292, "row_number": 35, "sheet_name": "TBL11"} +{"address": "P35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 35, "sheet_name": "TBL11"} +{"address": "Q35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1463493", "formula": null, "note": null, "raw_value": 1463493, "row_number": 35, "sheet_name": "TBL11"} +{"address": "R35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 35, "sheet_name": "TBL11"} +{"address": "S35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "9.5", "formula": null, "note": null, "raw_value": 9.5, "row_number": 35, "sheet_name": "TBL11"} +{"address": "T35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "1.8", "formula": null, "note": null, "raw_value": 1.8, "row_number": 35, "sheet_name": "TBL11"} +{"address": "U35", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "297", "formula": null, "note": null, "raw_value": 297, "row_number": 35, "sheet_name": "TBL11"} +{"address": "A36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $25,000", "formula": null, "note": null, "raw_value": "$1 under $25,000", "row_number": 36, "sheet_name": "TBL11"} +{"address": "B36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "41049766", "formula": null, "note": null, "raw_value": 41049766, "row_number": 36, "sheet_name": "TBL11"} +{"address": "C36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "25.6", "formula": null, "note": null, "raw_value": 25.6, "row_number": 36, "sheet_name": "TBL11"} +{"address": "D36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "520582540", "formula": null, "note": null, "raw_value": 520582540, "row_number": 36, "sheet_name": "TBL11"} +{"address": "E36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "3.4", "formula": null, "note": null, "raw_value": 3.4, "row_number": 36, "sheet_name": "TBL11"} +{"address": "F36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "12682", "formula": null, "note": null, "raw_value": 12682, "row_number": 36, "sheet_name": "TBL11"} +{"address": "G36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "9107913", "formula": null, "note": null, "raw_value": 9107913, "row_number": 36, "sheet_name": "TBL11"} +{"address": "H36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "8.2", "formula": null, "note": null, "raw_value": 8.2, "row_number": 36, "sheet_name": "TBL11"} +{"address": "I36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "175267649", "formula": null, "note": null, "raw_value": 175267649, "row_number": 36, "sheet_name": "TBL11"} +{"address": "J36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "1.2", "formula": null, "note": null, "raw_value": 1.2, "row_number": 36, "sheet_name": "TBL11"} +{"address": "K36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "9105663", "formula": null, "note": null, "raw_value": 9105663, "row_number": 36, "sheet_name": "TBL11"} +{"address": "L36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "49784719", "formula": null, "note": null, "raw_value": 49784719, "row_number": 36, "sheet_name": "TBL11"} +{"address": "M36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "0.4", "formula": null, "note": null, "raw_value": 0.4, "row_number": 36, "sheet_name": "TBL11"} +{"address": "N36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "9106934", "formula": null, "note": null, "raw_value": 9106934, "row_number": 36, "sheet_name": "TBL11"} +{"address": "O36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "4720469", "formula": null, "note": null, "raw_value": 4720469, "row_number": 36, "sheet_name": "TBL11"} +{"address": "P36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "0.2", "formula": null, "note": null, "raw_value": 0.2, "row_number": 36, "sheet_name": "TBL11"} +{"address": "Q36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "4720670", "formula": null, "note": null, "raw_value": 4720670, "row_number": 36, "sheet_name": "TBL11"} +{"address": "R36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "0.2", "formula": null, "note": null, "raw_value": 0.2, "row_number": 36, "sheet_name": "TBL11"} +{"address": "S36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "9.5", "formula": null, "note": null, "raw_value": 9.5, "row_number": 36, "sheet_name": "TBL11"} +{"address": "T36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "2.7", "formula": null, "note": null, "raw_value": 2.7, "row_number": 36, "sheet_name": "TBL11"} +{"address": "U36", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "518", "formula": null, "note": null, "raw_value": 518, "row_number": 36, "sheet_name": "TBL11"} +{"address": "A37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $30,000", "formula": null, "note": null, "raw_value": "$1 under $30,000", "row_number": 37, "sheet_name": "TBL11"} +{"address": "B37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "48643923", "formula": null, "note": null, "raw_value": 48643923, "row_number": 37, "sheet_name": "TBL11"} +{"address": "C37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "30.3", "formula": null, "note": null, "raw_value": 30.3, "row_number": 37, "sheet_name": "TBL11"} +{"address": "D37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "729501982", "formula": null, "note": null, "raw_value": 729501982, "row_number": 37, "sheet_name": "TBL11"} +{"address": "E37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "4.8", "formula": null, "note": null, "raw_value": 4.8, "row_number": 37, "sheet_name": "TBL11"} +{"address": "F37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "14997", "formula": null, "note": null, "raw_value": 14997, "row_number": 37, "sheet_name": "TBL11"} +{"address": "G37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "13525935", "formula": null, "note": null, "raw_value": 13525935, "row_number": 37, "sheet_name": "TBL11"} +{"address": "H37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "12.1", "formula": null, "note": null, "raw_value": 12.1, "row_number": 37, "sheet_name": "TBL11"} +{"address": "I37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "296973989", "formula": null, "note": null, "raw_value": 296973989, "row_number": 37, "sheet_name": "TBL11"} +{"address": "J37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "2.1", "formula": null, "note": null, "raw_value": 2.1, "row_number": 37, "sheet_name": "TBL11"} +{"address": "K37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "13523685", "formula": null, "note": null, "raw_value": 13523685, "row_number": 37, "sheet_name": "TBL11"} +{"address": "L37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "106583334", "formula": null, "note": null, "raw_value": 106583334, "row_number": 37, "sheet_name": "TBL11"} +{"address": "M37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "0.9", "formula": null, "note": null, "raw_value": 0.9, "row_number": 37, "sheet_name": "TBL11"} +{"address": "N37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "13523000", "formula": null, "note": null, "raw_value": 13523000, "row_number": 37, "sheet_name": "TBL11"} +{"address": "O37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "10272470", "formula": null, "note": null, "raw_value": 10272470, "row_number": 37, "sheet_name": "TBL11"} +{"address": "P37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "0.5", "formula": null, "note": null, "raw_value": 0.5, "row_number": 37, "sheet_name": "TBL11"} +{"address": "Q37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "10272829", "formula": null, "note": null, "raw_value": 10272829, "row_number": 37, "sheet_name": "TBL11"} +{"address": "R37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "0.5", "formula": null, "note": null, "raw_value": 0.5, "row_number": 37, "sheet_name": "TBL11"} +{"address": "S37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "9.6", "formula": null, "note": null, "raw_value": 9.6, "row_number": 37, "sheet_name": "TBL11"} +{"address": "T37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "3.5", "formula": null, "note": null, "raw_value": 3.5, "row_number": 37, "sheet_name": "TBL11"} +{"address": "U37", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "759", "formula": null, "note": null, "raw_value": 759, "row_number": 37, "sheet_name": "TBL11"} +{"address": "A38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $40,000", "formula": null, "note": null, "raw_value": "$1 under $40,000", "row_number": 38, "sheet_name": "TBL11"} +{"address": "B38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "63854189", "formula": null, "note": null, "raw_value": 63854189, "row_number": 38, "sheet_name": "TBL11"} +{"address": "C38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "39.8", "formula": null, "note": null, "raw_value": 39.8, "row_number": 38, "sheet_name": "TBL11"} +{"address": "D38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "1261284348", "formula": null, "note": null, "raw_value": 1261284348, "row_number": 38, "sheet_name": "TBL11"} +{"address": "E38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "8.3", "formula": null, "note": null, "raw_value": 8.3, "row_number": 38, "sheet_name": "TBL11"} +{"address": "F38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "19753", "formula": null, "note": null, "raw_value": 19753, "row_number": 38, "sheet_name": "TBL11"} +{"address": "G38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "23718017", "formula": null, "note": null, "raw_value": 23718017, "row_number": 38, "sheet_name": "TBL11"} +{"address": "H38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "21.3", "formula": null, "note": null, "raw_value": 21.3, "row_number": 38, "sheet_name": "TBL11"} +{"address": "I38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "654529165", "formula": null, "note": null, "raw_value": 654529165, "row_number": 38, "sheet_name": "TBL11"} +{"address": "J38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "4.5", "formula": null, "note": null, "raw_value": 4.5, "row_number": 38, "sheet_name": "TBL11"} +{"address": "K38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "23715760", "formula": null, "note": null, "raw_value": 23715760, "row_number": 38, "sheet_name": "TBL11"} +{"address": "L38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "298529640", "formula": null, "note": null, "raw_value": 298529640, "row_number": 38, "sheet_name": "TBL11"} +{"address": "M38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "2.6", "formula": null, "note": null, "raw_value": 2.6, "row_number": 38, "sheet_name": "TBL11"} +{"address": "N38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "23715082", "formula": null, "note": null, "raw_value": 23715082, "row_number": 38, "sheet_name": "TBL11"} +{"address": "O38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "29700450", "formula": null, "note": null, "raw_value": 29700450, "row_number": 38, "sheet_name": "TBL11"} +{"address": "P38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "1.4", "formula": null, "note": null, "raw_value": 1.4, "row_number": 38, "sheet_name": "TBL11"} +{"address": "Q38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "29701419", "formula": null, "note": null, "raw_value": 29701419, "row_number": 38, "sheet_name": "TBL11"} +{"address": "R38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "1.4", "formula": null, "note": null, "raw_value": 1.4, "row_number": 38, "sheet_name": "TBL11"} +{"address": "S38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "9.9", "formula": null, "note": null, "raw_value": 9.9, "row_number": 38, "sheet_name": "TBL11"} +{"address": "T38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "4.5", "formula": null, "note": null, "raw_value": 4.5, "row_number": 38, "sheet_name": "TBL11"} +{"address": "U38", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "1252", "formula": null, "note": null, "raw_value": 1252, "row_number": 38, "sheet_name": "TBL11"} +{"address": "A39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $50,000", "formula": null, "note": null, "raw_value": "$1 under $50,000", "row_number": 39, "sheet_name": "TBL11"} +{"address": "B39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "77373223", "formula": null, "note": null, "raw_value": 77373223, "row_number": 39, "sheet_name": "TBL11"} +{"address": "C39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "48.2", "formula": null, "note": null, "raw_value": 48.2, "row_number": 39, "sheet_name": "TBL11"} +{"address": "D39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "1867527286", "formula": null, "note": null, "raw_value": 1867527286, "row_number": 39, "sheet_name": "TBL11"} +{"address": "E39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "12.2", "formula": null, "note": null, "raw_value": 12.2, "row_number": 39, "sheet_name": "TBL11"} +{"address": "F39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "24137", "formula": null, "note": null, "raw_value": 24137, "row_number": 39, "sheet_name": "TBL11"} +{"address": "G39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "34292236", "formula": null, "note": null, "raw_value": 34292236, "row_number": 39, "sheet_name": "TBL11"} +{"address": "H39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "30.7", "formula": null, "note": null, "raw_value": 30.7, "row_number": 39, "sheet_name": "TBL11"} +{"address": "I39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "1130227844", "formula": null, "note": null, "raw_value": 1130227844, "row_number": 39, "sheet_name": "TBL11"} +{"address": "J39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "7.8", "formula": null, "note": null, "raw_value": 7.8, "row_number": 39, "sheet_name": "TBL11"} +{"address": "K39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "34289970", "formula": null, "note": null, "raw_value": 34289970, "row_number": 39, "sheet_name": "TBL11"} +{"address": "L39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "593693826", "formula": null, "note": null, "raw_value": 593693826, "row_number": 39, "sheet_name": "TBL11"} +{"address": "M39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "5.1", "formula": null, "note": null, "raw_value": 5.1, "row_number": 39, "sheet_name": "TBL11"} +{"address": "N39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "34289301", "formula": null, "note": null, "raw_value": 34289301, "row_number": 39, "sheet_name": "TBL11"} +{"address": "O39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "59292001", "formula": null, "note": null, "raw_value": 59292001, "row_number": 39, "sheet_name": "TBL11"} +{"address": "P39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "2.8", "formula": null, "note": null, "raw_value": 2.8, "row_number": 39, "sheet_name": "TBL11"} +{"address": "Q39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "59292970", "formula": null, "note": null, "raw_value": 59292970, "row_number": 39, "sheet_name": "TBL11"} +{"address": "R39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "2.8", "formula": null, "note": null, "raw_value": 2.8, "row_number": 39, "sheet_name": "TBL11"} +{"address": "S39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10", "formula": null, "note": null, "raw_value": 10, "row_number": 39, "sheet_name": "TBL11"} +{"address": "T39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "5.2", "formula": null, "note": null, "raw_value": 5.2, "row_number": 39, "sheet_name": "TBL11"} +{"address": "U39", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "1729", "formula": null, "note": null, "raw_value": 1729, "row_number": 39, "sheet_name": "TBL11"} +{"address": "A40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $75,000", "formula": null, "note": null, "raw_value": "$1 under $75,000", "row_number": 40, "sheet_name": "TBL11"} +{"address": "B40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "101509107", "formula": null, "note": null, "raw_value": 101509107, "row_number": 40, "sheet_name": "TBL11"} +{"address": "C40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "63.2", "formula": null, "note": null, "raw_value": 63.2, "row_number": 40, "sheet_name": "TBL11"} +{"address": "D40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "3353037736", "formula": null, "note": null, "raw_value": 3353037736, "row_number": 40, "sheet_name": "TBL11"} +{"address": "E40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "21.9", "formula": null, "note": null, "raw_value": 21.9, "row_number": 40, "sheet_name": "TBL11"} +{"address": "F40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "33032", "formula": null, "note": null, "raw_value": 33032, "row_number": 40, "sheet_name": "TBL11"} +{"address": "G40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "55786525", "formula": null, "note": null, "raw_value": 55786525, "row_number": 40, "sheet_name": "TBL11"} +{"address": "H40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "50", "formula": null, "note": null, "raw_value": 50, "row_number": 40, "sheet_name": "TBL11"} +{"address": "I40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "2458295364", "formula": null, "note": null, "raw_value": 2458295364, "row_number": 40, "sheet_name": "TBL11"} +{"address": "J40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "17.1", "formula": null, "note": null, "raw_value": 17.1, "row_number": 40, "sheet_name": "TBL11"} +{"address": "K40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "55784238", "formula": null, "note": null, "raw_value": 55784238, "row_number": 40, "sheet_name": "TBL11"} +{"address": "L40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "1508695097", "formula": null, "note": null, "raw_value": 1508695097, "row_number": 40, "sheet_name": "TBL11"} +{"address": "M40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "13", "formula": null, "note": null, "raw_value": 13, "row_number": 40, "sheet_name": "TBL11"} +{"address": "N40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "55783590", "formula": null, "note": null, "raw_value": 55783590, "row_number": 40, "sheet_name": "TBL11"} +{"address": "O40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "156050152", "formula": null, "note": null, "raw_value": 156050152, "row_number": 40, "sheet_name": "TBL11"} +{"address": "P40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "7.4", "formula": null, "note": null, "raw_value": 7.4, "row_number": 40, "sheet_name": "TBL11"} +{"address": "Q40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "156052422", "formula": null, "note": null, "raw_value": 156052422, "row_number": 40, "sheet_name": "TBL11"} +{"address": "R40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "7.3", "formula": null, "note": null, "raw_value": 7.3, "row_number": 40, "sheet_name": "TBL11"} +{"address": "S40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10.3", "formula": null, "note": null, "raw_value": 10.3, "row_number": 40, "sheet_name": "TBL11"} +{"address": "T40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "6.3", "formula": null, "note": null, "raw_value": 6.3, "row_number": 40, "sheet_name": "TBL11"} +{"address": "U40", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "2797", "formula": null, "note": null, "raw_value": 2797, "row_number": 40, "sheet_name": "TBL11"} +{"address": "A41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $100,000", "formula": null, "note": null, "raw_value": "$1 under $100,000", "row_number": 41, "sheet_name": "TBL11"} +{"address": "B41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "117284575", "formula": null, "note": null, "raw_value": 117284575, "row_number": 41, "sheet_name": "TBL11"} +{"address": "C41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "73", "formula": null, "note": null, "raw_value": 73, "row_number": 41, "sheet_name": "TBL11"} +{"address": "D41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "4719654165", "formula": null, "note": null, "raw_value": 4719654165, "row_number": 41, "sheet_name": "TBL11"} +{"address": "E41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "30.9", "formula": null, "note": null, "raw_value": 30.9, "row_number": 41, "sheet_name": "TBL11"} +{"address": "F41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "40241", "formula": null, "note": null, "raw_value": 40241, "row_number": 41, "sheet_name": "TBL11"} +{"address": "G41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "70851919", "formula": null, "note": null, "raw_value": 70851919, "row_number": 41, "sheet_name": "TBL11"} +{"address": "H41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "63.5", "formula": null, "note": null, "raw_value": 63.5, "row_number": 41, "sheet_name": "TBL11"} +{"address": "I41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "3764495666", "formula": null, "note": null, "raw_value": 3764495666, "row_number": 41, "sheet_name": "TBL11"} +{"address": "J41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "26.1", "formula": null, "note": null, "raw_value": 26.1, "row_number": 41, "sheet_name": "TBL11"} +{"address": "K41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "70849609", "formula": null, "note": null, "raw_value": 70849609, "row_number": 41, "sheet_name": "TBL11"} +{"address": "L41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "2473501702", "formula": null, "note": null, "raw_value": 2473501702, "row_number": 41, "sheet_name": "TBL11"} +{"address": "M41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "21.3", "formula": null, "note": null, "raw_value": 21.3, "row_number": 41, "sheet_name": "TBL11"} +{"address": "N41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "70848334", "formula": null, "note": null, "raw_value": 70848334, "row_number": 41, "sheet_name": "TBL11"} +{"address": "O41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "270246631", "formula": null, "note": null, "raw_value": 270246631, "row_number": 41, "sheet_name": "TBL11"} +{"address": "P41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "12.8", "formula": null, "note": null, "raw_value": 12.8, "row_number": 41, "sheet_name": "TBL11"} +{"address": "Q41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "270249981", "formula": null, "note": null, "raw_value": 270249981, "row_number": 41, "sheet_name": "TBL11"} +{"address": "R41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "12.6", "formula": null, "note": null, "raw_value": 12.6, "row_number": 41, "sheet_name": "TBL11"} +{"address": "S41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "10.9", "formula": null, "note": null, "raw_value": 10.9, "row_number": 41, "sheet_name": "TBL11"} +{"address": "T41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "7.2", "formula": null, "note": null, "raw_value": 7.2, "row_number": 41, "sheet_name": "TBL11"} +{"address": "U41", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "3814", "formula": null, "note": null, "raw_value": 3814, "row_number": 41, "sheet_name": "TBL11"} +{"address": "A42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $200,000", "formula": null, "note": null, "raw_value": "$1 under $200,000", "row_number": 42, "sheet_name": "TBL11"} +{"address": "B42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "144887320", "formula": null, "note": null, "raw_value": 144887320, "row_number": 42, "sheet_name": "TBL11"} +{"address": "C42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "90.2", "formula": null, "note": null, "raw_value": 90.2, "row_number": 42, "sheet_name": "TBL11"} +{"address": "D42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "8537949306", "formula": null, "note": null, "raw_value": 8537949306, "row_number": 42, "sheet_name": "TBL11"} +{"address": "E42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "55.9", "formula": null, "note": null, "raw_value": 55.9, "row_number": 42, "sheet_name": "TBL11"} +{"address": "F42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "58928", "formula": null, "note": null, "raw_value": 58928, "row_number": 42, "sheet_name": "TBL11"} +{"address": "G42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "98063542", "formula": null, "note": null, "raw_value": 98063542, "row_number": 42, "sheet_name": "TBL11"} +{"address": "H42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "87.9", "formula": null, "note": null, "raw_value": 87.9, "row_number": 42, "sheet_name": "TBL11"} +{"address": "I42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "7533968558", "formula": null, "note": null, "raw_value": 7533968558, "row_number": 42, "sheet_name": "TBL11"} +{"address": "J42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "52.3", "formula": null, "note": null, "raw_value": 52.3, "row_number": 42, "sheet_name": "TBL11"} +{"address": "K42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "98061228", "formula": null, "note": null, "raw_value": 98061228, "row_number": 42, "sheet_name": "TBL11"} +{"address": "L42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "5497604734", "formula": null, "note": null, "raw_value": 5497604734, "row_number": 42, "sheet_name": "TBL11"} +{"address": "M42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "47.3", "formula": null, "note": null, "raw_value": 47.3, "row_number": 42, "sheet_name": "TBL11"} +{"address": "N42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "98057049", "formula": null, "note": null, "raw_value": 98057049, "row_number": 42, "sheet_name": "TBL11"} +{"address": "O42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "679719104", "formula": null, "note": null, "raw_value": 679719104, "row_number": 42, "sheet_name": "TBL11"} +{"address": "P42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "32.2", "formula": null, "note": null, "raw_value": 32.2, "row_number": 42, "sheet_name": "TBL11"} +{"address": "Q42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "679782670", "formula": null, "note": null, "raw_value": 679782670, "row_number": 42, "sheet_name": "TBL11"} +{"address": "R42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "31.6", "formula": null, "note": null, "raw_value": 31.6, "row_number": 42, "sheet_name": "TBL11"} +{"address": "S42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "12.4", "formula": null, "note": null, "raw_value": 12.4, "row_number": 42, "sheet_name": "TBL11"} +{"address": "T42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "9", "formula": null, "note": null, "raw_value": 9, "row_number": 42, "sheet_name": "TBL11"} +{"address": "U42", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "6932", "formula": null, "note": null, "raw_value": 6932, "row_number": 42, "sheet_name": "TBL11"} +{"address": "A43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $500,000", "formula": null, "note": null, "raw_value": "$1 under $500,000", "row_number": 43, "sheet_name": "TBL11"} +{"address": "B43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "155843148", "formula": null, "note": null, "raw_value": 155843148, "row_number": 43, "sheet_name": "TBL11"} +{"address": "C43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "97", "formula": null, "note": null, "raw_value": 97, "row_number": 43, "sheet_name": "TBL11"} +{"address": "D43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "11691826743", "formula": null, "note": null, "raw_value": 11691826743, "row_number": 43, "sheet_name": "TBL11"} +{"address": "E43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "76.5", "formula": null, "note": null, "raw_value": 76.5, "row_number": 43, "sheet_name": "TBL11"} +{"address": "F43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "75023", "formula": null, "note": null, "raw_value": 75023, "row_number": 43, "sheet_name": "TBL11"} +{"address": "G43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "108994395", "formula": null, "note": null, "raw_value": 108994395, "row_number": 43, "sheet_name": "TBL11"} +{"address": "H43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "97.7", "formula": null, "note": null, "raw_value": 97.7, "row_number": 43, "sheet_name": "TBL11"} +{"address": "I43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "10681227441", "formula": null, "note": null, "raw_value": 10681227441, "row_number": 43, "sheet_name": "TBL11"} +{"address": "J43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "74.2", "formula": null, "note": null, "raw_value": 74.2, "row_number": 43, "sheet_name": "TBL11"} +{"address": "K43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "108990188", "formula": null, "note": null, "raw_value": 108990188, "row_number": 43, "sheet_name": "TBL11"} +{"address": "L43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "8253817866", "formula": null, "note": null, "raw_value": 8253817866, "row_number": 43, "sheet_name": "TBL11"} +{"address": "M43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "71", "formula": null, "note": null, "raw_value": 71, "row_number": 43, "sheet_name": "TBL11"} +{"address": "N43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "108973853", "formula": null, "note": null, "raw_value": 108973853, "row_number": 43, "sheet_name": "TBL11"} +{"address": "O43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1187536842", "formula": null, "note": null, "raw_value": 1187536842, "row_number": 43, "sheet_name": "TBL11"} +{"address": "P43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "56.3", "formula": null, "note": null, "raw_value": 56.3, "row_number": 43, "sheet_name": "TBL11"} +{"address": "Q43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1193190068", "formula": null, "note": null, "raw_value": 1193190068, "row_number": 43, "sheet_name": "TBL11"} +{"address": "R43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "55.6", "formula": null, "note": null, "raw_value": 55.6, "row_number": 43, "sheet_name": "TBL11"} +{"address": "S43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "14.5", "formula": null, "note": null, "raw_value": 14.5, "row_number": 43, "sheet_name": "TBL11"} +{"address": "T43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "11.2", "formula": null, "note": null, "raw_value": 11.2, "row_number": 43, "sheet_name": "TBL11"} +{"address": "U43", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "10947", "formula": null, "note": null, "raw_value": 10947, "row_number": 43, "sheet_name": "TBL11"} +{"address": "A44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $1,000,000", "formula": null, "note": null, "raw_value": "$1 under $1,000,000", "row_number": 44, "sheet_name": "TBL11"} +{"address": "B44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "157622868", "formula": null, "note": null, "raw_value": 157622868, "row_number": 44, "sheet_name": "TBL11"} +{"address": "C44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "98.1", "formula": null, "note": null, "raw_value": 98.1, "row_number": 44, "sheet_name": "TBL11"} +{"address": "D44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "12886761705", "formula": null, "note": null, "raw_value": 12886761705, "row_number": 44, "sheet_name": "TBL11"} +{"address": "E44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "84.3", "formula": null, "note": null, "raw_value": 84.3, "row_number": 44, "sheet_name": "TBL11"} +{"address": "F44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "81757", "formula": null, "note": null, "raw_value": 81757, "row_number": 44, "sheet_name": "TBL11"} +{"address": "G44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "110772074", "formula": null, "note": null, "raw_value": 110772074, "row_number": 44, "sheet_name": "TBL11"} +{"address": "H44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "99.3", "formula": null, "note": null, "raw_value": 99.3, "row_number": 44, "sheet_name": "TBL11"} +{"address": "I44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "11874797433", "formula": null, "note": null, "raw_value": 11874797433, "row_number": 44, "sheet_name": "TBL11"} +{"address": "J44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "82.5", "formula": null, "note": null, "raw_value": 82.5, "row_number": 44, "sheet_name": "TBL11"} +{"address": "K44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "110766620", "formula": null, "note": null, "raw_value": 110766620, "row_number": 44, "sheet_name": "TBL11"} +{"address": "L44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "9344831777", "formula": null, "note": null, "raw_value": 9344831777, "row_number": 44, "sheet_name": "TBL11"} +{"address": "M44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "80.4", "formula": null, "note": null, "raw_value": 80.4, "row_number": 44, "sheet_name": "TBL11"} +{"address": "N44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "110747100", "formula": null, "note": null, "raw_value": 110747100, "row_number": 44, "sheet_name": "TBL11"} +{"address": "O44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1455067939", "formula": null, "note": null, "raw_value": 1455067939, "row_number": 44, "sheet_name": "TBL11"} +{"address": "P44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "69", "formula": null, "note": null, "raw_value": 69, "row_number": 44, "sheet_name": "TBL11"} +{"address": "Q44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1467065868", "formula": null, "note": null, "raw_value": 1467065868, "row_number": 44, "sheet_name": "TBL11"} +{"address": "R44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "68.3", "formula": null, "note": null, "raw_value": 68.3, "row_number": 44, "sheet_name": "TBL11"} +{"address": "S44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "15.7", "formula": null, "note": null, "raw_value": 15.7, "row_number": 44, "sheet_name": "TBL11"} +{"address": "T44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "12.4", "formula": null, "note": null, "raw_value": 12.4, "row_number": 44, "sheet_name": "TBL11"} +{"address": "U44", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "13244", "formula": null, "note": null, "raw_value": 13244, "row_number": 44, "sheet_name": "TBL11"} +{"address": "A45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $1,500,000", "formula": null, "note": null, "raw_value": "$1 under $1,500,000", "row_number": 45, "sheet_name": "TBL11"} +{"address": "B45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "157991799", "formula": null, "note": null, "raw_value": 157991799, "row_number": 45, "sheet_name": "TBL11"} +{"address": "C45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "98.4", "formula": null, "note": null, "raw_value": 98.4, "row_number": 45, "sheet_name": "TBL11"} +{"address": "D45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "13330420110", "formula": null, "note": null, "raw_value": 13330420110, "row_number": 45, "sheet_name": "TBL11"} +{"address": "E45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "87.2", "formula": null, "note": null, "raw_value": 87.2, "row_number": 45, "sheet_name": "TBL11"} +{"address": "F45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "84374", "formula": null, "note": null, "raw_value": 84374, "row_number": 45, "sheet_name": "TBL11"} +{"address": "G45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111140588", "formula": null, "note": null, "raw_value": 111140588, "row_number": 45, "sheet_name": "TBL11"} +{"address": "H45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "99.6", "formula": null, "note": null, "raw_value": 99.6, "row_number": 45, "sheet_name": "TBL11"} +{"address": "I45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "12317949867", "formula": null, "note": null, "raw_value": 12317949867, "row_number": 45, "sheet_name": "TBL11"} +{"address": "J45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "85.5", "formula": null, "note": null, "raw_value": 85.5, "row_number": 45, "sheet_name": "TBL11"} +{"address": "K45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111135048", "formula": null, "note": null, "raw_value": 111135048, "row_number": 45, "sheet_name": "TBL11"} +{"address": "L45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "9749815865", "formula": null, "note": null, "raw_value": 9749815865, "row_number": 45, "sheet_name": "TBL11"} +{"address": "M45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "83.9", "formula": null, "note": null, "raw_value": 83.9, "row_number": 45, "sheet_name": "TBL11"} +{"address": "N45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111114794", "formula": null, "note": null, "raw_value": 111114794, "row_number": 45, "sheet_name": "TBL11"} +{"address": "O45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1567536796", "formula": null, "note": null, "raw_value": 1567536796, "row_number": 45, "sheet_name": "TBL11"} +{"address": "P45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "74.3", "formula": null, "note": null, "raw_value": 74.3, "row_number": 45, "sheet_name": "TBL11"} +{"address": "Q45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1582806328", "formula": null, "note": null, "raw_value": 1582806328, "row_number": 45, "sheet_name": "TBL11"} +{"address": "R45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "73.7", "formula": null, "note": null, "raw_value": 73.7, "row_number": 45, "sheet_name": "TBL11"} +{"address": "S45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "16.2", "formula": null, "note": null, "raw_value": 16.2, "row_number": 45, "sheet_name": "TBL11"} +{"address": "T45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "12.8", "formula": null, "note": null, "raw_value": 12.8, "row_number": 45, "sheet_name": "TBL11"} +{"address": "U45", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "14241", "formula": null, "note": null, "raw_value": 14241, "row_number": 45, "sheet_name": "TBL11"} +{"address": "A46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $2,000,000", "formula": null, "note": null, "raw_value": "$1 under $2,000,000", "row_number": 46, "sheet_name": "TBL11"} +{"address": "B46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "158139089", "formula": null, "note": null, "raw_value": 158139089, "row_number": 46, "sheet_name": "TBL11"} +{"address": "C46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "98.5", "formula": null, "note": null, "raw_value": 98.5, "row_number": 46, "sheet_name": "TBL11"} +{"address": "D46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "13583323509", "formula": null, "note": null, "raw_value": 13583323509, "row_number": 46, "sheet_name": "TBL11"} +{"address": "E46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "88.9", "formula": null, "note": null, "raw_value": 88.9, "row_number": 46, "sheet_name": "TBL11"} +{"address": "F46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "85895", "formula": null, "note": null, "raw_value": 85895, "row_number": 46, "sheet_name": "TBL11"} +{"address": "G46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111287720", "formula": null, "note": null, "raw_value": 111287720, "row_number": 46, "sheet_name": "TBL11"} +{"address": "H46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "99.7", "formula": null, "note": null, "raw_value": 99.7, "row_number": 46, "sheet_name": "TBL11"} +{"address": "I46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "12570582685", "formula": null, "note": null, "raw_value": 12570582685, "row_number": 46, "sheet_name": "TBL11"} +{"address": "J46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "87.3", "formula": null, "note": null, "raw_value": 87.3, "row_number": 46, "sheet_name": "TBL11"} +{"address": "K46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111282101", "formula": null, "note": null, "raw_value": 111282101, "row_number": 46, "sheet_name": "TBL11"} +{"address": "L46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "9979649259", "formula": null, "note": null, "raw_value": 9979649259, "row_number": 46, "sheet_name": "TBL11"} +{"address": "M46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "85.8", "formula": null, "note": null, "raw_value": 85.8, "row_number": 46, "sheet_name": "TBL11"} +{"address": "N46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111261344", "formula": null, "note": null, "raw_value": 111261344, "row_number": 46, "sheet_name": "TBL11"} +{"address": "O46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1634420165", "formula": null, "note": null, "raw_value": 1634420165, "row_number": 46, "sheet_name": "TBL11"} +{"address": "P46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "77.5", "formula": null, "note": null, "raw_value": 77.5, "row_number": 46, "sheet_name": "TBL11"} +{"address": "Q46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1651827909", "formula": null, "note": null, "raw_value": 1651827909, "row_number": 46, "sheet_name": "TBL11"} +{"address": "R46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "76.9", "formula": null, "note": null, "raw_value": 76.9, "row_number": 46, "sheet_name": "TBL11"} +{"address": "S46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "16.6", "formula": null, "note": null, "raw_value": 16.6, "row_number": 46, "sheet_name": "TBL11"} +{"address": "T46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "13.1", "formula": null, "note": null, "raw_value": 13.1, "row_number": 46, "sheet_name": "TBL11"} +{"address": "U46", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "14843", "formula": null, "note": null, "raw_value": 14843, "row_number": 46, "sheet_name": "TBL11"} +{"address": "A47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $5,000,000", "formula": null, "note": null, "raw_value": "$1 under $5,000,000", "row_number": 47, "sheet_name": "TBL11"} +{"address": "B47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "158342318", "formula": null, "note": null, "raw_value": 158342318, "row_number": 47, "sheet_name": "TBL11"} +{"address": "C47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "98.6", "formula": null, "note": null, "raw_value": 98.6, "row_number": 47, "sheet_name": "TBL11"} +{"address": "D47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "14185976618", "formula": null, "note": null, "raw_value": 14185976618, "row_number": 47, "sheet_name": "TBL11"} +{"address": "E47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "92.8", "formula": null, "note": null, "raw_value": 92.8, "row_number": 47, "sheet_name": "TBL11"} +{"address": "F47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "89591", "formula": null, "note": null, "raw_value": 89591, "row_number": 47, "sheet_name": "TBL11"} +{"address": "G47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111490712", "formula": null, "note": null, "raw_value": 111490712, "row_number": 47, "sheet_name": "TBL11"} +{"address": "H47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "99.9", "formula": null, "note": null, "raw_value": 99.9, "row_number": 47, "sheet_name": "TBL11"} +{"address": "I47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "13172510285", "formula": null, "note": null, "raw_value": 13172510285, "row_number": 47, "sheet_name": "TBL11"} +{"address": "J47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "91.5", "formula": null, "note": null, "raw_value": 91.5, "row_number": 47, "sheet_name": "TBL11"} +{"address": "K47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111484959", "formula": null, "note": null, "raw_value": 111484959, "row_number": 47, "sheet_name": "TBL11"} +{"address": "L47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "10524109875", "formula": null, "note": null, "raw_value": 10524109875, "row_number": 47, "sheet_name": "TBL11"} +{"address": "M47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "90.5", "formula": null, "note": null, "raw_value": 90.5, "row_number": 47, "sheet_name": "TBL11"} +{"address": "N47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111463682", "formula": null, "note": null, "raw_value": 111463682, "row_number": 47, "sheet_name": "TBL11"} +{"address": "O47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1797231981", "formula": null, "note": null, "raw_value": 1797231981, "row_number": 47, "sheet_name": "TBL11"} +{"address": "P47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "85.2", "formula": null, "note": null, "raw_value": 85.2, "row_number": 47, "sheet_name": "TBL11"} +{"address": "Q47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1820288942", "formula": null, "note": null, "raw_value": 1820288942, "row_number": 47, "sheet_name": "TBL11"} +{"address": "R47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "84.7", "formula": null, "note": null, "raw_value": 84.7, "row_number": 47, "sheet_name": "TBL11"} +{"address": "S47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "17.3", "formula": null, "note": null, "raw_value": 17.3, "row_number": 47, "sheet_name": "TBL11"} +{"address": "T47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "13.8", "formula": null, "note": null, "raw_value": 13.8, "row_number": 47, "sheet_name": "TBL11"} +{"address": "U47", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "16327", "formula": null, "note": null, "raw_value": 16327, "row_number": 47, "sheet_name": "TBL11"} +{"address": "A48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 under $10,000,000", "formula": null, "note": null, "raw_value": "$1 under $10,000,000", "row_number": 48, "sheet_name": "TBL11"} +{"address": "B48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "158391570", "formula": null, "note": null, "raw_value": 158391570, "row_number": 48, "sheet_name": "TBL11"} +{"address": "C48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "98.6", "formula": null, "note": null, "raw_value": 98.6, "row_number": 48, "sheet_name": "TBL11"} +{"address": "D48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "14522311379", "formula": null, "note": null, "raw_value": 14522311379, "row_number": 48, "sheet_name": "TBL11"} +{"address": "E48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "95", "formula": null, "note": null, "raw_value": 95, "row_number": 48, "sheet_name": "TBL11"} +{"address": "F48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "91686", "formula": null, "note": null, "raw_value": 91686, "row_number": 48, "sheet_name": "TBL11"} +{"address": "G48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111539924", "formula": null, "note": null, "raw_value": 111539924, "row_number": 48, "sheet_name": "TBL11"} +{"address": "H48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 48, "sheet_name": "TBL11"} +{"address": "I48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "13508517098", "formula": null, "note": null, "raw_value": 13508517098, "row_number": 48, "sheet_name": "TBL11"} +{"address": "J48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "93.8", "formula": null, "note": null, "raw_value": 93.8, "row_number": 48, "sheet_name": "TBL11"} +{"address": "K48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111534145", "formula": null, "note": null, "raw_value": 111534145, "row_number": 48, "sheet_name": "TBL11"} +{"address": "L48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "10826574089", "formula": null, "note": null, "raw_value": 10826574089, "row_number": 48, "sheet_name": "TBL11"} +{"address": "M48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "93.1", "formula": null, "note": null, "raw_value": 93.1, "row_number": 48, "sheet_name": "TBL11"} +{"address": "N48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111512738", "formula": null, "note": null, "raw_value": 111512738, "row_number": 48, "sheet_name": "TBL11"} +{"address": "O48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1887687216", "formula": null, "note": null, "raw_value": 1887687216, "row_number": 48, "sheet_name": "TBL11"} +{"address": "P48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "89.5", "formula": null, "note": null, "raw_value": 89.5, "row_number": 48, "sheet_name": "TBL11"} +{"address": "Q48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1914331419", "formula": null, "note": null, "raw_value": 1914331419, "row_number": 48, "sheet_name": "TBL11"} +{"address": "R48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "89.1", "formula": null, "note": null, "raw_value": 89.1, "row_number": 48, "sheet_name": "TBL11"} +{"address": "S48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "17.7", "formula": null, "note": null, "raw_value": 17.7, "row_number": 48, "sheet_name": "TBL11"} +{"address": "T48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "14.2", "formula": null, "note": null, "raw_value": 14.2, "row_number": 48, "sheet_name": "TBL11"} +{"address": "U48", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "17163", "formula": null, "note": null, "raw_value": 17163, "row_number": 48, "sheet_name": "TBL11"} +{"address": "A49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 or more", "formula": null, "note": null, "raw_value": "$1 or more", "row_number": 49, "sheet_name": "TBL11"} +{"address": "B49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "158421962", "formula": null, "note": null, "raw_value": 158421962, "row_number": 49, "sheet_name": "TBL11"} +{"address": "C49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "98.6", "formula": null, "note": null, "raw_value": 98.6, "row_number": 49, "sheet_name": "TBL11"} +{"address": "D49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "15430212295", "formula": null, "note": null, "raw_value": 15430212295, "row_number": 49, "sheet_name": "TBL11"} +{"address": "E49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "100.9", "formula": null, "note": null, "raw_value": 100.9, "row_number": 49, "sheet_name": "TBL11"} +{"address": "F49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "97399", "formula": null, "note": null, "raw_value": 97399, "row_number": 49, "sheet_name": "TBL11"} +{"address": "G49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111570270", "formula": null, "note": null, "raw_value": 111570270, "row_number": 49, "sheet_name": "TBL11"} +{"address": "H49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 49, "sheet_name": "TBL11"} +{"address": "I49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14409249125", "formula": null, "note": null, "raw_value": 14409249125, "row_number": 49, "sheet_name": "TBL11"} +{"address": "J49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 49, "sheet_name": "TBL11"} +{"address": "K49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111564470", "formula": null, "note": null, "raw_value": 111564470, "row_number": 49, "sheet_name": "TBL11"} +{"address": "L49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11625278987", "formula": null, "note": null, "raw_value": 11625278987, "row_number": 49, "sheet_name": "TBL11"} +{"address": "M49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 49, "sheet_name": "TBL11"} +{"address": "N49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111542967", "formula": null, "note": null, "raw_value": 111542967, "row_number": 49, "sheet_name": "TBL11"} +{"address": "O49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2108473150", "formula": null, "note": null, "raw_value": 2108473150, "row_number": 49, "sheet_name": "TBL11"} +{"address": "P49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 49, "sheet_name": "TBL11"} +{"address": "Q49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2147795548", "formula": null, "note": null, "raw_value": 2147795548, "row_number": 49, "sheet_name": "TBL11"} +{"address": "R49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 49, "sheet_name": "TBL11"} +{"address": "S49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 49, "sheet_name": "TBL11"} +{"address": "T49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "14.9", "formula": null, "note": null, "raw_value": 14.9, "row_number": 49, "sheet_name": "TBL11"} +{"address": "U49", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "19251", "formula": null, "note": null, "raw_value": 19251, "row_number": 49, "sheet_name": "TBL11"} +{"address": "A50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "All returns", "formula": null, "note": null, "raw_value": "All returns", "row_number": 50, "sheet_name": "TBL11"} +{"address": "B50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "160602107", "formula": null, "note": null, "raw_value": 160602107, "row_number": 50, "sheet_name": "TBL11"} +{"address": "C50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 50, "sheet_name": "TBL11"} +{"address": "D50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "15286017359", "formula": null, "note": null, "raw_value": 15286017359, "row_number": 50, "sheet_name": "TBL11"} +{"address": "E50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 50, "sheet_name": "TBL11"} +{"address": "F50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "95179", "formula": null, "note": null, "raw_value": 95179, "row_number": 50, "sheet_name": "TBL11"} +{"address": "G50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111572368", "formula": null, "note": null, "raw_value": 111572368, "row_number": 50, "sheet_name": "TBL11"} +{"address": "H50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 50, "sheet_name": "TBL11"} +{"address": "I50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14402366694", "formula": null, "note": null, "raw_value": 14402366694, "row_number": 50, "sheet_name": "TBL11"} +{"address": "J50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 50, "sheet_name": "TBL11"} +{"address": "K50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111564470", "formula": null, "note": null, "raw_value": 111564470, "row_number": 50, "sheet_name": "TBL11"} +{"address": "L50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11625278987", "formula": null, "note": null, "raw_value": 11625278987, "row_number": 50, "sheet_name": "TBL11"} +{"address": "M50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 50, "sheet_name": "TBL11"} +{"address": "N50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111545061", "formula": null, "note": null, "raw_value": 111545061, "row_number": 50, "sheet_name": "TBL11"} +{"address": "O50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2108587001", "formula": null, "note": null, "raw_value": 2108587001, "row_number": 50, "sheet_name": "TBL11"} +{"address": "P50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 50, "sheet_name": "TBL11"} +{"address": "Q50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2147909818", "formula": null, "note": null, "raw_value": 2147909818, "row_number": 50, "sheet_name": "TBL11"} +{"address": "R50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 50, "sheet_name": "TBL11"} +{"address": "S50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 50, "sheet_name": "TBL11"} +{"address": "T50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "14.9", "formula": null, "note": null, "raw_value": 14.9, "row_number": 50, "sheet_name": "TBL11"} +{"address": "U50", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "19251", "formula": null, "note": null, "raw_value": 19251, "row_number": 50, "sheet_name": "TBL11"} +{"address": "A51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "Accumulated from largest size of adjusted gross income", "formula": null, "note": null, "raw_value": "Accumulated from largest size of adjusted gross income", "row_number": 51, "sheet_name": "TBL11"} +{"address": "B51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "C51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "D51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "E51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "F51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "G51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "H51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "I51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "J51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "K51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "L51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "M51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "N51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "O51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "P51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "Q51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "R51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "S51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "T51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "U51", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 51, "sheet_name": "TBL11"} +{"address": "A52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$10,000,000 or more", "formula": null, "note": null, "raw_value": "$10,000,000 or more", "row_number": 52, "sheet_name": "TBL11"} +{"address": "B52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "30382", "formula": null, "note": null, "raw_value": 30382, "row_number": 52, "sheet_name": "TBL11"} +{"address": "C52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 3, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 52, "sheet_name": "TBL11"} +{"address": "D52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "907900917", "formula": null, "note": null, "raw_value": 907900917, "row_number": 52, "sheet_name": "TBL11"} +{"address": "E52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "5.9", "formula": null, "note": null, "raw_value": 5.9, "row_number": 52, "sheet_name": "TBL11"} +{"address": "F52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "29882856", "formula": null, "note": null, "raw_value": 29882856, "row_number": 52, "sheet_name": "TBL11"} +{"address": "G52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "30346", "formula": null, "note": null, "raw_value": 30346, "row_number": 52, "sheet_name": "TBL11"} +{"address": "H52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0", "formula": null, "note": null, "raw_value": 0, "row_number": 52, "sheet_name": "TBL11"} +{"address": "I52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "900732027", "formula": null, "note": null, "raw_value": 900732027, "row_number": 52, "sheet_name": "TBL11"} +{"address": "J52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "6.3", "formula": null, "note": null, "raw_value": 6.3, "row_number": 52, "sheet_name": "TBL11"} +{"address": "K52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "30325", "formula": null, "note": null, "raw_value": 30325, "row_number": 52, "sheet_name": "TBL11"} +{"address": "L52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "798704898", "formula": null, "note": null, "raw_value": 798704898, "row_number": 52, "sheet_name": "TBL11"} +{"address": "M52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "6.9", "formula": null, "note": null, "raw_value": 6.9, "row_number": 52, "sheet_name": "TBL11"} +{"address": "N52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "30229", "formula": null, "note": null, "raw_value": 30229, "row_number": 52, "sheet_name": "TBL11"} +{"address": "O52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "220785934", "formula": null, "note": null, "raw_value": 220785934, "row_number": 52, "sheet_name": "TBL11"} +{"address": "P52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "10.5", "formula": null, "note": null, "raw_value": 10.5, "row_number": 52, "sheet_name": "TBL11"} +{"address": "Q52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "233464129", "formula": null, "note": null, "raw_value": 233464129, "row_number": 52, "sheet_name": "TBL11"} +{"address": "R52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "10.9", "formula": null, "note": null, "raw_value": 10.9, "row_number": 52, "sheet_name": "TBL11"} +{"address": "S52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "29.2", "formula": null, "note": null, "raw_value": 29.2, "row_number": 52, "sheet_name": "TBL11"} +{"address": "T52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "25.9", "formula": null, "note": null, "raw_value": 25.9, "row_number": 52, "sheet_name": "TBL11"} +{"address": "U52", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "7693407", "formula": null, "note": null, "raw_value": 7693407, "row_number": 52, "sheet_name": "TBL11"} +{"address": "A53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$5,000,000 or more", "formula": null, "note": null, "raw_value": "$5,000,000 or more", "row_number": 53, "sheet_name": "TBL11"} +{"address": "B53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "79644", "formula": null, "note": null, "raw_value": 79644, "row_number": 53, "sheet_name": "TBL11"} +{"address": "C53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 3, "display_value": "[2]", "formula": null, "note": null, "raw_value": "[2]", "row_number": 53, "sheet_name": "TBL11"} +{"address": "D53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "1244235677", "formula": null, "note": null, "raw_value": 1244235677, "row_number": 53, "sheet_name": "TBL11"} +{"address": "E53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "8.1", "formula": null, "note": null, "raw_value": 8.1, "row_number": 53, "sheet_name": "TBL11"} +{"address": "F53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "15622466", "formula": null, "note": null, "raw_value": 15622466, "row_number": 53, "sheet_name": "TBL11"} +{"address": "G53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "79558", "formula": null, "note": null, "raw_value": 79558, "row_number": 53, "sheet_name": "TBL11"} +{"address": "H53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.1", "formula": null, "note": null, "raw_value": 0.1, "row_number": 53, "sheet_name": "TBL11"} +{"address": "I53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "1236738840", "formula": null, "note": null, "raw_value": 1236738840, "row_number": 53, "sheet_name": "TBL11"} +{"address": "J53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "8.6", "formula": null, "note": null, "raw_value": 8.6, "row_number": 53, "sheet_name": "TBL11"} +{"address": "K53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "79511", "formula": null, "note": null, "raw_value": 79511, "row_number": 53, "sheet_name": "TBL11"} +{"address": "L53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "1101169112", "formula": null, "note": null, "raw_value": 1101169112, "row_number": 53, "sheet_name": "TBL11"} +{"address": "M53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "9.5", "formula": null, "note": null, "raw_value": 9.5, "row_number": 53, "sheet_name": "TBL11"} +{"address": "N53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "79285", "formula": null, "note": null, "raw_value": 79285, "row_number": 53, "sheet_name": "TBL11"} +{"address": "O53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "311241169", "formula": null, "note": null, "raw_value": 311241169, "row_number": 53, "sheet_name": "TBL11"} +{"address": "P53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "14.8", "formula": null, "note": null, "raw_value": 14.8, "row_number": 53, "sheet_name": "TBL11"} +{"address": "Q53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "327506606", "formula": null, "note": null, "raw_value": 327506606, "row_number": 53, "sheet_name": "TBL11"} +{"address": "R53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "15.2", "formula": null, "note": null, "raw_value": 15.2, "row_number": 53, "sheet_name": "TBL11"} +{"address": "S53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "29.7", "formula": null, "note": null, "raw_value": 29.7, "row_number": 53, "sheet_name": "TBL11"} +{"address": "T53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "26.5", "formula": null, "note": null, "raw_value": 26.5, "row_number": 53, "sheet_name": "TBL11"} +{"address": "U53", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "4116577", "formula": null, "note": null, "raw_value": 4116577, "row_number": 53, "sheet_name": "TBL11"} +{"address": "A54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$2,000,000 or more", "formula": null, "note": null, "raw_value": "$2,000,000 or more", "row_number": 54, "sheet_name": "TBL11"} +{"address": "B54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "282873", "formula": null, "note": null, "raw_value": 282873, "row_number": 54, "sheet_name": "TBL11"} +{"address": "C54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "0.2", "formula": null, "note": null, "raw_value": 0.2, "row_number": 54, "sheet_name": "TBL11"} +{"address": "D54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "1846888786", "formula": null, "note": null, "raw_value": 1846888786, "row_number": 54, "sheet_name": "TBL11"} +{"address": "E54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "12.1", "formula": null, "note": null, "raw_value": 12.1, "row_number": 54, "sheet_name": "TBL11"} +{"address": "F54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "6529039", "formula": null, "note": null, "raw_value": 6529039, "row_number": 54, "sheet_name": "TBL11"} +{"address": "G54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "282550", "formula": null, "note": null, "raw_value": 282550, "row_number": 54, "sheet_name": "TBL11"} +{"address": "H54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.3", "formula": null, "note": null, "raw_value": 0.3, "row_number": 54, "sheet_name": "TBL11"} +{"address": "I54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "1838666440", "formula": null, "note": null, "raw_value": 1838666440, "row_number": 54, "sheet_name": "TBL11"} +{"address": "J54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "12.8", "formula": null, "note": null, "raw_value": 12.8, "row_number": 54, "sheet_name": "TBL11"} +{"address": "K54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "282369", "formula": null, "note": null, "raw_value": 282369, "row_number": 54, "sheet_name": "TBL11"} +{"address": "L54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "1645629728", "formula": null, "note": null, "raw_value": 1645629728, "row_number": 54, "sheet_name": "TBL11"} +{"address": "M54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "14.2", "formula": null, "note": null, "raw_value": 14.2, "row_number": 54, "sheet_name": "TBL11"} +{"address": "N54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "281623", "formula": null, "note": null, "raw_value": 281623, "row_number": 54, "sheet_name": "TBL11"} +{"address": "O54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "474052985", "formula": null, "note": null, "raw_value": 474052985, "row_number": 54, "sheet_name": "TBL11"} +{"address": "P54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "22.5", "formula": null, "note": null, "raw_value": 22.5, "row_number": 54, "sheet_name": "TBL11"} +{"address": "Q54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "495967639", "formula": null, "note": null, "raw_value": 495967639, "row_number": 54, "sheet_name": "TBL11"} +{"address": "R54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "23.1", "formula": null, "note": null, "raw_value": 23.1, "row_number": 54, "sheet_name": "TBL11"} +{"address": "S54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "30.1", "formula": null, "note": null, "raw_value": 30.1, "row_number": 54, "sheet_name": "TBL11"} +{"address": "T54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "27", "formula": null, "note": null, "raw_value": 27, "row_number": 54, "sheet_name": "TBL11"} +{"address": "U54", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "1755327", "formula": null, "note": null, "raw_value": 1755327, "row_number": 54, "sheet_name": "TBL11"} +{"address": "A55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1,500,000 or more", "formula": null, "note": null, "raw_value": "$1,500,000 or more", "row_number": 55, "sheet_name": "TBL11"} +{"address": "B55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "430163", "formula": null, "note": null, "raw_value": 430163, "row_number": 55, "sheet_name": "TBL11"} +{"address": "C55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "0.3", "formula": null, "note": null, "raw_value": 0.3, "row_number": 55, "sheet_name": "TBL11"} +{"address": "D55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "2099792185", "formula": null, "note": null, "raw_value": 2099792185, "row_number": 55, "sheet_name": "TBL11"} +{"address": "E55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "13.7", "formula": null, "note": null, "raw_value": 13.7, "row_number": 55, "sheet_name": "TBL11"} +{"address": "F55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "4881387", "formula": null, "note": null, "raw_value": 4881387, "row_number": 55, "sheet_name": "TBL11"} +{"address": "G55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "429682", "formula": null, "note": null, "raw_value": 429682, "row_number": 55, "sheet_name": "TBL11"} +{"address": "H55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.4", "formula": null, "note": null, "raw_value": 0.4, "row_number": 55, "sheet_name": "TBL11"} +{"address": "I55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "2091299258", "formula": null, "note": null, "raw_value": 2091299258, "row_number": 55, "sheet_name": "TBL11"} +{"address": "J55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "14.5", "formula": null, "note": null, "raw_value": 14.5, "row_number": 55, "sheet_name": "TBL11"} +{"address": "K55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "429422", "formula": null, "note": null, "raw_value": 429422, "row_number": 55, "sheet_name": "TBL11"} +{"address": "L55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "1875463122", "formula": null, "note": null, "raw_value": 1875463122, "row_number": 55, "sheet_name": "TBL11"} +{"address": "M55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "16.1", "formula": null, "note": null, "raw_value": 16.1, "row_number": 55, "sheet_name": "TBL11"} +{"address": "N55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "428173", "formula": null, "note": null, "raw_value": 428173, "row_number": 55, "sheet_name": "TBL11"} +{"address": "O55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "540936354", "formula": null, "note": null, "raw_value": 540936354, "row_number": 55, "sheet_name": "TBL11"} +{"address": "P55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "25.7", "formula": null, "note": null, "raw_value": 25.7, "row_number": 55, "sheet_name": "TBL11"} +{"address": "Q55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "564989220", "formula": null, "note": null, "raw_value": 564989220, "row_number": 55, "sheet_name": "TBL11"} +{"address": "R55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "26.3", "formula": null, "note": null, "raw_value": 26.3, "row_number": 55, "sheet_name": "TBL11"} +{"address": "S55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "30.1", "formula": null, "note": null, "raw_value": 30.1, "row_number": 55, "sheet_name": "TBL11"} +{"address": "T55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "27", "formula": null, "note": null, "raw_value": 27, "row_number": 55, "sheet_name": "TBL11"} +{"address": "U55", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "1314901", "formula": null, "note": null, "raw_value": 1314901, "row_number": 55, "sheet_name": "TBL11"} +{"address": "A56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1,000,000 or more", "formula": null, "note": null, "raw_value": "$1,000,000 or more", "row_number": 56, "sheet_name": "TBL11"} +{"address": "B56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "799094", "formula": null, "note": null, "raw_value": 799094, "row_number": 56, "sheet_name": "TBL11"} +{"address": "C56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "0.5", "formula": null, "note": null, "raw_value": 0.5, "row_number": 56, "sheet_name": "TBL11"} +{"address": "D56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "2543450590", "formula": null, "note": null, "raw_value": 2543450590, "row_number": 56, "sheet_name": "TBL11"} +{"address": "E56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "16.6", "formula": null, "note": null, "raw_value": 16.6, "row_number": 56, "sheet_name": "TBL11"} +{"address": "F56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "3182918", "formula": null, "note": null, "raw_value": 3182918, "row_number": 56, "sheet_name": "TBL11"} +{"address": "G56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "798196", "formula": null, "note": null, "raw_value": 798196, "row_number": 56, "sheet_name": "TBL11"} +{"address": "H56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "0.7", "formula": null, "note": null, "raw_value": 0.7, "row_number": 56, "sheet_name": "TBL11"} +{"address": "I56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "2534451692", "formula": null, "note": null, "raw_value": 2534451692, "row_number": 56, "sheet_name": "TBL11"} +{"address": "J56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "17.6", "formula": null, "note": null, "raw_value": 17.6, "row_number": 56, "sheet_name": "TBL11"} +{"address": "K56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "797850", "formula": null, "note": null, "raw_value": 797850, "row_number": 56, "sheet_name": "TBL11"} +{"address": "L56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "2280447209", "formula": null, "note": null, "raw_value": 2280447209, "row_number": 56, "sheet_name": "TBL11"} +{"address": "M56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "19.6", "formula": null, "note": null, "raw_value": 19.6, "row_number": 56, "sheet_name": "TBL11"} +{"address": "N56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "795867", "formula": null, "note": null, "raw_value": 795867, "row_number": 56, "sheet_name": "TBL11"} +{"address": "O56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "653405211", "formula": null, "note": null, "raw_value": 653405211, "row_number": 56, "sheet_name": "TBL11"} +{"address": "P56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "31", "formula": null, "note": null, "raw_value": 31, "row_number": 56, "sheet_name": "TBL11"} +{"address": "Q56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "680729680", "formula": null, "note": null, "raw_value": 680729680, "row_number": 56, "sheet_name": "TBL11"} +{"address": "R56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "31.7", "formula": null, "note": null, "raw_value": 31.7, "row_number": 56, "sheet_name": "TBL11"} +{"address": "S56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "29.9", "formula": null, "note": null, "raw_value": 29.9, "row_number": 56, "sheet_name": "TBL11"} +{"address": "T56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "26.9", "formula": null, "note": null, "raw_value": 26.9, "row_number": 56, "sheet_name": "TBL11"} +{"address": "U56", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "852835", "formula": null, "note": null, "raw_value": 852835, "row_number": 56, "sheet_name": "TBL11"} +{"address": "A57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$500,000 or more", "formula": null, "note": null, "raw_value": "$500,000 or more", "row_number": 57, "sheet_name": "TBL11"} +{"address": "B57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "2578814", "formula": null, "note": null, "raw_value": 2578814, "row_number": 57, "sheet_name": "TBL11"} +{"address": "C57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "1.6", "formula": null, "note": null, "raw_value": 1.6, "row_number": 57, "sheet_name": "TBL11"} +{"address": "D57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "3738385552", "formula": null, "note": null, "raw_value": 3738385552, "row_number": 57, "sheet_name": "TBL11"} +{"address": "E57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "24.5", "formula": null, "note": null, "raw_value": 24.5, "row_number": 57, "sheet_name": "TBL11"} +{"address": "F57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "1449653", "formula": null, "note": null, "raw_value": 1449653, "row_number": 57, "sheet_name": "TBL11"} +{"address": "G57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "2575875", "formula": null, "note": null, "raw_value": 2575875, "row_number": 57, "sheet_name": "TBL11"} +{"address": "H57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "2.3", "formula": null, "note": null, "raw_value": 2.3, "row_number": 57, "sheet_name": "TBL11"} +{"address": "I57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "3728021684", "formula": null, "note": null, "raw_value": 3728021684, "row_number": 57, "sheet_name": "TBL11"} +{"address": "J57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "25.9", "formula": null, "note": null, "raw_value": 25.9, "row_number": 57, "sheet_name": "TBL11"} +{"address": "K57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "2574281", "formula": null, "note": null, "raw_value": 2574281, "row_number": 57, "sheet_name": "TBL11"} +{"address": "L57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "3371461120", "formula": null, "note": null, "raw_value": 3371461120, "row_number": 57, "sheet_name": "TBL11"} +{"address": "M57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "29", "formula": null, "note": null, "raw_value": 29, "row_number": 57, "sheet_name": "TBL11"} +{"address": "N57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "2569114", "formula": null, "note": null, "raw_value": 2569114, "row_number": 57, "sheet_name": "TBL11"} +{"address": "O57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "920936308", "formula": null, "note": null, "raw_value": 920936308, "row_number": 57, "sheet_name": "TBL11"} +{"address": "P57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "43.7", "formula": null, "note": null, "raw_value": 43.7, "row_number": 57, "sheet_name": "TBL11"} +{"address": "Q57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "954605480", "formula": null, "note": null, "raw_value": 954605480, "row_number": 57, "sheet_name": "TBL11"} +{"address": "R57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "44.4", "formula": null, "note": null, "raw_value": 44.4, "row_number": 57, "sheet_name": "TBL11"} +{"address": "S57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "28.3", "formula": null, "note": null, "raw_value": 28.3, "row_number": 57, "sheet_name": "TBL11"} +{"address": "T57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "25.6", "formula": null, "note": null, "raw_value": 25.6, "row_number": 57, "sheet_name": "TBL11"} +{"address": "U57", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "370595", "formula": null, "note": null, "raw_value": 370595, "row_number": 57, "sheet_name": "TBL11"} +{"address": "A58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$200,000 or more", "formula": null, "note": null, "raw_value": "$200,000 or more", "row_number": 58, "sheet_name": "TBL11"} +{"address": "B58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "13534632", "formula": null, "note": null, "raw_value": 13534632, "row_number": 58, "sheet_name": "TBL11"} +{"address": "C58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "8.4", "formula": null, "note": null, "raw_value": 8.4, "row_number": 58, "sheet_name": "TBL11"} +{"address": "D58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "6892262990", "formula": null, "note": null, "raw_value": 6892262990, "row_number": 58, "sheet_name": "TBL11"} +{"address": "E58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "45.1", "formula": null, "note": null, "raw_value": 45.1, "row_number": 58, "sheet_name": "TBL11"} +{"address": "F58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "509232", "formula": null, "note": null, "raw_value": 509232, "row_number": 58, "sheet_name": "TBL11"} +{"address": "G58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "13506728", "formula": null, "note": null, "raw_value": 13506728, "row_number": 58, "sheet_name": "TBL11"} +{"address": "H58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "12.1", "formula": null, "note": null, "raw_value": 12.1, "row_number": 58, "sheet_name": "TBL11"} +{"address": "I58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "6875280567", "formula": null, "note": null, "raw_value": 6875280567, "row_number": 58, "sheet_name": "TBL11"} +{"address": "J58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "47.7", "formula": null, "note": null, "raw_value": 47.7, "row_number": 58, "sheet_name": "TBL11"} +{"address": "K58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "13503242", "formula": null, "note": null, "raw_value": 13503242, "row_number": 58, "sheet_name": "TBL11"} +{"address": "L58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "6127674253", "formula": null, "note": null, "raw_value": 6127674253, "row_number": 58, "sheet_name": "TBL11"} +{"address": "M58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "52.7", "formula": null, "note": null, "raw_value": 52.7, "row_number": 58, "sheet_name": "TBL11"} +{"address": "N58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "13485928", "formula": null, "note": null, "raw_value": 13485928, "row_number": 58, "sheet_name": "TBL11"} +{"address": "O58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1428754046", "formula": null, "note": null, "raw_value": 1428754046, "row_number": 58, "sheet_name": "TBL11"} +{"address": "P58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "67.8", "formula": null, "note": null, "raw_value": 67.8, "row_number": 58, "sheet_name": "TBL11"} +{"address": "Q58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1468012878", "formula": null, "note": null, "raw_value": 1468012878, "row_number": 58, "sheet_name": "TBL11"} +{"address": "R58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "68.3", "formula": null, "note": null, "raw_value": 68.3, "row_number": 58, "sheet_name": "TBL11"} +{"address": "S58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "24", "formula": null, "note": null, "raw_value": 24, "row_number": 58, "sheet_name": "TBL11"} +{"address": "T58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "21.4", "formula": null, "note": null, "raw_value": 21.4, "row_number": 58, "sheet_name": "TBL11"} +{"address": "U58", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "108688", "formula": null, "note": null, "raw_value": 108688, "row_number": 58, "sheet_name": "TBL11"} +{"address": "A59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$100,000 or more", "formula": null, "note": null, "raw_value": "$100,000 or more", "row_number": 59, "sheet_name": "TBL11"} +{"address": "B59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "41137387", "formula": null, "note": null, "raw_value": 41137387, "row_number": 59, "sheet_name": "TBL11"} +{"address": "C59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "25.6", "formula": null, "note": null, "raw_value": 25.6, "row_number": 59, "sheet_name": "TBL11"} +{"address": "D59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "10710558131", "formula": null, "note": null, "raw_value": 10710558131, "row_number": 59, "sheet_name": "TBL11"} +{"address": "E59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "70.1", "formula": null, "note": null, "raw_value": 70.1, "row_number": 59, "sheet_name": "TBL11"} +{"address": "F59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "260361", "formula": null, "note": null, "raw_value": 260361, "row_number": 59, "sheet_name": "TBL11"} +{"address": "G59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "40718361", "formula": null, "note": null, "raw_value": 40718361, "row_number": 59, "sheet_name": "TBL11"} +{"address": "H59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "36.5", "formula": null, "note": null, "raw_value": 36.5, "row_number": 59, "sheet_name": "TBL11"} +{"address": "I59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "10644753459", "formula": null, "note": null, "raw_value": 10644753459, "row_number": 59, "sheet_name": "TBL11"} +{"address": "J59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "73.9", "formula": null, "note": null, "raw_value": 73.9, "row_number": 59, "sheet_name": "TBL11"} +{"address": "K59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "40714861", "formula": null, "note": null, "raw_value": 40714861, "row_number": 59, "sheet_name": "TBL11"} +{"address": "L59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "9151777285", "formula": null, "note": null, "raw_value": 9151777285, "row_number": 59, "sheet_name": "TBL11"} +{"address": "M59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "78.7", "formula": null, "note": null, "raw_value": 78.7, "row_number": 59, "sheet_name": "TBL11"} +{"address": "N59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "40694633", "formula": null, "note": null, "raw_value": 40694633, "row_number": 59, "sheet_name": "TBL11"} +{"address": "O59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1838226519", "formula": null, "note": null, "raw_value": 1838226519, "row_number": 59, "sheet_name": "TBL11"} +{"address": "P59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "87.2", "formula": null, "note": null, "raw_value": 87.2, "row_number": 59, "sheet_name": "TBL11"} +{"address": "Q59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1877545567", "formula": null, "note": null, "raw_value": 1877545567, "row_number": 59, "sheet_name": "TBL11"} +{"address": "R59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "87.4", "formula": null, "note": null, "raw_value": 87.4, "row_number": 59, "sheet_name": "TBL11"} +{"address": "S59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "20.5", "formula": null, "note": null, "raw_value": 20.5, "row_number": 59, "sheet_name": "TBL11"} +{"address": "T59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "17.6", "formula": null, "note": null, "raw_value": 17.6, "row_number": 59, "sheet_name": "TBL11"} +{"address": "U59", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "46111", "formula": null, "note": null, "raw_value": 46111, "row_number": 59, "sheet_name": "TBL11"} +{"address": "A60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$75,000 or more", "formula": null, "note": null, "raw_value": "$75,000 or more", "row_number": 60, "sheet_name": "TBL11"} +{"address": "B60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "56912855", "formula": null, "note": null, "raw_value": 56912855, "row_number": 60, "sheet_name": "TBL11"} +{"address": "C60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "35.4", "formula": null, "note": null, "raw_value": 35.4, "row_number": 60, "sheet_name": "TBL11"} +{"address": "D60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "12077174560", "formula": null, "note": null, "raw_value": 12077174560, "row_number": 60, "sheet_name": "TBL11"} +{"address": "E60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "79", "formula": null, "note": null, "raw_value": 79, "row_number": 60, "sheet_name": "TBL11"} +{"address": "F60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "212205", "formula": null, "note": null, "raw_value": 212205, "row_number": 60, "sheet_name": "TBL11"} +{"address": "G60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "55783745", "formula": null, "note": null, "raw_value": 55783745, "row_number": 60, "sheet_name": "TBL11"} +{"address": "H60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "50", "formula": null, "note": null, "raw_value": 50, "row_number": 60, "sheet_name": "TBL11"} +{"address": "I60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "11950953761", "formula": null, "note": null, "raw_value": 11950953761, "row_number": 60, "sheet_name": "TBL11"} +{"address": "J60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "83", "formula": null, "note": null, "raw_value": 83, "row_number": 60, "sheet_name": "TBL11"} +{"address": "K60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "55780232", "formula": null, "note": null, "raw_value": 55780232, "row_number": 60, "sheet_name": "TBL11"} +{"address": "L60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "10116583890", "formula": null, "note": null, "raw_value": 10116583890, "row_number": 60, "sheet_name": "TBL11"} +{"address": "M60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "87", "formula": null, "note": null, "raw_value": 87, "row_number": 60, "sheet_name": "TBL11"} +{"address": "N60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "55759377", "formula": null, "note": null, "raw_value": 55759377, "row_number": 60, "sheet_name": "TBL11"} +{"address": "O60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "1952422998", "formula": null, "note": null, "raw_value": 1952422998, "row_number": 60, "sheet_name": "TBL11"} +{"address": "P60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "92.6", "formula": null, "note": null, "raw_value": 92.6, "row_number": 60, "sheet_name": "TBL11"} +{"address": "Q60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "1991743126", "formula": null, "note": null, "raw_value": 1991743126, "row_number": 60, "sheet_name": "TBL11"} +{"address": "R60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "92.7", "formula": null, "note": null, "raw_value": 92.7, "row_number": 60, "sheet_name": "TBL11"} +{"address": "S60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "19.7", "formula": null, "note": null, "raw_value": 19.7, "row_number": 60, "sheet_name": "TBL11"} +{"address": "T60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "16.7", "formula": null, "note": null, "raw_value": 16.7, "row_number": 60, "sheet_name": "TBL11"} +{"address": "U60", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "35705", "formula": null, "note": null, "raw_value": 35705, "row_number": 60, "sheet_name": "TBL11"} +{"address": "A61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$50,000 or more", "formula": null, "note": null, "raw_value": "$50,000 or more", "row_number": 61, "sheet_name": "TBL11"} +{"address": "B61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "81048739", "formula": null, "note": null, "raw_value": 81048739, "row_number": 61, "sheet_name": "TBL11"} +{"address": "C61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "50.5", "formula": null, "note": null, "raw_value": 50.5, "row_number": 61, "sheet_name": "TBL11"} +{"address": "D61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "13562685009", "formula": null, "note": null, "raw_value": 13562685009, "row_number": 61, "sheet_name": "TBL11"} +{"address": "E61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "88.7", "formula": null, "note": null, "raw_value": 88.7, "row_number": 61, "sheet_name": "TBL11"} +{"address": "F61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "167340", "formula": null, "note": null, "raw_value": 167340, "row_number": 61, "sheet_name": "TBL11"} +{"address": "G61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "77278034", "formula": null, "note": null, "raw_value": 77278034, "row_number": 61, "sheet_name": "TBL11"} +{"address": "H61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "69.3", "formula": null, "note": null, "raw_value": 69.3, "row_number": 61, "sheet_name": "TBL11"} +{"address": "I61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "13279021281", "formula": null, "note": null, "raw_value": 13279021281, "row_number": 61, "sheet_name": "TBL11"} +{"address": "J61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "92.2", "formula": null, "note": null, "raw_value": 92.2, "row_number": 61, "sheet_name": "TBL11"} +{"address": "K61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "77274500", "formula": null, "note": null, "raw_value": 77274500, "row_number": 61, "sheet_name": "TBL11"} +{"address": "L61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11031585160", "formula": null, "note": null, "raw_value": 11031585160, "row_number": 61, "sheet_name": "TBL11"} +{"address": "M61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "94.9", "formula": null, "note": null, "raw_value": 94.9, "row_number": 61, "sheet_name": "TBL11"} +{"address": "N61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "77253666", "formula": null, "note": null, "raw_value": 77253666, "row_number": 61, "sheet_name": "TBL11"} +{"address": "O61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2049181149", "formula": null, "note": null, "raw_value": 2049181149, "row_number": 61, "sheet_name": "TBL11"} +{"address": "P61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "97.2", "formula": null, "note": null, "raw_value": 97.2, "row_number": 61, "sheet_name": "TBL11"} +{"address": "Q61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2088502578", "formula": null, "note": null, "raw_value": 2088502578, "row_number": 61, "sheet_name": "TBL11"} +{"address": "R61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "97.2", "formula": null, "note": null, "raw_value": 97.2, "row_number": 61, "sheet_name": "TBL11"} +{"address": "S61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.9", "formula": null, "note": null, "raw_value": 18.9, "row_number": 61, "sheet_name": "TBL11"} +{"address": "T61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "15.7", "formula": null, "note": null, "raw_value": 15.7, "row_number": 61, "sheet_name": "TBL11"} +{"address": "U61", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "27026", "formula": null, "note": null, "raw_value": 27026, "row_number": 61, "sheet_name": "TBL11"} +{"address": "A62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$40,000 or more", "formula": null, "note": null, "raw_value": "$40,000 or more", "row_number": 62, "sheet_name": "TBL11"} +{"address": "B62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "94567773", "formula": null, "note": null, "raw_value": 94567773, "row_number": 62, "sheet_name": "TBL11"} +{"address": "C62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "58.9", "formula": null, "note": null, "raw_value": 58.9, "row_number": 62, "sheet_name": "TBL11"} +{"address": "D62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "14168927947", "formula": null, "note": null, "raw_value": 14168927947, "row_number": 62, "sheet_name": "TBL11"} +{"address": "E62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "92.7", "formula": null, "note": null, "raw_value": 92.7, "row_number": 62, "sheet_name": "TBL11"} +{"address": "F62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "149828", "formula": null, "note": null, "raw_value": 149828, "row_number": 62, "sheet_name": "TBL11"} +{"address": "G62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "87852253", "formula": null, "note": null, "raw_value": 87852253, "row_number": 62, "sheet_name": "TBL11"} +{"address": "H62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "78.7", "formula": null, "note": null, "raw_value": 78.7, "row_number": 62, "sheet_name": "TBL11"} +{"address": "I62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "13754719960", "formula": null, "note": null, "raw_value": 13754719960, "row_number": 62, "sheet_name": "TBL11"} +{"address": "J62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "95.5", "formula": null, "note": null, "raw_value": 95.5, "row_number": 62, "sheet_name": "TBL11"} +{"address": "K62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "87848709", "formula": null, "note": null, "raw_value": 87848709, "row_number": 62, "sheet_name": "TBL11"} +{"address": "L62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11326749347", "formula": null, "note": null, "raw_value": 11326749347, "row_number": 62, "sheet_name": "TBL11"} +{"address": "M62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "97.4", "formula": null, "note": null, "raw_value": 97.4, "row_number": 62, "sheet_name": "TBL11"} +{"address": "N62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "87827885", "formula": null, "note": null, "raw_value": 87827885, "row_number": 62, "sheet_name": "TBL11"} +{"address": "O62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2078772700", "formula": null, "note": null, "raw_value": 2078772700, "row_number": 62, "sheet_name": "TBL11"} +{"address": "P62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "98.6", "formula": null, "note": null, "raw_value": 98.6, "row_number": 62, "sheet_name": "TBL11"} +{"address": "Q62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2118094129", "formula": null, "note": null, "raw_value": 2118094129, "row_number": 62, "sheet_name": "TBL11"} +{"address": "R62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "98.6", "formula": null, "note": null, "raw_value": 98.6, "row_number": 62, "sheet_name": "TBL11"} +{"address": "S62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.7", "formula": null, "note": null, "raw_value": 18.7, "row_number": 62, "sheet_name": "TBL11"} +{"address": "T62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "15.4", "formula": null, "note": null, "raw_value": 15.4, "row_number": 62, "sheet_name": "TBL11"} +{"address": "U62", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "24110", "formula": null, "note": null, "raw_value": 24110, "row_number": 62, "sheet_name": "TBL11"} +{"address": "A63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$30,000 or more", "formula": null, "note": null, "raw_value": "$30,000 or more", "row_number": 63, "sheet_name": "TBL11"} +{"address": "B63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "109778039", "formula": null, "note": null, "raw_value": 109778039, "row_number": 63, "sheet_name": "TBL11"} +{"address": "C63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "68.4", "formula": null, "note": null, "raw_value": 68.4, "row_number": 63, "sheet_name": "TBL11"} +{"address": "D63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "14700710313", "formula": null, "note": null, "raw_value": 14700710313, "row_number": 63, "sheet_name": "TBL11"} +{"address": "E63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "96.2", "formula": null, "note": null, "raw_value": 96.2, "row_number": 63, "sheet_name": "TBL11"} +{"address": "F63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "133913", "formula": null, "note": null, "raw_value": 133913, "row_number": 63, "sheet_name": "TBL11"} +{"address": "G63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "98044335", "formula": null, "note": null, "raw_value": 98044335, "row_number": 63, "sheet_name": "TBL11"} +{"address": "H63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "87.9", "formula": null, "note": null, "raw_value": 87.9, "row_number": 63, "sheet_name": "TBL11"} +{"address": "I63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14112275136", "formula": null, "note": null, "raw_value": 14112275136, "row_number": 63, "sheet_name": "TBL11"} +{"address": "J63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "98", "formula": null, "note": null, "raw_value": 98, "row_number": 63, "sheet_name": "TBL11"} +{"address": "K63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "98040784", "formula": null, "note": null, "raw_value": 98040784, "row_number": 63, "sheet_name": "TBL11"} +{"address": "L63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11518695652", "formula": null, "note": null, "raw_value": 11518695652, "row_number": 63, "sheet_name": "TBL11"} +{"address": "M63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "99.1", "formula": null, "note": null, "raw_value": 99.1, "row_number": 63, "sheet_name": "TBL11"} +{"address": "N63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "98019967", "formula": null, "note": null, "raw_value": 98019967, "row_number": 63, "sheet_name": "TBL11"} +{"address": "O63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2098200680", "formula": null, "note": null, "raw_value": 2098200680, "row_number": 63, "sheet_name": "TBL11"} +{"address": "P63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "99.5", "formula": null, "note": null, "raw_value": 99.5, "row_number": 63, "sheet_name": "TBL11"} +{"address": "Q63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2137522719", "formula": null, "note": null, "raw_value": 2137522719, "row_number": 63, "sheet_name": "TBL11"} +{"address": "R63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "99.5", "formula": null, "note": null, "raw_value": 99.5, "row_number": 63, "sheet_name": "TBL11"} +{"address": "S63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.6", "formula": null, "note": null, "raw_value": 18.6, "row_number": 63, "sheet_name": "TBL11"} +{"address": "T63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "15.1", "formula": null, "note": null, "raw_value": 15.1, "row_number": 63, "sheet_name": "TBL11"} +{"address": "U63", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "21802", "formula": null, "note": null, "raw_value": 21802, "row_number": 63, "sheet_name": "TBL11"} +{"address": "A64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$25,000 or more", "formula": null, "note": null, "raw_value": "$25,000 or more", "row_number": 64, "sheet_name": "TBL11"} +{"address": "B64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "117372196", "formula": null, "note": null, "raw_value": 117372196, "row_number": 64, "sheet_name": "TBL11"} +{"address": "C64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "73.1", "formula": null, "note": null, "raw_value": 73.1, "row_number": 64, "sheet_name": "TBL11"} +{"address": "D64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "14909629756", "formula": null, "note": null, "raw_value": 14909629756, "row_number": 64, "sheet_name": "TBL11"} +{"address": "E64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "97.5", "formula": null, "note": null, "raw_value": 97.5, "row_number": 64, "sheet_name": "TBL11"} +{"address": "F64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "127029", "formula": null, "note": null, "raw_value": 127029, "row_number": 64, "sheet_name": "TBL11"} +{"address": "G64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "102462357", "formula": null, "note": null, "raw_value": 102462357, "row_number": 64, "sheet_name": "TBL11"} +{"address": "H64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "91.8", "formula": null, "note": null, "raw_value": 91.8, "row_number": 64, "sheet_name": "TBL11"} +{"address": "I64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14233981476", "formula": null, "note": null, "raw_value": 14233981476, "row_number": 64, "sheet_name": "TBL11"} +{"address": "J64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "98.8", "formula": null, "note": null, "raw_value": 98.8, "row_number": 64, "sheet_name": "TBL11"} +{"address": "K64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "102458807", "formula": null, "note": null, "raw_value": 102458807, "row_number": 64, "sheet_name": "TBL11"} +{"address": "L64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11575494267", "formula": null, "note": null, "raw_value": 11575494267, "row_number": 64, "sheet_name": "TBL11"} +{"address": "M64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "99.6", "formula": null, "note": null, "raw_value": 99.6, "row_number": 64, "sheet_name": "TBL11"} +{"address": "N64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "102436033", "formula": null, "note": null, "raw_value": 102436033, "row_number": 64, "sheet_name": "TBL11"} +{"address": "O64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2103752681", "formula": null, "note": null, "raw_value": 2103752681, "row_number": 64, "sheet_name": "TBL11"} +{"address": "P64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "99.8", "formula": null, "note": null, "raw_value": 99.8, "row_number": 64, "sheet_name": "TBL11"} +{"address": "Q64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2143074878", "formula": null, "note": null, "raw_value": 2143074878, "row_number": 64, "sheet_name": "TBL11"} +{"address": "R64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "99.8", "formula": null, "note": null, "raw_value": 99.8, "row_number": 64, "sheet_name": "TBL11"} +{"address": "S64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 64, "sheet_name": "TBL11"} +{"address": "T64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "15.1", "formula": null, "note": null, "raw_value": 15.1, "row_number": 64, "sheet_name": "TBL11"} +{"address": "U64", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "20916", "formula": null, "note": null, "raw_value": 20916, "row_number": 64, "sheet_name": "TBL11"} +{"address": "A65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$20,000 or more", "formula": null, "note": null, "raw_value": "$20,000 or more", "row_number": 65, "sheet_name": "TBL11"} +{"address": "B65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "125298195", "formula": null, "note": null, "raw_value": 125298195, "row_number": 65, "sheet_name": "TBL11"} +{"address": "C65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "78", "formula": null, "note": null, "raw_value": 78, "row_number": 65, "sheet_name": "TBL11"} +{"address": "D65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "15087630464", "formula": null, "note": null, "raw_value": 15087630464, "row_number": 65, "sheet_name": "TBL11"} +{"address": "E65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "98.7", "formula": null, "note": null, "raw_value": 98.7, "row_number": 65, "sheet_name": "TBL11"} +{"address": "F65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "120414", "formula": null, "note": null, "raw_value": 120414, "row_number": 65, "sheet_name": "TBL11"} +{"address": "G65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "106639016", "formula": null, "note": null, "raw_value": 106639016, "row_number": 65, "sheet_name": "TBL11"} +{"address": "H65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "95.6", "formula": null, "note": null, "raw_value": 95.6, "row_number": 65, "sheet_name": "TBL11"} +{"address": "I65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14327917382", "formula": null, "note": null, "raw_value": 14327917382, "row_number": 65, "sheet_name": "TBL11"} +{"address": "J65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "99.5", "formula": null, "note": null, "raw_value": 99.5, "row_number": 65, "sheet_name": "TBL11"} +{"address": "K65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "106635391", "formula": null, "note": null, "raw_value": 106635391, "row_number": 65, "sheet_name": "TBL11"} +{"address": "L65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11609849927", "formula": null, "note": null, "raw_value": 11609849927, "row_number": 65, "sheet_name": "TBL11"} +{"address": "M65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "99.9", "formula": null, "note": null, "raw_value": 99.9, "row_number": 65, "sheet_name": "TBL11"} +{"address": "N65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "106612692", "formula": null, "note": null, "raw_value": 106612692, "row_number": 65, "sheet_name": "TBL11"} +{"address": "O65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2107009858", "formula": null, "note": null, "raw_value": 2107009858, "row_number": 65, "sheet_name": "TBL11"} +{"address": "P65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "99.9", "formula": null, "note": null, "raw_value": 99.9, "row_number": 65, "sheet_name": "TBL11"} +{"address": "Q65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2146332055", "formula": null, "note": null, "raw_value": 2146332055, "row_number": 65, "sheet_name": "TBL11"} +{"address": "R65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "99.9", "formula": null, "note": null, "raw_value": 99.9, "row_number": 65, "sheet_name": "TBL11"} +{"address": "S65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 65, "sheet_name": "TBL11"} +{"address": "T65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "15", "formula": null, "note": null, "raw_value": 15, "row_number": 65, "sheet_name": "TBL11"} +{"address": "U65", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "20127", "formula": null, "note": null, "raw_value": 20127, "row_number": 65, "sheet_name": "TBL11"} +{"address": "A66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$15,000 or more", "formula": null, "note": null, "raw_value": "$15,000 or more", "row_number": 66, "sheet_name": "TBL11"} +{"address": "B66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "134000289", "formula": null, "note": null, "raw_value": 134000289, "row_number": 66, "sheet_name": "TBL11"} +{"address": "C66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "83.4", "formula": null, "note": null, "raw_value": 83.4, "row_number": 66, "sheet_name": "TBL11"} +{"address": "D66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "15239458872", "formula": null, "note": null, "raw_value": 15239458872, "row_number": 66, "sheet_name": "TBL11"} +{"address": "E66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "99.7", "formula": null, "note": null, "raw_value": 99.7, "row_number": 66, "sheet_name": "TBL11"} +{"address": "F66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "113727", "formula": null, "note": null, "raw_value": 113727, "row_number": 66, "sheet_name": "TBL11"} +{"address": "G66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "110667027", "formula": null, "note": null, "raw_value": 110667027, "row_number": 66, "sheet_name": "TBL11"} +{"address": "H66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "99.2", "formula": null, "note": null, "raw_value": 99.2, "row_number": 66, "sheet_name": "TBL11"} +{"address": "I66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14398750938", "formula": null, "note": null, "raw_value": 14398750938, "row_number": 66, "sheet_name": "TBL11"} +{"address": "J66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 66, "sheet_name": "TBL11"} +{"address": "K66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "110663384", "formula": null, "note": null, "raw_value": 110663384, "row_number": 66, "sheet_name": "TBL11"} +{"address": "L66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11623906789", "formula": null, "note": null, "raw_value": 11623906789, "row_number": 66, "sheet_name": "TBL11"} +{"address": "M66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 66, "sheet_name": "TBL11"} +{"address": "N66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "110640702", "formula": null, "note": null, "raw_value": 110640702, "row_number": 66, "sheet_name": "TBL11"} +{"address": "O66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2108327178", "formula": null, "note": null, "raw_value": 2108327178, "row_number": 66, "sheet_name": "TBL11"} +{"address": "P66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 66, "sheet_name": "TBL11"} +{"address": "Q66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2147649523", "formula": null, "note": null, "raw_value": 2147649523, "row_number": 66, "sheet_name": "TBL11"} +{"address": "R66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 66, "sheet_name": "TBL11"} +{"address": "S66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 66, "sheet_name": "TBL11"} +{"address": "T66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "14.9", "formula": null, "note": null, "raw_value": 14.9, "row_number": 66, "sheet_name": "TBL11"} +{"address": "U66", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "19406", "formula": null, "note": null, "raw_value": 19406, "row_number": 66, "sheet_name": "TBL11"} +{"address": "A67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$10,000 or more", "formula": null, "note": null, "raw_value": "$10,000 or more", "row_number": 67, "sheet_name": "TBL11"} +{"address": "B67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "142986294", "formula": null, "note": null, "raw_value": 142986294, "row_number": 67, "sheet_name": "TBL11"} +{"address": "C67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "89", "formula": null, "note": null, "raw_value": 89, "row_number": 67, "sheet_name": "TBL11"} +{"address": "D67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "15351812686", "formula": null, "note": null, "raw_value": 15351812686, "row_number": 67, "sheet_name": "TBL11"} +{"address": "E67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "100.4", "formula": null, "note": null, "raw_value": 100.4, "row_number": 67, "sheet_name": "TBL11"} +{"address": "F67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "107366", "formula": null, "note": null, "raw_value": 107366, "row_number": 67, "sheet_name": "TBL11"} +{"address": "G67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111308716", "formula": null, "note": null, "raw_value": 111308716, "row_number": 67, "sheet_name": "TBL11"} +{"address": "H67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "99.8", "formula": null, "note": null, "raw_value": 99.8, "row_number": 67, "sheet_name": "TBL11"} +{"address": "I67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14407837568", "formula": null, "note": null, "raw_value": 14407837568, "row_number": 67, "sheet_name": "TBL11"} +{"address": "J67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 67, "sheet_name": "TBL11"} +{"address": "K67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111303060", "formula": null, "note": null, "raw_value": 111303060, "row_number": 67, "sheet_name": "TBL11"} +{"address": "L67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11624718960", "formula": null, "note": null, "raw_value": 11624718960, "row_number": 67, "sheet_name": "TBL11"} +{"address": "M67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 67, "sheet_name": "TBL11"} +{"address": "N67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111281413", "formula": null, "note": null, "raw_value": 111281413, "row_number": 67, "sheet_name": "TBL11"} +{"address": "O67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2108415658", "formula": null, "note": null, "raw_value": 2108415658, "row_number": 67, "sheet_name": "TBL11"} +{"address": "P67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 67, "sheet_name": "TBL11"} +{"address": "Q67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2147738056", "formula": null, "note": null, "raw_value": 2147738056, "row_number": 67, "sheet_name": "TBL11"} +{"address": "R67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 67, "sheet_name": "TBL11"} +{"address": "S67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 67, "sheet_name": "TBL11"} +{"address": "T67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "14.9", "formula": null, "note": null, "raw_value": 14.9, "row_number": 67, "sheet_name": "TBL11"} +{"address": "U67", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "19295", "formula": null, "note": null, "raw_value": 19295, "row_number": 67, "sheet_name": "TBL11"} +{"address": "A68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$5,000 or more", "formula": null, "note": null, "raw_value": "$5,000 or more", "row_number": 68, "sheet_name": "TBL11"} +{"address": "B68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "151064211", "formula": null, "note": null, "raw_value": 151064211, "row_number": 68, "sheet_name": "TBL11"} +{"address": "C68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "94.1", "formula": null, "note": null, "raw_value": 94.1, "row_number": 68, "sheet_name": "TBL11"} +{"address": "D68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "15412762233", "formula": null, "note": null, "raw_value": 15412762233, "row_number": 68, "sheet_name": "TBL11"} +{"address": "E68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "100.8", "formula": null, "note": null, "raw_value": 100.8, "row_number": 68, "sheet_name": "TBL11"} +{"address": "F68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "102028", "formula": null, "note": null, "raw_value": 102028, "row_number": 68, "sheet_name": "TBL11"} +{"address": "G68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111449930", "formula": null, "note": null, "raw_value": 111449930, "row_number": 68, "sheet_name": "TBL11"} +{"address": "H68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "99.9", "formula": null, "note": null, "raw_value": 99.9, "row_number": 68, "sheet_name": "TBL11"} +{"address": "I68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14408866516", "formula": null, "note": null, "raw_value": 14408866516, "row_number": 68, "sheet_name": "TBL11"} +{"address": "J68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 68, "sheet_name": "TBL11"} +{"address": "K68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111444164", "formula": null, "note": null, "raw_value": 111444164, "row_number": 68, "sheet_name": "TBL11"} +{"address": "L68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11625116606", "formula": null, "note": null, "raw_value": 11625116606, "row_number": 68, "sheet_name": "TBL11"} +{"address": "M68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 68, "sheet_name": "TBL11"} +{"address": "N68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111422626", "formula": null, "note": null, "raw_value": 111422626, "row_number": 68, "sheet_name": "TBL11"} +{"address": "O68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2108458069", "formula": null, "note": null, "raw_value": 2108458069, "row_number": 68, "sheet_name": "TBL11"} +{"address": "P68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 68, "sheet_name": "TBL11"} +{"address": "Q68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2147780467", "formula": null, "note": null, "raw_value": 2147780467, "row_number": 68, "sheet_name": "TBL11"} +{"address": "R68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 68, "sheet_name": "TBL11"} +{"address": "S68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 68, "sheet_name": "TBL11"} +{"address": "T68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "14.9", "formula": null, "note": null, "raw_value": 14.9, "row_number": 68, "sheet_name": "TBL11"} +{"address": "U68", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "19271", "formula": null, "note": null, "raw_value": 19271, "row_number": 68, "sheet_name": "TBL11"} +{"address": "A69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "$1 or more", "formula": null, "note": null, "raw_value": "$1 or more", "row_number": 69, "sheet_name": "TBL11"} +{"address": "B69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "158421962", "formula": null, "note": null, "raw_value": 158421962, "row_number": 69, "sheet_name": "TBL11"} +{"address": "C69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "98.6", "formula": null, "note": null, "raw_value": 98.6, "row_number": 69, "sheet_name": "TBL11"} +{"address": "D69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "15430212295", "formula": null, "note": null, "raw_value": 15430212295, "row_number": 69, "sheet_name": "TBL11"} +{"address": "E69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "100.9", "formula": null, "note": null, "raw_value": 100.9, "row_number": 69, "sheet_name": "TBL11"} +{"address": "F69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "97399", "formula": null, "note": null, "raw_value": 97399, "row_number": 69, "sheet_name": "TBL11"} +{"address": "G69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111570270", "formula": null, "note": null, "raw_value": 111570270, "row_number": 69, "sheet_name": "TBL11"} +{"address": "H69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 69, "sheet_name": "TBL11"} +{"address": "I69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14409249125", "formula": null, "note": null, "raw_value": 14409249125, "row_number": 69, "sheet_name": "TBL11"} +{"address": "J69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 69, "sheet_name": "TBL11"} +{"address": "K69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111564470", "formula": null, "note": null, "raw_value": 111564470, "row_number": 69, "sheet_name": "TBL11"} +{"address": "L69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11625278987", "formula": null, "note": null, "raw_value": 11625278987, "row_number": 69, "sheet_name": "TBL11"} +{"address": "M69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 69, "sheet_name": "TBL11"} +{"address": "N69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111542967", "formula": null, "note": null, "raw_value": 111542967, "row_number": 69, "sheet_name": "TBL11"} +{"address": "O69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2108473150", "formula": null, "note": null, "raw_value": 2108473150, "row_number": 69, "sheet_name": "TBL11"} +{"address": "P69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 69, "sheet_name": "TBL11"} +{"address": "Q69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2147795548", "formula": null, "note": null, "raw_value": 2147795548, "row_number": 69, "sheet_name": "TBL11"} +{"address": "R69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 69, "sheet_name": "TBL11"} +{"address": "S69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 69, "sheet_name": "TBL11"} +{"address": "T69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "14.9", "formula": null, "note": null, "raw_value": 14.9, "row_number": 69, "sheet_name": "TBL11"} +{"address": "U69", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "19251", "formula": null, "note": null, "raw_value": 19251, "row_number": 69, "sheet_name": "TBL11"} +{"address": "A70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": "All returns", "formula": null, "note": null, "raw_value": "All returns", "row_number": 70, "sheet_name": "TBL11"} +{"address": "B70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 2, "display_value": "160602107", "formula": null, "note": null, "raw_value": 160602107, "row_number": 70, "sheet_name": "TBL11"} +{"address": "C70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 3, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 70, "sheet_name": "TBL11"} +{"address": "D70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 4, "display_value": "15286017359", "formula": null, "note": null, "raw_value": 15286017359, "row_number": 70, "sheet_name": "TBL11"} +{"address": "E70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 5, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 70, "sheet_name": "TBL11"} +{"address": "F70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 6, "display_value": "95179", "formula": null, "note": null, "raw_value": 95179, "row_number": 70, "sheet_name": "TBL11"} +{"address": "G70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 7, "display_value": "111572368", "formula": null, "note": null, "raw_value": 111572368, "row_number": 70, "sheet_name": "TBL11"} +{"address": "H70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 8, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 70, "sheet_name": "TBL11"} +{"address": "I70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 9, "display_value": "14402366694", "formula": null, "note": null, "raw_value": 14402366694, "row_number": 70, "sheet_name": "TBL11"} +{"address": "J70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 10, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 70, "sheet_name": "TBL11"} +{"address": "K70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 11, "display_value": "111564470", "formula": null, "note": null, "raw_value": 111564470, "row_number": 70, "sheet_name": "TBL11"} +{"address": "L70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 12, "display_value": "11625278987", "formula": null, "note": null, "raw_value": 11625278987, "row_number": 70, "sheet_name": "TBL11"} +{"address": "M70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 13, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 70, "sheet_name": "TBL11"} +{"address": "N70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 14, "display_value": "111545061", "formula": null, "note": null, "raw_value": 111545061, "row_number": 70, "sheet_name": "TBL11"} +{"address": "O70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 15, "display_value": "2108587001", "formula": null, "note": null, "raw_value": 2108587001, "row_number": 70, "sheet_name": "TBL11"} +{"address": "P70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 16, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 70, "sheet_name": "TBL11"} +{"address": "Q70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 17, "display_value": "2147909818", "formula": null, "note": null, "raw_value": 2147909818, "row_number": 70, "sheet_name": "TBL11"} +{"address": "R70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 18, "display_value": "100", "formula": null, "note": null, "raw_value": 100, "row_number": 70, "sheet_name": "TBL11"} +{"address": "S70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 19, "display_value": "18.5", "formula": null, "note": null, "raw_value": 18.5, "row_number": 70, "sheet_name": "TBL11"} +{"address": "T70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 20, "display_value": "14.9", "formula": null, "note": null, "raw_value": 14.9, "row_number": 70, "sheet_name": "TBL11"} +{"address": "U70", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "number", "column_number": 21, "display_value": "19251", "formula": null, "note": null, "raw_value": 19251, "row_number": 70, "sheet_name": "TBL11"} +{"address": "A71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": " [1] Percentage not computed.", "formula": null, "note": null, "raw_value": " [1] Percentage not computed.", "row_number": 71, "sheet_name": "TBL11"} +{"address": "B71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "C71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "D71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "E71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "F71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "G71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "H71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "I71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "J71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "K71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "L71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "M71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "N71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "O71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "P71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "Q71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "R71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "S71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "T71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "U71", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 71, "sheet_name": "TBL11"} +{"address": "A72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": " [2] Less than 0.05 percent.", "formula": null, "note": null, "raw_value": " [2] Less than 0.05 percent.", "row_number": 72, "sheet_name": "TBL11"} +{"address": "B72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "C72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "D72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "E72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "F72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "G72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "H72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "I72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "J72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "K72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "L72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "M72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "N72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "O72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "P72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "Q72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "R72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "S72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "T72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "U72", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 72, "sheet_name": "TBL11"} +{"address": "A73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": " NOTE: Detail may not add to totals because of rounding.", "formula": null, "note": null, "raw_value": " NOTE: Detail may not add to totals because of rounding.", "row_number": 73, "sheet_name": "TBL11"} +{"address": "B73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "C73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "D73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "E73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "F73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "G73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "H73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "I73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "J73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "K73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "L73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "M73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "N73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "O73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "P73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "Q73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "R73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "S73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "T73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "U73", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 73, "sheet_name": "TBL11"} +{"address": "A74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 1, "display_value": " SOURCE: IRS, Statistics of Income Division, Publication 1304, March 2026", "formula": null, "note": null, "raw_value": " SOURCE: IRS, Statistics of Income Division, Publication 1304, March 2026", "row_number": 74, "sheet_name": "TBL11"} +{"address": "B74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "C74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "D74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "E74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "F74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "G74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "H74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "I74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "J74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "K74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "L74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "M74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "N74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "O74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "P74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "Q74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "R74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "S74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "T74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "U74", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 74, "sheet_name": "TBL11"} +{"address": "A75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "B75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "C75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "D75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "E75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "F75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "G75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "H75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "I75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "J75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "K75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "L75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "M75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "N75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "O75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "P75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "Q75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "R75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "S75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "T75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "U75", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 75, "sheet_name": "TBL11"} +{"address": "A76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "B76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "C76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "D76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "E76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "F76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "G76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "H76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "I76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "J76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "K76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "L76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "M76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "N76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "O76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "P76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "Q76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "R76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "S76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "T76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "U76", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 76, "sheet_name": "TBL11"} +{"address": "A77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "B77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "C77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 3, "display_value": " ", "formula": null, "note": null, "raw_value": " ", "row_number": 77, "sheet_name": "TBL11"} +{"address": "D77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "E77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "F77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "G77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "H77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "I77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "J77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "K77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "L77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "M77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "N77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "O77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "P77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "Q77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "R77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "S77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "T77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "U77", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 77, "sheet_name": "TBL11"} +{"address": "A78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "B78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "C78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "D78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "E78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "F78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "G78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "H78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "I78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "J78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "K78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "L78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "M78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "N78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "O78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "P78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "Q78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "R78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "S78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "T78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "U78", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 78, "sheet_name": "TBL11"} +{"address": "A79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "B79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "C79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "D79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "E79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "F79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "G79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "H79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "I79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "J79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "K79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "L79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "M79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "N79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "O79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "P79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "Q79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "R79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "S79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "T79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "U79", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 79, "sheet_name": "TBL11"} +{"address": "A80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "B80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "C80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "D80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "E80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "F80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "G80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "H80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "I80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "J80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "K80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "L80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "M80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "N80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "O80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "P80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "Q80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "R80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "S80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "T80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "U80", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 80, "sheet_name": "TBL11"} +{"address": "A81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "B81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "C81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "D81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "E81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "F81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "G81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "H81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "I81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "J81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "K81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "L81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "M81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "N81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "O81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "P81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "Q81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "R81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "S81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "T81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "U81", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 81, "sheet_name": "TBL11"} +{"address": "A82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "B82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "C82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "D82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "E82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "F82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "G82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "H82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "I82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "J82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "K82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "L82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "M82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "N82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "O82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "P82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "Q82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "R82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "S82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "T82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "U82", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 82, "sheet_name": "TBL11"} +{"address": "A83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "B83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "C83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "D83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "E83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "F83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "G83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "H83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "I83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "J83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "K83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "L83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "M83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "N83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "O83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "P83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "Q83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "R83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "S83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "T83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "U83", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 83, "sheet_name": "TBL11"} +{"address": "A84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "B84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "C84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "D84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "E84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "F84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "G84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "H84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "I84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "J84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "K84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "L84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "M84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "N84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "O84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "P84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "Q84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "R84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "S84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "T84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "U84", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 84, "sheet_name": "TBL11"} +{"address": "A85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "B85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "C85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "D85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "E85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "F85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "G85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "H85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "I85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "J85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "K85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "L85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "M85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "N85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "O85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "P85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "Q85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "R85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "S85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "T85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "U85", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 85, "sheet_name": "TBL11"} +{"address": "A86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "B86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "C86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "D86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "E86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "F86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "G86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "H86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "I86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "J86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "K86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "L86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "M86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "N86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "O86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "P86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "Q86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "R86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "S86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "T86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "U86", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 86, "sheet_name": "TBL11"} +{"address": "A87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "B87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "C87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "D87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "E87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "F87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "G87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "H87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "I87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "J87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "K87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "L87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "M87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "N87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "O87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "P87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "Q87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "R87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "S87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "T87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "U87", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 87, "sheet_name": "TBL11"} +{"address": "A88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "B88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "C88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "D88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "E88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "F88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "G88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "H88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "I88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "J88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "K88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "L88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "M88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "N88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "O88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "P88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "Q88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "R88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "S88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "T88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "U88", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 88, "sheet_name": "TBL11"} +{"address": "A89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "B89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "C89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "D89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "E89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "F89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "G89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "H89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "I89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "J89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "K89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 11, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "L89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "M89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "N89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "O89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "P89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "Q89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "R89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "S89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "T89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "U89", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 89, "sheet_name": "TBL11"} +{"address": "A90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "B90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "C90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "D90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "E90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "F90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "G90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "H90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "I90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "J90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "K90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 11, "display_value": " ", "formula": null, "note": null, "raw_value": " ", "row_number": 90, "sheet_name": "TBL11"} +{"address": "L90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "M90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "N90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "O90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "P90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "Q90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "R90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "S90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "T90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "U90", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 90, "sheet_name": "TBL11"} +{"address": "A91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "B91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "C91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "D91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "E91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "F91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "G91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "H91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "I91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "J91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "K91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 11, "display_value": " ", "formula": null, "note": null, "raw_value": " ", "row_number": 91, "sheet_name": "TBL11"} +{"address": "L91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "M91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "N91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "O91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "P91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "Q91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "R91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "S91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "T91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "U91", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 91, "sheet_name": "TBL11"} +{"address": "A92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 1, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "B92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 2, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "C92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 3, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "D92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 4, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "E92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 5, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "F92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 6, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "G92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 7, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "H92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 8, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "I92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 9, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "J92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 10, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "K92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "text", "column_number": 11, "display_value": " ", "formula": null, "note": null, "raw_value": " ", "row_number": 92, "sheet_name": "TBL11"} +{"address": "L92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 12, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "M92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 13, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "N92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 14, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "O92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 15, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "P92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 16, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "Q92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 17, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "R92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 18, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "S92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 19, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "T92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 20, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} +{"address": "U92", "artifact": {"extracted_at": "2026-05-04", "extraction_method": "xlrd whole-workbook used-range cell parse", "sha256": "842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17", "size_bytes": 54272, "source_file": "23in11si.xls", "source_name": "irs_soi", "source_table": "Publication 1304 Table 1.1", "url": "https://www.irs.gov/pub/irs-soi/23in11si.xls", "vintage": "tax_year_2023"}, "cell_type": "empty", "column_number": 21, "display_value": null, "formula": null, "note": null, "raw_value": null, "row_number": 92, "sheet_name": "TBL11"} diff --git a/arch/harness.py b/arch/harness.py new file mode 100644 index 0000000..9e7691c --- /dev/null +++ b/arch/harness.py @@ -0,0 +1,1351 @@ +"""Fixture-first Arch fact validation harness.""" + +from __future__ import annotations + +import argparse +import json +import shlex +from pathlib import Path + +from arch.artifacts import ( + ArtifactFetchReport, + ArtifactInventoryReport, + DerivedArtifactPublishReport, + R2BootstrapReport, + RawArtifactPublishReport, + bootstrap_r2_buckets, + fetch_source_artifact, + inventory_source_artifacts, + publish_derived_artifacts, + publish_source_artifacts, +) +from arch.bundle import BuildBundleReport, build_bundle +from arch.concepts import ConceptAlignmentReport, validate_concept_alignments +from arch.consumer_contract import ( + ConsumerFactExportReport, + validate_consumer_fact_contract, + write_consumer_facts_jsonl, +) +from arch.core import AggregateFact, ValidationReport, validate_facts +from arch.database import ArchDbBuildReport, build_arch_db +from arch.mirror import ( + ArchMirrorExportReport, + SupabaseMirrorLoadReport, + export_arch_db_tables, + load_supabase_mirror, +) +from arch.pe_source_plan import ( + PeSourcePlanReport, + build_pe_source_plan, + write_pe_source_plan_json, + write_pe_source_plan_markdown, +) +from arch.sources.cells import ( + SourceCell, + SourceCellReport, + load_source_cells_jsonl, + save_source_cells_jsonl, + validate_source_cells, +) +from arch.sources.rows import ( + SourceRow, + SourceRowReport, + load_source_rows_jsonl, + save_source_rows_jsonl, + validate_source_rows, +) +from arch.source_package import ( + SourcePackageScaffoldReport, + SourcePackageValidationReport, + scaffold_source_package, + validate_source_package, +) +from arch.store import load_facts_jsonl, save_facts_jsonl +from arch.suite import BuildSuiteReport, build_source_suite + +FIXTURE_FACTS_PATH = Path(__file__).with_name("fixtures") / "facts.jsonl" +FIXTURE_SOURCE_CELLS_PATH = ( + Path(__file__).with_name("fixtures") + / "source_cells" + / "soi_table_1_1_2023_cells.jsonl" +) +FIXTURE_BUILDERS = { + "soi-table-1-1": "arch.jurisdictions.us.soi", + "soi-table-1-4": "arch.jurisdictions.us.soi", +} + + +def validate_fact_file(path: str | Path) -> ValidationReport: + """Validate a fact JSONL file.""" + return validate_facts(load_facts_jsonl(path)) + + +def validate_fixture_facts() -> ValidationReport: + """Validate the bundled fixture fact set.""" + return validate_fact_file(FIXTURE_FACTS_PATH) + + +def build_fixture_facts(source: str, *, year: int) -> list[AggregateFact]: + """Build fixture aggregate facts from a supported source parser.""" + if source == "soi-table-1-1": + from arch.jurisdictions.us.soi import build_soi_table_1_1_facts + + return build_soi_table_1_1_facts(year) + if source == "soi-table-1-4": + from arch.jurisdictions.us.soi import build_soi_table_1_4_facts + + return build_soi_table_1_4_facts(year) + raise ValueError(f"Unsupported fixture fact source: {source}") + + +def build_fixture_fact_file( + source: str, + output: str | Path, + *, + year: int, +) -> ValidationReport: + """Build, save, and validate a fixture fact file.""" + facts = build_fixture_facts(source, year=year) + save_facts_jsonl(facts, output) + return validate_facts(facts) + + +def validate_source_cell_file(path: str | Path) -> SourceCellReport: + """Validate a source-cell JSONL file.""" + return validate_source_cells(load_source_cells_jsonl(path)) + + +def validate_source_row_file(path: str | Path) -> SourceRowReport: + """Validate a source-row JSONL file.""" + return validate_source_rows(load_source_rows_jsonl(path)) + + +def validate_fixture_source_cells() -> SourceCellReport: + """Validate the bundled source-cell fixture.""" + return validate_source_cell_file(FIXTURE_SOURCE_CELLS_PATH) + + +def build_fixture_source_cells(source: str, *, year: int) -> list[SourceCell]: + """Build source-cell fixture records from a supported parser.""" + if source == "soi-table-1-1": + from arch.jurisdictions.us.soi import build_soi_table_1_1_source_cells + + return build_soi_table_1_1_source_cells(year) + if source == "soi-table-1-4": + from arch.jurisdictions.us.soi import build_soi_table_1_4_source_cells + + return build_soi_table_1_4_source_cells(year) + raise ValueError(f"Unsupported source-cell fixture source: {source}") + + +def build_fixture_source_rows(source: str, *, year: int) -> list[SourceRow]: + """Build source-row fixture records from a supported parser.""" + package = None + try: + from arch.source_package import load_source_package + + package = load_source_package(source) + except FileNotFoundError: + package = None + if package is not None: + return package.build_source_rows(year) + raise ValueError(f"Unsupported source-row fixture source: {source}") + + +def build_fixture_source_cell_file( + source: str, + output: str | Path, + *, + year: int, +) -> SourceCellReport: + """Build, save, and validate source-cell fixture records.""" + cells = build_fixture_source_cells(source, year=year) + save_source_cells_jsonl(cells, output) + return validate_source_cells(cells) + + +def build_fixture_source_row_file( + source: str, + output: str | Path, + *, + year: int, +) -> SourceRowReport: + """Build, save, and validate source-row fixture records.""" + rows = build_fixture_source_rows(source, year=year) + save_source_rows_jsonl(rows, output) + return validate_source_rows(rows) + + +def build_arch_db_file( + db_path: str | Path, + *, + fact_path: str | Path = FIXTURE_FACTS_PATH, + source_cells_path: str | Path | None = FIXTURE_SOURCE_CELLS_PATH, + source_rows_path: str | Path | None = None, + replace: bool = False, +) -> ArchDbBuildReport: + """Build a relational Arch DB from fact and source-cell JSONL files.""" + facts = load_facts_jsonl(fact_path) + source_cells = ( + load_source_cells_jsonl(source_cells_path) + if source_cells_path is not None + else None + ) + source_rows = ( + load_source_rows_jsonl(source_rows_path) + if source_rows_path is not None + else None + ) + return build_arch_db( + facts, + db_path, + source_cells=source_cells, + source_rows=source_rows, + replace=replace, + ) + + +def export_consumer_fact_file( + output: str | Path, + *, + fact_path: str | Path, +) -> ConsumerFactExportReport: + """Export Arch facts to downstream consumer-contract JSONL.""" + facts = load_facts_jsonl(fact_path) + validation_report = validate_facts(facts) + if not validation_report.valid: + raise ValueError("Cannot export invalid Arch facts to consumer contract.") + contract_report = validate_consumer_fact_contract(facts) + if not contract_report.valid: + raise ValueError("Cannot export invalid Arch consumer-contract facts.") + return write_consumer_facts_jsonl(facts, output) + + +def validate_concept_alignment_file( + path: str | Path, + *, + axiom_command: list[str] | None = None, + axiom_roots: list[str | Path] | None = None, +) -> ConceptAlignmentReport: + """Validate concept alignments in a fact JSONL file.""" + return validate_concept_alignments( + load_facts_jsonl(path), + axiom_command=axiom_command, + axiom_roots=axiom_roots or (), + ) + + +def build_source_suite_dir( + source: str | Path, + output_dir: str | Path, + *, + year: int, + axiom_command: list[str] | None = None, + axiom_roots: list[str | Path] | None = None, + require_axiom_validation: bool = False, + replace: bool = False, +) -> BuildSuiteReport: + """Build a complete source-package suite directory.""" + return build_source_suite( + source, + output_dir, + year=year, + axiom_command=axiom_command, + axiom_roots=axiom_roots or (), + require_axiom_validation=require_axiom_validation, + replace=replace, + ) + + +def build_bundle_dir( + output_dir: str | Path, + *, + year: int, + sources: list[str | Path] | None = None, + axiom_command: list[str] | None = None, + axiom_roots: list[str | Path] | None = None, + require_axiom_validation: bool = False, + replace: bool = False, +) -> BuildBundleReport: + """Build a merged Arch consumer bundle from source-package suites.""" + return build_bundle( + output_dir, + year=year, + sources=sources, + axiom_command=axiom_command, + axiom_roots=axiom_roots or (), + require_axiom_validation=require_axiom_validation, + replace=replace, + ) + + +def validate_source_package_dir( + source: str | Path, + *, + year: int, +) -> SourcePackageValidationReport: + """Validate a declarative source package before running the build suite.""" + return validate_source_package(source, year=year) + + +def scaffold_source_package_dir( + output_dir: str | Path, + *, + source_id: str, + package_id: str, + source_table: str | None = None, + resource_package: str = "db", + resource_directory: str | None = None, + manifest: str = "manifest.yaml", + replace_existing: bool = False, +) -> SourcePackageScaffoldReport: + """Write a starter source package directory.""" + return scaffold_source_package( + output_dir, + source_id=source_id, + package_id=package_id, + source_table=source_table, + resource_package=resource_package, + resource_directory=resource_directory, + manifest=manifest, + replace_existing=replace_existing, + ) + + +def fetch_artifact_file( + source_url: str, + *, + source_id: str, + package_id: str, + year: int, + output_dir: str | Path, + dataset: str | None = None, + source_page: str | None = None, + table: str | None = None, + filename: str | None = None, + upload_r2: bool = False, + r2_bucket: str = "arch-raw", + r2_prefix: str = "raw", + wrangler_command: str = "npx wrangler", +) -> ArtifactFetchReport: + """Fetch/register a raw source artifact and optionally upload it to R2.""" + return fetch_source_artifact( + source_url, + source_id=source_id, + package_id=package_id, + year=year, + output_dir=output_dir, + dataset=dataset, + source_page=source_page, + table=table, + filename=filename, + upload_r2=upload_r2, + r2_bucket=r2_bucket, + r2_prefix=r2_prefix, + wrangler_command=wrangler_command, + ) + + +def inventory_artifact_files( + root: str | Path, + *, + manifest_filename: str = "manifest.yaml", +) -> ArtifactInventoryReport: + """Inventory local manifest-declared source artifacts.""" + return inventory_source_artifacts(root, manifest_filename=manifest_filename) + + +def publish_raw_artifact_files( + root: str | Path, + *, + manifest_filename: str = "manifest.yaml", + source_id: str | None = None, + package_id: str | None = None, + r2_bucket: str = "arch-raw", + r2_prefix: str = "raw", + wrangler_command: str = "npx wrangler", +) -> RawArtifactPublishReport: + """Publish manifest-declared raw source artifacts to R2.""" + return publish_source_artifacts( + root, + manifest_filename=manifest_filename, + source_id=source_id, + package_id=package_id, + r2_bucket=r2_bucket, + r2_prefix=r2_prefix, + wrangler_command=wrangler_command, + ) + + +def bootstrap_r2_storage( + *, + raw_bucket: str = "arch-raw", + derived_bucket: str = "arch-derived", + wrangler_command: str = "npx wrangler", +) -> R2BootstrapReport: + """Create Arch R2 buckets when Wrangler is authenticated.""" + return bootstrap_r2_buckets( + raw_bucket=raw_bucket, + derived_bucket=derived_bucket, + wrangler_command=wrangler_command, + ) + + +def publish_derived_artifact_files( + input_dir: str | Path, + *, + source_id: str, + package_id: str, + year: int, + build_id: str | None = None, + r2_bucket: str = "arch-derived", + r2_prefix: str = "derived", + wrangler_command: str = "npx wrangler", + build_artifacts_output: str | Path | None = None, +) -> DerivedArtifactPublishReport: + """Publish deterministic build outputs to the derived R2 bucket.""" + return publish_derived_artifacts( + input_dir, + source_id=source_id, + package_id=package_id, + year=year, + build_id=build_id, + r2_bucket=r2_bucket, + r2_prefix=r2_prefix, + wrangler_command=wrangler_command, + build_artifacts_output=build_artifacts_output, + ) + + +def export_arch_db_table_files( + db_path: str | Path, + output_dir: str | Path, + *, + replace: bool = False, +) -> ArchMirrorExportReport: + """Export local Arch DB tables to bulk-loadable JSONL files.""" + return export_arch_db_tables(db_path, output_dir, replace=replace) + + +def load_supabase_mirror_files( + input_dir: str | Path, + *, + schema: str = "arch", + batch_size: int = 500, + dry_run: bool = False, + build_artifacts_path: str | Path | None = None, +) -> SupabaseMirrorLoadReport: + """Load exported Arch JSONL mirror files into Supabase/Postgres.""" + table_paths = ( + {"build_artifacts": Path(build_artifacts_path)} + if build_artifacts_path is not None + else None + ) + return load_supabase_mirror( + input_dir, + schema=schema, + batch_size=batch_size, + dry_run=dry_run, + table_paths=table_paths, + ) + + +def plan_pe_source_files( + manifest_path: str | Path, + *, + output_path: str | Path | None = None, + markdown_path: str | Path | None = None, + batch_size: int = 10, + max_items: int | None = None, + source_package_root: str | Path | None = "packages", +) -> PeSourcePlanReport: + """Build and optionally write an agent PE source migration plan.""" + report = build_pe_source_plan( + manifest_path, + batch_size=batch_size, + max_items=max_items, + source_package_root=source_package_root, + ) + if output_path is not None: + write_pe_source_plan_json(report, output_path) + if markdown_path is not None: + write_pe_source_plan_markdown(report, markdown_path) + return report + + +def main(argv: list[str] | None = None) -> int: + """Run the harness CLI.""" + parser = argparse.ArgumentParser(description="Arch fact validation harness") + subparsers = parser.add_subparsers(dest="command", required=True) + + validate_parser = subparsers.add_parser( + "validate-facts", + help="Validate an Arch fact JSONL file", + ) + input_group = validate_parser.add_mutually_exclusive_group() + input_group.add_argument( + "--input", + type=Path, + help="Path to an Arch fact JSONL file", + ) + input_group.add_argument( + "--fixture", + action="store_true", + help="Validate the bundled fixture fact set", + ) + + source_validate_parser = subparsers.add_parser( + "validate-source-cells", + help="Validate an Arch source-cell JSONL file", + ) + source_input_group = source_validate_parser.add_mutually_exclusive_group() + source_input_group.add_argument( + "--input", + type=Path, + help="Path to an Arch source-cell JSONL file", + ) + source_input_group.add_argument( + "--fixture", + action="store_true", + help="Validate the bundled source-cell fixture", + ) + + source_row_validate_parser = subparsers.add_parser( + "validate-source-rows", + help="Validate an Arch source-row JSONL file", + ) + source_row_validate_parser.add_argument( + "--input", + type=Path, + required=True, + help="Path to an Arch source-row JSONL file", + ) + + build_parser = subparsers.add_parser( + "build-fixture-facts", + help="Build a tiny source-backed Arch fact JSONL file", + ) + build_parser.add_argument( + "source", + choices=sorted(FIXTURE_BUILDERS), + help="Source parser to use", + ) + build_parser.add_argument( + "--year", + type=int, + default=2023, + help="Source year to build", + ) + build_parser.add_argument( + "--output", + type=Path, + required=True, + help="Path to write fact JSONL", + ) + + source_build_parser = subparsers.add_parser( + "build-source-cells", + help="Build whole-artifact Arch source-cell JSONL records", + ) + source_build_parser.add_argument( + "source", + choices=sorted(FIXTURE_BUILDERS), + help="Source parser to use", + ) + source_build_parser.add_argument( + "--year", + type=int, + default=2023, + help="Source year to build", + ) + source_build_parser.add_argument( + "--output", + type=Path, + required=True, + help="Path to write source-cell JSONL", + ) + + source_row_build_parser = subparsers.add_parser( + "build-source-rows", + help="Build full-document Arch source-row JSONL records", + ) + source_row_build_parser.add_argument( + "source", + help="Source package alias, package directory, or source_package.yaml path", + ) + source_row_build_parser.add_argument( + "--year", + type=int, + default=2023, + help="Source year to build", + ) + source_row_build_parser.add_argument( + "--output", + type=Path, + required=True, + help="Path to write source-row JSONL", + ) + + db_parser = subparsers.add_parser( + "build-db", + help="Build a relational Arch DB artifact", + ) + db_input_group = db_parser.add_mutually_exclusive_group() + db_input_group.add_argument( + "--input", + type=Path, + help="Path to an Arch fact JSONL file", + ) + db_input_group.add_argument( + "--fixture", + action="store_true", + help="Build from bundled fixture facts and source cells", + ) + db_parser.add_argument( + "--source-cells", + type=Path, + help="Optional source-cell JSONL file to include", + ) + db_parser.add_argument( + "--source-rows", + type=Path, + help="Optional source-row JSONL file to include", + ) + db_parser.add_argument( + "--db", + type=Path, + required=True, + help="SQLite Arch DB path to write", + ) + db_parser.add_argument( + "--replace", + action="store_true", + help="Replace an existing DB at --db", + ) + + consumer_parser = subparsers.add_parser( + "export-consumer-facts", + help="Export Arch facts to downstream consumer-contract JSONL", + ) + consumer_input_group = consumer_parser.add_mutually_exclusive_group() + consumer_input_group.add_argument( + "--input", + type=Path, + help="Path to an Arch fact JSONL file", + ) + consumer_input_group.add_argument( + "--fixture", + action="store_true", + help="Export the bundled fixture fact set", + ) + consumer_parser.add_argument( + "--output", + type=Path, + required=True, + help="Path to write consumer-contract JSONL", + ) + + suite_parser = subparsers.add_parser( + "build-suite", + help="Build source cells, facts, DB, and JSON reports for a source", + ) + suite_parser.add_argument( + "source", + help="Source package alias, package directory, or source_package.yaml path", + ) + suite_parser.add_argument( + "--year", + type=int, + default=2023, + help="Source year to build", + ) + suite_parser.add_argument( + "--out", + type=Path, + required=True, + help="Output directory for suite artifacts and reports", + ) + suite_parser.add_argument( + "--replace", + action="store_true", + help="Replace an existing nonempty output directory", + ) + suite_parser.add_argument( + "--axiom-cli", + help=( + "Optional Axiom command, e.g. `axiom` or " + "`uv run --with-editable . axiom`." + ), + ) + suite_parser.add_argument( + "--axiom-root", + action="append", + default=[], + help="RuleSpec repo root to pass to the Axiom concepts validator.", + ) + suite_parser.add_argument( + "--require-axiom-validation", + action="store_true", + help="Fail agent acceptance unless every canonical concept is checked.", + ) + + bundle_parser = subparsers.add_parser( + "build-bundle", + help="Build source-package suites and merge consumer-contract facts", + ) + bundle_parser.add_argument( + "--year", + type=int, + default=2023, + help="Source year to build", + ) + bundle_parser.add_argument( + "--source", + action="append", + default=None, + help=( + "Source package alias, package directory, or source_package.yaml " + "path. May be repeated. Defaults to available packages for --year." + ), + ) + bundle_parser.add_argument( + "--out", + type=Path, + required=True, + help="Output directory for merged bundle artifacts and reports", + ) + bundle_parser.add_argument( + "--replace", + action="store_true", + help="Replace an existing nonempty output directory", + ) + bundle_parser.add_argument( + "--axiom-cli", + help=( + "Optional Axiom command, e.g. `axiom` or " + "`uv run --with-editable . axiom`." + ), + ) + bundle_parser.add_argument( + "--axiom-root", + action="append", + default=[], + help="RuleSpec repo root to pass to the Axiom concepts validator.", + ) + bundle_parser.add_argument( + "--require-axiom-validation", + action="store_true", + help="Fail agent acceptance unless every canonical concept is checked.", + ) + + package_validate_parser = subparsers.add_parser( + "validate-package", + help="Validate a declarative Arch source package", + ) + package_validate_parser.add_argument( + "source", + help="Source package alias, package directory, or source_package.yaml path", + ) + package_validate_parser.add_argument( + "--year", + type=int, + default=2023, + help="Source year to validate", + ) + + scaffold_parser = subparsers.add_parser( + "scaffold-package", + help="Write a starter declarative source package", + ) + scaffold_parser.add_argument( + "--source-id", + required=True, + help="Stable source ID, such as irs_soi", + ) + scaffold_parser.add_argument( + "--package-id", + required=True, + help="Stable package ID, such as soi-table-1-2", + ) + scaffold_parser.add_argument( + "--out", + type=Path, + required=True, + help="Output package directory", + ) + scaffold_parser.add_argument( + "--source-table", + help="Human-readable source table title", + ) + scaffold_parser.add_argument( + "--resource-package", + default="db", + help="Python package that contains source artifacts", + ) + scaffold_parser.add_argument( + "--resource-directory", + help="Resource directory containing manifest and artifacts", + ) + scaffold_parser.add_argument( + "--manifest", + default="manifest.yaml", + help="Artifact manifest filename", + ) + scaffold_parser.add_argument( + "--replace", + action="store_true", + help="Replace an existing source_package.yaml", + ) + + artifact_parser = subparsers.add_parser( + "fetch-artifact", + help="Fetch/register a raw source artifact and update manifest.yaml", + ) + artifact_parser.add_argument( + "--url", + required=True, + help="Publisher URL, file:// URL, or local path for the artifact", + ) + artifact_parser.add_argument( + "--source-id", + required=True, + help="Stable source ID, such as irs_soi", + ) + artifact_parser.add_argument( + "--package-id", + required=True, + help="Stable package ID, such as soi-table-1-2", + ) + artifact_parser.add_argument( + "--year", + type=int, + required=True, + help="Artifact vintage year to record in manifest.yaml", + ) + artifact_parser.add_argument( + "--out-dir", + type=Path, + required=True, + help="Directory where the raw artifact and manifest.yaml should live", + ) + artifact_parser.add_argument( + "--dataset", + help="Manifest dataset ID. Defaults to _.", + ) + artifact_parser.add_argument( + "--source-page", + help="Publisher landing page. Defaults to --url.", + ) + artifact_parser.add_argument( + "--table", + help="Human-readable source table title. Defaults to --package-id.", + ) + artifact_parser.add_argument( + "--filename", + help="Override artifact filename inferred from URL/path.", + ) + artifact_parser.add_argument( + "--upload-r2", + action="store_true", + help="Upload the artifact to R2 after local checksum capture.", + ) + artifact_parser.add_argument( + "--r2-bucket", + default="arch-raw", + help="R2 bucket for raw artifacts when --upload-r2 is set.", + ) + artifact_parser.add_argument( + "--r2-prefix", + default="raw", + help="R2 key prefix for raw artifacts.", + ) + artifact_parser.add_argument( + "--wrangler-command", + default="npx wrangler", + help="Wrangler command prefix to use for R2 uploads.", + ) + + artifact_inventory_parser = subparsers.add_parser( + "inventory-artifacts", + help="Inventory local manifest-declared source artifacts", + ) + artifact_inventory_parser.add_argument( + "--root", + type=Path, + default=Path("db/data"), + help="Root directory to scan for manifest.yaml files.", + ) + artifact_inventory_parser.add_argument( + "--manifest", + default="manifest.yaml", + help="Manifest filename to scan for.", + ) + + raw_publish_parser = subparsers.add_parser( + "publish-raw", + help="Upload manifest-declared raw source artifacts to arch-raw R2", + ) + raw_publish_parser.add_argument( + "--root", + type=Path, + default=Path("db/data"), + help="Root directory to scan for manifest.yaml files.", + ) + raw_publish_parser.add_argument( + "--manifest", + default="manifest.yaml", + help="Manifest filename to scan for.", + ) + raw_publish_parser.add_argument( + "--source-id", + help="Override manifest source_id for scanned artifacts.", + ) + raw_publish_parser.add_argument( + "--package-id", + help="Override manifest package_id for scanned artifacts.", + ) + raw_publish_parser.add_argument( + "--r2-bucket", + default="arch-raw", + help="R2 bucket for immutable raw artifacts.", + ) + raw_publish_parser.add_argument( + "--r2-prefix", + default="raw", + help="R2 key prefix for raw artifacts.", + ) + raw_publish_parser.add_argument( + "--wrangler-command", + default="npx wrangler", + help="Wrangler command prefix to use for R2 uploads.", + ) + + r2_parser = subparsers.add_parser( + "bootstrap-r2", + help="Create Arch R2 buckets when Wrangler is authenticated", + ) + r2_parser.add_argument( + "--raw-bucket", + default="arch-raw", + help="R2 bucket name for immutable raw source artifacts.", + ) + r2_parser.add_argument( + "--derived-bucket", + default="arch-derived", + help="R2 bucket name for derived Arch build artifacts.", + ) + r2_parser.add_argument( + "--wrangler-command", + default="npx wrangler", + help="Wrangler command prefix.", + ) + + derived_publish_parser = subparsers.add_parser( + "publish-derived", + help="Upload deterministic Arch build outputs to arch-derived R2", + ) + derived_publish_parser.add_argument( + "--dir", + type=Path, + required=True, + help="Build output directory, such as a build-suite output directory.", + ) + derived_publish_parser.add_argument( + "--source-id", + required=True, + help="Stable source ID, such as irs_soi.", + ) + derived_publish_parser.add_argument( + "--package-id", + required=True, + help="Stable package ID, such as soi-table-1-1.", + ) + derived_publish_parser.add_argument( + "--year", + type=int, + required=True, + help="Source/build year.", + ) + derived_publish_parser.add_argument( + "--build-id", + help="Build ID. Defaults to the ID inferred from reports or arch.db.", + ) + derived_publish_parser.add_argument( + "--r2-bucket", + default="arch-derived", + help="R2 bucket for derived build artifacts.", + ) + derived_publish_parser.add_argument( + "--r2-prefix", + default="derived", + help="R2 key prefix for derived build artifacts.", + ) + derived_publish_parser.add_argument( + "--wrangler-command", + default="npx wrangler", + help="Wrangler command prefix to use for R2 uploads.", + ) + derived_publish_parser.add_argument( + "--build-artifacts-out", + type=Path, + help="Optional path to write build_artifacts JSONL rows.", + ) + + mirror_export_parser = subparsers.add_parser( + "export-db-tables", + help="Export an Arch SQLite DB artifact to per-table JSONL files", + ) + mirror_export_parser.add_argument( + "--db", + type=Path, + required=True, + help="SQLite Arch DB path to export", + ) + mirror_export_parser.add_argument( + "--out", + type=Path, + required=True, + help="Output directory for JSONL tables and manifest", + ) + mirror_export_parser.add_argument( + "--replace", + action="store_true", + help="Replace an existing nonempty output directory", + ) + + mirror_load_parser = subparsers.add_parser( + "load-supabase-mirror", + help="Load exported Arch JSONL mirror files into Supabase/Postgres", + ) + mirror_load_parser.add_argument( + "--dir", + type=Path, + required=True, + help="Directory containing exported per-table JSONL files.", + ) + mirror_load_parser.add_argument( + "--schema", + default="arch", + help="Supabase/Postgres schema to load into.", + ) + mirror_load_parser.add_argument( + "--batch-size", + type=int, + default=500, + help="Rows per Supabase upsert batch.", + ) + mirror_load_parser.add_argument( + "--dry-run", + action="store_true", + help="Count rows and validate files without writing to Supabase.", + ) + mirror_load_parser.add_argument( + "--build-artifacts", + type=Path, + help="Optional build_artifacts JSONL path to use instead of the file in --dir.", + ) + + pe_plan_parser = subparsers.add_parser( + "plan-pe-sources", + help="Build an agent batch plan from a PE source manifest CSV", + ) + pe_plan_parser.add_argument( + "--manifest", + type=Path, + default=Path("docs/pe-us-source-manifest.csv"), + help="PE source manifest CSV path.", + ) + pe_plan_parser.add_argument( + "--out", + type=Path, + help="Optional JSON report path to write.", + ) + pe_plan_parser.add_argument( + "--markdown", + type=Path, + help="Optional Markdown report path to write.", + ) + pe_plan_parser.add_argument( + "--batch-size", + type=int, + default=10, + help="Maximum work items per generated batch.", + ) + pe_plan_parser.add_argument( + "--max-items", + type=int, + help="Optional cap for a preview plan.", + ) + pe_plan_parser.add_argument( + "--source-package-root", + type=Path, + default=Path("packages"), + help="Existing source-package root used to mark covered artifacts.", + ) + + concept_parser = subparsers.add_parser( + "validate-concept-alignments", + help="Validate source-to-canonical concept alignments", + ) + concept_input_group = concept_parser.add_mutually_exclusive_group() + concept_input_group.add_argument( + "--input", + type=Path, + help="Path to an Arch fact JSONL file", + ) + concept_input_group.add_argument( + "--fixture", + action="store_true", + help="Validate concept alignments in the bundled fixture fact set", + ) + concept_parser.add_argument( + "--axiom-cli", + help=( + "Optional Axiom command, e.g. `axiom` or " + "`uv run --with-editable . axiom`." + ), + ) + concept_parser.add_argument( + "--axiom-root", + action="append", + default=[], + help="RuleSpec repo root to pass to the Axiom concepts validator.", + ) + + args = parser.parse_args(argv) + + if args.command == "validate-facts": + path = FIXTURE_FACTS_PATH if args.fixture or not args.input else args.input + report = validate_fact_file(path) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "validate-source-cells": + path = ( + FIXTURE_SOURCE_CELLS_PATH + if args.fixture or not args.input + else args.input + ) + report = validate_source_cell_file(path) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "validate-source-rows": + report = validate_source_row_file(args.input) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "build-fixture-facts": + report = build_fixture_fact_file(args.source, args.output, year=args.year) + payload = {"output": str(args.output), **report.to_dict()} + print(json.dumps(payload, indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "build-source-cells": + report = build_fixture_source_cell_file( + args.source, + args.output, + year=args.year, + ) + payload = {"output": str(args.output), **report.to_dict()} + print(json.dumps(payload, indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "build-source-rows": + report = build_fixture_source_row_file( + args.source, + args.output, + year=args.year, + ) + payload = {"output": str(args.output), **report.to_dict()} + print(json.dumps(payload, indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "build-db": + fact_path = FIXTURE_FACTS_PATH if args.fixture or not args.input else args.input + source_cells_path = args.source_cells + if args.fixture and source_cells_path is None: + source_cells_path = FIXTURE_SOURCE_CELLS_PATH + report = build_arch_db_file( + args.db, + fact_path=fact_path, + source_cells_path=source_cells_path, + source_rows_path=args.source_rows, + replace=args.replace, + ) + payload = {"db": str(args.db), **report.to_dict()} + print(json.dumps(payload, indent=2, sort_keys=True)) + return 0 + if args.command == "export-consumer-facts": + fact_path = FIXTURE_FACTS_PATH if args.fixture or not args.input else args.input + facts = load_facts_jsonl(fact_path) + validation_report = validate_facts(facts) + contract_report = validate_consumer_fact_contract(facts) + if not validation_report.valid or not contract_report.valid: + print( + json.dumps( + { + "valid": False, + "output": str(args.output), + "source_validation": validation_report.to_dict(), + "contract_validation": contract_report.to_dict(), + }, + indent=2, + sort_keys=True, + ) + ) + return 1 + report = write_consumer_facts_jsonl(facts, args.output) + print( + json.dumps( + { + "valid": True, + **report.to_dict(), + "source_validation": validation_report.to_dict(), + "contract_validation": contract_report.to_dict(), + }, + indent=2, + sort_keys=True, + ) + ) + return 0 + if args.command == "build-suite": + axiom_command = shlex.split(args.axiom_cli) if args.axiom_cli else None + report = build_source_suite_dir( + args.source, + args.out, + year=args.year, + axiom_command=axiom_command, + axiom_roots=args.axiom_root, + require_axiom_validation=args.require_axiom_validation, + replace=args.replace, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "build-bundle": + axiom_command = shlex.split(args.axiom_cli) if args.axiom_cli else None + report = build_bundle_dir( + args.out, + year=args.year, + sources=args.source, + axiom_command=axiom_command, + axiom_roots=args.axiom_root, + require_axiom_validation=args.require_axiom_validation, + replace=args.replace, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "validate-package": + report = validate_source_package_dir(args.source, year=args.year) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "scaffold-package": + report = scaffold_source_package_dir( + args.out, + source_id=args.source_id, + package_id=args.package_id, + source_table=args.source_table, + resource_package=args.resource_package, + resource_directory=args.resource_directory, + manifest=args.manifest, + replace_existing=args.replace, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 + if args.command == "fetch-artifact": + report = fetch_artifact_file( + args.url, + source_id=args.source_id, + package_id=args.package_id, + year=args.year, + output_dir=args.out_dir, + dataset=args.dataset, + source_page=args.source_page, + table=args.table, + filename=args.filename, + upload_r2=args.upload_r2, + r2_bucket=args.r2_bucket, + r2_prefix=args.r2_prefix, + wrangler_command=args.wrangler_command, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "inventory-artifacts": + report = inventory_artifact_files( + args.root, + manifest_filename=args.manifest, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "publish-raw": + report = publish_raw_artifact_files( + args.root, + manifest_filename=args.manifest, + source_id=args.source_id, + package_id=args.package_id, + r2_bucket=args.r2_bucket, + r2_prefix=args.r2_prefix, + wrangler_command=args.wrangler_command, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "bootstrap-r2": + report = bootstrap_r2_storage( + raw_bucket=args.raw_bucket, + derived_bucket=args.derived_bucket, + wrangler_command=args.wrangler_command, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "publish-derived": + report = publish_derived_artifact_files( + args.dir, + source_id=args.source_id, + package_id=args.package_id, + year=args.year, + build_id=args.build_id, + r2_bucket=args.r2_bucket, + r2_prefix=args.r2_prefix, + wrangler_command=args.wrangler_command, + build_artifacts_output=args.build_artifacts_out, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "export-db-tables": + report = export_arch_db_table_files( + args.db, + args.out, + replace=args.replace, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 + if args.command == "load-supabase-mirror": + report = load_supabase_mirror_files( + args.dir, + schema=args.schema, + batch_size=args.batch_size, + dry_run=args.dry_run, + build_artifacts_path=args.build_artifacts, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + if args.command == "plan-pe-sources": + report = plan_pe_source_files( + args.manifest, + output_path=args.out, + markdown_path=args.markdown, + batch_size=args.batch_size, + max_items=args.max_items, + source_package_root=args.source_package_root, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 + if args.command == "validate-concept-alignments": + path = FIXTURE_FACTS_PATH if args.fixture or not args.input else args.input + axiom_command = shlex.split(args.axiom_cli) if args.axiom_cli else None + report = validate_concept_alignment_file( + path, + axiom_command=axiom_command, + axiom_roots=args.axiom_root, + ) + print(json.dumps(report.to_dict(), indent=2, sort_keys=True)) + return 0 if report.valid else 1 + raise ValueError(f"Unsupported command: {args.command}") + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/arch/jurisdictions/us/soi.py b/arch/jurisdictions/us/soi.py new file mode 100644 index 0000000..8eaf9ae --- /dev/null +++ b/arch/jurisdictions/us/soi.py @@ -0,0 +1,417 @@ +"""IRS SOI fact builders for Arch.""" + +from __future__ import annotations + +from importlib.resources import files + +import yaml + +from arch.core import ( + Aggregation, + AggregateConstraint, + EntityDimension, + GeographyDimension, + Measure, + PeriodDimension, + SourceProvenance, + AggregateFact, +) +from arch.source_package import load_source_package +from arch.sources.cells import SourceCell +from arch.sources.specs import ( + CellSelectorSpec, + SourceRecord, + SourceRegionSpec, + SourceRecordSetSpec, + SourceRecordSpec, +) +from db.etl_soi import AGI_BRACKETS, TABLE_1_1_AGI_LABEL_TO_BRACKET + +SOI_TABLE_1_1_SOURCE_NAME = "irs_soi" +SOI_TABLE_1_1_SOURCE_TABLE = "Publication 1304 Table 1.1" +SOI_TABLE_1_4_SOURCE_TABLE = "Publication 1304 Table 1.4" +SOI_TABLE_1_1_EXTRACTION_DATE = "2026-05-04" +SOI_TABLE_1_1_PACKAGE_DIR = "data/irs_soi/table_1_1" +SOI_TABLE_1_4_PACKAGE_DIR = "data/irs_soi/table_1_4" +SOI_TABLE_1_1_MANIFEST = "manifest.yaml" +SOI_TABLE_1_4_MANIFEST = "manifest.yaml" +AXIOM_IRC_AGI_CONCEPT = "us:statutes/26/62#adjusted_gross_income" +IRS_SOI_AGI_SOURCE_CONCEPT = "irs_soi.adjusted_gross_income" +IRS_SOI_TOTAL_WAGES_SOURCE_CONCEPT = "irs_soi.total_wages" +IRS_SOI_TOTAL_WAGES_RETURNS_SOURCE_CONCEPT = "irs_soi.returns_with_total_wages" +AGI_CONCEPT_EVIDENCE_URL = ( + "https://uscode.house.gov/view.xhtml?" + "req=(title:26%20section:62%20edition:prelim)" +) +AGI_CONCEPT_EVIDENCE_NOTES = ( + "IRS SOI Table 1.1 reports adjusted gross income for individual income tax " + "returns; IRC section 62 defines adjusted gross income. This Arch assertion " + "treats the SOI AGI column as exactly adopting that legal concept for the " + "tax-year source record." +) + + +def build_soi_table_1_1_facts(year: int = 2023) -> list[AggregateFact]: + """Build source-lineaged Arch facts from SOI Table 1.1.""" + return load_source_package("soi-table-1-1").build_facts(year) + + +def build_soi_table_1_4_facts(year: int = 2023) -> list[AggregateFact]: + """Build source-lineaged Arch facts from SOI Table 1.4.""" + return load_source_package("soi-table-1-4").build_facts(year) + + +def build_soi_table_1_1_source_cells(year: int = 2023) -> list[SourceCell]: + """Build whole-workbook source cells from SOI Table 1.1.""" + return load_source_package("soi-table-1-1").build_source_cells(year) + + +def build_soi_table_1_4_source_cells(year: int = 2023) -> list[SourceCell]: + """Build whole-workbook source cells from SOI Table 1.4.""" + return load_source_package("soi-table-1-4").build_source_cells(year) + + +def build_soi_table_1_1_source_records( + year: int = 2023, + *, + cells: list[SourceCell] | None = None, +) -> list[SourceRecord]: + """Resolve SOI Table 1.1 source records from cell selector specs.""" + return load_source_package("soi-table-1-1").build_source_records( + year, + cells=cells, + ) + + +def build_soi_table_1_4_source_records( + year: int = 2023, + *, + cells: list[SourceCell] | None = None, +) -> list[SourceRecord]: + """Resolve SOI Table 1.4 source records from cell selector specs.""" + return load_source_package("soi-table-1-4").build_source_records( + year, + cells=cells, + ) + + +def build_soi_table_1_1_source_record_specs( + year: int = 2023, +) -> list[SourceRecordSpec]: + """Build atomic source-record specs from a compact Table 1.1 set spec.""" + return load_source_package("soi-table-1-1").build_source_record_specs(year) + + +def build_soi_table_1_4_source_record_specs( + year: int = 2023, +) -> list[SourceRecordSpec]: + """Build atomic source-record specs from a compact Table 1.4 set spec.""" + return load_source_package("soi-table-1-4").build_source_record_specs(year) + + +def build_soi_table_1_1_source_region_specs( + year: int = 2023, +) -> list[SourceRegionSpec]: + """Build source-region specs for selected SOI Table 1.1 cells.""" + return load_source_package("soi-table-1-1").build_source_regions(year) + + +def build_soi_table_1_4_source_region_specs( + year: int = 2023, +) -> list[SourceRegionSpec]: + """Build source-region specs for selected SOI Table 1.4 cells.""" + return load_source_package("soi-table-1-4").build_source_regions(year) + + +def build_soi_table_1_1_source_record_set_spec( + year: int = 2023, +) -> SourceRecordSetSpec: + """Build compact row-by-measure authoring spec for SOI Table 1.1.""" + return load_source_package("soi-table-1-1").build_source_record_set_specs(year)[0] + + +def build_soi_table_1_4_source_record_set_spec( + year: int = 2023, +) -> SourceRecordSetSpec: + """Build compact row-by-measure authoring spec for Table 1.4 wages.""" + return load_source_package("soi-table-1-4").build_source_record_set_specs(year)[0] + + +def _legacy_soi_table_1_1_source_record_specs( + year: int = 2023, +) -> list[SourceRecordSpec]: + """Build the pre-record-set SOI specs for compiler parity tests.""" + rows: list[tuple[str, int, str, dict[str, str | int]]] = [ + ("all", 10, "All returns", _all_returns_filters()) + ] + for index, (source_label, bracket_name) in enumerate( + TABLE_1_1_AGI_LABEL_TO_BRACKET.items(), + start=11, + ): + lower, upper = AGI_BRACKETS[bracket_name] + rows.append( + ( + bracket_name, + index, + source_label, + _agi_bracket_filters(bracket_name, lower, upper), + ) + ) + + specs = [] + for range_id, row_number, row_label, filters in rows: + specs.extend( + [ + _legacy_source_record_spec( + year=year, + range_id=range_id, + row_number=row_number, + row_label=row_label, + column="B", + measure_id="return_count", + concept="irs_soi.individual_income_tax_returns", + unit="count", + aggregation="count", + filters=filters, + ), + _legacy_source_record_spec( + year=year, + range_id=range_id, + row_number=row_number, + row_label=row_label, + column="D", + measure_id="adjusted_gross_income", + concept=AXIOM_IRC_AGI_CONCEPT, + unit="usd", + aggregation="sum", + filters=filters, + source_concept=IRS_SOI_AGI_SOURCE_CONCEPT, + concept_relation="exact", + concept_authority="arch-us", + concept_evidence_url=AGI_CONCEPT_EVIDENCE_URL, + concept_evidence_notes=AGI_CONCEPT_EVIDENCE_NOTES, + legal_vintage=f"tax_year_{year}", + value_scale=1_000, + ), + _legacy_source_record_spec( + year=year, + range_id=range_id, + row_number=row_number, + row_label=row_label, + column="Q", + measure_id="total_income_tax", + concept="irs_soi.total_income_tax", + unit="usd", + aggregation="sum", + filters=filters, + value_scale=1_000, + ), + _legacy_source_record_spec( + year=year, + range_id=range_id, + row_number=row_number, + row_label=row_label, + column="N", + measure_id="income_tax_after_credits_returns", + concept="irs_soi.returns_with_income_tax_after_credits", + unit="count", + aggregation="count", + filters=filters, + ), + ] + ) + return specs + + +def _fact_from_source_record( + record: SourceRecord, + source: SourceProvenance, +) -> AggregateFact: + spec = record.spec + return AggregateFact( + value=record.value, + period=PeriodDimension(type=spec.period_type, value=spec.period), + geography=GeographyDimension( + level=spec.geography_level, + id=spec.geography_id, + vintage=spec.geography_vintage, + name=spec.geography_name, + ), + entity=EntityDimension(name=spec.entity, role=spec.entity_role), + measure=Measure( + concept=spec.concept, + unit=spec.unit, + source_concept=spec.source_concept, + concept_relation=spec.concept_relation, + concept_authority=spec.concept_authority, + concept_evidence_url=spec.concept_evidence_url, + concept_evidence_notes=spec.concept_evidence_notes, + legal_vintage=spec.legal_vintage, + ), + aggregation=Aggregation(method=spec.aggregation), + source=source, + filters=spec.filters, + domain=spec.domain, + source_record_id=record.source_record_id, + source_cell_keys=record.source_cell_keys, + source_row_keys=record.source_row_keys, + constraints=spec.constraints, + layout=spec.layout, + ) + + +def _legacy_source_record_spec( + *, + year: int, + range_id: str, + row_number: int, + row_label: str, + column: str, + measure_id: str, + concept: str, + unit: str, + aggregation: str, + filters: dict[str, str | int], + source_concept: str | None = None, + concept_relation: str | None = None, + concept_authority: str | None = None, + concept_evidence_url: str | None = None, + concept_evidence_notes: str | None = None, + legal_vintage: str | None = None, + value_scale: int = 1, +) -> SourceRecordSpec: + source_record_id = ( + f"irs_soi.ty{year}.table_1_1.{range_id}.{measure_id}" + ) + return SourceRecordSpec( + source_record_id=source_record_id, + selector=CellSelectorSpec( + selector_id=f"{source_record_id}.selector", + sheet_name="TBL11", + address=f"{column}{row_number}", + expected_cell_type="number", + expected_row_header_address=f"A{row_number}", + expected_row_header=row_label, + ), + concept=concept, + unit=unit, + period_type="tax_year", + period=year, + geography_id="0100000US", + geography_level="country", + geography_name="United States", + geography_vintage="2020_census", + entity="tax_unit", + entity_role="filing_unit", + aggregation=aggregation, + filters=filters, + constraints=_constraints_from_filters(filters), + domain="all_individual_income_tax_returns", + value_scale=value_scale, + source_concept=source_concept, + concept_relation=concept_relation, + concept_authority=concept_authority, + concept_evidence_url=concept_evidence_url, + concept_evidence_notes=concept_evidence_notes, + legal_vintage=legal_vintage, + ) + + +def _source_provenance_from_cells(cells: list[SourceCell]) -> SourceProvenance: + artifact = cells[0].artifact + return SourceProvenance( + source_name=artifact.source_name, + source_table=artifact.source_table, + source_file=artifact.source_file, + url=artifact.url, + vintage=artifact.vintage, + extracted_at=artifact.extracted_at, + extraction_method="CellSelectorSpec and SourceRecordSpec resolved from cells", + method_notes=( + "Each fact carries source_record_id, source_cell_keys, and " + "source_row_keys when available." + ), + source_sha256=artifact.sha256, + source_size_bytes=artifact.size_bytes, + raw_r2_bucket=artifact.raw_r2_bucket, + raw_r2_key=artifact.raw_r2_key, + raw_r2_uri=artifact.raw_r2_uri, + ) + + +def _all_returns_filters() -> dict[str, str]: + return {"filing_status": "all", "income_range": "all"} + + +def _agi_bracket_filters( + bracket_name: str, + lower: float, + upper: float, +) -> dict[str, str | int]: + filters: dict[str, str | int] = { + "filing_status": "all", + "income_range": bracket_name, + } + if lower != float("-inf"): + filters["agi_lower_usd"] = int(lower) + if upper != float("inf"): + filters["agi_upper_usd"] = int(upper) + return filters + + +def _constraints_from_filters( + filters: dict[str, str | int], +) -> tuple[AggregateConstraint, ...]: + constraints: list[AggregateConstraint] = [] + lower = filters.get("agi_lower_usd") + upper = filters.get("agi_upper_usd") + if lower is not None: + constraints.append( + AggregateConstraint( + variable=AXIOM_IRC_AGI_CONCEPT, + operator=">=", + value=lower, + unit="usd", + label="Adjusted gross income lower bound", + ) + ) + if upper is not None: + constraints.append( + AggregateConstraint( + variable=AXIOM_IRC_AGI_CONCEPT, + operator="<", + value=upper, + unit="usd", + label="Adjusted gross income upper bound", + ) + ) + return tuple(constraints) + + +def _table_1_1_source_artifact(year: int) -> tuple[bytes, str, str]: + spec = _source_file_spec(year, SOI_TABLE_1_1_PACKAGE_DIR, SOI_TABLE_1_1_MANIFEST) + filename = spec["filename"] + path = files("db").joinpath(SOI_TABLE_1_1_PACKAGE_DIR, filename) + return path.read_bytes(), filename, spec["source_url"] + + +def _table_1_4_source_artifact(year: int) -> tuple[bytes, str, str]: + spec = _source_file_spec(year, SOI_TABLE_1_4_PACKAGE_DIR, SOI_TABLE_1_4_MANIFEST) + filename = spec["filename"] + path = files("db").joinpath(SOI_TABLE_1_4_PACKAGE_DIR, filename) + return path.read_bytes(), filename, spec["source_url"] + + +def _source_file_spec( + year: int, + package_dir: str, + manifest_name: str, +) -> dict[str, str]: + manifest_path = files("db").joinpath( + package_dir, + manifest_name, + ) + with manifest_path.open("r", encoding="utf-8") as file: + manifest = yaml.safe_load(file) + files_by_year = manifest["files"] + return files_by_year.get(year) or files_by_year[str(year)] diff --git a/arch/mirror.py b/arch/mirror.py new file mode 100644 index 0000000..eec255f --- /dev/null +++ b/arch/mirror.py @@ -0,0 +1,438 @@ +"""Export deterministic Arch DB artifacts for hosted mirrors.""" + +from __future__ import annotations + +import hashlib +import json +import shutil +import sqlite3 +from dataclasses import asdict, dataclass +from datetime import datetime, timezone +from pathlib import Path +from typing import Any + +ARCH_MIRROR_TABLES = ( + "arch_builds", + "build_artifacts", + "source_artifacts", + "source_columns", + "source_rows", + "source_row_values", + "source_cells", + "source_records", + "concept_alignments", + "aggregate_facts", + "aggregate_constraints", + "fact_source_cells", + "fact_source_rows", +) +ARCH_MIRROR_PRIMARY_KEYS = { + "arch_builds": "build_id", + "build_artifacts": "build_artifact_key", + "source_artifacts": "artifact_sha256", + "source_columns": "source_column_key", + "source_rows": "source_row_key", + "source_row_values": "source_row_value_key", + "source_cells": "source_cell_key", + "source_records": "source_record_id", + "concept_alignments": ( + "source_concept,canonical_concept,relation,legal_vintage," + "period_type,period_value" + ), + "aggregate_facts": "fact_key", + "aggregate_constraints": "fact_key,ordinal", + "fact_source_cells": "fact_key,source_cell_key", + "fact_source_rows": "fact_key,source_row_key", +} +JSON_COLUMNS = { + "raw_value_json", + "values_json", + "value_json", + "filters_json", +} + + +@dataclass(frozen=True) +class ArchTableExport: + """One exported relational table.""" + + table: str + path: str + row_count: int + size_bytes: int + sha256: str + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable export record.""" + return asdict(self) + + +@dataclass(frozen=True) +class ArchMirrorExportReport: + """Report for a hosted-mirror export from a local Arch DB artifact.""" + + db_path: str + output_dir: str + exported_at: str + build_ids: tuple[str, ...] + tables: tuple[ArchTableExport, ...] + + @property + def table_count(self) -> int: + """Number of exported tables.""" + return len(self.tables) + + @property + def row_count(self) -> int: + """Total exported row count.""" + return sum(table.row_count for table in self.tables) + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable export report.""" + return { + "db_path": self.db_path, + "output_dir": self.output_dir, + "exported_at": self.exported_at, + "build_ids": list(self.build_ids), + "table_count": self.table_count, + "row_count": self.row_count, + "tables": [table.to_dict() for table in self.tables], + } + + +@dataclass(frozen=True) +class SupabaseTableLoad: + """One Supabase mirror table load result.""" + + table: str + path: str + row_count: int + batch_count: int + dry_run: bool + manifest_row_count: int | None = None + row_count_matches_manifest: bool | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable load record.""" + return { + key: value + for key, value in asdict(self).items() + if value is not None + } + + +@dataclass(frozen=True) +class SupabaseMirrorLoadReport: + """Report from loading Arch JSONL mirror files into Supabase/Postgres.""" + + input_dir: str + schema: str + dry_run: bool + tables: tuple[SupabaseTableLoad, ...] + errors: tuple[str, ...] = () + + @property + def valid(self) -> bool: + """Whether the mirror load completed without errors.""" + return not self.errors + + @property + def table_count(self) -> int: + """Number of tables loaded or checked.""" + return len(self.tables) + + @property + def row_count(self) -> int: + """Total rows loaded or checked.""" + return sum(table.row_count for table in self.tables) + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "input_dir": self.input_dir, + "schema": self.schema, + "dry_run": self.dry_run, + "table_count": self.table_count, + "row_count": self.row_count, + "tables": [table.to_dict() for table in self.tables], + "errors": list(self.errors), + } + + +def export_arch_db_tables( + db_path: str | Path, + output_dir: str | Path, + *, + replace: bool = False, +) -> ArchMirrorExportReport: + """Export Arch SQLite tables to JSONL files for bulk hosted loading.""" + db = Path(db_path) + if not db.exists(): + raise FileNotFoundError(f"Arch DB not found: {db}") + + output = Path(output_dir) + _prepare_output_dir(output, replace=replace) + + exports: list[ArchTableExport] = [] + with sqlite3.connect(db) as connection: + connection.row_factory = sqlite3.Row + build_ids = tuple( + row["build_id"] + for row in connection.execute( + "SELECT build_id FROM arch_builds ORDER BY build_id" + ).fetchall() + ) + for table in ARCH_MIRROR_TABLES: + exports.append(_export_table(connection, output, table)) + + report = ArchMirrorExportReport( + db_path=str(db), + output_dir=str(output), + exported_at=datetime.now(timezone.utc).isoformat(), + build_ids=build_ids, + tables=tuple(exports), + ) + manifest_path = output / "manifest.json" + manifest_path.write_text( + json.dumps(report.to_dict(), indent=2, sort_keys=True), + encoding="utf-8", + ) + return report + + +def load_supabase_mirror( + input_dir: str | Path, + *, + schema: str = "arch", + batch_size: int = 500, + dry_run: bool = False, + table_paths: dict[str, str | Path] | None = None, + client: Any | None = None, +) -> SupabaseMirrorLoadReport: + """Load exported Arch JSONL mirror files into Supabase/Postgres.""" + if batch_size < 1: + raise ValueError("batch_size must be at least 1.") + input_path = Path(input_dir) + tables: list[SupabaseTableLoad] = [] + errors: list[str] = [] + if not input_path.exists(): + return SupabaseMirrorLoadReport( + input_dir=str(input_path), + schema=schema, + dry_run=dry_run, + tables=(), + errors=(f"Input directory does not exist: {input_path}",), + ) + manifest_counts = _load_mirror_manifest_counts(input_path) + + resolved_client = None + if not dry_run: + resolved_client = client or _get_supabase_client() + + for table in ARCH_MIRROR_TABLES: + path = ( + Path(table_paths.get(table, input_path / f"{table}.jsonl")) + if table_paths + else input_path / f"{table}.jsonl" + ) + if not path.exists(): + errors.append(f"Missing mirror table JSONL: {path}") + continue + uses_default_path = path == input_path / f"{table}.jsonl" + try: + row_count, batch_count = _load_supabase_table( + path, + table=table, + schema=schema, + batch_size=batch_size, + dry_run=dry_run, + client=resolved_client, + ) + except Exception as exc: # pragma: no cover - exact client errors vary. + errors.append(f"Could not load {table}: {exc}") + continue + manifest_row_count = ( + manifest_counts.get(table) if uses_default_path else None + ) + row_count_matches_manifest = ( + row_count == manifest_row_count + if manifest_row_count is not None + else None + ) + if row_count_matches_manifest is False: + errors.append( + "Mirror row count mismatch for " + f"{table}: manifest={manifest_row_count}, actual={row_count}" + ) + tables.append( + SupabaseTableLoad( + table=table, + path=str(path), + row_count=row_count, + batch_count=batch_count, + dry_run=dry_run, + manifest_row_count=manifest_row_count, + row_count_matches_manifest=row_count_matches_manifest, + ) + ) + + return SupabaseMirrorLoadReport( + input_dir=str(input_path), + schema=schema, + dry_run=dry_run, + tables=tuple(tables), + errors=tuple(errors), + ) + + +def _export_table( + connection: sqlite3.Connection, + output_dir: Path, + table: str, +) -> ArchTableExport: + path = output_dir / f"{table}.jsonl" + row_count = 0 + with path.open("w", encoding="utf-8") as file: + rows = connection.execute( + f"SELECT * FROM {table} ORDER BY {ARCH_MIRROR_PRIMARY_KEYS[table]}" + ).fetchall() + for row in rows: + payload = { + key: _export_value(key, row[key]) + for key in row.keys() + } + file.write(json.dumps(payload, sort_keys=True)) + file.write("\n") + row_count += 1 + + return ArchTableExport( + table=table, + path=str(path), + row_count=row_count, + size_bytes=path.stat().st_size, + sha256=_sha256(path), + ) + + +def _export_value(column: str, value: Any) -> Any: + if column in JSON_COLUMNS and isinstance(value, str): + return json.loads(value) + return value + + +def _prepare_output_dir(output_path: Path, *, replace: bool) -> None: + if output_path.exists() and any(output_path.iterdir()): + if not replace: + raise FileExistsError( + f"Mirror export output directory is not empty: {output_path}" + ) + if output_path.resolve() in {Path("/").resolve(), Path.home().resolve()}: + raise ValueError(f"Refusing to replace unsafe output directory: {output_path}") + shutil.rmtree(output_path) + output_path.mkdir(parents=True, exist_ok=True) + + +def _load_mirror_manifest_counts(input_path: Path) -> dict[str, int]: + manifest_path = input_path / "manifest.json" + if not manifest_path.exists(): + return {} + payload = json.loads(manifest_path.read_text(encoding="utf-8")) + tables = payload.get("tables") + if not isinstance(tables, list): + return {} + counts: dict[str, int] = {} + for table in tables: + if not isinstance(table, dict): + continue + table_name = table.get("table") + row_count = table.get("row_count") + if isinstance(table_name, str) and isinstance(row_count, int): + counts[table_name] = row_count + return counts + + +def _load_supabase_table( + path: Path, + *, + table: str, + schema: str, + batch_size: int, + dry_run: bool, + client: Any | None, +) -> tuple[int, int]: + row_count = 0 + batch_count = 0 + batch: list[dict[str, Any]] = [] + for row in _iter_jsonl(path): + batch.append(row) + row_count += 1 + if len(batch) >= batch_size: + _upsert_supabase_batch( + client, + schema=schema, + table=table, + rows=batch, + dry_run=dry_run, + ) + batch_count += 1 + batch = [] + if batch: + _upsert_supabase_batch( + client, + schema=schema, + table=table, + rows=batch, + dry_run=dry_run, + ) + batch_count += 1 + return row_count, batch_count + + +def _iter_jsonl(path: Path) -> Any: + with path.open("r", encoding="utf-8") as file: + for line_number, line in enumerate(file, start=1): + stripped = line.strip() + if not stripped: + continue + try: + yield json.loads(stripped) + except json.JSONDecodeError as exc: + raise ValueError(f"{path}:{line_number}: invalid JSONL: {exc}") from exc + + +def _upsert_supabase_batch( + client: Any | None, + *, + schema: str, + table: str, + rows: list[dict[str, Any]], + dry_run: bool, +) -> None: + if dry_run or not rows: + return + if client is None: + raise ValueError("Supabase client is required for non-dry-run loads.") + query = _supabase_table(client, schema, table) + query.upsert(rows, on_conflict=ARCH_MIRROR_PRIMARY_KEYS[table]).execute() + + +def _supabase_table(client: Any, schema: str, table: str) -> Any: + schema_method = getattr(client, "schema", None) + if callable(schema_method): + return schema_method(schema).table(table) + return client.table(table) + + +def _get_supabase_client() -> Any: + from db.supabase_client import get_supabase_client + + return get_supabase_client() + + +def _sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as file: + for chunk in iter(lambda: file.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() diff --git a/arch/pe_source_plan.py b/arch/pe_source_plan.py new file mode 100644 index 0000000..6483e21 --- /dev/null +++ b/arch/pe_source_plan.py @@ -0,0 +1,661 @@ +"""Agent batch planning for PolicyEngine source migration.""" + +from __future__ import annotations + +import csv +import json +import re +import shlex +from collections import Counter +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Any + +import yaml + + +WORKBOOK_FORMATS = {".xls", ".xlsx", ".ods"} +RECTANGULAR_FORMATS = {".csv", ".csv.gz", ".json", ".txt"} +DOCUMENT_FORMATS = {".html", ".pdf"} +LOW_PRIORITY_PIPELINES = {"local-geography-source-documents"} +HIGH_PRIORITY_PIPELINES = { + "national-soi-workbooks", + "cbo-source-documents", + "snap-source-documents", + "tanf-source-documents", + "medicaid-source-documents", + "tax-expenditure-source-documents", + "health-source-documents", + "ssa-source-documents", + "macro-source-documents", + "medicare-source-documents", +} +FRED_SOURCE_ID = "fred" + + +@dataclass(frozen=True) +class PeSourcePlanItem: + """One PE source artifact migration work item.""" + + item_id: str + batch_id: str + priority: int + recommended_stage: str + source_id: str + publisher_hint: str | None + package_id: str + package_path: str + jurisdiction: str + pipeline: str + artifact_role: str + artifact_kind: str + artifact: str + filename: str + format: str + exists_locally: str + arch_source_status: str + source_cell_status: str + target_construction_status: str + command_hint: str + blockers: tuple[str, ...] + notes: str + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable work item.""" + data = asdict(self) + data["blockers"] = list(self.blockers) + return data + + +@dataclass(frozen=True) +class PeSourcePlanBatch: + """One batch of PE source migration work items.""" + + batch_id: str + recommended_stage: str + item_count: int + priority_min: int + priority_max: int + items: tuple[PeSourcePlanItem, ...] + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable batch.""" + return { + "batch_id": self.batch_id, + "recommended_stage": self.recommended_stage, + "item_count": self.item_count, + "priority_min": self.priority_min, + "priority_max": self.priority_max, + "items": [item.to_dict() for item in self.items], + } + + +@dataclass(frozen=True) +class PeSourcePlanReport: + """Agent-ready PE source migration plan.""" + + manifest_path: str + row_count: int + batch_size: int + counts: dict[str, dict[str, int]] + batches: tuple[PeSourcePlanBatch, ...] + + @property + def item_count(self) -> int: + """Return total work item count.""" + return sum(batch.item_count for batch in self.batches) + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": True, + "manifest_path": self.manifest_path, + "row_count": self.row_count, + "item_count": self.item_count, + "batch_size": self.batch_size, + "counts": self.counts, + "batches": [batch.to_dict() for batch in self.batches], + } + + +def build_pe_source_plan( + manifest_path: str | Path, + *, + batch_size: int = 10, + max_items: int | None = None, + source_package_root: str | Path | None = "packages", +) -> PeSourcePlanReport: + """Build an agent-ready batch plan from a PE source manifest CSV.""" + path = Path(manifest_path) + rows = _read_manifest_rows(path) + existing_packages = _existing_source_package_coverage(source_package_root) + items = [ + _item_from_row(index + 1, row, existing_packages=existing_packages) + for index, row in enumerate(rows) + ] + items.sort(key=_sort_key) + if max_items is not None: + items = items[:max_items] + batches = _assign_batches(items, batch_size=batch_size) + return PeSourcePlanReport( + manifest_path=str(path), + row_count=len(rows), + batch_size=batch_size, + counts=_counts(rows, items), + batches=batches, + ) + + +def write_pe_source_plan_json( + report: PeSourcePlanReport, + output_path: str | Path, +) -> None: + """Write a PE source plan report as JSON.""" + path = Path(output_path) + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text( + json.dumps(report.to_dict(), indent=2, sort_keys=True) + "\n", + encoding="utf-8", + ) + + +def write_pe_source_plan_markdown( + report: PeSourcePlanReport, + output_path: str | Path, +) -> None: + """Write a compact Markdown view of a PE source plan report.""" + path = Path(output_path) + path.parent.mkdir(parents=True, exist_ok=True) + lines = [ + "# PE Source Agent Plan", + "", + "This is an agent work queue generated from the PE source manifest. " + "It is inventory/scaffold oriented: agents should not claim semantic " + "target readiness until `build-suite` passes for a package.", + "", + f"Manifest rows: {report.row_count}", + f"Planned items: {report.item_count}", + f"Batches: {len(report.batches)}", + "", + "## Counts", + "", + ] + for count_name, counts in report.counts.items(): + lines.extend([f"### {count_name}", ""]) + lines.extend( + f"- `{key}`: {value}" for key, value in sorted(counts.items()) + ) + lines.append("") + + lines.extend(["## Batches", ""]) + for batch in report.batches: + lines.extend( + [ + f"### {batch.batch_id}", + "", + f"Stage: `{batch.recommended_stage}`", + f"Items: {batch.item_count}", + "", + "| Priority | Source | Publisher hint | Pipeline | File | Stage | Package |", + "|---:|---|---|---|---|---|---|", + ] + ) + for item in batch.items: + lines.append( + "| " + f"{item.priority} | " + f"{item.source_id} | " + f"{item.publisher_hint or ''} | " + f"{item.pipeline} | " + f"`{item.filename}` | " + f"{item.recommended_stage} | " + f"`{item.package_id}` |" + ) + lines.append("") + + path.write_text("\n".join(lines).rstrip() + "\n", encoding="utf-8") + + +def _read_manifest_rows(path: Path) -> list[dict[str, str]]: + with path.open(newline="", encoding="utf-8") as file: + return list(csv.DictReader(file)) + + +def _item_from_row( + index: int, + row: dict[str, str], + *, + existing_packages: dict[str, dict[str, str]], +) -> PeSourcePlanItem: + package_id = _package_id_for_row(row) + notes_package_id = None + notes_package = None + if row["arch_source_status"] == "source_package": + notes_package_id = _package_id_from_notes(row["notes"]) + if notes_package_id: + notes_package = existing_packages.get(f"package_id:{notes_package_id}") + existing_package = existing_packages.get(row["artifact"]) + if ( + notes_package is not None + and ( + existing_package is None + or existing_package["package_id"] != notes_package_id + ) + ): + existing_package = notes_package + if existing_package is None and row["arch_source_status"] == "source_package": + existing_package = existing_packages.get(row["filename"]) + if ( + notes_package is not None + and ( + existing_package is None + or existing_package["package_id"] != notes_package_id + ) + ): + existing_package = notes_package + stage = _recommended_stage(row, existing_package=existing_package) + publisher_hint = _publisher_hint_for_row(row) + if existing_package: + package_id = existing_package["package_id"] + priority = _priority(row, stage) + package_path = existing_package["package_path"] if existing_package else ( + f"packages/pe_{_path_slug(row['jurisdiction'])}/" + f"{_path_slug(row['source_id'])}/{package_id}" + ) + return PeSourcePlanItem( + item_id=f"pe-source-{index:04d}", + batch_id="", + priority=priority, + recommended_stage=stage, + source_id=row["source_id"], + publisher_hint=publisher_hint, + package_id=package_id, + package_path=package_path, + jurisdiction=row["jurisdiction"], + pipeline=row["pipeline"], + artifact_role=row["artifact_role"], + artifact_kind=row["artifact_kind"], + artifact=row["artifact"], + filename=row["filename"], + format=row["format"], + exists_locally=row["exists_locally"], + arch_source_status=row["arch_source_status"], + source_cell_status=row["source_cell_status"], + target_construction_status=row["target_construction_status"], + command_hint=_command_hint( + row, + package_id, + package_path, + stage, + publisher_hint=publisher_hint, + existing_package=existing_package, + ), + blockers=_blockers(row, stage), + notes=row["notes"], + ) + + +def _assign_batches( + items: list[PeSourcePlanItem], + *, + batch_size: int, +) -> tuple[PeSourcePlanBatch, ...]: + if batch_size < 1: + raise ValueError("batch_size must be at least 1") + batches = [] + grouped: dict[str, list[PeSourcePlanItem]] = {} + for item in items: + grouped.setdefault(item.recommended_stage, []).append(item) + stage_order = { + "existing_source_package": 0, + "find_primary_source": 0, + "fetch_artifact": 0, + "register_local_artifact": 1, + "source_cell_scaffold": 2, + "repair_artifact_ingest": 3, + "blocked_or_deferred": 4, + "blocked_missing_local_artifact": 5, + } + for stage, stage_items in sorted( + grouped.items(), + key=lambda entry: (stage_order.get(entry[0], 99), entry[0]), + ): + for chunk_index, start in enumerate(range(0, len(stage_items), batch_size), 1): + chunk = stage_items[start : start + batch_size] + batch_id = f"pe-us-{_path_slug(stage)}-{chunk_index:03d}" + chunk_with_batch = tuple( + PeSourcePlanItem( + **{ + **item.to_dict(), + "batch_id": batch_id, + "blockers": item.blockers, + } + ) + for item in chunk + ) + priorities = [item.priority for item in chunk_with_batch] + batches.append( + PeSourcePlanBatch( + batch_id=batch_id, + recommended_stage=stage, + item_count=len(chunk_with_batch), + priority_min=min(priorities), + priority_max=max(priorities), + items=chunk_with_batch, + ) + ) + return tuple(batches) + + +def _recommended_stage( + row: dict[str, str], + *, + existing_package: dict[str, str] | None, +) -> str: + if existing_package is not None: + return "existing_source_package" + status = row["arch_source_status"] + if status in {"blocked", "deferred"}: + return "blocked_or_deferred" + if status == "source_package": + return "existing_source_package" + if status == "row_parsed": + return "source_cell_scaffold" + if status in {"fetch_error", "identity_mismatch", "parsed_no_rows"}: + return "repair_artifact_ingest" + if row["source_id"] == FRED_SOURCE_ID: + return "find_primary_source" + if row["artifact_kind"] == "url": + return "fetch_artifact" + if row["exists_locally"] == "yes": + return "register_local_artifact" + return "blocked_missing_local_artifact" + + +def _priority(row: dict[str, str], stage: str) -> int: + pipeline = row["pipeline"] + artifact_format = row["format"] + if stage == "existing_source_package": + return 105 + if stage == "blocked_or_deferred": + return 10 + if stage == "find_primary_source": + return 75 + if row["source_id"] == FRED_SOURCE_ID: + return 70 + if pipeline in LOW_PRIORITY_PIPELINES: + return 20 + if pipeline == "national-soi-workbooks": + return 100 + if stage == "source_cell_scaffold" and row["artifact_role"] == "publisher_source": + return 95 + if pipeline in HIGH_PRIORITY_PIPELINES: + return 90 + if artifact_format in WORKBOOK_FORMATS: + return 85 + if artifact_format in RECTANGULAR_FORMATS: + return 80 + if artifact_format in DOCUMENT_FORMATS: + return 70 + if stage == "source_cell_scaffold": + return 65 + return 50 + + +def _sort_key(item: PeSourcePlanItem) -> tuple[int, str, str, str]: + return (-item.priority, item.recommended_stage, item.pipeline, item.filename) + + +def _counts( + rows: list[dict[str, str]], + items: list[PeSourcePlanItem], +) -> dict[str, dict[str, int]]: + return { + "by_artifact_role": dict( + Counter(row["artifact_role"] for row in rows).most_common() + ), + "by_arch_source_status": dict( + Counter(row["arch_source_status"] for row in rows).most_common() + ), + "by_format": dict(Counter(row["format"] for row in rows).most_common()), + "by_pipeline": dict(Counter(row["pipeline"] for row in rows).most_common()), + "by_recommended_stage": dict( + Counter(item.recommended_stage for item in items).most_common() + ), + "by_publisher_hint": dict( + Counter(item.publisher_hint or "missing" for item in items).most_common() + ), + } + + +def _package_id_for_row(row: dict[str, str]) -> str: + source = _slug(row["source_id"]) + filename = row["filename"] or Path(row["artifact"]).name or "source" + stem = _filename_stem(filename) + name = _slug(stem) + if name.startswith(f"{source}-"): + return name + return f"{source}-{name}" if source else name + + +def _filename_stem(filename: str) -> str: + lower = filename.lower() + if lower.endswith(".csv.gz"): + return filename[:-7] + return Path(filename).stem + + +def _year_from_row(row: dict[str, str]) -> str: + text = f"{row['filename']} {row['artifact']}" + for token in re.split(r"[^A-Za-z0-9]+", text): + match = re.fullmatch(r"(?:fy|ty)?((?:19|20)[0-9]{2})", token.lower()) + if match and 1900 <= int(match.group(1)) <= 2035: + return match.group(1) + return "TODO_YEAR" + + +def _command_hint( + row: dict[str, str], + package_id: str, + package_path: str, + stage: str, + *, + publisher_hint: str | None, + existing_package: dict[str, str] | None, +) -> str: + year = _year_from_row(row) + source_id = row["source_id"] + data_dir = f"db/data/pe/{row['jurisdiction']}/{_path_slug(source_id)}/{package_id}" + if stage == "existing_source_package": + if existing_package is None: + return ( + "Manifest marks this row as source_package/build_suite_valid, " + "but no local source_package manifest was matched by source URL. " + "Use the package named in the manifest notes, or update the " + "package manifest/source-page coverage mapping." + ) + package_year = existing_package["year"] if existing_package else year + return " ".join( + shlex.quote(part) + for part in ( + "uv", + "run", + "arch", + "build-suite", + package_path, + "--year", + package_year, + "--out", + f"/tmp/arch-suite-{package_id}-{package_year}", + "--replace", + ) + ) + if stage == "find_primary_source": + if publisher_hint: + return ( + f"Find and register the {publisher_hint} publisher artifact behind " + f"{row['artifact']}. Do not use this FRED URL as an Arch source " + "artifact." + ) + return ( + f"Identify the publisher source behind {row['artifact']}. Do not use " + "this FRED URL as an Arch source artifact." + ) + if stage == "fetch_artifact": + return " ".join( + shlex.quote(part) + for part in ( + "uv", + "run", + "arch", + "fetch-artifact", + "--url", + row["artifact"], + "--source-id", + source_id, + "--package-id", + package_id, + "--year", + year, + "--out-dir", + data_dir, + "--upload-r2", + ) + ) + if stage == "register_local_artifact": + return ( + "Resolve the PE checkout path, then run " + "`uv run arch fetch-artifact --url " + f"--source-id {source_id} --package-id {package_id} " + f"--year {year} --out-dir {data_dir} --upload-r2`." + ) + if stage == "source_cell_scaffold": + return " ".join( + shlex.quote(part) + for part in ( + "uv", + "run", + "arch", + "scaffold-package", + "--source-id", + source_id, + "--package-id", + package_id, + "--out", + package_path, + "--source-table", + row["filename"], + "--resource-directory", + data_dir.removeprefix("db/"), + ) + ) + if stage == "repair_artifact_ingest": + return "Re-fetch or re-register the artifact, then regenerate the PE manifest." + if stage == "blocked_or_deferred": + return ( + "No package action until the manifest blocker is resolved: " + f"{row['arch_source_status']} / {row['source_cell_status']}." + ) + return "Resolve the missing local artifact before source-cell or target work." + + +def _existing_source_package_coverage( + source_package_root: str | Path | None, +) -> dict[str, dict[str, str]]: + if source_package_root is None: + return {} + root = Path(source_package_root) + if not root.exists(): + return {} + repo_root = Path.cwd() + coverage = {} + for source_package_path in sorted(root.glob("**/source_package.yaml")): + try: + package_payload = yaml.safe_load( + source_package_path.read_text(encoding="utf-8") + ) + artifact_payload = package_payload["artifact"] + manifest_path = ( + repo_root + / artifact_payload["resource_package"] + / artifact_payload["resource_directory"] + / artifact_payload["manifest"] + ) + manifest_payload = yaml.safe_load( + manifest_path.read_text(encoding="utf-8") + ) + except (KeyError, OSError, TypeError, yaml.YAMLError): + continue + package_id = str( + package_payload.get("package_id") or source_package_path.parent.name + ) + artifact_year = artifact_payload.get("artifact_year") + artifact_year_text = str(artifact_year) if artifact_year is not None else None + package_by_id: dict[str, str] | None = None + for year, spec in manifest_payload.get("files", {}).items(): + if not isinstance(spec, dict) or not spec.get("source_url"): + continue + package = { + "package_id": package_id, + "package_path": str(source_package_path.parent), + "year": str(year), + "filename": str(spec.get("filename", "")), + } + if artifact_year_text is None or str(year) == artifact_year_text: + package_by_id = { + **package, + "year": str(artifact_year or year), + } + if artifact_year_text is not None and str(year) != artifact_year_text: + continue + coverage.setdefault(str(spec["source_url"]), package) + filename = package["filename"] + if filename: + coverage.setdefault(filename, package) + if package_by_id is not None: + coverage.setdefault(f"package_id:{package_id}", package_by_id) + return coverage + + +def _blockers(row: dict[str, str], stage: str) -> tuple[str, ...]: + blockers = [] + if stage == "find_primary_source": + blockers.append("publisher_source_required") + if not _publisher_hint_for_row(row): + blockers.append("publisher_not_identified") + if row["pipeline"] in LOW_PRIORITY_PIPELINES: + blockers.append("bulk_local_geography_source") + if row["format"] in {".zip", ".pdf"} and stage == "source_cell_scaffold": + blockers.append("needs_format_specific_source_cell_parser") + if stage == "blocked_missing_local_artifact": + blockers.append("local_artifact_missing") + if stage == "repair_artifact_ingest": + blockers.append(row["arch_source_status"]) + if stage == "blocked_or_deferred": + blockers.append(row["arch_source_status"]) + if row["source_cell_status"]: + blockers.append(row["source_cell_status"]) + return tuple(blockers) + + +def _slug(value: str) -> str: + slug = re.sub(r"[^a-z0-9]+", "-", value.lower()).strip("-") + return re.sub(r"-+", "-", slug) or "source" + + +def _path_slug(value: str) -> str: + return _slug(value).replace("-", "_") + + +def _publisher_hint_for_row(row: dict[str, str]) -> str | None: + text = f"{row['filename']} {row['artifact']} {row['notes']}".lower() + if "bea" in text: + return "bea" + if "federal reserve" in text or "bogz" in text: + return "federal_reserve" + return None + + +def _package_id_from_notes(notes: str) -> str | None: + match = re.search(r"\bPackage\s+([a-z0-9][a-z0-9-]*)\b", notes) + return match.group(1) if match else None diff --git a/arch/source_package.py b/arch/source_package.py new file mode 100644 index 0000000..4a285ef --- /dev/null +++ b/arch/source_package.py @@ -0,0 +1,1695 @@ +"""Declarative source-package loading for Arch build suites.""" + +from __future__ import annotations + +import hashlib +import os +from dataclasses import dataclass, replace +from importlib.resources import files +from io import BytesIO +from pathlib import Path +import re +from typing import Any +from urllib.parse import unquote, urlparse +from zipfile import ZipFile + +import httpx +import yaml + +from arch.core import ( + Aggregation, + AggregateConstraint, + EntityDimension, + GeographyDimension, + Measure, + PeriodDimension, + SourceProvenance, + AggregateFact, + build_label, +) +from arch.sources.cells import ( + SourceArtifactMetadata, + SourceCell, + source_cells_from_delimited_text, + source_cells_from_html_tables_and_text, + source_cells_from_ods, + source_cells_from_pdf_text_numbers, + source_cells_from_xls, + source_cells_from_xlsx, +) +from arch.sources.rows import ( + SourceRow, + source_cells_from_source_rows, + source_rows_from_census_acs_s0101_age_json, + source_rows_from_census_acs_s2201_snap_json, + source_rows_from_census_b01001_female_age_json, + source_rows_from_cdc_vsrr_live_births_json, + source_rows_from_json_table, + source_rows_from_ees_permalink_table_html, + source_rows_from_kff_state_indicator_gdocs_html, + source_rows_from_ons_timeseries_json, + source_rows_from_delimited_text, +) +from arch.sources.specs import ( + SourceRecord, + SourceRecordSetMeasure, + SourceRecordSetRangeLabelGuard, + SourceRecordSetRow, + SourceRecordSetRowGuard, + SourceRecordSetSpec, + SourceRecordSpec, + build_cells_by_sheet_address, + compile_source_record_set_specs, + resolve_source_record, + source_regions_from_record_set_spec, +) + +SOURCE_PACKAGE_RESOURCE_PACKAGE = "packages" +SOURCE_PACKAGE_ALIASES = { + "soi-table-1-1": Path("irs_soi/table_1_1"), + "soi-table-1-4": Path("irs_soi/table_1_4"), +} +SOURCE_ARTIFACT_CACHE_ENV = "ARCH_SOURCE_ARTIFACT_CACHE_DIR" +SOURCE_ARTIFACT_FETCH_ENV = "ARCH_SOURCE_ARTIFACT_FETCH" +DEFAULT_SOURCE_ARTIFACT_CACHE_DIR = ( + Path.home() / ".cache" / "policyengine-arch-data" / "source-artifacts" +) +SOURCE_PACKAGE_FILENAME = "source_package.yaml" +EXCEL_COLUMN_RE = re.compile(r"^[A-Z]+$") + + +@dataclass(frozen=True) +class SourceArtifactSpec: + """Declarative source artifact lookup and provenance metadata.""" + + source_name: str + source_table: str + resource_package: str + resource_directory: str + manifest: str + vintage: str + extracted_at: str + extraction_method: str + parser: str = "xls_used_range" + sheet_name: str | None = None + archive_member: str | None = None + artifact_year: int | None = None + delimiter: str = "," + selected_rows: tuple[dict[str, Any], ...] = () + + def build_source_rows(self, year: int) -> list[SourceRow]: + """Parse a delimited artifact for a year into full source-row records.""" + content, filename, source_url, raw_r2 = self._artifact_content(year) + artifact = self._source_artifact_metadata( + content, + filename, + source_url, + raw_r2, + year=year, + ) + if self.parser in {"delimited_text_full_rows", "zip_delimited_text_full_rows"}: + delimited_content = self._delimited_content(content, filename) + return source_rows_from_delimited_text( + delimited_content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + delimiter=self.delimiter, + ) + if self.parser == "json_table_full_rows": + return source_rows_from_json_table( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + if self.parser == "census_acs_s0101_age_json_rows": + return source_rows_from_census_acs_s0101_age_json( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + if self.parser == "census_acs_s2201_snap_json_rows": + return source_rows_from_census_acs_s2201_snap_json( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + if self.parser == "census_b01001_female_age_json_rows": + return source_rows_from_census_b01001_female_age_json( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + if self.parser == "cdc_vsrr_live_births_json_rows": + return source_rows_from_cdc_vsrr_live_births_json( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + if self.parser == "ons_timeseries_json_years": + return source_rows_from_ons_timeseries_json( + content, + artifact, + sheet_name=self.sheet_name or "years", + ) + if self.parser == "ees_permalink_table_html": + return source_rows_from_ees_permalink_table_html( + content, + artifact, + sheet_name=self.sheet_name or "table", + ) + if self.parser == "kff_state_indicator_gdocs_html_rows": + return source_rows_from_kff_state_indicator_gdocs_html( + content, + artifact, + sheet_name=self.sheet_name or "indicator", + ) + return [] + + def build_source_cells( + self, + year: int, + *, + source_rows: list[SourceRow] | None = None, + ) -> list[SourceCell]: + """Parse the artifact for a year into source-cell records.""" + content, filename, source_url, raw_r2 = self._artifact_content(year) + artifact = self._source_artifact_metadata( + content, + filename, + source_url, + raw_r2, + year=year, + ) + if self.parser == "xls_used_range": + return source_cells_from_xls(content, artifact) + if self.parser == "xlsx_used_range": + return source_cells_from_xlsx(content, artifact) + if self.parser == "zip_xlsx_used_range": + member_content, member_name = self._archive_member_content( + content, + suffixes=(".xlsx",), + ) + member_sha256 = hashlib.sha256(member_content).hexdigest() + return source_cells_from_xlsx( + member_content, + replace( + artifact, + source_file=f"{filename}!{member_name}", + sha256=member_sha256, + size_bytes=len(member_content), + extraction_method=( + f"{artifact.extraction_method}; ZIP member {member_name} " + f"from outer SHA-256 {artifact.sha256}" + ), + ), + ) + if self.parser == "zip_xls_used_range": + member_content, member_name = self._archive_member_content( + content, + suffixes=(".xls",), + ) + member_sha256 = hashlib.sha256(member_content).hexdigest() + return source_cells_from_xls( + member_content, + replace( + artifact, + source_file=f"{filename}!{member_name}", + sha256=member_sha256, + size_bytes=len(member_content), + extraction_method=( + f"{artifact.extraction_method}; ZIP member {member_name} " + f"from outer SHA-256 {artifact.sha256}" + ), + ), + ) + if self.parser == "ods_used_range": + return source_cells_from_ods(content, artifact) + if self.parser == "html_tables_and_text": + return source_cells_from_html_tables_and_text(content, artifact) + if self.parser == "pdf_text_numbers": + return source_cells_from_pdf_text_numbers(content, artifact) + if self.parser == "delimited_text_selected_rows": + return source_cells_from_delimited_text( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + delimiter=self.delimiter, + ) + if self.parser in {"delimited_text_full_rows", "zip_delimited_text_full_rows"}: + delimited_content = self._delimited_content(content, filename) + rows = ( + source_rows + if source_rows is not None + else source_rows_from_delimited_text( + delimited_content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + delimiter=self.delimiter, + ) + ) + return source_cells_from_source_rows( + rows, + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + ) + if self.parser == "json_table_full_rows": + rows = ( + source_rows + if source_rows is not None + else source_rows_from_json_table( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + ) + return source_cells_from_source_rows( + rows, + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + ) + if self.parser == "census_acs_s0101_age_json_rows": + rows = ( + source_rows + if source_rows is not None + else source_rows_from_census_acs_s0101_age_json( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + ) + return source_cells_from_source_rows( + rows, + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + ) + if self.parser == "census_b01001_female_age_json_rows": + rows = ( + source_rows + if source_rows is not None + else source_rows_from_census_b01001_female_age_json( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + ) + return source_cells_from_source_rows( + rows, + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + ) + if self.parser == "census_acs_s2201_snap_json_rows": + rows = ( + source_rows + if source_rows is not None + else source_rows_from_census_acs_s2201_snap_json( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + ) + return source_cells_from_source_rows( + rows, + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + ) + if self.parser == "cdc_vsrr_live_births_json_rows": + rows = ( + source_rows + if source_rows is not None + else source_rows_from_cdc_vsrr_live_births_json( + content, + artifact, + sheet_name=self._sheet_name(filename, year=year), + ) + ) + return source_cells_from_source_rows( + rows, + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + ) + if self.parser == "ons_timeseries_json_years": + rows = ( + source_rows + if source_rows is not None + else source_rows_from_ons_timeseries_json( + content, + artifact, + sheet_name=self.sheet_name or "years", + ) + ) + return source_cells_from_source_rows( + rows, + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + ) + if self.parser == "ees_permalink_table_html": + rows = ( + source_rows + if source_rows is not None + else source_rows_from_ees_permalink_table_html( + content, + artifact, + sheet_name=self.sheet_name or "table", + ) + ) + return source_cells_from_source_rows( + rows, + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + ) + if self.parser == "kff_state_indicator_gdocs_html_rows": + rows = ( + source_rows + if source_rows is not None + else source_rows_from_kff_state_indicator_gdocs_html( + content, + artifact, + sheet_name=self.sheet_name or "indicator", + ) + ) + return source_cells_from_source_rows( + rows, + selected_rows=tuple( + { + key: str(_render_value(value, year=year)) + for key, value in row.items() + } + for row in self.selected_rows + ), + ) + raise ValueError(f"Unsupported source artifact parser: {self.parser}") + + def _source_artifact_metadata( + self, + content: bytes, + filename: str, + source_url: str, + raw_r2: dict[str, str], + *, + year: int, + ) -> SourceArtifactMetadata: + return SourceArtifactMetadata( + source_name=self.source_name, + source_table=_render_string(self.source_table, year=year), + source_file=filename, + url=source_url, + vintage=_render_string(self.vintage, year=year), + sha256=hashlib.sha256(content).hexdigest(), + size_bytes=len(content), + extracted_at=self.extracted_at, + extraction_method=self.extraction_method, + raw_r2_bucket=raw_r2.get("bucket"), + raw_r2_key=raw_r2.get("key"), + raw_r2_uri=raw_r2.get("uri"), + ) + + def _artifact_content( + self, + year: int, + ) -> tuple[bytes, str, str, dict[str, str]]: + manifest_path = files(self.resource_package).joinpath( + self.resource_directory, + self.manifest, + ) + with manifest_path.open("r", encoding="utf-8") as file: + manifest = yaml.safe_load(file) + spec = _year_mapping(manifest["files"], self.artifact_year or year) + artifact_path = files(self.resource_package).joinpath( + self.resource_directory, + spec["filename"], + ) + content = _read_source_artifact_content(artifact_path, spec) + expected_sha = spec.get("sha256") + if expected_sha: + _validate_source_artifact_sha( + content, + expected_sha=str(expected_sha), + filename=str(spec["filename"]), + ) + storage = spec.get("storage") if isinstance(spec, dict) else None + raw_r2 = storage.get("r2") if isinstance(storage, dict) else {} + return content, spec["filename"], spec["source_url"], raw_r2 or {} + + def _sheet_name(self, filename: str, *, year: int) -> str: + if self.sheet_name: + return _render_string(self.sheet_name, year=year) + if self.archive_member: + return self.archive_member + return Path(filename).stem + + def _delimited_content(self, content: bytes, filename: str) -> bytes: + if self.parser != "zip_delimited_text_full_rows": + return content + member, _member_name = self._archive_member_content( + content, + suffixes=(".csv", ".txt", ".tsv"), + ) + return member + + def _archive_member_content( + self, + content: bytes, + *, + suffixes: tuple[str, ...], + ) -> tuple[bytes, str]: + with ZipFile(BytesIO(content)) as archive: + member = self.archive_member or _single_archive_member( + archive, + suffixes=suffixes, + ) + return archive.read(member), member + + +@dataclass(frozen=True) +class SourcePackageIssue: + """One source-package authoring issue.""" + + code: str + message: str + record_set_id: str | None = None + row_id: str | None = None + measure_id: str | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + return { + key: value + for key, value in { + "code": self.code, + "message": self.message, + "record_set_id": self.record_set_id, + "row_id": self.row_id, + "measure_id": self.measure_id, + }.items() + if value is not None + } + + +@dataclass(frozen=True) +class SourcePackageValidationReport: + """Validation report for one declarative source package.""" + + package_id: str | None + package_path: str + year: int + counts: dict[str, int] + errors: tuple[SourcePackageIssue, ...] + warnings: tuple[SourcePackageIssue, ...] = () + + @property + def valid(self) -> bool: + """Whether the package has no validation errors.""" + return not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "package_id": self.package_id, + "package_path": self.package_path, + "year": self.year, + "counts": self.counts, + "errors": [issue.to_dict() for issue in self.errors], + "warnings": [issue.to_dict() for issue in self.warnings], + } + + +@dataclass(frozen=True) +class SourcePackageScaffoldReport: + """Report for a scaffolded source package.""" + + package_id: str + source_id: str + package_path: str + source_package_path: str + replaced: bool + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "package_id": self.package_id, + "source_id": self.source_id, + "package_path": self.package_path, + "source_package_path": self.source_package_path, + "replaced": self.replaced, + } + + +@dataclass(frozen=True) +class DeclarativeRecordSet: + """One YAML record-set payload that compiles to source-record specs.""" + + payload: dict[str, Any] + + def to_record_set_spec(self, year: int) -> SourceRecordSetSpec: + """Compile this YAML payload into the core record-set spec.""" + rows = tuple( + _row_from_mapping(row, year=year) + for row in _required(self.payload, "rows", "record_set") + ) + measures = tuple( + _measure_from_mapping(measure, year=year) + for measure in _required(self.payload, "measures", "record_set") + ) + return SourceRecordSetSpec( + record_set_id=_render_required_string( + self.payload, + "record_set_id", + year=year, + ), + record_set_spec_id=_required( + self.payload, + "record_set_spec_id", + "record_set", + ), + source_record_id_prefix=_render_required_string( + self.payload, + "source_record_id_prefix", + year=year, + ), + sheet_name=_record_set_sheet_name_from_mapping( + self.payload, + year=year, + ), + period_type=_required(self.payload, "period_type", "record_set"), + period=_record_set_period_from_mapping(self.payload, year=year), + geography_id=_required(self.payload, "geography_id", "record_set"), + geography_level=_required( + self.payload, + "geography_level", + "record_set", + ), + geography_name=self.payload.get("geography_name"), + geography_vintage=self.payload.get("geography_vintage"), + entity=_required(self.payload, "entity", "record_set"), + entity_role=self.payload.get("entity_role"), + domain=_required(self.payload, "domain", "record_set"), + groupby_dimension=_required( + self.payload, + "groupby_dimension", + "record_set", + ), + rows=rows, + measures=measures, + shared_filters={ + key: _render_value(value, year=year) + for key, value in self.payload.get("shared_filters", {}).items() + }, + shared_constraints=tuple( + _constraint_from_mapping(constraint, year=year) + for constraint in self.payload.get("shared_constraints", ()) + ), + ) + + +@dataclass(frozen=True) +class SourcePackage: + """A declarative Arch source package.""" + + package_id: str + label: str | None + artifact: SourceArtifactSpec + record_sets: tuple[DeclarativeRecordSet, ...] + package_path: Path + + def build_source_rows(self, year: int) -> list[SourceRow]: + """Build full source rows for row-oriented artifacts.""" + return self.artifact.build_source_rows(year) + + def build_source_cells( + self, + year: int, + *, + source_rows: list[SourceRow] | None = None, + ) -> list[SourceCell]: + """Build whole-artifact source cells for this package.""" + return self.artifact.build_source_cells(year, source_rows=source_rows) + + def build_source_record_set_specs( + self, + year: int, + ) -> list[SourceRecordSetSpec]: + """Build compact record-set specs for this package.""" + return [record_set.to_record_set_spec(year) for record_set in self.record_sets] + + def build_source_regions(self, year: int): + """Build source-region specs implied by the package record sets.""" + regions = [] + for spec in self.build_source_record_set_specs(year): + regions.extend(source_regions_from_record_set_spec(spec)) + return regions + + def build_source_record_specs(self, year: int) -> list[SourceRecordSpec]: + """Build atomic source-record specs for this package.""" + specs: list[SourceRecordSpec] = [] + for record_set in self.build_source_record_set_specs(year): + specs.extend(compile_source_record_set_specs(record_set)) + return specs + + def build_source_records( + self, + year: int, + *, + cells: list[SourceCell] | None = None, + source_rows: list[SourceRow] | None = None, + ) -> list[SourceRecord]: + """Resolve package source-record specs against source cells.""" + if cells is None: + cells = self.build_source_cells(year, source_rows=source_rows) + cells_by_sheet_address = build_cells_by_sheet_address(cells) + return [ + resolve_source_record( + cells, + spec, + cells_by_sheet_address=cells_by_sheet_address, + ) + for spec in self.build_source_record_specs(year) + ] + + def build_facts( + self, + year: int, + *, + cells: list[SourceCell] | None = None, + source_rows: list[SourceRow] | None = None, + ) -> list[AggregateFact]: + """Build source-lineaged Arch aggregate facts.""" + if cells is None: + cells = self.build_source_cells(year, source_rows=source_rows) + source = _source_provenance_from_cells(cells) + facts = [] + for record in self.build_source_records( + year, + cells=cells, + source_rows=source_rows, + ): + fact = _fact_from_source_record(record, source) + facts.append(replace(fact, label=build_label(fact))) + return facts + + +def load_source_package(source: str | Path) -> SourcePackage: + """Load a declarative source package from an alias, directory, or YAML file.""" + path = resolve_source_package_path(source) + with path.open("r", encoding="utf-8") as file: + payload = yaml.safe_load(file) + schema_version = _required(payload, "schema_version", str(path)) + if schema_version != "arch.source_package.v1": + raise ValueError(f"Unsupported source package schema: {schema_version}") + package_dir = path.parent + return SourcePackage( + package_id=_required(payload, "package_id", str(path)), + label=payload.get("label"), + artifact=_artifact_from_mapping( + _required(payload, "artifact", str(path)), + ), + record_sets=tuple( + DeclarativeRecordSet(record_set) + for record_set in _required(payload, "record_sets", str(path)) + ), + package_path=package_dir, + ) + + +def try_load_source_package(source: str | Path) -> SourcePackage | None: + """Return a declarative package if the source reference resolves to one.""" + try: + return load_source_package(source) + except FileNotFoundError: + return None + + +def validate_source_package( + source: str | Path, + *, + year: int = 2023, +) -> SourcePackageValidationReport: + """Validate declarative package structure before a full build-suite run.""" + package_path = _safe_package_path(source) + errors: list[SourcePackageIssue] = [] + warnings: list[SourcePackageIssue] = [] + counts = { + "record_set_count": 0, + "row_count": 0, + "measure_count": 0, + "source_record_count": 0, + "source_region_count": 0, + } + + try: + package = load_source_package(source) + except (FileNotFoundError, KeyError, TypeError, ValueError) as exc: + errors.append( + SourcePackageIssue( + code="source_package_load_failed", + message=str(exc), + ) + ) + return SourcePackageValidationReport( + package_id=None, + package_path=str(package_path), + year=year, + counts=counts, + errors=tuple(errors), + ) + + try: + package.artifact._artifact_content(year) + except (FileNotFoundError, KeyError, OSError, ValueError) as exc: + errors.append( + SourcePackageIssue( + code="source_artifact_unavailable", + message=str(exc), + ) + ) + + try: + record_sets = package.build_source_record_set_specs(year) + except (KeyError, TypeError, ValueError) as exc: + errors.append( + SourcePackageIssue( + code="record_set_compile_failed", + message=str(exc), + ) + ) + return SourcePackageValidationReport( + package_id=package.package_id, + package_path=str(package.package_path), + year=year, + counts=counts, + errors=tuple(errors), + warnings=tuple(warnings), + ) + + counts["record_set_count"] = len(record_sets) + record_set_ids: dict[str, list[int]] = {} + source_record_ids: dict[str, list[int]] = {} + for record_set_index, record_set in enumerate(record_sets): + record_set_ids.setdefault(record_set.record_set_id, []).append(record_set_index) + counts["row_count"] += len(record_set.rows) + counts["measure_count"] += len(record_set.measures) + errors.extend(_validate_record_set_authoring(record_set)) + try: + counts["source_region_count"] += len( + source_regions_from_record_set_spec(record_set) + ) + except ValueError as exc: + errors.append( + SourcePackageIssue( + code="source_region_compile_failed", + message=str(exc), + record_set_id=record_set.record_set_id, + ) + ) + try: + specs = compile_source_record_set_specs(record_set) + except (KeyError, TypeError, ValueError) as exc: + errors.append( + SourcePackageIssue( + code="source_record_compile_failed", + message=str(exc), + record_set_id=record_set.record_set_id, + ) + ) + continue + for spec_index, spec in enumerate(specs): + source_record_ids.setdefault(spec.source_record_id, []).append(spec_index) + counts["source_record_count"] += 1 + + for record_set_id, indices in record_set_ids.items(): + if len(indices) > 1: + errors.append( + SourcePackageIssue( + code="duplicate_record_set_id", + message=f"Duplicate record-set ID appears at indices {indices}.", + record_set_id=record_set_id, + ) + ) + for source_record_id, indices in source_record_ids.items(): + if len(indices) > 1: + errors.append( + SourcePackageIssue( + code="duplicate_source_record_id", + message=( + "Duplicate compiled source-record ID appears at " + f"indices {indices}." + ), + record_set_id=source_record_id.rsplit(".", 2)[0], + ) + ) + + return SourcePackageValidationReport( + package_id=package.package_id, + package_path=str(package.package_path), + year=year, + counts=counts, + errors=tuple(errors), + warnings=tuple(warnings), + ) + + +def scaffold_source_package( + output_dir: str | Path, + *, + source_id: str, + package_id: str, + source_table: str | None = None, + resource_package: str = "db", + resource_directory: str | None = None, + manifest: str = "manifest.yaml", + replace_existing: bool = False, +) -> SourcePackageScaffoldReport: + """Write a starter declarative source package.""" + package_path = Path(output_dir) + source_package_path = package_path / SOURCE_PACKAGE_FILENAME + replaced = source_package_path.exists() + if replaced and not replace_existing: + raise FileExistsError(f"Source package already exists: {source_package_path}") + package_path.mkdir(parents=True, exist_ok=True) + source_package_path.write_text( + _scaffold_template( + source_id=source_id, + package_id=package_id, + source_table=source_table or "TODO source table title", + resource_package=resource_package, + resource_directory=(resource_directory or f"data/{source_id}/TODO_table"), + manifest=manifest, + ), + encoding="utf-8", + ) + return SourcePackageScaffoldReport( + package_id=package_id, + source_id=source_id, + package_path=str(package_path), + source_package_path=str(source_package_path), + replaced=replaced, + ) + + +def resolve_source_package_path(source: str | Path) -> Path: + """Resolve a package alias, directory, or YAML file to source_package.yaml.""" + source_path = Path(source) + if source_path.exists(): + if source_path.is_dir(): + return source_path / SOURCE_PACKAGE_FILENAME + return source_path + alias = SOURCE_PACKAGE_ALIASES.get(str(source)) + if alias is None: + raise FileNotFoundError(f"Source package not found: {source}") + repo_path = _repo_root() / "packages" / alias / SOURCE_PACKAGE_FILENAME + if repo_path.exists(): + return repo_path + try: + resource_path = files(SOURCE_PACKAGE_RESOURCE_PACKAGE).joinpath( + alias, + SOURCE_PACKAGE_FILENAME, + ) + with resource_path.open("rb"): + pass + return Path(str(resource_path)) + except (FileNotFoundError, ModuleNotFoundError): + raise FileNotFoundError(f"Source package not found: {source}") from None + + +def _validate_record_set_authoring( + record_set: SourceRecordSetSpec, +) -> list[SourcePackageIssue]: + errors: list[SourcePackageIssue] = [] + row_ids: dict[str, list[int]] = {} + row_ordinals: dict[int, list[int]] = {} + measure_ids: dict[str, list[int]] = {} + measure_ordinals: dict[int, list[int]] = {} + for index, row in enumerate(record_set.rows): + row_ids.setdefault(row.value_id, []).append(index) + row_ordinals.setdefault(row.ordinal, []).append(index) + if _row_needs_constraints(row) and not row.constraints: + errors.append( + SourcePackageIssue( + code="missing_row_constraints", + message=( + "Detail row has semantic filters but no first-class " + "constraints." + ), + record_set_id=record_set.record_set_id, + row_id=row.value_id, + ) + ) + errors.extend(_missing_filter_bound_constraints(record_set, row)) + + for index, measure in enumerate(record_set.measures): + measure_ids.setdefault(measure.measure_id, []).append(index) + measure_ordinals.setdefault(measure.ordinal, []).append(index) + if not EXCEL_COLUMN_RE.match(measure.column): + errors.append( + SourcePackageIssue( + code="malformed_measure_column", + message=( + "Measure column must be an Excel column name like B or AA." + ), + record_set_id=record_set.record_set_id, + measure_id=measure.measure_id, + ) + ) + if measure.concept_relation == "exact" and not ( + measure.concept_evidence_url or measure.concept_evidence_notes + ): + errors.append( + SourcePackageIssue( + code="missing_concept_evidence", + message="Exact concept alignments need evidence notes or a URL.", + record_set_id=record_set.record_set_id, + measure_id=measure.measure_id, + ) + ) + if measure.source_concept and not measure.concept_relation: + errors.append( + SourcePackageIssue( + code="missing_concept_relation", + message="source_concept requires concept_relation.", + record_set_id=record_set.record_set_id, + measure_id=measure.measure_id, + ) + ) + if measure.concept_relation and not measure.source_concept: + errors.append( + SourcePackageIssue( + code="missing_source_concept", + message="concept_relation requires source_concept.", + record_set_id=record_set.record_set_id, + measure_id=measure.measure_id, + ) + ) + + errors.extend( + _duplicate_issues( + row_ids, + code="duplicate_row_id", + message="Duplicate row ID appears within a record set.", + record_set_id=record_set.record_set_id, + row=True, + ) + ) + errors.extend( + _duplicate_ordinal_issues( + row_ordinals, + code="duplicate_row_ordinal", + message="Duplicate row ordinal appears within a record set.", + record_set_id=record_set.record_set_id, + row=True, + ) + ) + errors.extend( + _duplicate_issues( + measure_ids, + code="duplicate_measure_id", + message="Duplicate measure ID appears within a record set.", + record_set_id=record_set.record_set_id, + row=False, + ) + ) + errors.extend( + _duplicate_ordinal_issues( + measure_ordinals, + code="duplicate_measure_ordinal", + message="Duplicate measure ordinal appears within a record set.", + record_set_id=record_set.record_set_id, + row=False, + ) + ) + return errors + + +def _row_needs_constraints(row: SourceRecordSetRow) -> bool: + if row.table_record_kind == "total": + return False + return any( + key not in {"filing_status", "income_range"} + for key, value in row.filters.items() + if value not in (None, "all") + ) + + +def _missing_filter_bound_constraints( + record_set: SourceRecordSetSpec, + row: SourceRecordSetRow, +) -> list[SourcePackageIssue]: + errors: list[SourcePackageIssue] = [] + for suffix, operator in (("_lower_usd", ">="), ("_upper_usd", "<")): + for filter_key, value in row.filters.items(): + if not filter_key.endswith(suffix): + continue + if not any( + constraint.operator == operator and constraint.value == value + for constraint in row.constraints + ): + errors.append( + SourcePackageIssue( + code="missing_bound_constraint", + message=( + f"Filter {filter_key}={value!r} needs a matching " + f"{operator} constraint." + ), + record_set_id=record_set.record_set_id, + row_id=row.value_id, + ) + ) + return errors + + +def _duplicate_issues( + indices_by_value: dict[str, list[int]], + *, + code: str, + message: str, + record_set_id: str, + row: bool, +) -> list[SourcePackageIssue]: + issues = [] + for value, indices in indices_by_value.items(): + if len(indices) <= 1: + continue + issues.append( + SourcePackageIssue( + code=code, + message=f"{message} Indices: {indices}.", + record_set_id=record_set_id, + row_id=value if row else None, + measure_id=None if row else value, + ) + ) + return issues + + +def _duplicate_ordinal_issues( + indices_by_value: dict[int, list[int]], + *, + code: str, + message: str, + record_set_id: str, + row: bool, +) -> list[SourcePackageIssue]: + issues = [] + for value, indices in indices_by_value.items(): + if len(indices) <= 1: + continue + issue = SourcePackageIssue( + code=code, + message=f"{message} Ordinal: {value}; indices: {indices}.", + record_set_id=record_set_id, + row_id=str(value) if row else None, + measure_id=None if row else str(value), + ) + issues.append(issue) + return issues + + +def _artifact_from_mapping(payload: dict[str, Any]) -> SourceArtifactSpec: + return SourceArtifactSpec( + source_name=_required(payload, "source_name", "artifact"), + source_table=_required(payload, "source_table", "artifact"), + resource_package=_required(payload, "resource_package", "artifact"), + resource_directory=_required(payload, "resource_directory", "artifact"), + manifest=_required(payload, "manifest", "artifact"), + vintage=_required(payload, "vintage", "artifact"), + extracted_at=_required(payload, "extracted_at", "artifact"), + extraction_method=_required(payload, "extraction_method", "artifact"), + parser=payload.get("parser", "xls_used_range"), + sheet_name=payload.get("sheet_name"), + archive_member=payload.get("archive_member"), + artifact_year=( + int(payload["artifact_year"]) + if payload.get("artifact_year") is not None + else None + ), + delimiter=payload.get("delimiter", ","), + selected_rows=tuple(payload.get("selected_rows", ())), + ) + + +def _row_from_mapping(payload: dict[str, Any], *, year: int) -> SourceRecordSetRow: + return SourceRecordSetRow( + value_id=_required(payload, "value_id", "row"), + label=_required(payload, "label", "row"), + ordinal=int(_required(payload, "ordinal", "row")), + row_number=int(_required(payload, "row_number", "row")), + row_end_number=( + int(payload["row_end_number"]) + if payload.get("row_end_number") is not None + else None + ), + geography_id=payload.get("geography_id"), + geography_level=payload.get("geography_level"), + geography_name=payload.get("geography_name"), + geography_vintage=payload.get("geography_vintage"), + filters={ + key: _render_value(value, year=year) + for key, value in payload.get("filters", {}).items() + }, + constraints=tuple( + _constraint_from_mapping(constraint, year=year) + for constraint in payload.get("constraints", ()) + ), + value_scale=_render_value(payload.get("value_scale", 1), year=year), + source_row_id=payload.get("source_row_id"), + table_record_kind=payload.get("table_record_kind", "detail"), + expected_row_header=_render_value( + payload["expected_row_header"], + year=year, + ) + if "expected_row_header" in payload + else None, + expected_row_header_column=payload.get("expected_row_header_column"), + guard_cells=tuple( + _row_guard_from_mapping(guard, year=year) + for guard in payload.get("guard_cells", ()) + ), + range_label_guards=tuple( + _range_label_guard_from_mapping(guard, year=year) + for guard in payload.get("range_label_guards", ()) + ), + ) + + +def _row_guard_from_mapping( + payload: dict[str, Any], + *, + year: int, +) -> SourceRecordSetRowGuard: + unknown_keys = set(payload) - {"column", "expected_value", "row", "label"} + if unknown_keys: + unknown = ", ".join(sorted(unknown_keys)) + raise ValueError(f"Unknown row_guard field(s): {unknown}") + column = str(_required(payload, "column", "row_guard")).upper() + if EXCEL_COLUMN_RE.fullmatch(column) is None: + raise ValueError(f"Malformed row_guard column: {column!r}") + return SourceRecordSetRowGuard( + column=column, + expected_value=_render_value( + _required(payload, "expected_value", "row_guard"), + year=year, + ), + row=_render_value(payload.get("row", "start"), year=year), + label=payload.get("label", "row guard"), + ) + + +def _range_label_guard_from_mapping( + payload: dict[str, Any], + *, + year: int, +) -> SourceRecordSetRangeLabelGuard: + unknown_keys = set(payload) - {"column", "expected_values", "label"} + if unknown_keys: + unknown = ", ".join(sorted(unknown_keys)) + raise ValueError(f"Unknown range_label_guard field(s): {unknown}") + column = str(_required(payload, "column", "range_label_guard")).upper() + if EXCEL_COLUMN_RE.fullmatch(column) is None: + raise ValueError(f"Malformed range_label_guard column: {column!r}") + expected_values = _range_label_values_from_payload( + _required(payload, "expected_values", "range_label_guard"), + year=year, + ) + _validate_range_label_values(expected_values) + return SourceRecordSetRangeLabelGuard( + column=column, + expected_values=expected_values, + label=payload.get("label", "range label sequence"), + ) + + +def _range_label_values_from_payload( + payload: Any, + *, + year: int, +) -> tuple[Any, ...]: + if isinstance(payload, list): + return tuple(_render_value(value, year=year) for value in payload) + if not isinstance(payload, dict): + raise ValueError("range_label_guard expected_values must be a list or mapping") + unknown_keys = set(payload) - {"integer_range", "parts"} + if unknown_keys: + unknown = ", ".join(sorted(unknown_keys)) + raise ValueError( + f"Unknown range_label_guard expected_values field(s): {unknown}" + ) + compact_forms = {"integer_range", "parts"} & set(payload) + if len(compact_forms) > 1: + forms = ", ".join(sorted(compact_forms)) + raise ValueError( + "range_label_guard expected_values must use exactly one compact " + f"form; got {forms}" + ) + if "integer_range" in payload: + return _integer_range_values(payload["integer_range"], year=year) + if "parts" in payload: + values = [] + for part in payload["parts"]: + values.extend(_range_label_values_from_payload(part, year=year)) + return tuple(values) + raise ValueError("range_label_guard expected_values mapping is empty") + + +def _validate_range_label_values(values: tuple[Any, ...]) -> None: + if any(value is None for value in values): + raise ValueError("range_label_guard expected_values must not contain null") + + +def _integer_range_values(payload: dict[str, Any], *, year: int) -> tuple[Any, ...]: + unknown_keys = set(payload) - {"start", "end", "final_value", "extra_values"} + if unknown_keys: + unknown = ", ".join(sorted(unknown_keys)) + raise ValueError(f"Unknown integer_range field(s): {unknown}") + start = int(_render_value(_required(payload, "start", "integer_range"), year=year)) + end = int(_render_value(_required(payload, "end", "integer_range"), year=year)) + if end < start: + raise ValueError("integer_range end must be greater than or equal to start") + values: list[Any] = list(range(start, end + 1)) + if "final_value" in payload: + values[-1] = _render_value(payload["final_value"], year=year) + if "extra_values" in payload: + extra_values = payload["extra_values"] + if not isinstance(extra_values, list): + extra_values = [extra_values] + values.extend(_render_value(value, year=year) for value in extra_values) + return tuple(values) + + +def _measure_from_mapping( + payload: dict[str, Any], + *, + year: int, +) -> SourceRecordSetMeasure: + return SourceRecordSetMeasure( + measure_id=_required(payload, "measure_id", "measure"), + label=_required(payload, "label", "measure"), + ordinal=int(_required(payload, "ordinal", "measure")), + column=_measure_column_from_mapping(payload, year=year), + concept=_required(payload, "concept", "measure"), + unit=_required(payload, "unit", "measure"), + aggregation=_required(payload, "aggregation", "measure"), + value_scale=_render_value(payload.get("value_scale", 1), year=year), + source_column_id=( + str(_render_value(payload["source_column_id"], year=year)) + if payload.get("source_column_id") is not None + else None + ), + expected_cell_type=payload.get("expected_cell_type", "number"), + expected_column_header_row=( + int(payload["expected_column_header_row"]) + if payload.get("expected_column_header_row") is not None + else None + ), + expected_column_header=_render_value( + _year_mapping(payload["expected_column_header_by_year"], year) + if "expected_column_header_by_year" in payload + else payload["expected_column_header"], + year=year, + ) + if "expected_column_header" in payload + or "expected_column_header_by_year" in payload + else None, + source_concept=payload.get("source_concept"), + concept_relation=payload.get("concept_relation"), + concept_authority=payload.get("concept_authority"), + concept_evidence_url=payload.get("concept_evidence_url"), + concept_evidence_notes=_optional_rendered_string( + payload.get("concept_evidence_notes"), + year=year, + ), + legal_vintage=( + _render_string(payload["legal_vintage"], year=year) + if payload.get("legal_vintage") + else None + ), + filters={ + key: _render_value(value, year=year) + for key, value in payload.get("filters", {}).items() + }, + constraints=tuple( + _constraint_from_mapping(constraint, year=year) + for constraint in payload.get("constraints", ()) + ), + ) + + +def _measure_column_from_mapping(payload: dict[str, Any], *, year: int) -> str: + if "column_by_year" in payload: + return str(_year_mapping(payload["column_by_year"], year)) + return str(_required(payload, "column", "measure")) + + +def _record_set_period_from_mapping( + payload: dict[str, Any], + *, + year: int, +) -> int | str: + if "period_by_year" in payload: + return _period_value(_year_mapping(payload["period_by_year"], year)) + return _period_value( + _render_value( + _required(payload, "period", "record_set"), + year=year, + ) + ) + + +def _record_set_sheet_name_from_mapping( + payload: dict[str, Any], + *, + year: int, +) -> str: + if "sheet_name_by_year" in payload: + return str(_year_mapping(payload["sheet_name_by_year"], year)) + return _render_string( + str(_required(payload, "sheet_name", "record_set")), year=year + ) + + +def _period_value(value: Any) -> int | str: + if isinstance(value, int): + return value + if isinstance(value, str): + stripped = value.strip() + if stripped.isdigit(): + return int(stripped) + return stripped + raise ValueError(f"Unsupported period value: {value!r}") + + +def _constraint_from_mapping( + payload: dict[str, Any], + *, + year: int, +) -> AggregateConstraint: + return AggregateConstraint( + variable=_required(payload, "variable", "constraint"), + operator=_required(payload, "operator", "constraint"), + value=_render_value(_required(payload, "value", "constraint"), year=year), + unit=payload.get("unit"), + role=payload.get("role", "filter"), + label=payload.get("label"), + ) + + +def _fact_from_source_record( + record: SourceRecord, + source: SourceProvenance, +) -> AggregateFact: + spec = record.spec + return AggregateFact( + value=record.value, + period=PeriodDimension(type=spec.period_type, value=spec.period), + geography=GeographyDimension( + level=spec.geography_level, + id=spec.geography_id, + vintage=spec.geography_vintage, + name=spec.geography_name, + ), + entity=EntityDimension(name=spec.entity, role=spec.entity_role), + measure=Measure( + concept=spec.concept, + unit=spec.unit, + source_concept=spec.source_concept, + concept_relation=spec.concept_relation, + concept_authority=spec.concept_authority, + concept_evidence_url=spec.concept_evidence_url, + concept_evidence_notes=spec.concept_evidence_notes, + legal_vintage=spec.legal_vintage, + ), + aggregation=Aggregation(method=spec.aggregation), + source=source, + filters=spec.filters, + domain=spec.domain, + source_record_id=record.source_record_id, + source_cell_keys=record.source_cell_keys, + source_row_keys=record.source_row_keys, + constraints=spec.constraints, + layout=spec.layout, + ) + + +def _source_provenance_from_cells(cells: list[SourceCell]) -> SourceProvenance: + artifact = cells[0].artifact + return SourceProvenance( + source_name=artifact.source_name, + source_table=artifact.source_table, + source_file=artifact.source_file, + url=artifact.url, + vintage=artifact.vintage, + extracted_at=artifact.extracted_at, + extraction_method="CellSelectorSpec and SourceRecordSpec resolved from cells", + method_notes=( + "Each fact carries source_record_id, source_cell_keys, and " + "source_row_keys when available." + ), + source_sha256=artifact.sha256, + source_size_bytes=artifact.size_bytes, + raw_r2_bucket=artifact.raw_r2_bucket, + raw_r2_key=artifact.raw_r2_key, + raw_r2_uri=artifact.raw_r2_uri, + ) + + +def _render_required_string( + payload: dict[str, Any], + key: str, + *, + year: int, +) -> str: + return _render_string(_required(payload, key, "record_set"), year=year) + + +def _render_string(value: str, *, year: int) -> str: + return value.format(year=year, filing_year=year + 1) + + +def _optional_rendered_string(value: Any, *, year: int) -> str | None: + if value is None: + return None + return _render_string(str(value), year=year).strip() + + +def _render_value(value: Any, *, year: int) -> Any: + if isinstance(value, str): + rendered = _render_string(value, year=year) + return int(rendered) if rendered.isdigit() else rendered + if isinstance(value, list): + return [_render_value(item, year=year) for item in value] + if isinstance(value, dict): + return {key: _render_value(item, year=year) for key, item in value.items()} + return value + + +def _required(payload: dict[str, Any], key: str, context: str) -> Any: + if key not in payload: + raise ValueError(f"Missing required {context} field: {key}") + return payload[key] + + +def _year_mapping(files_by_year: dict[Any, Any], year: int) -> dict[str, str]: + if year in files_by_year: + return files_by_year[year] + if str(year) in files_by_year: + return files_by_year[str(year)] + raise ValueError(f"No source artifact for year {year}") + + +def _read_source_artifact_content( + artifact_path: Any, + spec: dict[str, Any], +) -> bytes: + """Read a source artifact from package data, cache, or explicit fetch.""" + try: + return artifact_path.read_bytes() + except FileNotFoundError: + pass + + cache_path = _source_artifact_cache_path(spec) + if cache_path.exists(): + return cache_path.read_bytes() + + if not _truthy_env(SOURCE_ARTIFACT_FETCH_ENV): + raise FileNotFoundError( + f"Source artifact {spec['filename']} is not packaged and was not " + f"found in {cache_path}. Set {SOURCE_ARTIFACT_FETCH_ENV}=1 to fetch " + "and cache missing source artifacts." + ) + + content = _fetch_source_artifact_content(str(spec["source_url"])) + expected_sha = spec.get("sha256") + if expected_sha: + _validate_source_artifact_sha( + content, + expected_sha=str(expected_sha), + filename=str(spec["filename"]), + ) + cache_path.parent.mkdir(parents=True, exist_ok=True) + cache_path.write_bytes(content) + return content + + +def _source_artifact_cache_path(spec: dict[str, Any]) -> Path: + cache_root = Path( + os.environ.get(SOURCE_ARTIFACT_CACHE_ENV, DEFAULT_SOURCE_ARTIFACT_CACHE_DIR) + ) + source_identity = str(spec.get("source_url", spec["filename"])).encode() + identifier = str(spec.get("sha256") or hashlib.sha256(source_identity).hexdigest()) + return cache_root / identifier / str(spec["filename"]) + + +def _fetch_source_artifact_content(source_url: str) -> bytes: + parsed = urlparse(source_url) + if parsed.scheme == "file": + return Path(unquote(parsed.path)).read_bytes() + if parsed.scheme == "": + return Path(source_url).read_bytes() + if parsed.scheme not in {"http", "https"}: + raise ValueError(f"Unsupported source artifact URL scheme: {parsed.scheme}") + response = httpx.get(source_url, follow_redirects=True, timeout=60) + response.raise_for_status() + return response.content + + +def _validate_source_artifact_sha( + content: bytes, + *, + expected_sha: str, + filename: str, +) -> None: + actual_sha = hashlib.sha256(content).hexdigest() + if actual_sha != expected_sha: + raise ValueError( + f"Source artifact checksum mismatch for {filename}: " + f"expected {expected_sha}, got {actual_sha}" + ) + + +def _truthy_env(name: str) -> bool: + return os.environ.get(name, "").strip().lower() in {"1", "true", "yes", "on"} + + +def _single_archive_member(archive: ZipFile, *, suffixes: tuple[str, ...]) -> str: + members = [ + name + for name in archive.namelist() + if not name.endswith("/") and name.lower().endswith(suffixes) + ] + if len(members) != 1: + raise ValueError( + "Archive parser needs exactly one matching member or an explicit " + f"archive_member; found {members}." + ) + return members[0] + + +def _repo_root() -> Path: + return Path(__file__).resolve().parents[1] + + +def _safe_package_path(source: str | Path) -> Path: + try: + return resolve_source_package_path(source) + except FileNotFoundError: + return Path(source) + + +def _scaffold_template( + *, + source_id: str, + package_id: str, + source_table: str, + resource_package: str, + resource_directory: str, + manifest: str, +) -> str: + return f"""schema_version: arch.source_package.v1 +package_id: {package_id} +label: TODO package label +artifact: + source_name: {source_id} + source_table: {source_table} + resource_package: {resource_package} + resource_directory: {resource_directory} + manifest: {manifest} + vintage: tax_year_{{year}} + extracted_at: "TODO YYYY-MM-DD" + extraction_method: xlrd whole-workbook used-range cell parse +record_sets: + - record_set_id: {source_id}.ty{{year}}.TODO_table + record_set_spec_id: {source_id}.TODO_table.v1 + source_record_id_prefix: {source_id}.ty{{year}}.TODO_table + sheet_name: TODO + period_type: tax_year + period: "{{year}}" + geography_id: TODO + geography_level: country + geography_name: TODO + geography_vintage: TODO + entity: tax_unit + entity_role: filing_unit + domain: TODO_domain + groupby_dimension: TODO_concept + rows: + - value_id: all + label: TODO row label + ordinal: 0 + row_number: 1 + filters: + TODO_filter: all + table_record_kind: total + measures: + - measure_id: TODO_measure + label: TODO measure label + ordinal: 0 + column: B + concept: TODO_concept + unit: count + aggregation: count +""" diff --git a/arch/sources/__init__.py b/arch/sources/__init__.py index 2a2ed74..6461ddf 100644 --- a/arch/sources/__init__.py +++ b/arch/sources/__init__.py @@ -1,17 +1,69 @@ """Source lineage and dataset registry helpers.""" +from .cells import ( + SourceArtifactMetadata, + SourceCell, + SourceCellIssue, + SourceCellReport, + build_source_cell_key, + load_source_cells_jsonl, + save_source_cells_jsonl, + source_cells_from_delimited_text, + source_cells_from_html_tables_and_text, + source_cells_from_ods, + source_cells_from_xls, + source_cells_from_xlsx, + validate_source_cells, +) from .models import SourceFile, SourceReference +from .specs import ( + CellSelectorSpec, + SourceRecord, + SourceRecordSetMeasure, + SourceRecordSetRow, + SourceRecordSetSpec, + SourceRecordSpec, + SourceRegionSpec, + compile_source_record_set_specs, + resolve_cell_selector, + resolve_source_record, + source_regions_from_record_set_spec, +) from db.schema import SourceArtifact, SourceColumn, SourceRow, SourceTable from db.supabase_client import list_datasets, query_sources, register_dataset __all__ = [ + "CellSelectorSpec", + "SourceArtifactMetadata", "SourceArtifact", + "SourceCell", + "SourceCellIssue", + "SourceCellReport", "SourceColumn", "SourceFile", + "SourceRecord", + "SourceRecordSetMeasure", + "SourceRecordSetRow", + "SourceRecordSetSpec", + "SourceRecordSpec", "SourceReference", + "SourceRegionSpec", "SourceRow", "SourceTable", + "build_source_cell_key", + "compile_source_record_set_specs", "list_datasets", + "load_source_cells_jsonl", "query_sources", "register_dataset", + "resolve_cell_selector", + "resolve_source_record", + "save_source_cells_jsonl", + "source_cells_from_delimited_text", + "source_cells_from_html_tables_and_text", + "source_cells_from_ods", + "source_cells_from_xls", + "source_cells_from_xlsx", + "source_regions_from_record_set_spec", + "validate_source_cells", ] diff --git a/arch/sources/cells.py b/arch/sources/cells.py new file mode 100644 index 0000000..ae0713f --- /dev/null +++ b/arch/sources/cells.py @@ -0,0 +1,952 @@ +"""Source-cell records for preserving parsed source artifacts.""" + +from __future__ import annotations + +import csv +from collections import Counter +from dataclasses import asdict, dataclass +from datetime import date, datetime, time +import hashlib +from html.parser import HTMLParser +from io import BytesIO, StringIO +import json +from pathlib import Path +import re +from typing import Any +from xml.etree import ElementTree +from zipfile import ZipFile + +import openpyxl +import xlrd + +Scalar = str | int | float | bool | None +SOURCE_CELL_KEY_PREFIX = "arch.source_cell.v1" + + +@dataclass(frozen=True) +class SourceArtifactMetadata: + """Immutable source artifact identity for parsed cells.""" + + source_name: str + source_table: str + source_file: str + url: str | None + vintage: str + sha256: str + size_bytes: int + extracted_at: str + extraction_method: str + raw_r2_bucket: str | None = None + raw_r2_key: str | None = None + raw_r2_uri: str | None = None + + +@dataclass(frozen=True) +class SourceCell: + """One parsed cell from a source artifact.""" + + artifact: SourceArtifactMetadata + sheet_name: str + row_number: int + column_number: int + address: str + cell_type: str + raw_value: Scalar + display_value: str | None + formula: str | None = None + note: str | None = None + source_row_key: str | None = None + + +@dataclass(frozen=True) +class SourceCellIssue: + """One source-cell validation issue.""" + + code: str + message: str + source_cell_key: str | None = None + cell_index: int | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + data = asdict(self) + return {key: value for key, value in data.items() if value is not None} + + +@dataclass(frozen=True) +class SourceCellReport: + """Validation and QA summary for source-cell records.""" + + cell_count: int + counts: dict[str, dict[str, int]] + errors: tuple[SourceCellIssue, ...] + warnings: tuple[SourceCellIssue, ...] = () + + @property + def valid(self) -> bool: + """Whether the cell set has no validation errors.""" + return not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "cell_count": self.cell_count, + "counts": self.counts, + "errors": [issue.to_dict() for issue in self.errors], + "warnings": [issue.to_dict() for issue in self.warnings], + } + + +def build_source_cell_key(cell: SourceCell) -> str: + """Build a stable key from artifact hash and sheet coordinates.""" + payload = { + "artifact_sha256": cell.artifact.sha256, + "sheet_name": cell.sheet_name, + "row_number": cell.row_number, + "column_number": cell.column_number, + } + raw = json.dumps(payload, sort_keys=True, separators=(",", ":")) + digest = hashlib.sha256(raw.encode("utf-8")).hexdigest()[:24] + return f"{SOURCE_CELL_KEY_PREFIX}:{digest}" + + +def source_cells_from_xls( + content: bytes, + artifact: SourceArtifactMetadata, +) -> list[SourceCell]: + """Parse all used-range cells from an XLS workbook.""" + workbook = xlrd.open_workbook(file_contents=content, formatting_info=False) + cells: list[SourceCell] = [] + for sheet in workbook.sheets(): + for row_index in range(sheet.nrows): + for column_index in range(sheet.ncols): + cell = sheet.cell(row_index, column_index) + raw_value = _cell_raw_value(cell, workbook.datemode) + display_value = None if raw_value is None else str(raw_value) + cells.append( + SourceCell( + artifact=artifact, + sheet_name=sheet.name, + row_number=row_index + 1, + column_number=column_index + 1, + address=f"{_excel_column_name(column_index + 1)}{row_index + 1}", + cell_type=_cell_type_name(cell.ctype), + raw_value=raw_value, + display_value=display_value, + ) + ) + return cells + + +def source_cells_from_xlsx( + content: bytes, + artifact: SourceArtifactMetadata, +) -> list[SourceCell]: + """Parse all used-range cells from an XLSX workbook.""" + value_workbook = openpyxl.load_workbook(BytesIO(content), data_only=True) + formula_workbook = openpyxl.load_workbook(BytesIO(content), data_only=False) + cells: list[SourceCell] = [] + for sheet in value_workbook.worksheets: + formula_sheet = formula_workbook[sheet.title] + for row_index in range(1, sheet.max_row + 1): + for column_index in range(1, sheet.max_column + 1): + cell = sheet.cell(row=row_index, column=column_index) + formula_cell = formula_sheet.cell( + row=row_index, + column=column_index, + ) + raw_value = _xlsx_cell_raw_value(cell.value) + formula = ( + str(formula_cell.value) + if formula_cell.data_type == "f" + else None + ) + cells.append( + SourceCell( + artifact=artifact, + sheet_name=sheet.title, + row_number=row_index, + column_number=column_index, + address=cell.coordinate, + cell_type=_xlsx_cell_type(raw_value), + raw_value=raw_value, + display_value=None if raw_value is None else str(raw_value), + formula=formula, + ) + ) + return cells + + +def source_cells_from_ods( + content: bytes, + artifact: SourceArtifactMetadata, +) -> list[SourceCell]: + """Parse all used-range cells from an ODS workbook.""" + with ZipFile(BytesIO(content)) as archive: + root = ElementTree.fromstring(archive.read("content.xml")) + + spreadsheet = root.find(".//office:spreadsheet", _ODS_NAMESPACES) + if spreadsheet is None: + return [] + + cells: list[SourceCell] = [] + for table in spreadsheet.findall("table:table", _ODS_NAMESPACES): + sheet_name = table.attrib.get(_ods_attr("table", "name"), "Sheet") + rows = _ods_rows(table) + max_column = max((len(row) for row in rows), default=0) + for row_index, row in enumerate(rows, start=1): + for column_index in range(1, max_column + 1): + raw_value = row[column_index - 1] if column_index <= len(row) else None + cells.append( + SourceCell( + artifact=artifact, + sheet_name=sheet_name, + row_number=row_index, + column_number=column_index, + address=f"{_excel_column_name(column_index)}{row_index}", + cell_type=_scalar_cell_type(raw_value), + raw_value=raw_value, + display_value=None if raw_value is None else str(raw_value), + ) + ) + return cells + + +def source_cells_from_html_tables_and_text( + content: bytes, + artifact: SourceArtifactMetadata, +) -> list[SourceCell]: + """Parse HTML tables and numeric document text into source cells.""" + parser = _HtmlTableAndTextParser() + parser.feed(content.decode("utf-8", errors="replace")) + parser.close() + + cells: list[SourceCell] = [] + for table_index, rows in enumerate(parser.tables, start=1): + cells.extend( + _html_table_cells( + rows, + artifact, + sheet_name=f"table_{table_index}", + ) + ) + cells.extend(_html_document_number_cells(parser.blocks, artifact)) + return cells + + +def source_cells_from_pdf_text_numbers( + content: bytes, + artifact: SourceArtifactMetadata, +) -> list[SourceCell]: + """Parse PDF text lines into numeric document source cells.""" + from pypdf import PdfReader + + reader = PdfReader(BytesIO(content)) + sheet_name = "document_numbers" + headers: tuple[Scalar, ...] = ( + "page_number", + "line_number", + "text", + "number_text", + "numeric_value", + "context_text", + ) + cells = [ + _html_document_cell( + artifact, + sheet_name, + row_number=1, + column_number=index + 1, + raw_value=value, + ) + for index, value in enumerate(headers) + ] + row_number = 2 + for page_number, page in enumerate(reader.pages, start=1): + text = page.extract_text() or "" + lines = [ + (line_number, _normalize_html_text(line)) + for line_number, line in enumerate(text.splitlines(), start=1) + if _normalize_html_text(line) + ] + for line_index, (line_number, normalized_line) in enumerate(lines): + context_text = " ".join( + line_text + for _, line_text in lines[ + max(0, line_index - 2) : min(len(lines), line_index + 3) + ] + ) + for match in _HTML_NUMBER_RE.finditer(normalized_line): + number_text = match.group(0) + for column_number, raw_value in enumerate( + ( + page_number, + line_number, + normalized_line, + number_text, + _html_number_scalar(number_text), + context_text, + ), + start=1, + ): + cells.append( + _html_document_cell( + artifact, + sheet_name, + row_number=row_number, + column_number=column_number, + raw_value=raw_value, + ) + ) + row_number += 1 + return cells + + +def source_cells_from_delimited_text( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str, + selected_rows: tuple[dict[str, str], ...] = (), + delimiter: str = ",", +) -> list[SourceCell]: + """Parse selected rows from a delimited text artifact into source cells. + + The emitted row numbers are package-local so compact source-record specs can + stay stable even when the publisher file is large. Data cells carry the + original source line number in ``note``. + """ + text = content.decode("utf-8-sig") + reader = csv.reader(StringIO(text), delimiter=delimiter) + try: + header = next(reader) + except StopIteration: + return [] + + normalized_header = [_normalize_header_cell(item) for item in header] + selected_by_index: dict[int, tuple[int, list[str]]] = {} + for source_line_number, row in enumerate(reader, start=2): + row_by_header = { + normalized_header[index]: row[index] if index < len(row) else "" + for index in range(len(normalized_header)) + } + if not selected_rows: + selected_by_index[len(selected_by_index)] = (source_line_number, row) + continue + for selection_index, criteria in enumerate(selected_rows): + if selection_index in selected_by_index: + continue + if all(row_by_header.get(key, "") == value for key, value in criteria.items()): + selected_by_index[selection_index] = (source_line_number, row) + + cells = [ + _delimited_cell( + artifact, + sheet_name, + row_number=1, + column_number=index + 1, + raw_value=value, + ) + for index, value in enumerate(header) + ] + for virtual_row_number, selection_index in enumerate( + sorted(selected_by_index), + start=2, + ): + source_line_number, row = selected_by_index[selection_index] + for column_index, value in enumerate(row, start=1): + cells.append( + _delimited_cell( + artifact, + sheet_name, + row_number=virtual_row_number, + column_number=column_index, + raw_value=_delimited_scalar(value), + note=f"source_line_number={source_line_number}", + ) + ) + return cells + + +def validate_source_cells(cells: list[SourceCell]) -> SourceCellReport: + """Validate source cells and return QA counts plus issues.""" + errors: list[SourceCellIssue] = [] + key_indices: dict[str, list[int]] = {} + + for index, cell in enumerate(cells): + key = build_source_cell_key(cell) + key_indices.setdefault(key, []).append(index) + if not cell.artifact.source_name.strip(): + errors.append( + SourceCellIssue( + code="missing_source_name", + message="Cell artifact is missing source_name", + source_cell_key=key, + cell_index=index, + ) + ) + if not cell.artifact.sha256.strip(): + errors.append( + SourceCellIssue( + code="missing_artifact_sha256", + message="Cell artifact is missing sha256", + source_cell_key=key, + cell_index=index, + ) + ) + if cell.row_number < 1 or cell.column_number < 1: + errors.append( + SourceCellIssue( + code="malformed_coordinate", + message="Cell row and column numbers must be one-based", + source_cell_key=key, + cell_index=index, + ) + ) + + for key, indices in key_indices.items(): + if len(indices) > 1: + errors.append( + SourceCellIssue( + code="duplicate_source_cell_key", + message=f"Duplicate source-cell key appears at indices {indices}", + source_cell_key=key, + cell_index=indices[0], + ) + ) + + return SourceCellReport( + cell_count=len(cells), + counts=source_cell_counts(cells), + errors=tuple(errors), + ) + + +def source_cell_counts(cells: list[SourceCell]) -> dict[str, dict[str, int]]: + """Count cells across QA dimensions.""" + return { + "by_source": _counter_dict(cell.artifact.source_name for cell in cells), + "by_sheet": _counter_dict(cell.sheet_name for cell in cells), + "by_cell_type": _counter_dict(cell.cell_type for cell in cells), + "non_empty": { + "count": sum( + 1 + for cell in cells + if cell.cell_type not in {"empty", "blank"} + ) + }, + } + + +def load_source_cells_jsonl(path: str | Path) -> list[SourceCell]: + """Load source cells from JSON Lines.""" + cell_path = Path(path) + cells: list[SourceCell] = [] + with cell_path.open() as file: + for line_number, line in enumerate(file, start=1): + if not line.strip(): + continue + try: + payload = json.loads(line) + except json.JSONDecodeError as exc: + raise ValueError( + f"Invalid JSON on line {line_number} of {cell_path}" + ) from exc + cells.append(source_cell_from_mapping(payload)) + return cells + + +def save_source_cells_jsonl(cells: list[SourceCell], path: str | Path) -> None: + """Save source cells to JSON Lines.""" + cell_path = Path(path) + cell_path.parent.mkdir(parents=True, exist_ok=True) + with cell_path.open("w") as file: + for cell in cells: + file.write(json.dumps(source_cell_to_mapping(cell), sort_keys=True)) + file.write("\n") + + +def source_cell_from_mapping(payload: dict[str, Any]) -> SourceCell: + """Build a source cell from a JSON-compatible mapping.""" + return SourceCell( + artifact=SourceArtifactMetadata(**payload["artifact"]), + sheet_name=payload["sheet_name"], + row_number=payload["row_number"], + column_number=payload["column_number"], + address=payload["address"], + cell_type=payload["cell_type"], + raw_value=payload["raw_value"], + display_value=payload["display_value"], + formula=payload.get("formula"), + note=payload.get("note"), + source_row_key=payload.get("source_row_key"), + ) + + +def source_cell_to_mapping(cell: SourceCell) -> dict[str, Any]: + """Convert a source cell to a JSON-compatible mapping.""" + return asdict(cell) + + +def _cell_raw_value(cell: xlrd.sheet.Cell, datemode: int) -> Scalar: + if cell.ctype in {xlrd.XL_CELL_EMPTY, xlrd.XL_CELL_BLANK}: + return None + if cell.ctype == xlrd.XL_CELL_TEXT: + return str(cell.value) + if cell.ctype == xlrd.XL_CELL_NUMBER: + value = float(cell.value) + return int(value) if value.is_integer() else value + if cell.ctype == xlrd.XL_CELL_DATE: + return datetime(*xlrd.xldate_as_tuple(cell.value, datemode)).isoformat() + if cell.ctype == xlrd.XL_CELL_BOOLEAN: + return bool(cell.value) + if cell.ctype == xlrd.XL_CELL_ERROR: + return str(cell.value) + return str(cell.value) + + +def _xlsx_cell_raw_value(value: Any) -> Scalar: + if value is None: + return None + if isinstance(value, bool | int | float | str): + return value + if isinstance(value, datetime | date | time): + return value.isoformat() + return str(value) + + +def _xlsx_cell_type(raw_value: Scalar) -> str: + if raw_value is None: + return "empty" + if isinstance(raw_value, bool): + return "boolean" + if isinstance(raw_value, int | float): + return "number" + return "text" + + +def _cell_type_name(cell_type: int) -> str: + return { + xlrd.XL_CELL_EMPTY: "empty", + xlrd.XL_CELL_TEXT: "text", + xlrd.XL_CELL_NUMBER: "number", + xlrd.XL_CELL_DATE: "date", + xlrd.XL_CELL_BOOLEAN: "boolean", + xlrd.XL_CELL_ERROR: "error", + xlrd.XL_CELL_BLANK: "blank", + }.get(cell_type, "unknown") + + +_ODS_NAMESPACES = { + "office": "urn:oasis:names:tc:opendocument:xmlns:office:1.0", + "table": "urn:oasis:names:tc:opendocument:xmlns:table:1.0", + "text": "urn:oasis:names:tc:opendocument:xmlns:text:1.0", +} + + +def _ods_attr(namespace: str, name: str) -> str: + return f"{{{_ODS_NAMESPACES[namespace]}}}{name}" + + +def _ods_rows(table: ElementTree.Element) -> list[list[Scalar]]: + rows: list[list[Scalar]] = [] + for row in table.findall("table:table-row", _ODS_NAMESPACES): + row_values = _ods_row_values(row) + row_repeat = int(row.attrib.get(_ods_attr("table", "number-rows-repeated"), 1)) + if not any(value is not None for value in row_values): + row_repeat = min(row_repeat, 1) + rows.extend([list(row_values) for _ in range(row_repeat)]) + + while rows and not any(value is not None for value in rows[-1]): + rows.pop() + return rows + + +def _ods_row_values(row: ElementTree.Element) -> list[Scalar]: + values: list[Scalar] = [] + for cell in row.findall("table:table-cell", _ODS_NAMESPACES): + raw_value = _ods_cell_raw_value(cell) + column_repeat = int( + cell.attrib.get(_ods_attr("table", "number-columns-repeated"), 1) + ) + if raw_value is None: + column_repeat = min(column_repeat, 2048) + values.extend([raw_value] * column_repeat) + + while values and values[-1] is None: + values.pop() + return values + + +def _ods_cell_raw_value(cell: ElementTree.Element) -> Scalar: + value_type = cell.attrib.get(_ods_attr("office", "value-type")) + if value_type in {"float", "currency", "percentage"}: + value = cell.attrib.get(_ods_attr("office", "value")) + if value is not None: + numeric = float(value) + return int(numeric) if numeric.is_integer() else numeric + if value_type == "boolean": + value = cell.attrib.get(_ods_attr("office", "boolean-value")) + if value is not None: + return value == "true" + if value_type in {"date", "time"}: + return cell.attrib.get(_ods_attr("office", f"{value_type}-value")) + + text = _ods_cell_text(cell) + return text or None + + +def _ods_cell_text(cell: ElementTree.Element) -> str: + paragraphs = [] + for paragraph in cell.findall("text:p", _ODS_NAMESPACES): + text = "".join(paragraph.itertext()).strip() + if text: + paragraphs.append(" ".join(text.split())) + return " ".join(paragraphs).strip() + + +_HTML_BLOCK_TAGS = {"h1", "h2", "h3", "h4", "h5", "h6", "p", "li"} +_HTML_NUMBER_RE = re.compile( + r"(? None: + super().__init__(convert_charrefs=True) + self.tables: list[list[list[_HtmlCellValue]]] = [] + self.blocks: list[_HtmlBlock] = [] + self._table_depth = 0 + self._current_table: list[list[_HtmlCellValue]] | None = None + self._current_row: list[_HtmlCellValue] | None = None + self._current_cell_parts: list[str] | None = None + self._current_cell_colspan = 1 + self._current_block_tag: str | None = None + self._current_block_parts: list[str] = [] + self._next_block_index = 1 + + def handle_starttag( + self, + tag: str, + attrs: list[tuple[str, str | None]], + ) -> None: + tag = tag.lower() + if tag == "table": + self._table_depth += 1 + if self._table_depth == 1: + self._current_table = [] + return + + if self._table_depth: + self._handle_table_starttag(tag, attrs) + return + + if tag in _HTML_BLOCK_TAGS and self._current_block_tag is None: + self._current_block_tag = tag + self._current_block_parts = [] + elif tag == "br" and self._current_block_tag is not None: + self._current_block_parts.append(" ") + + def handle_endtag(self, tag: str) -> None: + tag = tag.lower() + if self._table_depth: + self._handle_table_endtag(tag) + if tag == "table": + self._table_depth -= 1 + if self._table_depth == 0 and self._current_table is not None: + self.tables.append(_trim_html_rows(self._current_table)) + self._current_table = None + return + + if tag == self._current_block_tag: + text = _normalize_html_text("".join(self._current_block_parts)) + if text: + self.blocks.append( + _HtmlBlock( + element_index=self._next_block_index, + tag=tag, + text=text, + ) + ) + self._next_block_index += 1 + self._current_block_tag = None + self._current_block_parts = [] + + def handle_data(self, data: str) -> None: + if self._current_cell_parts is not None: + self._current_cell_parts.append(data) + return + if not self._table_depth and self._current_block_tag is not None: + self._current_block_parts.append(data) + + def _handle_table_starttag( + self, + tag: str, + attrs: list[tuple[str, str | None]], + ) -> None: + if tag == "tr" and self._table_depth == 1: + self._current_row = [] + return + if tag in {"td", "th"} and self._current_row is not None: + self._current_cell_parts = [] + self._current_cell_colspan = _html_colspan(attrs) + elif tag == "br" and self._current_cell_parts is not None: + self._current_cell_parts.append(" ") + + def _handle_table_endtag(self, tag: str) -> None: + if tag in {"td", "th"} and self._current_cell_parts is not None: + text = _normalize_html_text("".join(self._current_cell_parts)) + value = _html_cell_value(text) + if self._current_row is not None: + self._current_row.extend( + value for _ in range(self._current_cell_colspan) + ) + self._current_cell_parts = None + self._current_cell_colspan = 1 + return + if tag == "tr" and self._current_row is not None: + if self._current_table is not None: + self._current_table.append(self._current_row) + self._current_row = None + + +def _html_table_cells( + rows: list[list[_HtmlCellValue]], + artifact: SourceArtifactMetadata, + *, + sheet_name: str, +) -> list[SourceCell]: + max_column = max((len(row) for row in rows), default=0) + cells = [] + for row_index, row in enumerate(rows, start=1): + for column_index in range(1, max_column + 1): + value = ( + row[column_index - 1] + if column_index <= len(row) + else _HtmlCellValue(None, None) + ) + cells.append( + SourceCell( + artifact=artifact, + sheet_name=sheet_name, + row_number=row_index, + column_number=column_index, + address=f"{_excel_column_name(column_index)}{row_index}", + cell_type=_scalar_cell_type(value.raw_value), + raw_value=value.raw_value, + display_value=value.display_value, + ) + ) + return cells + + +def _html_document_number_cells( + blocks: list[_HtmlBlock], + artifact: SourceArtifactMetadata, +) -> list[SourceCell]: + sheet_name = "document_numbers" + headers: tuple[Scalar, ...] = ( + "element_index", + "element_type", + "text", + "number_text", + "numeric_value", + ) + cells = [ + _html_document_cell( + artifact, + sheet_name, + row_number=1, + column_number=index + 1, + raw_value=value, + ) + for index, value in enumerate(headers) + ] + row_number = 2 + for block in blocks: + for match in _HTML_NUMBER_RE.finditer(block.text): + number_text = match.group(0) + for column_number, raw_value in enumerate( + ( + block.element_index, + block.tag, + block.text, + number_text, + _html_number_scalar(number_text), + ), + start=1, + ): + cells.append( + _html_document_cell( + artifact, + sheet_name, + row_number=row_number, + column_number=column_number, + raw_value=raw_value, + ) + ) + row_number += 1 + return cells + + +def _html_document_cell( + artifact: SourceArtifactMetadata, + sheet_name: str, + *, + row_number: int, + column_number: int, + raw_value: Scalar, +) -> SourceCell: + return SourceCell( + artifact=artifact, + sheet_name=sheet_name, + row_number=row_number, + column_number=column_number, + address=f"{_excel_column_name(column_number)}{row_number}", + cell_type=_scalar_cell_type(raw_value), + raw_value=raw_value, + display_value=None if raw_value is None else str(raw_value), + ) + + +def _html_colspan(attrs: list[tuple[str, str | None]]) -> int: + attr_dict = {key.lower(): value for key, value in attrs} + try: + return max(int(attr_dict.get("colspan") or 1), 1) + except ValueError: + return 1 + + +def _html_cell_value(text: str) -> _HtmlCellValue: + return _HtmlCellValue(_html_scalar(text), text or None) + + +def _html_scalar(text: str) -> Scalar: + if not text: + return None + numeric = text.replace(",", "") + if numeric.lstrip("-").isdigit(): + return int(numeric) + try: + return float(numeric) + except ValueError: + return text + + +def _html_number_scalar(text: str) -> int | float: + normalized = text.replace(",", "").lower().lstrip("£$€") + multiplier = 1 + for suffix, value in ( + ("thousand", 1_000), + ("million", 1_000_000), + ("billion", 1_000_000_000), + ("bn", 1_000_000_000), + ): + if normalized.endswith(suffix): + multiplier = value + normalized = normalized[: -len(suffix)].strip() + break + value = float(normalized) + scaled = value * multiplier + return int(scaled) if scaled.is_integer() else scaled + + +def _normalize_html_text(text: str) -> str: + text = text.replace("\xa0", " ").replace("\u202f", " ") + return " ".join(text.split()).strip() + + +def _trim_html_rows(rows: list[list[_HtmlCellValue]]) -> list[list[_HtmlCellValue]]: + trimmed = [list(row) for row in rows] + while trimmed and not any(cell.raw_value is not None for cell in trimmed[-1]): + trimmed.pop() + max_column = max((len(row) for row in trimmed), default=0) + while max_column: + if any( + max_column <= len(row) and row[max_column - 1].raw_value is not None + for row in trimmed + ): + break + max_column -= 1 + return [row[:max_column] for row in trimmed] + + +def _excel_column_name(column_number: int) -> str: + name = "" + while column_number: + column_number, remainder = divmod(column_number - 1, 26) + name = f"{chr(65 + remainder)}{name}" + return name + + +def _delimited_cell( + artifact: SourceArtifactMetadata, + sheet_name: str, + *, + row_number: int, + column_number: int, + raw_value: Scalar, + note: str | None = None, + source_row_key: str | None = None, +) -> SourceCell: + return SourceCell( + artifact=artifact, + sheet_name=sheet_name, + row_number=row_number, + column_number=column_number, + address=f"{_excel_column_name(column_number)}{row_number}", + cell_type=_scalar_cell_type(raw_value), + raw_value=raw_value, + display_value=None if raw_value is None else str(raw_value), + note=note, + source_row_key=source_row_key, + ) + + +def _delimited_scalar(value: str) -> Scalar: + stripped = value.strip() + if not stripped: + return None + numeric = stripped.replace("$", "").replace(",", "") + if numeric.lstrip("-").isdigit(): + return int(numeric) + try: + return float(numeric) + except ValueError: + return stripped + + +def _normalize_header_cell(value: str) -> str: + return value.strip().removeprefix("%") + + +def _scalar_cell_type(value: Scalar) -> str: + if value is None: + return "empty" + if isinstance(value, bool): + return "boolean" + if isinstance(value, int | float): + return "number" + return "text" + + +def _counter_dict(values: Any) -> dict[str, int]: + return dict(sorted(Counter(values).items())) diff --git a/arch/sources/rows.py b/arch/sources/rows.py new file mode 100644 index 0000000..65563ef --- /dev/null +++ b/arch/sources/rows.py @@ -0,0 +1,1011 @@ +"""Source-row records for preserving full delimited source artifacts.""" + +from __future__ import annotations + +import csv +import hashlib +import json +import re +from collections import Counter +from dataclasses import asdict, dataclass +from io import StringIO +from pathlib import Path +from typing import Any + +from arch.sources.cells import SourceArtifactMetadata, SourceCell + +Scalar = str | int | float | bool | None +SOURCE_ROW_KEY_PREFIX = "arch.source_row.v1" +SOURCE_COLUMN_KEY_PREFIX = "arch.source_column.v1" +SOURCE_ROW_VALUE_KEY_PREFIX = "arch.source_row_value.v1" + + +@dataclass(frozen=True) +class SourceRow: + """One parsed row from a source artifact.""" + + artifact: SourceArtifactMetadata + sheet_name: str + row_number: int + values: dict[str, Scalar] + + +@dataclass(frozen=True) +class SourceColumn: + """One parsed column from a row-oriented source artifact.""" + + artifact: SourceArtifactMetadata + sheet_name: str + column_number: int + raw_name: str + normalized_name: str + + +@dataclass(frozen=True) +class SourceRowValue: + """One queryable source-row value at a row/column coordinate.""" + + source_row_key: str + source_column_key: str + row_number: int + column_number: int + raw_column_name: str + normalized_column_name: str + value: Scalar + + +@dataclass(frozen=True) +class SourceRowIssue: + """One source-row validation issue.""" + + code: str + message: str + source_row_key: str | None = None + row_index: int | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + data = asdict(self) + return {key: value for key, value in data.items() if value is not None} + + +@dataclass(frozen=True) +class SourceRowReport: + """Validation and QA summary for source-row records.""" + + row_count: int + counts: dict[str, dict[str, int]] + errors: tuple[SourceRowIssue, ...] + warnings: tuple[SourceRowIssue, ...] = () + + @property + def valid(self) -> bool: + """Whether the row set has no validation errors.""" + return not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "row_count": self.row_count, + "counts": self.counts, + "errors": [issue.to_dict() for issue in self.errors], + "warnings": [issue.to_dict() for issue in self.warnings], + } + + +def build_source_row_key(row: SourceRow) -> str: + """Build a stable key from artifact hash and row coordinate.""" + payload = { + "artifact_sha256": row.artifact.sha256, + "sheet_name": row.sheet_name, + "row_number": row.row_number, + } + raw = json.dumps(payload, sort_keys=True, separators=(",", ":")) + digest = hashlib.sha256(raw.encode("utf-8")).hexdigest()[:24] + return f"{SOURCE_ROW_KEY_PREFIX}:{digest}" + + +def build_source_column_key(column: SourceColumn) -> str: + """Build a stable key from artifact hash and column coordinate.""" + payload = { + "artifact_sha256": column.artifact.sha256, + "sheet_name": column.sheet_name, + "column_number": column.column_number, + } + raw = json.dumps(payload, sort_keys=True, separators=(",", ":")) + digest = hashlib.sha256(raw.encode("utf-8")).hexdigest()[:24] + return f"{SOURCE_COLUMN_KEY_PREFIX}:{digest}" + + +def build_source_row_value_key(row_value: SourceRowValue) -> str: + """Build a stable key from source row and column keys.""" + payload = { + "source_row_key": row_value.source_row_key, + "source_column_key": row_value.source_column_key, + } + raw = json.dumps(payload, sort_keys=True, separators=(",", ":")) + digest = hashlib.sha256(raw.encode("utf-8")).hexdigest()[:24] + return f"{SOURCE_ROW_VALUE_KEY_PREFIX}:{digest}" + + +def source_rows_from_delimited_text( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str, + delimiter: str = ",", +) -> list[SourceRow]: + """Parse every data row from a delimited text artifact.""" + text = content.decode("utf-8-sig") + reader = csv.reader(StringIO(text), delimiter=delimiter) + try: + header = next(reader) + except StopIteration: + return [] + + normalized_header = [_normalize_header_cell(item) for item in header] + rows: list[SourceRow] = [] + for source_line_number, raw_row in enumerate(reader, start=2): + values = { + column: _delimited_scalar(raw_row[index]) + if index < len(raw_row) + else None + for index, column in enumerate(normalized_header) + } + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=source_line_number, + values=values, + ) + ) + return rows + + +def source_rows_from_json_table( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str, +) -> list[SourceRow]: + """Parse a simple JSON table into source rows.""" + data = json.loads(content.decode("utf-8")) + if not isinstance(data, list) or not data: + return [] + + first = data[0] + if isinstance(first, list): + header = [_normalize_header_cell(str(item)) for item in first] + rows: list[SourceRow] = [] + for source_row_number, raw_row in enumerate(data[1:], start=2): + if not isinstance(raw_row, list): + raise ValueError("JSON table rows must all be arrays.") + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=source_row_number, + values={ + column: _json_scalar(raw_row[index]) + if index < len(raw_row) + else None + for index, column in enumerate(header) + }, + ) + ) + return rows + + if isinstance(first, dict): + header = list(first) + rows = [] + for source_row_number, raw_row in enumerate(data, start=1): + if not isinstance(raw_row, dict): + raise ValueError("JSON table rows must all be objects.") + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=source_row_number, + values={ + _normalize_header_cell(str(column)): _json_scalar( + raw_row.get(column) + ) + for column in header + }, + ) + ) + return rows + + raise ValueError("JSON table must be an array of arrays or objects.") + + +S0101_TOTAL_AGE_COLUMNS: tuple[tuple[str, str], ...] = ( + ("S0101_C01_002E", "Aged 0-4"), + ("S0101_C01_003E", "Aged 5-9"), + ("S0101_C01_004E", "Aged 10-14"), + ("S0101_C01_005E", "Aged 15-19"), + ("S0101_C01_006E", "Aged 20-24"), + ("S0101_C01_007E", "Aged 25-29"), + ("S0101_C01_008E", "Aged 30-34"), + ("S0101_C01_009E", "Aged 35-39"), + ("S0101_C01_010E", "Aged 40-44"), + ("S0101_C01_011E", "Aged 45-49"), + ("S0101_C01_012E", "Aged 50-54"), + ("S0101_C01_013E", "Aged 55-59"), + ("S0101_C01_014E", "Aged 60-64"), + ("S0101_C01_015E", "Aged 65-69"), + ("S0101_C01_016E", "Aged 70-74"), + ("S0101_C01_017E", "Aged 75-79"), + ("S0101_C01_018E", "Aged 80-84"), + ("S0101_C01_019E", "Aged 85 and over"), +) + + +B01001_FEMALE_AGE_COLUMNS: tuple[tuple[str, str, int, int], ...] = ( + ("B01001_030E", "Female 15 to 17 years", 15, 18), + ("B01001_031E", "Female 18 and 19 years", 18, 20), + ("B01001_032E", "Female 20 years", 20, 21), + ("B01001_033E", "Female 21 years", 21, 22), + ("B01001_034E", "Female 22 to 24 years", 22, 25), + ("B01001_035E", "Female 25 to 29 years", 25, 30), + ("B01001_036E", "Female 30 to 34 years", 30, 35), + ("B01001_037E", "Female 35 to 39 years", 35, 40), + ("B01001_038E", "Female 40 to 44 years", 40, 45), +) + + +S2201_SNAP_HOUSEHOLD_COLUMNS: tuple[tuple[str, str, str], ...] = ( + ( + "S2201_C01_001E", + "all", + "Estimate!!Total!!Households", + ), + ( + "S2201_C03_001E", + "receiving_food_stamps_snap", + "Estimate!!Households receiving food stamps/SNAP!!Households", + ), + ( + "S2201_C05_001E", + "not_receiving_food_stamps_snap", + "Estimate!!Households not receiving food stamps/SNAP!!Households", + ), +) + + +def source_rows_from_census_acs_s0101_age_json( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str, +) -> list[SourceRow]: + """Unpivot Census ACS S0101 API rows into age-band source rows.""" + table_rows = source_rows_from_json_table( + content, + artifact, + sheet_name=sheet_name, + ) + rows: list[SourceRow] = [] + for source_table_row in table_rows: + for variable, age_label in S0101_TOTAL_AGE_COLUMNS: + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=len(rows) + 1, + values={ + "GEO_ID": source_table_row.values.get("GEO_ID"), + "NAME": source_table_row.values.get("NAME"), + "source_column_id": variable, + "source_concept": age_label, + "age": age_label, + "value": source_table_row.values.get(variable), + "source_table_row_number": source_table_row.row_number, + }, + ) + ) + return rows + + +def source_rows_from_census_acs_s2201_snap_json( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str, +) -> list[SourceRow]: + """Unpivot Census ACS S2201 API rows into SNAP household-count rows.""" + table_rows = source_rows_from_json_table( + content, + artifact, + sheet_name=sheet_name, + ) + rows: list[SourceRow] = [] + for source_table_row in table_rows: + for variable, snap_status, source_concept in S2201_SNAP_HOUSEHOLD_COLUMNS: + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=len(rows) + 1, + values={ + "GEO_ID": source_table_row.values.get("GEO_ID"), + "NAME": source_table_row.values.get("NAME"), + "snap_receipt_status": snap_status, + "source_column_id": variable, + "source_concept": source_concept, + "value": source_table_row.values.get(variable), + "source_table_row_number": source_table_row.row_number, + }, + ) + ) + return rows + + +def source_rows_from_census_b01001_female_age_json( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str, +) -> list[SourceRow]: + """Unpivot Census ACS B01001 API rows into female age-band source rows.""" + table_rows = source_rows_from_json_table( + content, + artifact, + sheet_name=sheet_name, + ) + rows: list[SourceRow] = [] + for source_table_row in table_rows: + state_value = source_table_row.values.get("state") + if state_value is None: + raise ValueError("Census B01001 API row is missing state FIPS.") + state_code = f"{int(state_value):02d}" + for variable, age_label, _lower_age, _upper_age in B01001_FEMALE_AGE_COLUMNS: + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=len(rows) + 1, + values={ + "state": state_code, + "geography_id": f"0400000US{state_code}", + "sex": "female", + "source_column_id": variable, + "source_concept": age_label, + "age": age_label, + "value": source_table_row.values.get(variable), + "source_table_row_number": source_table_row.row_number, + }, + ) + ) + return rows + + +MONTH_NAME_TO_NUMBER: dict[str, int] = { + "January": 1, + "February": 2, + "March": 3, + "April": 4, + "May": 5, + "June": 6, + "July": 7, + "August": 8, + "September": 9, + "October": 10, + "November": 11, + "December": 12, +} + + +def source_rows_from_cdc_vsrr_live_births_json( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str, +) -> list[SourceRow]: + """Parse CDC VSRR live-birth Socrata rows with month period values.""" + data = json.loads(content.decode("utf-8")) + if not isinstance(data, list): + raise ValueError("CDC VSRR JSON response must be an array of objects.") + + rows: list[SourceRow] = [] + for source_row_number, raw_row in enumerate(data, start=1): + if not isinstance(raw_row, dict): + raise ValueError("CDC VSRR JSON rows must all be objects.") + month = str(raw_row.get("month") or "").strip() + month_number = MONTH_NAME_TO_NUMBER.get(month) + if month_number is None: + raise ValueError(f"Unsupported CDC VSRR month label: {month!r}") + year = int(_json_scalar(raw_row.get("year"))) + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=source_row_number, + values={ + "state": _json_scalar(raw_row.get("state")), + "year": year, + "month": month, + "month_number": month_number, + "period": f"{year}-{month_number:02d}", + "frequency": _json_scalar(raw_row.get("period")), + "indicator": _json_scalar(raw_row.get("indicator")), + "data_value": _json_scalar(raw_row.get("data_value")), + }, + ) + ) + return rows + + +def source_rows_from_ons_timeseries_json( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str = "years", +) -> list[SourceRow]: + """Parse ONS time-series JSON observations into source rows.""" + data = json.loads(content.decode("utf-8")) + description = data.get("description") or {} + if not isinstance(description, dict): + description = {} + rows: list[SourceRow] = [] + row_number = 1 + for source_field, frequency in ( + ("years", "annual"), + ("quarters", "quarterly"), + ("months", "monthly"), + ): + for item in data.get(source_field) or []: + if not isinstance(item, dict): + continue + year = _delimited_scalar(str(item.get("year") or "")) + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=row_number, + values={ + "ons_series_id": description.get("cdid"), + "dataset_id": description.get("datasetId"), + "frequency": frequency, + "period": year if frequency == "annual" else item.get("date"), + "year": year, + "quarter": item.get("quarter") or None, + "month": item.get("month") or None, + "value": _delimited_scalar(str(item.get("value") or "")), + "date": item.get("date"), + "label": item.get("label"), + "source_dataset": item.get("sourceDataset"), + "update_date": item.get("updateDate"), + "release_date": description.get("releaseDate"), + "latest_period": description.get("date"), + "title": description.get("title"), + }, + ) + ) + row_number += 1 + return rows + + +def source_rows_from_ees_permalink_table_html( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str = "table", +) -> list[SourceRow]: + """Parse an Explore Education Statistics permalink table into source rows.""" + text = content.decode("utf-8") + match = re.search( + r'', + text, + flags=re.DOTALL, + ) + if not match: + raise ValueError("Could not find __NEXT_DATA__ table payload") + + next_data = json.loads(match.group(1)) + table_json = next_data["props"]["pageProps"]["data"]["table"]["json"] + column_groups = _ees_value_column_groups(table_json) + value_columns = _ees_year_value_columns(column_groups) + total_value_cell_count = sum(len(group["years"]) for group in column_groups) + + rows: list[SourceRow] = [] + current_row_group: str | None = None + virtual_row_number = 1 + for row_number, raw_row in enumerate(table_json.get("tbody") or [], start=1): + cells = [_ees_cell_text(cell) for cell in raw_row] + if not cells: + continue + + if len(cells) == total_value_cell_count + 2: + row_group = cells[0] + row_measure = cells[1] + value_cells = cells[2:] + if row_group: + current_row_group = row_group + elif len(cells) == total_value_cell_count + 1: + if current_row_group is None: + raise ValueError( + "EES continuation row appeared before any row group; " + f"source row {row_number}." + ) + row_group = current_row_group + row_measure = cells[0] + value_cells = cells[1:] + else: + raise ValueError( + "EES table row has an unexpected cell count; " + f"source row {row_number} has {len(cells)} cells, expected " + f"{total_value_cell_count + 2} grouped or " + f"{total_value_cell_count + 1} continuation cells." + ) + + offset = 0 + for group in column_groups: + values: dict[str, Scalar] = { + "row_group": row_group, + "row_measure": row_measure, + "repayment_plan": group["repayment_plan"], + "borrower_status": _ees_borrower_status(row_measure), + "source_table_row_number": row_number, + } + group_values = value_cells[offset : offset + len(group["years"])] + offset += len(group["years"]) + values.update({column: None for column in value_columns}) + for year, raw_value in zip(group["years"], group_values): + values[f"value_{year}"] = ( + None if raw_value == "no data" else _delimited_scalar(raw_value) + ) + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=virtual_row_number, + values=values, + ) + ) + virtual_row_number += 1 + if offset != len(value_cells): + raise ValueError( + "EES parser did not consume all value cells; " + f"source row {row_number}." + ) + return rows + + +def source_rows_from_kff_state_indicator_gdocs_html( + content: bytes, + artifact: SourceArtifactMetadata, + *, + sheet_name: str, +) -> list[SourceRow]: + """Parse KFF State Health Facts embedded gdocsObject table rows.""" + text = content.decode("utf-8", errors="replace") + match = re.search(r'"gdocsObject":(\[.*?\]),"postBody"', text, flags=re.S) + if not match: + raise ValueError("KFF State Health Facts page is missing gdocsObject data") + + gdocs_object = json.loads(match.group(1)) + rows: list[SourceRow] = [] + source_row_number = 0 + for sheet in gdocs_object: + if not isinstance(sheet, list) or len(sheet) != 2: + continue + year_label, table = sheet + year_text = str(year_label) + if not year_text.isdigit() or not isinstance(table, list) or len(table) < 3: + continue + value_column = str(table[0][1]).strip() if len(table[0]) > 1 else "Value" + unit = str(table[1][1]).strip() if len(table[1]) > 1 else None + for table_row_number, table_row in enumerate(table[2:], start=3): + if not isinstance(table_row, list) or len(table_row) < 2: + continue + source_row_number += 1 + rows.append( + SourceRow( + artifact=artifact, + sheet_name=sheet_name, + row_number=source_row_number, + values={ + "Year": int(year_text), + "Geography": _delimited_scalar(str(table_row[0])), + value_column: _delimited_scalar(str(table_row[1])), + "Unit": _delimited_scalar(unit or ""), + "KFF table row": table_row_number, + }, + ) + ) + return rows + + +def source_columns_from_source_rows(rows: list[SourceRow]) -> list[SourceColumn]: + """Derive queryable source columns from parsed source rows.""" + columns_by_key: dict[str, SourceColumn] = {} + for row in rows: + for column_number, raw_name in enumerate(row.values, start=1): + column = SourceColumn( + artifact=row.artifact, + sheet_name=row.sheet_name, + column_number=column_number, + raw_name=raw_name, + normalized_name=normalize_source_column_name(raw_name), + ) + columns_by_key.setdefault(build_source_column_key(column), column) + return sorted( + columns_by_key.values(), + key=lambda column: ( + column.artifact.sha256, + column.sheet_name, + column.column_number, + ), + ) + + +def source_row_values_from_source_rows( + rows: list[SourceRow], +) -> list[SourceRowValue]: + """Derive queryable source-row values from parsed source rows.""" + values: list[SourceRowValue] = [] + for row in rows: + source_row_key = build_source_row_key(row) + for column_number, (raw_name, value) in enumerate( + row.values.items(), + start=1, + ): + column = SourceColumn( + artifact=row.artifact, + sheet_name=row.sheet_name, + column_number=column_number, + raw_name=raw_name, + normalized_name=normalize_source_column_name(raw_name), + ) + values.append( + SourceRowValue( + source_row_key=source_row_key, + source_column_key=build_source_column_key(column), + row_number=row.row_number, + column_number=column_number, + raw_column_name=raw_name, + normalized_column_name=column.normalized_name, + value=value, + ) + ) + return values + + +def source_cells_from_source_rows( + rows: list[SourceRow], + *, + selected_rows: tuple[dict[str, str], ...], +) -> list[SourceCell]: + """Build compact selected source cells from full source rows.""" + if not rows: + return [] + + artifact = rows[0].artifact + sheet_name = rows[0].sheet_name + columns = list(rows[0].values) + cells = [ + _source_row_cell( + artifact, + sheet_name, + row_number=1, + column_number=index + 1, + raw_value=column, + ) + for index, column in enumerate(columns) + ] + selected_by_index: dict[int, SourceRow] = {} + if selected_rows: + indices_by_key_tuple: dict[ + tuple[str, ...], + dict[tuple[str, ...], list[SourceRow]], + ] = {} + for selection_index, criteria in enumerate(selected_rows): + key_tuple = tuple(criteria) + row_index = indices_by_key_tuple.get(key_tuple) + if row_index is None: + row_index = _source_row_index(rows, key_tuple) + indices_by_key_tuple[key_tuple] = row_index + matches = row_index.get(tuple(criteria.values()), []) + if len(matches) != 1: + raise ValueError( + "Selected row criteria must match exactly one source row; " + f"criteria {criteria!r} matched {len(matches)} rows." + ) + selected_by_index[selection_index] = matches[0] + else: + selected_by_index = dict(enumerate(rows)) + + for virtual_row_number, selection_index in enumerate( + sorted(selected_by_index), + start=2, + ): + row = selected_by_index[selection_index] + source_row_key = build_source_row_key(row) + for column_index, column in enumerate(columns, start=1): + cells.append( + _source_row_cell( + artifact, + sheet_name, + row_number=virtual_row_number, + column_number=column_index, + raw_value=row.values.get(column), + note=f"source_line_number={row.row_number}", + source_row_key=source_row_key, + ) + ) + return cells + + +def validate_source_rows(rows: list[SourceRow]) -> SourceRowReport: + """Validate source rows and return QA counts plus issues.""" + errors: list[SourceRowIssue] = [] + key_indices: dict[str, list[int]] = {} + + for index, row in enumerate(rows): + key = build_source_row_key(row) + key_indices.setdefault(key, []).append(index) + if not row.artifact.source_name.strip(): + errors.append( + SourceRowIssue( + code="missing_source_name", + message="Row artifact is missing source_name", + source_row_key=key, + row_index=index, + ) + ) + if not row.artifact.sha256.strip(): + errors.append( + SourceRowIssue( + code="missing_artifact_sha256", + message="Row artifact is missing sha256", + source_row_key=key, + row_index=index, + ) + ) + if row.row_number < 1: + errors.append( + SourceRowIssue( + code="malformed_coordinate", + message="Row number must be one-based", + source_row_key=key, + row_index=index, + ) + ) + if not row.values: + errors.append( + SourceRowIssue( + code="missing_values", + message="Source row has no values", + source_row_key=key, + row_index=index, + ) + ) + + for key, indices in key_indices.items(): + if len(indices) > 1: + errors.append( + SourceRowIssue( + code="duplicate_source_row_key", + message=f"Duplicate source-row key appears at indices {indices}", + source_row_key=key, + row_index=indices[0], + ) + ) + + return SourceRowReport( + row_count=len(rows), + counts=source_row_counts(rows), + errors=tuple(errors), + ) + + +def source_row_counts(rows: list[SourceRow]) -> dict[str, dict[str, int]]: + """Count rows across QA dimensions.""" + return { + "by_source": _counter_dict(row.artifact.source_name for row in rows), + "by_sheet": _counter_dict(row.sheet_name for row in rows), + } + + +def load_source_rows_jsonl(path: str | Path) -> list[SourceRow]: + """Load source rows from JSON Lines.""" + row_path = Path(path) + rows: list[SourceRow] = [] + with row_path.open() as file: + for line_number, line in enumerate(file, start=1): + if not line.strip(): + continue + try: + payload = json.loads(line) + except json.JSONDecodeError as exc: + raise ValueError( + f"Invalid JSON on line {line_number} of {row_path}" + ) from exc + rows.append(source_row_from_mapping(payload)) + return rows + + +def save_source_rows_jsonl(rows: list[SourceRow], path: str | Path) -> None: + """Save source rows to JSON Lines.""" + row_path = Path(path) + row_path.parent.mkdir(parents=True, exist_ok=True) + with row_path.open("w") as file: + for row in rows: + file.write(json.dumps(source_row_to_mapping(row), sort_keys=True)) + file.write("\n") + + +def source_row_from_mapping(payload: dict[str, Any]) -> SourceRow: + """Build a source row from a JSON-compatible mapping.""" + return SourceRow( + artifact=SourceArtifactMetadata(**payload["artifact"]), + sheet_name=payload["sheet_name"], + row_number=payload["row_number"], + values=dict(payload["values"]), + ) + + +def source_row_to_mapping(row: SourceRow) -> dict[str, Any]: + """Convert a source row to a JSON-compatible mapping.""" + return asdict(row) + + +def normalize_source_column_name(name: str) -> str: + """Normalize a source column name for cross-source SQL queries.""" + spaced = re.sub(r"([a-z0-9])([A-Z])", r"\1_\2", name.strip()) + normalized = re.sub(r"[^A-Za-z0-9]+", "_", spaced).strip("_").lower() + return normalized + + +def _row_matches(row: SourceRow, criteria: dict[str, str]) -> bool: + return all( + _value_as_selector_text(row.values.get(key)) == value + for key, value in criteria.items() + ) + + +def _source_row_index( + rows: list[SourceRow], + keys: tuple[str, ...], +) -> dict[tuple[str, ...], list[SourceRow]]: + indexed: dict[tuple[str, ...], list[SourceRow]] = {} + for row in rows: + key = tuple(_value_as_selector_text(row.values.get(column)) for column in keys) + indexed.setdefault(key, []).append(row) + return indexed + + +def _source_row_cell( + artifact: SourceArtifactMetadata, + sheet_name: str, + *, + row_number: int, + column_number: int, + raw_value: Scalar, + note: str | None = None, + source_row_key: str | None = None, +) -> SourceCell: + return SourceCell( + artifact=artifact, + sheet_name=sheet_name, + row_number=row_number, + column_number=column_number, + address=f"{_excel_column_name(column_number)}{row_number}", + cell_type=_scalar_cell_type(raw_value), + raw_value=raw_value, + display_value=None if raw_value is None else str(raw_value), + note=note, + source_row_key=source_row_key, + ) + + +def _delimited_scalar(value: str) -> Scalar: + stripped = value.strip() + if not stripped: + return None + numeric = stripped.replace("$", "").replace(",", "") + if numeric.lstrip("-").isdigit(): + return int(numeric) + try: + return float(numeric) + except ValueError: + return stripped + + +def _json_scalar(value: Any) -> Scalar: + if value is None or isinstance(value, bool | int | float): + return value + return _delimited_scalar(str(value)) + + +def _value_as_selector_text(value: Scalar) -> str: + return "" if value is None else str(value) + + +def _normalize_header_cell(value: str) -> str: + return value.strip().removeprefix("%") + + +def _ees_value_column_groups(table_json: dict[str, Any]) -> list[dict[str, Any]]: + header_rows = table_json.get("thead") or [] + if len(header_rows) < 2: + raise ValueError("EES table payload must include two header rows") + + groups: list[dict[str, Any]] = [] + year_index = 0 + year_cells = header_rows[1] + for cell in header_rows[0]: + text = _ees_cell_text(cell) + colspan = int(cell.get("colSpan") or 1) + if not text: + continue + years = [ + _academic_year_end(_ees_cell_text(year_cell)) + for year_cell in year_cells[year_index : year_index + colspan] + ] + year_index += colspan + groups.append( + { + "repayment_plan": normalize_source_column_name(text), + "years": years, + } + ) + + if year_index != len(year_cells): + raise ValueError("EES grouped headers do not align with year headers") + return groups + + +def _ees_year_value_columns(groups: list[dict[str, Any]]) -> list[str]: + return [ + f"value_{year}" + for year in sorted( + {year for group in groups for year in group["years"]}, + reverse=True, + ) + ] + + +def _academic_year_end(value: str) -> int: + match = re.fullmatch(r"(\d{4})[-/]\d{2}", value.strip()) + if not match: + raise ValueError(f"Unsupported academic year header: {value!r}") + return int(match.group(1)) + 1 + + +def _ees_cell_text(cell: dict[str, Any]) -> str: + return str(cell.get("text") or "").strip() + + +def _ees_borrower_status(row_measure: str) -> str: + normalized = normalize_source_column_name(row_measure) + if "earning_above_repayment_threshold" in normalized: + return "above_repayment_threshold" + if normalized == "number_of_borrowers_liable_to_make_repayments": + return "liable_to_repay" + return normalized + + +def _scalar_cell_type(value: Scalar) -> str: + if value is None: + return "empty" + if isinstance(value, bool): + return "boolean" + if isinstance(value, int | float): + return "number" + return "text" + + +def _excel_column_name(column_number: int) -> str: + name = "" + while column_number: + column_number, remainder = divmod(column_number - 1, 26) + name = f"{chr(65 + remainder)}{name}" + return name + + +def _counter_dict(values: Any) -> dict[str, int]: + return dict(sorted(Counter(values).items())) diff --git a/arch/sources/specs.py b/arch/sources/specs.py new file mode 100644 index 0000000..3dab333 --- /dev/null +++ b/arch/sources/specs.py @@ -0,0 +1,789 @@ +"""Selector and source-record specs for source-cell and source-row lineage.""" + +from __future__ import annotations + +import hashlib +import json +from dataclasses import asdict, dataclass, field + +from arch.core import AggregateConstraint, SourceRecordLayout +from arch.sources.cells import SourceCell, build_source_cell_key + +Scalar = str | int | float | bool | None +CellsBySheetAddress = dict[tuple[str, str], SourceCell] + + +@dataclass(frozen=True) +class CellGuardSpec: + """A guard cell that must match before a selector resolves.""" + + address: str + expected_value: Scalar + label: str = "guard cell" + + +@dataclass(frozen=True) +class RangeLabelGuardSpec: + """A guard that validates labels across every row in a selected range.""" + + column: str + expected_values: tuple[Scalar, ...] + label: str = "range label sequence" + + +@dataclass(frozen=True) +class CellSelectorSpec: + """A checked selector for one parsed source cell.""" + + selector_id: str + sheet_name: str + address: str + end_address: str | None = None + expected_cell_type: str | None = None + expected_row_header_address: str | None = None + expected_row_header: Scalar = None + expected_column_header_address: str | None = None + expected_column_header: Scalar = None + guard_cells: tuple[CellGuardSpec, ...] = () + range_label_guards: tuple[RangeLabelGuardSpec, ...] = () + + +@dataclass(frozen=True) +class SourceRegionSpec: + """One logical source region selected from a parsed artifact.""" + + region_id: str + sheet_name: str + top_row: int + left_column: int + bottom_row: int + right_column: int + region_kind: str = "table" + label: str | None = None + record_set_id: str | None = None + + +@dataclass(frozen=True) +class SourceRecordSpec: + """Simulator-neutral source record interpretation for a selected cell.""" + + source_record_id: str + selector: CellSelectorSpec + concept: str + unit: str + period_type: str + period: int | str + geography_id: str + geography_level: str + geography_name: str | None + geography_vintage: str | None + entity: str + entity_role: str | None + aggregation: str + domain: str + filters: dict[str, Scalar] = field(default_factory=dict) + constraints: tuple[AggregateConstraint, ...] = () + value_scale: int | float = 1 + source_concept: str | None = None + concept_relation: str | None = None + concept_authority: str | None = None + concept_evidence_url: str | None = None + concept_evidence_notes: str | None = None + legal_vintage: str | None = None + layout: SourceRecordLayout | None = None + + +@dataclass(frozen=True) +class SourceRecordSetRowGuard: + """A row-relative guard cell for compact source-record specs.""" + + column: str + expected_value: Scalar + row: int | str = "start" + label: str = "row guard" + + +@dataclass(frozen=True) +class SourceRecordSetRangeLabelGuard: + """A row-range guard for compact source-record specs.""" + + column: str + expected_values: tuple[Scalar, ...] + label: str = "range label sequence" + + +@dataclass(frozen=True) +class SourceRecordSetRow: + """One logical row in a compact source-record set spec.""" + + value_id: str + label: str + ordinal: int + row_number: int + row_end_number: int | None = None + geography_id: str | None = None + geography_level: str | None = None + geography_name: str | None = None + geography_vintage: str | None = None + filters: dict[str, Scalar] = field(default_factory=dict) + constraints: tuple[AggregateConstraint, ...] = () + value_scale: int | float = 1 + source_row_id: str | None = None + table_record_kind: str = "detail" + expected_row_header: Scalar = None + expected_row_header_column: str | None = None + guard_cells: tuple[SourceRecordSetRowGuard, ...] = () + range_label_guards: tuple[SourceRecordSetRangeLabelGuard, ...] = () + + +@dataclass(frozen=True) +class SourceRecordSetMeasure: + """One logical measure/column in a compact source-record set spec.""" + + measure_id: str + label: str + ordinal: int + column: str + concept: str + unit: str + aggregation: str + value_scale: int | float = 1 + source_column_id: str | None = None + expected_cell_type: str = "number" + expected_column_header_row: int | None = None + expected_column_header: Scalar = None + source_concept: str | None = None + concept_relation: str | None = None + concept_authority: str | None = None + concept_evidence_url: str | None = None + concept_evidence_notes: str | None = None + legal_vintage: str | None = None + filters: dict[str, Scalar] = field(default_factory=dict) + constraints: tuple[AggregateConstraint, ...] = () + + +@dataclass(frozen=True) +class SourceRecordSetSpec: + """Compact authoring spec that expands into atomic source-record specs.""" + + record_set_id: str + record_set_spec_id: str + source_record_id_prefix: str + sheet_name: str + period_type: str + period: int | str + geography_id: str + geography_level: str + geography_name: str | None + geography_vintage: str | None + entity: str + entity_role: str | None + domain: str + groupby_dimension: str + rows: tuple[SourceRecordSetRow, ...] + measures: tuple[SourceRecordSetMeasure, ...] + shared_filters: dict[str, Scalar] = field(default_factory=dict) + shared_constraints: tuple[AggregateConstraint, ...] = () + + +@dataclass(frozen=True) +class SourceRecord: + """Resolved source record with cell-level lineage.""" + + source_record_id: str + value: int | float | str + spec: SourceRecordSpec + source_cell_keys: tuple[str, ...] + source_cell_addresses: tuple[str, ...] + source_row_keys: tuple[str, ...] = () + + +def compile_source_record_set_specs( + spec: SourceRecordSetSpec, +) -> list[SourceRecordSpec]: + """Expand a compact record-set spec into atomic source-record specs.""" + spec_hash = _record_set_spec_hash(spec) + source_specs: list[SourceRecordSpec] = [] + for row in sorted(spec.rows, key=lambda item: item.ordinal): + for measure in sorted(spec.measures, key=lambda item: item.ordinal): + source_record_id = ( + f"{spec.source_record_id_prefix}.{row.value_id}.{measure.measure_id}" + ) + filters = {**spec.shared_filters, **row.filters, **measure.filters} + source_specs.append( + SourceRecordSpec( + source_record_id=source_record_id, + selector=CellSelectorSpec( + selector_id=f"{source_record_id}.selector", + sheet_name=spec.sheet_name, + address=f"{measure.column}{row.row_number}", + end_address=( + f"{measure.column}{row.row_end_number}" + if row.row_end_number is not None + else None + ), + expected_cell_type=measure.expected_cell_type, + expected_row_header_address=( + f"{row.expected_row_header_column or 'A'}{row.row_number}" + ), + expected_row_header=( + row.expected_row_header + if row.expected_row_header is not None + else row.label + ), + expected_column_header_address=( + f"{measure.column}{measure.expected_column_header_row}" + if measure.expected_column_header_row is not None + else None + ), + expected_column_header=measure.expected_column_header, + guard_cells=_row_guard_cells(row), + range_label_guards=_row_range_label_guards(row), + ), + concept=measure.concept, + unit=measure.unit, + period_type=spec.period_type, + period=spec.period, + geography_id=row.geography_id or spec.geography_id, + geography_level=row.geography_level or spec.geography_level, + geography_name=( + row.geography_name + if row.geography_name is not None + else spec.geography_name + ), + geography_vintage=( + row.geography_vintage + if row.geography_vintage is not None + else spec.geography_vintage + ), + entity=spec.entity, + entity_role=spec.entity_role, + aggregation=measure.aggregation, + filters=filters, + constraints=( + *spec.shared_constraints, + *row.constraints, + *measure.constraints, + ), + domain=spec.domain, + value_scale=measure.value_scale * row.value_scale, + source_concept=measure.source_concept, + concept_relation=measure.concept_relation, + concept_authority=measure.concept_authority, + concept_evidence_url=measure.concept_evidence_url, + concept_evidence_notes=measure.concept_evidence_notes, + legal_vintage=measure.legal_vintage, + layout=SourceRecordLayout( + record_set_id=spec.record_set_id, + record_set_spec_id=spec.record_set_spec_id, + record_set_spec_hash=spec_hash, + groupby_dimension=spec.groupby_dimension, + groupby_value_id=row.value_id, + groupby_value_label=row.label, + groupby_ordinal=row.ordinal, + measure_id=measure.measure_id, + measure_label=measure.label, + measure_ordinal=measure.ordinal, + source_row_id=row.source_row_id or row.value_id, + source_column_id=( + measure.source_column_id or measure.measure_id + ), + table_record_kind=row.table_record_kind, + ), + ) + ) + return source_specs + + +def source_regions_from_record_set_spec( + spec: SourceRecordSetSpec, +) -> tuple[SourceRegionSpec, ...]: + """Build source-region specs implied by a compact record-set spec.""" + row_numbers = [ + number + for row in spec.rows + for number in (row.row_number, row.row_end_number) + if number is not None + ] + columns = [ + 1, + *(_excel_column_number(measure.column) for measure in spec.measures), + ] + return ( + SourceRegionSpec( + region_id=f"{spec.record_set_id}.selected_region", + sheet_name=spec.sheet_name, + top_row=min(row_numbers), + left_column=min(columns), + bottom_row=max(row_numbers), + right_column=max(columns), + region_kind="record_set", + label=spec.record_set_id, + record_set_id=spec.record_set_id, + ), + ) + + +def _row_guard_cells(row: SourceRecordSetRow) -> tuple[CellGuardSpec, ...]: + guards = [] + for guard in row.guard_cells: + row_number = _row_guard_row_number(row, guard) + guards.append( + CellGuardSpec( + address=f"{guard.column}{row_number}", + expected_value=guard.expected_value, + label=guard.label, + ) + ) + return tuple(guards) + + +def _row_range_label_guards( + row: SourceRecordSetRow, +) -> tuple[RangeLabelGuardSpec, ...]: + guards = [] + for guard in row.range_label_guards: + if row.row_end_number is None: + raise ValueError("Range label guard requires row_end_number") + expected_count = row.row_end_number - row.row_number + 1 + if len(guard.expected_values) != expected_count: + raise ValueError( + f"Range label guard {guard.label!r} expected {expected_count} " + f"values, got {len(guard.expected_values)}" + ) + guards.append( + RangeLabelGuardSpec( + column=guard.column, + expected_values=_strict_range_label_values(guard.expected_values), + label=guard.label, + ) + ) + return tuple(guards) + + +def _row_guard_row_number( + row: SourceRecordSetRow, + guard: SourceRecordSetRowGuard, +) -> int: + if isinstance(guard.row, bool): + raise ValueError(f"Row guard row must not be boolean: {guard.row!r}") + if isinstance(guard.row, int): + if guard.row < 1: + raise ValueError(f"Row guard row must be at least 1: {guard.row!r}") + return guard.row + if guard.row == "start": + return row.row_number + if guard.row == "end": + if row.row_end_number is None: + raise ValueError("End row guard requires row_end_number") + return row.row_end_number + raise ValueError(f"Unsupported row guard anchor: {guard.row!r}") + + +def resolve_source_record( + cells: list[SourceCell], + spec: SourceRecordSpec, + *, + cells_by_sheet_address: CellsBySheetAddress | None = None, +) -> SourceRecord: + """Resolve a source-record spec against parsed source cells.""" + if cells_by_sheet_address is None: + cells_by_sheet_address = build_cells_by_sheet_address(cells) + value_cells = _resolve_value_cells( + cells, + spec.selector, + cells_by_sheet_address=cells_by_sheet_address, + ) + value = _scale_value(_sum_cell_values(value_cells), spec.value_scale) + lineage_cells = [ + *value_cells, + *_selector_lineage_guard_cells( + cells, + spec.selector, + cells_by_sheet_address=cells_by_sheet_address, + ), + ] + seen_cell_keys: set[str] = set() + source_cell_keys = [] + source_cell_addresses = [] + for lineage_cell in lineage_cells: + cell_key = build_source_cell_key(lineage_cell) + if cell_key in seen_cell_keys: + continue + seen_cell_keys.add(cell_key) + source_cell_keys.append(cell_key) + source_cell_addresses.append(lineage_cell.address) + return SourceRecord( + source_record_id=spec.source_record_id, + value=value, + spec=spec, + source_cell_keys=tuple(source_cell_keys), + source_cell_addresses=tuple(source_cell_addresses), + source_row_keys=( + tuple( + dict.fromkeys( + cell.source_row_key + for cell in value_cells + if cell.source_row_key is not None + ) + ) + ), + ) + + +def resolve_cell_selector( + cells: list[SourceCell], + spec: CellSelectorSpec, + *, + cells_by_sheet_address: CellsBySheetAddress | None = None, +) -> SourceCell: + """Resolve and validate a cell selector.""" + if spec.end_address is not None: + raise ValueError("resolve_cell_selector only supports single-cell selectors") + if cells_by_sheet_address is None: + cells_by_sheet_address = build_cells_by_sheet_address(cells) + try: + cell = cells_by_sheet_address[(spec.sheet_name, spec.address)] + except KeyError as exc: + raise ValueError( + f"Selector {spec.selector_id!r} did not match " + f"{spec.sheet_name}!{spec.address}" + ) from exc + + if ( + spec.expected_cell_type is not None + and cell.cell_type != spec.expected_cell_type + ): + raise ValueError( + f"Selector {spec.selector_id!r} expected cell type " + f"{spec.expected_cell_type!r}, got {cell.cell_type!r}" + ) + + _resolve_guard_cell( + cells_by_sheet_address, + spec, + address=spec.expected_row_header_address, + expected_value=spec.expected_row_header, + label="row header", + ) + _resolve_guard_cell( + cells_by_sheet_address, + spec, + address=spec.expected_column_header_address, + expected_value=spec.expected_column_header, + label="column header", + ) + _resolve_explicit_guard_cells(cells_by_sheet_address, spec) + _resolve_range_label_guards(cells_by_sheet_address, spec) + + return cell + + +def _resolve_value_cells( + cells: list[SourceCell], + spec: CellSelectorSpec, + *, + cells_by_sheet_address: CellsBySheetAddress | None = None, +) -> list[SourceCell]: + if cells_by_sheet_address is None: + cells_by_sheet_address = build_cells_by_sheet_address(cells) + if spec.end_address is None: + return [ + resolve_cell_selector( + cells, + spec, + cells_by_sheet_address=cells_by_sheet_address, + ) + ] + + start_column, start_row = _split_cell_address(spec.address) + end_column, end_row = _split_cell_address(spec.end_address) + if start_column != end_column: + raise ValueError( + f"Selector {spec.selector_id!r} ranges must stay within one column" + ) + if end_row < start_row: + raise ValueError(f"Selector {spec.selector_id!r} has an inverted range") + + selected_cells = [] + for row_number in range(start_row, end_row + 1): + address = f"{start_column}{row_number}" + try: + cell = cells_by_sheet_address[(spec.sheet_name, address)] + except KeyError as exc: + raise ValueError( + f"Selector {spec.selector_id!r} did not match " + f"{spec.sheet_name}!{address}" + ) from exc + if ( + spec.expected_cell_type is not None + and cell.cell_type != spec.expected_cell_type + ): + raise ValueError( + f"Selector {spec.selector_id!r} expected cell type " + f"{spec.expected_cell_type!r}, got {cell.cell_type!r}" + ) + selected_cells.append(cell) + + _resolve_guard_cell( + cells_by_sheet_address, + spec, + address=spec.expected_row_header_address, + expected_value=spec.expected_row_header, + label="row header", + ) + _resolve_guard_cell( + cells_by_sheet_address, + spec, + address=spec.expected_column_header_address, + expected_value=spec.expected_column_header, + label="column header", + ) + _resolve_explicit_guard_cells(cells_by_sheet_address, spec) + _resolve_range_label_guards(cells_by_sheet_address, spec) + return selected_cells + + +def _selector_lineage_guard_cells( + cells: list[SourceCell], + spec: CellSelectorSpec, + *, + cells_by_sheet_address: CellsBySheetAddress | None = None, +) -> tuple[SourceCell, ...]: + if cells_by_sheet_address is None: + cells_by_sheet_address = build_cells_by_sheet_address(cells) + guard_cells = [] + column_header = _resolve_guard_cell( + cells_by_sheet_address, + spec, + address=spec.expected_column_header_address, + expected_value=spec.expected_column_header, + label="column header", + ) + if column_header is not None: + guard_cells.append(column_header) + guard_cells.extend(_resolve_explicit_guard_cells(cells_by_sheet_address, spec)) + for range_label_cells in _resolve_range_label_guards( + cells_by_sheet_address, + spec, + ): + guard_cells.extend(range_label_cells) + return tuple(guard_cells) + + +def build_cells_by_sheet_address( + cells: list[SourceCell], +) -> CellsBySheetAddress: + """Index source cells for repeated selector resolution.""" + return {(cell.sheet_name, cell.address): cell for cell in cells} + + +def _resolve_explicit_guard_cells( + cells_by_sheet_address: dict[tuple[str, str], SourceCell], + spec: CellSelectorSpec, +) -> list[SourceCell]: + guard_cells = [] + for guard in spec.guard_cells: + guard_cell = _resolve_guard_cell( + cells_by_sheet_address, + spec, + address=guard.address, + expected_value=guard.expected_value, + label=guard.label, + ) + if guard_cell is not None: + guard_cells.append(guard_cell) + return guard_cells + + +def _resolve_range_label_guards( + cells_by_sheet_address: dict[tuple[str, str], SourceCell], + spec: CellSelectorSpec, +) -> list[list[SourceCell]]: + if not spec.range_label_guards: + return [] + if spec.end_address is None: + raise ValueError( + f"Selector {spec.selector_id!r} has range label guards but no end address" + ) + _start_column, start_row = _split_cell_address(spec.address) + _end_column, end_row = _split_cell_address(spec.end_address) + expected_count = end_row - start_row + 1 + resolved = [] + for guard in spec.range_label_guards: + if len(guard.expected_values) != expected_count: + raise ValueError( + f"Selector {spec.selector_id!r} expected {guard.label} length " + f"{expected_count}, got {len(guard.expected_values)}" + ) + guard_cells = [] + for offset, expected_value in enumerate(guard.expected_values): + if expected_value is None: + raise ValueError( + f"Selector {spec.selector_id!r} expected {guard.label} " + "must not contain null" + ) + address = f"{guard.column}{start_row + offset}" + guard_cell = _resolve_guard_cell( + cells_by_sheet_address, + spec, + address=address, + expected_value=expected_value, + label=f"{guard.label} {address}", + ) + if guard_cell is not None: + guard_cells.append(guard_cell) + resolved.append(guard_cells) + return resolved + + +def _strict_range_label_values(values: tuple[Scalar, ...]) -> tuple[Scalar, ...]: + if any(value is None for value in values): + raise ValueError("Range label guard expected values must not contain null") + return values + + +def _resolve_guard_cell( + cells_by_sheet_address: dict[tuple[str, str], SourceCell], + spec: CellSelectorSpec, + *, + address: str | None, + expected_value: Scalar, + label: str, +) -> SourceCell | None: + if not address or expected_value is None: + return None + try: + guard_cell = cells_by_sheet_address[(spec.sheet_name, address)] + except KeyError as exc: + raise ValueError( + f"Selector {spec.selector_id!r} missing {label} {address}" + ) from exc + if guard_cell.raw_value != expected_value: + raise ValueError( + f"Selector {spec.selector_id!r} expected {label} " + f"{expected_value!r}, got {guard_cell.raw_value!r}" + ) + return guard_cell + + +def _scale_value(value: Scalar, scale: int | float) -> int | float | str: + if isinstance(value, bool) or value is None: + raise ValueError(f"Cannot scale nonnumeric source value {value!r}") + if isinstance(value, int | float): + scaled = value * scale + if isinstance(scaled, float) and scaled.is_integer(): + return int(scaled) + return scaled + if scale != 1: + raise ValueError(f"Cannot scale nonnumeric source value {value!r}") + return value + + +def _sum_cell_values(cells: list[SourceCell]) -> Scalar: + if len(cells) == 1: + return cells[0].raw_value + total: int | float = 0 + for cell in cells: + value = cell.raw_value + if isinstance(value, bool) or not isinstance(value, int | float): + raise ValueError(f"Cannot sum nonnumeric source value {value!r}") + total += value + if isinstance(total, float) and total.is_integer(): + return int(total) + return total + + +def _split_cell_address(address: str) -> tuple[str, int]: + column = "" + row = "" + for char in address: + if char.isalpha() and not row: + column += char.upper() + elif char.isdigit(): + row += char + else: + raise ValueError(f"Malformed cell address: {address!r}") + if not column or not row: + raise ValueError(f"Malformed cell address: {address!r}") + return column, int(row) + + +def _record_set_spec_hash(spec: SourceRecordSetSpec) -> str: + payload = asdict(spec) + if not payload.get("shared_constraints"): + payload.pop("shared_constraints", None) + for row in payload["rows"]: + if row.get("row_end_number") is None: + row.pop("row_end_number", None) + if row.get("expected_row_header") is None: + row.pop("expected_row_header", None) + if row.get("expected_row_header_column") is None: + row.pop("expected_row_header_column", None) + if not row.get("guard_cells"): + row.pop("guard_cells", None) + else: + row["guard_cells"] = sorted( + row["guard_cells"], + key=_row_guard_hash_sort_key, + ) + if not row.get("range_label_guards"): + row.pop("range_label_guards", None) + else: + row["range_label_guards"] = sorted( + row["range_label_guards"], + key=_range_label_guard_hash_sort_key, + ) + if row.get("value_scale") == 1: + row.pop("value_scale", None) + for key in ( + "geography_id", + "geography_level", + "geography_name", + "geography_vintage", + ): + if row.get(key) is None: + row.pop(key, None) + for measure in payload["measures"]: + if measure.get("expected_column_header") is None: + measure.pop("expected_column_header", None) + if measure.get("expected_column_header_row") is None: + measure.pop("expected_column_header_row", None) + if not measure.get("filters"): + measure.pop("filters", None) + if not measure.get("constraints"): + measure.pop("constraints", None) + raw = json.dumps(payload, sort_keys=True, separators=(",", ":"), default=str) + return hashlib.sha256(raw.encode("utf-8")).hexdigest()[:24] + + +def _row_guard_hash_sort_key(guard: dict[str, Scalar]) -> tuple[str, str, str, str]: + row = guard.get("row") + if isinstance(row, int): + row_key = f"int:{row:010d}" + else: + row_key = f"str:{row}" + return ( + str(guard.get("column", "")).upper(), + row_key, + repr(guard.get("expected_value")), + str(guard.get("label", "")), + ) + + +def _range_label_guard_hash_sort_key( + guard: dict[str, Scalar], +) -> tuple[str, str]: + return ( + str(guard.get("column", "")).upper(), + str(guard.get("label", "")), + ) + + +def _excel_column_number(column_name: str) -> int: + value = 0 + for char in column_name.upper(): + if not ("A" <= char <= "Z"): + raise ValueError(f"Malformed Excel column name: {column_name!r}") + value = value * 26 + ord(char) - ord("A") + 1 + return value diff --git a/arch/store.py b/arch/store.py new file mode 100644 index 0000000..8bf6b66 --- /dev/null +++ b/arch/store.py @@ -0,0 +1,104 @@ +"""Load and save Arch aggregate facts.""" + +from __future__ import annotations + +import json +from dataclasses import asdict +from decimal import Decimal +from pathlib import Path +from typing import Any + +from arch.core import ( + Aggregation, + AggregateConstraint, + EntityDimension, + GeographyDimension, + Measure, + PeriodDimension, + SourceProvenance, + SourceRecordLayout, + AggregateFact, +) + + +def load_facts_jsonl(path: str | Path) -> list[AggregateFact]: + """Load Arch aggregate facts from JSON Lines.""" + fact_path = Path(path) + facts: list[AggregateFact] = [] + with fact_path.open() as file: + for line_number, line in enumerate(file, start=1): + if not line.strip(): + continue + try: + payload = json.loads(line) + except json.JSONDecodeError as exc: + raise ValueError( + f"Invalid JSON on line {line_number} of {fact_path}" + ) from exc + facts.append(fact_from_mapping(payload)) + return facts + + +def save_facts_jsonl(facts: list[AggregateFact], path: str | Path) -> None: + """Save Arch aggregate facts to JSON Lines.""" + fact_path = Path(path) + fact_path.parent.mkdir(parents=True, exist_ok=True) + with fact_path.open("w") as file: + for fact in facts: + file.write(json.dumps(fact_to_mapping(fact), sort_keys=True)) + file.write("\n") + + +def fact_from_mapping(payload: dict[str, Any]) -> AggregateFact: + """Build an aggregate fact from a JSON-compatible mapping.""" + value = payload["value"] + if payload.get("value_type") == "decimal": + value = Decimal(str(value)) + return AggregateFact( + value=value, + period=PeriodDimension(**payload["period"]), + geography=GeographyDimension(**payload["geography"]), + entity=EntityDimension(**payload["entity"]), + measure=Measure(**payload["measure"]), + aggregation=Aggregation(**payload["aggregation"]), + source=SourceProvenance(**payload["source"]), + filters=dict(payload.get("filters", {})), + domain=payload.get("domain", "all"), + label=payload.get("label"), + source_record_id=payload.get("source_record_id"), + source_cell_keys=tuple(payload.get("source_cell_keys", ())), + source_row_keys=tuple(payload.get("source_row_keys", ())), + constraints=tuple( + AggregateConstraint(**constraint) + for constraint in payload.get("constraints", ()) + ), + layout=( + SourceRecordLayout(**payload["layout"]) + if payload.get("layout") + else None + ), + ) + + +def fact_to_mapping(fact: AggregateFact) -> dict[str, Any]: + """Convert an aggregate fact to a JSON-compatible mapping.""" + payload = asdict(fact) + if isinstance(fact.value, Decimal): + payload["value"] = str(fact.value) + payload["value_type"] = "decimal" + payload["measure"] = { + key: value for key, value in payload["measure"].items() if value is not None + } + if not fact.constraints: + payload.pop("constraints", None) + if not fact.source_row_keys: + payload.pop("source_row_keys", None) + if fact.layout is None: + payload.pop("layout", None) + else: + payload["layout"] = { + key: value + for key, value in payload["layout"].items() + if value is not None + } + return payload diff --git a/arch/suite.py b/arch/suite.py new file mode 100644 index 0000000..5de60cf --- /dev/null +++ b/arch/suite.py @@ -0,0 +1,1517 @@ +"""Build-suite harness for source-backed Arch packages.""" + +from __future__ import annotations + +import hashlib +import json +import re +import shutil +from dataclasses import asdict, dataclass +from pathlib import Path +from typing import Any, Sequence + +from arch.concepts import ConceptAlignmentReport, validate_concept_alignments +from arch.consumer_contract import ( + ConsumerFactExportReport, + write_consumer_facts_jsonl, +) +from arch.core import ( + AggregateFact, + ValidationReport, + build_aggregate_constraints, + build_fact_key, + validate_facts, +) +from arch.database import ArchDbBuildReport, build_arch_db +from arch.sources.cells import ( + SourceCell, + SourceCellReport, + build_source_cell_key, + save_source_cells_jsonl, + validate_source_cells, +) +from arch.sources.rows import ( + SourceRow, + SourceRowReport, + build_source_row_key, + save_source_rows_jsonl, + validate_source_rows, +) +from arch.sources.specs import ( + SourceRecordSpec, + SourceRegionSpec, + build_cells_by_sheet_address, + resolve_source_record, +) +from arch.source_package import SOURCE_PACKAGE_ALIASES, try_load_source_package +from arch.store import save_facts_jsonl + +SUPPORTED_SOURCE_PACKAGES = set(SOURCE_PACKAGE_ALIASES) +SOI_HISTORIC_TABLE_2_AGI_STUB_RANGES = { + 0: ("all", None, None), + 1: ("under_1", None, 1), + 2: ("1_to_10k", 1, 10_000), + 3: ("10k_to_25k", 10_000, 25_000), + 4: ("25k_to_50k", 25_000, 50_000), + 5: ("50k_to_75k", 50_000, 75_000), + 6: ("75k_to_100k", 75_000, 100_000), + 7: ("100k_to_200k", 100_000, 200_000), + 8: ("200k_to_500k", 200_000, 500_000), + 9: ("500k_to_1m", 500_000, 1_000_000), + 10: ("1m_plus", 1_000_000, None), +} + + +@dataclass(frozen=True) +class SourceRecordSuiteIssue: + """One source-record suite validation issue.""" + + code: str + message: str + source_record_id: str | None = None + selector_id: str | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + data = asdict(self) + return {key: value for key, value in data.items() if value is not None} + + +@dataclass(frozen=True) +class SourceRecordSuiteReport: + """Validation report for source-record specs resolved against source cells.""" + + spec_count: int + resolved_count: int + lineaged_count: int + errors: tuple[SourceRecordSuiteIssue, ...] + warnings: tuple[SourceRecordSuiteIssue, ...] = () + + @property + def valid(self) -> bool: + """Whether all source-record specs resolved without errors.""" + return not self.errors + + @property + def lineage_coverage(self) -> float: + """Share of resolved records carrying source-cell lineage.""" + if not self.resolved_count: + return 0 + return self.lineaged_count / self.resolved_count + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "spec_count": self.spec_count, + "resolved_count": self.resolved_count, + "lineaged_count": self.lineaged_count, + "lineage_coverage": self.lineage_coverage, + "errors": [issue.to_dict() for issue in self.errors], + "warnings": [issue.to_dict() for issue in self.warnings], + } + + +@dataclass(frozen=True) +class SourceRegionSuiteIssue: + """One source-region suite validation issue.""" + + code: str + message: str + region_id: str | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + data = asdict(self) + return {key: value for key, value in data.items() if value is not None} + + +@dataclass(frozen=True) +class SourceRegionSuiteReport: + """Validation report for source regions resolved against source cells.""" + + region_count: int + covered_cell_count: int + errors: tuple[SourceRegionSuiteIssue, ...] + warnings: tuple[SourceRegionSuiteIssue, ...] = () + + @property + def valid(self) -> bool: + """Whether source regions validated without errors.""" + return not self.errors + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "region_count": self.region_count, + "covered_cell_count": self.covered_cell_count, + "errors": [issue.to_dict() for issue in self.errors], + "warnings": [issue.to_dict() for issue in self.warnings], + } + + +@dataclass(frozen=True) +class AgentAcceptanceIssue: + """One agent-facing build acceptance issue.""" + + code: str + message: str + fact_key: str | None = None + source_record_id: str | None = None + artifact_sha256: str | None = None + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable issue.""" + data = asdict(self) + return {key: value for key, value in data.items() if value is not None} + + +@dataclass(frozen=True) +class AgentAcceptanceReport: + """Agent-facing acceptance report for source-package population.""" + + checks: dict[str, bool] + counts: dict[str, int | float] + errors: tuple[AgentAcceptanceIssue, ...] + warnings: tuple[AgentAcceptanceIssue, ...] = () + + @property + def valid(self) -> bool: + """Whether the package passes agent acceptance gates.""" + return not self.errors and all(self.checks.values()) + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "checks": self.checks, + "counts": self.counts, + "errors": [issue.to_dict() for issue in self.errors], + "warnings": [issue.to_dict() for issue in self.warnings], + } + + +@dataclass(frozen=True) +class BuildSuiteReport: + """End-to-end build-suite report for one source package.""" + + source: str + year: int + output_dir: str + outputs: dict[str, str] + source_rows: SourceRowReport + source_cells: SourceCellReport + source_regions: SourceRegionSuiteReport + source_records: SourceRecordSuiteReport + facts: ValidationReport + consumer_facts: ConsumerFactExportReport + concept_alignments: ConceptAlignmentReport + database: ArchDbBuildReport + agent_acceptance: AgentAcceptanceReport + + @property + def valid(self) -> bool: + """Whether every suite report is valid.""" + return ( + self.source_rows.valid + and self.source_cells.valid + and self.source_regions.valid + and self.source_records.valid + and self.facts.valid + and self.concept_alignments.valid + and self.agent_acceptance.valid + ) + + def to_dict(self) -> dict[str, Any]: + """Return a JSON-serializable report.""" + return { + "valid": self.valid, + "source": self.source, + "year": self.year, + "output_dir": self.output_dir, + "outputs": self.outputs, + "counts": { + "artifact_count": self.database.source_artifacts_count, + "source_row_count": self.source_rows.row_count, + "source_cell_count": self.source_cells.cell_count, + "source_region_count": self.source_regions.region_count, + "source_record_count": self.source_records.resolved_count, + "fact_count": self.facts.fact_count, + "consumer_fact_count": self.consumer_facts.fact_count, + "constraint_count": self.database.constraints_count, + "concept_alignment_count": ( + self.concept_alignments.alignment_count + ), + "lineage_coverage": self.source_records.lineage_coverage, + "agent_acceptance_error_count": len(self.agent_acceptance.errors), + }, + "reports": { + "source_rows": self.source_rows.to_dict(), + "source_cells": self.source_cells.to_dict(), + "source_regions": self.source_regions.to_dict(), + "selectors": self.source_records.to_dict(), + "source_records": self.source_records.to_dict(), + "facts": self.facts.to_dict(), + "consumer_facts": self.consumer_facts.to_dict(), + "concept_alignments": self.concept_alignments.to_dict(), + "database": self.database.to_dict(), + "agent_acceptance": self.agent_acceptance.to_dict(), + }, + } + + +def build_source_suite( + source: str | Path, + output_dir: str | Path, + *, + year: int = 2023, + axiom_command: Sequence[str] | None = None, + axiom_roots: Sequence[str | Path] = (), + require_axiom_validation: bool = False, + replace: bool = False, +) -> BuildSuiteReport: + """Build all reproducible Arch artifacts and reports for a source package.""" + source_package = try_load_source_package(source) + source_id = source_package.package_id if source_package else source + output_path = Path(output_dir) + _prepare_output_dir(output_path, replace=replace) + reports_path = output_path / "reports" + reports_path.mkdir(parents=True, exist_ok=True) + + source_rows = ( + source_package.build_source_rows(year) + if source_package + else build_source_rows(source, year=year) + ) + source_row_report = validate_source_rows(source_rows) + source_rows_path = output_path / "source_rows.jsonl" + save_source_rows_jsonl(source_rows, source_rows_path) + _write_report(reports_path / "source_rows.json", source_row_report.to_dict()) + + cells = ( + source_package.build_source_cells(year, source_rows=source_rows) + if source_package + else build_source_cells(source, year=year) + ) + source_cell_report = validate_source_cells(cells) + source_cells_path = output_path / "source_cells.jsonl" + save_source_cells_jsonl(cells, source_cells_path) + _write_report(reports_path / "source_cells.json", source_cell_report.to_dict()) + + regions = ( + source_package.build_source_regions(year) + if source_package + else build_source_regions(source, year=year) + ) + source_regions_path = output_path / "source_regions.jsonl" + _write_jsonl(source_regions_path, [asdict(region) for region in regions]) + source_region_report = validate_source_regions(regions, cells) + _write_report( + reports_path / "source_regions.json", + source_region_report.to_dict(), + ) + + source_record_report = validate_source_record_specs( + ( + source_package.build_source_record_specs(year) + if source_package + else build_source_record_specs(source, year=year) + ), + cells, + ) + _write_report( + reports_path / "selectors.json", + source_record_report.to_dict(), + ) + _write_report( + reports_path / "source_records.json", + source_record_report.to_dict(), + ) + + facts = ( + source_package.build_facts(year, cells=cells, source_rows=source_rows) + if source_package + else build_facts(source, year=year) + ) + fact_report = validate_facts(facts) + facts_path = output_path / "facts.jsonl" + save_facts_jsonl(facts, facts_path) + _write_report(reports_path / "facts.json", fact_report.to_dict()) + consumer_facts_path = output_path / "consumer_facts.jsonl" + consumer_fact_report = write_consumer_facts_jsonl( + facts, + consumer_facts_path, + ) + _write_report( + reports_path / "consumer_facts.json", + consumer_fact_report.to_dict(), + ) + + concept_report = validate_concept_alignments( + facts, + axiom_command=axiom_command, + axiom_roots=axiom_roots, + ) + _write_report( + reports_path / "concept_alignments.json", + concept_report.to_dict(), + ) + + db_path = output_path / "arch.db" + db_report = build_arch_db( + facts, + db_path, + source_cells=cells, + source_rows=source_rows, + replace=True, + ) + _write_report(reports_path / "database.json", db_report.to_dict()) + agent_acceptance_report = build_agent_acceptance_report( + facts, + source_rows, + cells, + source_rows=source_row_report, + source_cells=source_cell_report, + source_regions=source_region_report, + source_records=source_record_report, + fact_report=fact_report, + concept_alignments=concept_report, + require_axiom_validation=require_axiom_validation, + selected_only_source_parse=( + bool(source_package) + and source_package.artifact.parser == "delimited_text_selected_rows" + ), + ) + _write_report( + reports_path / "agent_acceptance.json", + agent_acceptance_report.to_dict(), + ) + + report = BuildSuiteReport( + source=source_id, + year=year, + output_dir=str(output_path), + outputs={ + "source_rows": str(source_rows_path), + "source_cells": str(source_cells_path), + "source_regions": str(source_regions_path), + "facts": str(facts_path), + "consumer_facts": str(consumer_facts_path), + "database": str(db_path), + "reports": str(reports_path), + "datapackage": str(output_path / "datapackage.json"), + "ro_crate": str(output_path / "ro-crate-metadata.json"), + "agent_acceptance": str(reports_path / "agent_acceptance.json"), + }, + source_rows=source_row_report, + source_cells=source_cell_report, + source_regions=source_region_report, + source_records=source_record_report, + facts=fact_report, + consumer_facts=consumer_fact_report, + concept_alignments=concept_report, + database=db_report, + agent_acceptance=agent_acceptance_report, + ) + _write_report(reports_path / "build_summary.json", report.to_dict()) + _write_package_sidecars(output_path, source=source_id, year=year) + return report + + +def validate_source_record_specs( + specs: list[SourceRecordSpec], + cells: list[SourceCell], +) -> SourceRecordSuiteReport: + """Resolve source-record specs and report selector/lineage failures.""" + errors: list[SourceRecordSuiteIssue] = [] + resolved_count = 0 + lineaged_count = 0 + cells_by_sheet_address = build_cells_by_sheet_address(cells) + + for spec in specs: + try: + record = resolve_source_record( + cells, + spec, + cells_by_sheet_address=cells_by_sheet_address, + ) + except ValueError as exc: + errors.append( + SourceRecordSuiteIssue( + code="source_record_resolution_failed", + message=str(exc), + source_record_id=spec.source_record_id, + selector_id=spec.selector.selector_id, + ) + ) + continue + resolved_count += 1 + if record.source_cell_keys: + lineaged_count += 1 + else: + errors.append( + SourceRecordSuiteIssue( + code="missing_source_cell_lineage", + message="Resolved source record has no source-cell lineage.", + source_record_id=spec.source_record_id, + selector_id=spec.selector.selector_id, + ) + ) + + return SourceRecordSuiteReport( + spec_count=len(specs), + resolved_count=resolved_count, + lineaged_count=lineaged_count, + errors=tuple(errors), + ) + + +def validate_source_regions( + regions: list[SourceRegionSpec], + cells: list[SourceCell], +) -> SourceRegionSuiteReport: + """Validate source-region specs against parsed source cells.""" + errors: list[SourceRegionSuiteIssue] = [] + region_ids: dict[str, list[int]] = {} + covered_cells: set[tuple[str, int, int]] = set() + + for index, region in enumerate(regions): + region_ids.setdefault(region.region_id, []).append(index) + if not region.region_id.strip(): + errors.append( + SourceRegionSuiteIssue( + code="missing_region_id", + message="Source region is missing region_id.", + ) + ) + if ( + region.top_row < 1 + or region.left_column < 1 + or region.bottom_row < region.top_row + or region.right_column < region.left_column + ): + errors.append( + SourceRegionSuiteIssue( + code="malformed_region_bounds", + message="Source region bounds must be one-based and ordered.", + region_id=region.region_id, + ) + ) + continue + + matching_cells = [ + cell + for cell in cells + if cell.sheet_name == region.sheet_name + and region.top_row <= cell.row_number <= region.bottom_row + and region.left_column <= cell.column_number <= region.right_column + ] + if not matching_cells: + errors.append( + SourceRegionSuiteIssue( + code="region_matches_no_source_cells", + message="Source region did not cover any parsed source cells.", + region_id=region.region_id, + ) + ) + continue + covered_cells.update( + (cell.sheet_name, cell.row_number, cell.column_number) + for cell in matching_cells + ) + + for region_id, indices in region_ids.items(): + if region_id and len(indices) > 1: + errors.append( + SourceRegionSuiteIssue( + code="duplicate_region_id", + message=f"Duplicate source-region ID appears at indices {indices}.", + region_id=region_id, + ) + ) + + return SourceRegionSuiteReport( + region_count=len(regions), + covered_cell_count=len(covered_cells), + errors=tuple(errors), + ) + + +def build_agent_acceptance_report( + facts: list[AggregateFact], + rows: list[SourceRow], + cells: list[SourceCell], + *, + source_rows: SourceRowReport, + source_cells: SourceCellReport, + source_regions: SourceRegionSuiteReport, + source_records: SourceRecordSuiteReport, + fact_report: ValidationReport, + concept_alignments: ConceptAlignmentReport, + require_axiom_validation: bool = False, + selected_only_source_parse: bool = False, +) -> AgentAcceptanceReport: + """Build the stricter report agents should satisfy before review.""" + errors: list[AgentAcceptanceIssue] = [] + warnings: list[AgentAcceptanceIssue] = [] + artifacts = { + **{row.artifact.sha256: row.artifact for row in rows}, + **{cell.artifact.sha256: cell.artifact for cell in cells}, + } + source_rows_by_key = {build_source_row_key(row): row for row in rows} + source_row_keys = set(source_rows_by_key) + source_cells_by_key = {build_source_cell_key(cell): cell for cell in cells} + raw_r2_link_count = 0 + + if not cells and not rows: + errors.append( + AgentAcceptanceIssue( + code="missing_source_document_parse", + message="Accepted packages must preserve a parsed source document.", + ) + ) + if selected_only_source_parse: + errors.append( + AgentAcceptanceIssue( + code="selected_row_only_source_parse", + message=( + "Accepted packages must parse the full source document " + "before selecting facts." + ), + ) + ) + for artifact_sha256, artifact in artifacts.items(): + if artifact.raw_r2_bucket and artifact.raw_r2_key and artifact.raw_r2_uri: + raw_r2_link_count += 1 + else: + errors.append( + AgentAcceptanceIssue( + code="missing_raw_r2_link", + message="Source artifact is missing raw R2 storage metadata.", + artifact_sha256=artifact_sha256, + ) + ) + + missing_provenance_count = _fact_count(fact_report, "missing_provenance") + if missing_provenance_count: + errors.append( + AgentAcceptanceIssue( + code="missing_fact_provenance", + message="One or more aggregate facts have incomplete provenance.", + ) + ) + + missing_lineage_count = _fact_count(fact_report, "missing_lineage") + if missing_lineage_count: + errors.append( + AgentAcceptanceIssue( + code="missing_fact_lineage", + message="One or more aggregate facts have no source-cell lineage.", + ) + ) + if source_records.lineaged_count != source_records.resolved_count: + errors.append( + AgentAcceptanceIssue( + code="missing_source_record_lineage", + message="One or more selected source records lack source-cell lineage.", + ) + ) + missing_row_lineage_count = 0 + missing_row_resolution_count = 0 + row_semantic_error_count = 0 + if rows: + for fact in facts: + if not fact.source_row_keys: + missing_row_lineage_count += 1 + errors.append( + AgentAcceptanceIssue( + code="missing_fact_source_row_lineage", + message=( + "Fact was built from a row-oriented source but has " + "no source-row lineage." + ), + fact_key=build_fact_key(fact), + source_record_id=fact.source_record_id, + ) + ) + continue + unresolved_keys = [ + key for key in fact.source_row_keys if key not in source_row_keys + ] + if unresolved_keys: + missing_row_resolution_count += 1 + errors.append( + AgentAcceptanceIssue( + code="fact_source_row_lineage_unresolved", + message=( + "Fact source-row lineage does not resolve into " + "the parsed source rows." + ), + fact_key=build_fact_key(fact), + source_record_id=fact.source_record_id, + ) + ) + continue + for issue in _row_semantic_evidence_issues( + fact, + [source_rows_by_key[key] for key in fact.source_row_keys], + [ + source_cells_by_key[key] + for key in fact.source_cell_keys + if key in source_cells_by_key + ], + ): + row_semantic_error_count += 1 + errors.append(issue) + + expected_constraint_facts = [ + fact for fact in facts if _expects_first_class_constraints(fact) + ] + constrained_expected_facts = [ + fact + for fact in expected_constraint_facts + if build_aggregate_constraints(fact) + ] + for fact in expected_constraint_facts: + if build_aggregate_constraints(fact): + continue + errors.append( + AgentAcceptanceIssue( + code="missing_expected_constraints", + message=( + "Non-total grouped aggregate fact has no first-class " + "constraints." + ), + fact_key=build_fact_key(fact), + source_record_id=fact.source_record_id, + ) + ) + + missing_evidence_count = sum( + 1 + for issue in concept_alignments.errors + if issue.code == "missing_concept_evidence" + ) + invalid_concept_count = sum( + 1 + for issue in concept_alignments.errors + if issue.code == "axiom_concept_invalid" + ) + unchecked_alignment_count = max( + 0, + concept_alignments.alignment_count - concept_alignments.checked_count, + ) + if missing_evidence_count: + errors.append( + AgentAcceptanceIssue( + code="missing_concept_alignment_evidence", + message="Exact concept alignments are missing evidence.", + ) + ) + if invalid_concept_count: + errors.append( + AgentAcceptanceIssue( + code="invalid_canonical_concept", + message="One or more canonical concepts failed Axiom validation.", + ) + ) + if unchecked_alignment_count: + issue = AgentAcceptanceIssue( + code="concept_alignment_validation_skipped", + message=( + "One or more canonical concepts were not checked against " + "Axiom metadata." + ), + ) + if require_axiom_validation: + errors.append(issue) + else: + warnings.append(issue) + if concept_alignments.alignment_count == 0: + warnings.append( + AgentAcceptanceIssue( + code="no_concept_alignments", + message="Package emitted no source-to-canonical concept alignments.", + ) + ) + + stage_reports_valid = ( + source_rows.valid + and source_cells.valid + and source_regions.valid + and source_records.valid + and fact_report.valid + and concept_alignments.valid + ) + if not stage_reports_valid: + errors.append( + AgentAcceptanceIssue( + code="stage_report_failed", + message="One or more build-suite stage reports are invalid.", + ) + ) + + checks = { + "stage_reports_valid": stage_reports_valid, + "raw_artifacts_have_r2": raw_r2_link_count == len(artifacts) and bool(artifacts), + "full_source_document_parsed": bool(rows) or bool(cells), + "selected_row_only_parser_not_used": not selected_only_source_parse, + "facts_have_provenance": missing_provenance_count == 0, + "facts_have_source_cell_lineage": ( + missing_lineage_count == 0 + and source_records.lineaged_count == source_records.resolved_count + ), + "facts_have_source_row_lineage": ( + not rows + or (missing_row_lineage_count == 0 and missing_row_resolution_count == 0) + ), + "row_lineage_semantics_evidenced": row_semantic_error_count == 0, + "expected_constraints_present": ( + len(constrained_expected_facts) == len(expected_constraint_facts) + ), + "concept_alignments_have_evidence": missing_evidence_count == 0, + "concept_alignments_resolve": invalid_concept_count == 0, + "required_concept_alignments_validated": ( + not require_axiom_validation or unchecked_alignment_count == 0 + ), + } + return AgentAcceptanceReport( + checks=checks, + counts={ + "raw_artifact_count": len(artifacts), + "raw_r2_link_count": raw_r2_link_count, + "source_row_count": source_rows.row_count, + "fact_count": fact_report.fact_count, + "missing_provenance_count": missing_provenance_count, + "missing_lineage_count": missing_lineage_count, + "missing_source_row_lineage_count": missing_row_lineage_count, + "unresolved_source_row_lineage_count": missing_row_resolution_count, + "row_semantic_error_count": row_semantic_error_count, + "source_record_count": source_records.resolved_count, + "source_record_lineaged_count": source_records.lineaged_count, + "expected_constraint_fact_count": len(expected_constraint_facts), + "constrained_expected_fact_count": len(constrained_expected_facts), + "concept_alignment_count": concept_alignments.alignment_count, + "concept_alignment_checked_count": concept_alignments.checked_count, + "concept_alignment_unchecked_count": unchecked_alignment_count, + "concept_alignment_missing_evidence_count": missing_evidence_count, + "concept_alignment_invalid_count": invalid_concept_count, + }, + errors=tuple(errors), + warnings=tuple(warnings), + ) + + +def build_source_cells(source: str | Path, *, year: int) -> list[SourceCell]: + """Build parsed source cells for a supported source package.""" + source_package = try_load_source_package(source) + if source_package: + return source_package.build_source_cells(year) + _require_supported_source(source) + if source == "soi-table-1-1": + from arch.jurisdictions.us.soi import build_soi_table_1_1_source_cells + + return build_soi_table_1_1_source_cells(year) + if source == "soi-table-1-4": + from arch.jurisdictions.us.soi import build_soi_table_1_4_source_cells + + return build_soi_table_1_4_source_cells(year) + raise AssertionError(f"Unhandled supported source: {source}") + + +def build_source_rows(source: str | Path, *, year: int) -> list[SourceRow]: + """Build parsed source rows for a supported source package.""" + source_package = try_load_source_package(source) + if source_package: + return source_package.build_source_rows(year) + _require_supported_source(source) + return [] + + +def build_source_regions( + source: str | Path, + *, + year: int, +) -> list[SourceRegionSpec]: + """Build source-region specs for a supported source package.""" + source_package = try_load_source_package(source) + if source_package: + return source_package.build_source_regions(year) + _require_supported_source(source) + if source == "soi-table-1-1": + from arch.jurisdictions.us.soi import ( + build_soi_table_1_1_source_region_specs, + ) + + return build_soi_table_1_1_source_region_specs(year) + if source == "soi-table-1-4": + from arch.jurisdictions.us.soi import ( + build_soi_table_1_4_source_region_specs, + ) + + return build_soi_table_1_4_source_region_specs(year) + raise AssertionError(f"Unhandled supported source: {source}") + + +def build_source_record_specs( + source: str | Path, + *, + year: int, +) -> list[SourceRecordSpec]: + """Build source-record specs for a supported source package.""" + source_package = try_load_source_package(source) + if source_package: + return source_package.build_source_record_specs(year) + _require_supported_source(source) + if source == "soi-table-1-1": + from arch.jurisdictions.us.soi import ( + build_soi_table_1_1_source_record_specs, + ) + + return build_soi_table_1_1_source_record_specs(year) + if source == "soi-table-1-4": + from arch.jurisdictions.us.soi import ( + build_soi_table_1_4_source_record_specs, + ) + + return build_soi_table_1_4_source_record_specs(year) + raise AssertionError(f"Unhandled supported source: {source}") + + +def build_facts(source: str | Path, *, year: int) -> list[AggregateFact]: + """Build aggregate facts for a supported source package.""" + source_package = try_load_source_package(source) + if source_package: + return source_package.build_facts(year) + _require_supported_source(source) + if source == "soi-table-1-1": + from arch.jurisdictions.us.soi import build_soi_table_1_1_facts + + return build_soi_table_1_1_facts(year) + if source == "soi-table-1-4": + from arch.jurisdictions.us.soi import build_soi_table_1_4_facts + + return build_soi_table_1_4_facts(year) + raise AssertionError(f"Unhandled supported source: {source}") + + +def _require_supported_source(source: str | Path) -> None: + if source not in SUPPORTED_SOURCE_PACKAGES: + choices = ", ".join(sorted(SUPPORTED_SOURCE_PACKAGES)) + raise ValueError( + f"Unsupported source package {source!r}; choose one of {choices}" + ) + + +def _expects_first_class_constraints(fact: AggregateFact) -> bool: + layout = fact.layout + return bool( + layout + and layout.groupby_dimension + and layout.groupby_dimension != "geography" + and layout.table_record_kind != "total" + ) + + +def _row_semantic_evidence_issues( + fact: AggregateFact, + rows: list[SourceRow], + cells: list[SourceCell], +) -> list[AgentAcceptanceIssue]: + issues: list[AgentAcceptanceIssue] = [] + fact_key = build_fact_key(fact) + period_values = _source_row_values(rows, "period") + for value in period_values: + if not _values_equal(value, fact.period.value): + issues.append( + AgentAcceptanceIssue( + code="fact_period_not_evidenced_by_source_row", + message=( + "Fact period does not match the period value carried " + "by its source row." + ), + fact_key=fact_key, + source_record_id=fact.source_record_id, + ) + ) + + for variable, value in fact.filters.items(): + if value in (None, "all"): + continue + matched_values = _source_row_values(rows, variable) + if not matched_values: + issues.append( + AgentAcceptanceIssue( + code="row_filter_not_evidenced", + message="Fact filter is not present in its source rows.", + fact_key=fact_key, + source_record_id=fact.source_record_id, + ) + ) + continue + for matched_value in matched_values: + if not _values_equal(matched_value, value): + issues.append( + AgentAcceptanceIssue( + code="row_filter_value_mismatch", + message=( + "Fact filter value does not match the value " + "carried by its source row." + ), + fact_key=fact_key, + source_record_id=fact.source_record_id, + ) + ) + + for constraint in build_aggregate_constraints(fact): + if _constraint_evidenced_by_source_rows(rows, constraint): + continue + if _constraint_evidenced_by_source_cells(cells, constraint): + continue + matched_values = _source_row_values(rows, constraint.variable) + if not matched_values: + issues.append( + AgentAcceptanceIssue( + code="row_constraint_not_evidenced", + message=( + "Fact constraint is not present in its source rows." + ), + fact_key=fact_key, + source_record_id=fact.source_record_id, + ) + ) + continue + for matched_value in matched_values: + if not _constraint_matches_source_value( + matched_value, + constraint.operator, + constraint.value, + ): + issues.append( + AgentAcceptanceIssue( + code="row_constraint_value_mismatch", + message=( + "Fact constraint does not match the value carried " + "by its source row." + ), + fact_key=fact_key, + source_record_id=fact.source_record_id, + ) + ) + return issues + + +def _constraint_evidenced_by_source_cells( + cells: list[SourceCell], + constraint: Any, +) -> bool: + if not _is_age_variable(str(constraint.variable)): + return False + ranges = [ + age_range + for cell in cells + if (age_range := _source_cell_age_range(cell)) is not None + ] + if not ranges: + return False + return _age_band_constraint_range_matches( + ranges, + constraint.operator, + constraint.value, + ) + + +def _source_row_values(rows: list[SourceRow], variable: str) -> list[Any]: + values = [] + for row in rows: + matched, value = _source_row_value(row, variable) + if matched: + values.append(value) + return values + + +def _source_row_value(row: SourceRow, variable: str) -> tuple[bool, Any]: + values_by_column = { + _normalize_semantic_name(column): value + for column, value in row.values.items() + } + if _normalize_semantic_name(variable) == "incomerange": + agi_stub = _source_row_agi_stub(row) + if agi_stub in SOI_HISTORIC_TABLE_2_AGI_STUB_RANGES: + bracket, _lower, _upper = SOI_HISTORIC_TABLE_2_AGI_STUB_RANGES[ + agi_stub + ] + return True, bracket + for candidate in _semantic_name_candidates(variable): + if candidate in values_by_column: + return True, values_by_column[candidate] + return False, None + + +def _constraint_evidenced_by_source_rows( + rows: list[SourceRow], + constraint: Any, +) -> bool: + """Accept source-coded bands as evidence for interpreted bounds.""" + if _is_age_variable(str(constraint.variable)): + return _age_band_constraint_matches( + rows, + constraint.operator, + constraint.value, + ) + if _source_row_bound_constraint_matches( + rows, + str(constraint.variable), + constraint.operator, + constraint.value, + ): + return True + if not _is_adjusted_gross_income_variable(str(constraint.variable)): + return False + return _agi_stub_constraint_matches_rows( + rows, + constraint.operator, + constraint.value, + ) + + +def _agi_stub_constraint_matches_rows( + rows: list[SourceRow], + operator: str, + expected: Any, +) -> bool: + ranges = [ + SOI_HISTORIC_TABLE_2_AGI_STUB_RANGES[agi_stub] + for row in rows + if (agi_stub := _source_row_agi_stub(row)) + in SOI_HISTORIC_TABLE_2_AGI_STUB_RANGES + ] + if len(ranges) != len(rows) or not ranges: + return False + + expected_number = _number_or_none(expected) + if expected_number is None: + return False + lower_bounds = [lower for _bracket, lower, _upper in ranges if lower is not None] + upper_bounds = [upper for _bracket, _lower, upper in ranges if upper is not None] + if operator == ">=": + return ( + len(lower_bounds) == len(ranges) + and min(lower_bounds) == expected_number + ) + if operator == "<": + return ( + len(upper_bounds) == len(ranges) + and max(upper_bounds) == expected_number + ) + return False + + +def _source_row_bound_constraint_matches( + rows: list[SourceRow], + variable: str, + operator: str, + expected: Any, +) -> bool: + expected_number = _number_or_none(expected) + if expected_number is None: + return False + if operator in {">", ">="}: + values = _source_row_bound_values(rows, variable, "lower") + elif operator in {"<", "<="}: + values = _source_row_bound_values(rows, variable, "upper") + else: + return False + return bool(values) and all( + (source_number := _number_or_none(value)) is not None + and source_number == expected_number + for value in values + ) + + +def _source_row_bound_values( + rows: list[SourceRow], + variable: str, + bound: str, +) -> list[Any]: + values = [] + suffixes = ( + (f"{bound}_bound", f"{bound}bound", bound) + if bound in {"lower", "upper"} + else (bound,) + ) + for row in rows: + values_by_column = { + _normalize_semantic_name(column): value + for column, value in row.values.items() + } + matched = False + for candidate in _semantic_name_candidates(variable): + for suffix in suffixes: + key = f"{candidate}{_normalize_semantic_name(suffix)}" + if key in values_by_column: + values.append(values_by_column[key]) + matched = True + break + if matched: + break + if not matched: + return [] + return values + + +def _agi_stub_constraint_matches( + row: SourceRow, + operator: str, + expected: Any, +) -> bool: + agi_stub = _source_row_agi_stub(row) + if agi_stub not in SOI_HISTORIC_TABLE_2_AGI_STUB_RANGES: + return False + _bracket, lower, upper = SOI_HISTORIC_TABLE_2_AGI_STUB_RANGES[agi_stub] + expected_number = _number_or_none(expected) + if expected_number is None: + return False + if operator == ">=": + return lower == expected_number + if operator == "<": + return upper == expected_number + return False + + +def _age_band_constraint_matches( + rows: list[SourceRow], + operator: str, + expected: Any, +) -> bool: + ranges = [_source_row_age_range(row) for row in rows] + if not ranges or any(age_range is None for age_range in ranges): + return False + return _age_band_constraint_range_matches( + [age_range for age_range in ranges if age_range is not None], + operator, + expected, + ) + + +def _age_band_constraint_range_matches( + ranges: list[tuple[int, int | None]], + operator: str, + expected: Any, +) -> bool: + ranges = list(dict.fromkeys(ranges)) + sorted_ranges = sorted( + ranges, + key=lambda age_range: age_range[0], + ) + for previous, current in zip(sorted_ranges, sorted_ranges[1:]): + if previous[1] is None or previous[1] != current[0]: + return False + + expected_number = _number_or_none(expected) + if expected_number is None: + return False + lower = float(sorted_ranges[0][0]) + upper = sorted_ranges[-1][1] + if operator == ">=": + return lower == expected_number + if operator == ">": + return lower > expected_number + if operator == "<": + return upper is not None and float(upper) == expected_number + if operator == "<=": + return upper is not None and float(upper - 1) <= expected_number + return False + + +def _source_cell_age_range(cell: SourceCell) -> tuple[int, int | None] | None: + for value in (cell.raw_value, cell.display_value): + if value is None: + continue + label = str(value).strip() + match = re.fullmatch(r"POP_(\d+)", label, re.I) + if not match: + continue + lower = int(match.group(1)) + if lower == 85: + return lower, None + return lower, lower + 1 + return None + + +def _source_row_age_range(row: SourceRow) -> tuple[int, int | None] | None: + for variable in ("C_AGE_NAME", "AGE_NAME", "age_name", "age"): + matched, value = _source_row_value_without_interpretation(row, variable) + if not matched or value is None: + continue + if isinstance(value, int | float) and not isinstance(value, bool): + lower = int(value) + if float(value) == lower: + return lower, lower + 1 + label = str(value).strip() + if re.fullmatch(r"\d+", label): + lower = int(label) + return lower, lower + 1 + match = re.search( + r"\b(?:Aged?|Female)\s+(\d+)\s*(?:[-–]|to)\s*(\d+)\b", + label, + re.I, + ) + if match: + lower = int(match.group(1)) + upper = int(match.group(2)) + 1 + return lower, upper + match = re.search( + r"\b(?:Aged?|Female)\s+(\d+)\s+and\s+(\d+)\s+years?\b", + label, + re.I, + ) + if match: + lower = int(match.group(1)) + upper = int(match.group(2)) + 1 + return lower, upper + match = re.search( + r"\b(?:Aged?|Female)\s+(\d+)\s+years?\b", + label, + re.I, + ) + if match: + lower = int(match.group(1)) + return lower, lower + 1 + match = re.search(r"\bAged?\s+(\d+)\s+and\s+over\b", label, re.I) + if match: + return int(match.group(1)), None + return None + + +def _source_row_agi_stub(row: SourceRow) -> int | None: + matched, value = _source_row_value_without_interpretation(row, "AGI_STUB") + if not matched: + return None + numeric = _number_or_none(value) + if numeric is None: + return None + return int(numeric) + + +def _source_row_value_without_interpretation( + row: SourceRow, + variable: str, +) -> tuple[bool, Any]: + values_by_column = { + _normalize_semantic_name(column): value + for column, value in row.values.items() + } + for candidate in _semantic_name_candidates(variable): + if candidate in values_by_column: + return True, values_by_column[candidate] + return False, None + + +def _is_adjusted_gross_income_variable(variable: str) -> bool: + return any(candidate in { + "adjustedgrossincome", + "agi", + } for candidate in _semantic_name_candidates(variable)) + + +def _is_age_variable(variable: str) -> bool: + return any(candidate in { + "age", + "personage", + } for candidate in _semantic_name_candidates(variable)) + + +def _semantic_name_candidates(name: str) -> tuple[str, ...]: + parts = [name, *re.split(r"[.#/:]", name)] + return tuple( + dict.fromkeys( + normalized + for part in parts + if (normalized := _normalize_semantic_name(part)) + ) + ) + + +def _normalize_semantic_name(name: str) -> str: + return re.sub(r"[^a-z0-9]+", "", name.lower()) + + +def _constraint_matches_source_value( + source_value: Any, + operator: str, + expected: Any, +) -> bool: + if operator == "==": + return _values_equal(source_value, expected) + if operator == "!=": + return not _values_equal(source_value, expected) + if operator == "in" and isinstance(expected, list | tuple | set): + return any(_values_equal(source_value, item) for item in expected) + + source_number = _number_or_none(source_value) + expected_number = _number_or_none(expected) + if source_number is None or expected_number is None: + return False + if operator == ">": + return source_number > expected_number + if operator == ">=": + return source_number >= expected_number + if operator == "<": + return source_number < expected_number + if operator == "<=": + return source_number <= expected_number + return False + + +def _values_equal(left: Any, right: Any) -> bool: + left_number = _number_or_none(left) + right_number = _number_or_none(right) + if left_number is not None and right_number is not None: + return left_number == right_number + return str(left) == str(right) + + +def _number_or_none(value: Any) -> float | None: + if isinstance(value, bool) or value is None: + return None + if isinstance(value, int | float): + return float(value) + if isinstance(value, str): + try: + return float(value.replace(",", "")) + except ValueError: + return None + return None + + +def _fact_count(report: ValidationReport, count_name: str) -> int: + value = report.counts.get(count_name, {}).get("count", 0) + return int(value) + + +def _prepare_output_dir(output_path: Path, *, replace: bool) -> None: + if output_path.exists() and any(output_path.iterdir()): + if not replace: + raise FileExistsError( + f"Build suite output directory is not empty: {output_path}" + ) + if output_path.resolve() in {Path("/").resolve(), Path.home().resolve()}: + raise ValueError( + f"Refusing to replace unsafe output directory: {output_path}" + ) + shutil.rmtree(output_path) + output_path.mkdir(parents=True, exist_ok=True) + + +def _write_jsonl(path: Path, rows: list[dict[str, Any]]) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + with path.open("w") as file: + for row in rows: + file.write(json.dumps(row, sort_keys=True)) + file.write("\n") + + +def _write_report(path: Path, payload: dict[str, Any]) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(json.dumps(payload, indent=2, sort_keys=True), encoding="utf-8") + + +def _write_package_sidecars(output_path: Path, *, source: str, year: int) -> None: + files = [ + output_path / "source_rows.jsonl", + output_path / "source_cells.jsonl", + output_path / "source_regions.jsonl", + output_path / "facts.jsonl", + output_path / "consumer_facts.jsonl", + output_path / "arch.db", + output_path / "reports" / "source_rows.json", + output_path / "reports" / "source_cells.json", + output_path / "reports" / "source_regions.json", + output_path / "reports" / "selectors.json", + output_path / "reports" / "source_records.json", + output_path / "reports" / "facts.json", + output_path / "reports" / "consumer_facts.json", + output_path / "reports" / "concept_alignments.json", + output_path / "reports" / "database.json", + output_path / "reports" / "agent_acceptance.json", + output_path / "reports" / "build_summary.json", + ] + resources = [_resource_descriptor(output_path, path) for path in files] + datapackage_path = output_path / "datapackage.json" + ro_crate_path = output_path / "ro-crate-metadata.json" + + _write_report( + datapackage_path, + { + "profile": "data-package", + "name": f"arch-{source}-{year}", + "title": f"Arch build suite for {source} {year}", + "resources": resources, + }, + ) + _write_report( + ro_crate_path, + { + "@context": "https://w3id.org/ro/crate/1.2/context", + "@graph": [ + { + "@id": "./", + "@type": "Dataset", + "name": f"Arch build suite for {source} {year}", + "hasPart": [ + {"@id": resource["path"]} for resource in resources + ], + }, + { + "@id": "ro-crate-metadata.json", + "@type": "CreativeWork", + "about": {"@id": "./"}, + "conformsTo": { + "@id": "https://w3id.org/ro/crate/1.2" + }, + }, + *[ + { + "@id": resource["path"], + "@type": "File", + "name": resource["name"], + "contentSize": resource["bytes"], + "sha256": resource["hash"], + } + for resource in resources + ], + ], + }, + ) + + +def _resource_descriptor(output_path: Path, path: Path) -> dict[str, Any]: + rel_path = path.relative_to(output_path).as_posix() + return { + "name": rel_path.replace("/", "_").replace(".", "_"), + "path": rel_path, + "format": path.suffix.removeprefix("."), + "mediatype": _mediatype(path), + "bytes": path.stat().st_size, + "hash": _sha256(path), + } + + +def _sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as file: + for chunk in iter(lambda: file.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def _mediatype(path: Path) -> str: + if path.suffix == ".json": + return "application/json" + if path.suffix == ".jsonl": + return "application/x-ndjson" + if path.suffix == ".db": + return "application/vnd.sqlite3" + return "application/octet-stream" diff --git a/db/data/irs_soi/table_1_1/manifest.yaml b/db/data/irs_soi/table_1_1/manifest.yaml index 663a8b1..b6ba86b 100644 --- a/db/data/irs_soi/table_1_1/manifest.yaml +++ b/db/data/irs_soi/table_1_1/manifest.yaml @@ -1,3 +1,5 @@ +source_id: irs_soi +package_id: soi-table-1-1 dataset: irs_soi_publication_1304_table_1_1 source_page: https://www.irs.gov/statistics/soi-tax-stats-individual-income-tax-returns-complete-report-publication-1304-basic-tables-part-1 table: Table 1.1 @@ -6,15 +8,43 @@ files: filename: 20in11si.xls source_url: https://www.irs.gov/pub/irs-soi/20in11si.xls sha256: 9ade112c36a0b6b81b539524537d0fbfbf5c34c611d10da700f82b87a2e81cb0 + size_bytes: 61440 + storage: + r2: + provider: r2 + bucket: arch-raw + key: raw/irs_soi/soi-table-1-1/2020/9ade112c36a0b6b81b539524537d0fbfbf5c34c611d10da700f82b87a2e81cb0/20in11si.xls + uri: r2://arch-raw/raw/irs_soi/soi-table-1-1/2020/9ade112c36a0b6b81b539524537d0fbfbf5c34c611d10da700f82b87a2e81cb0/20in11si.xls 2021: filename: 21in11si.xls source_url: https://www.irs.gov/pub/irs-soi/21in11si.xls sha256: 2c325fb48fe5bc72fdf339aba40da47d4c8285384ba1b7efe26762008a31d2ce + size_bytes: 54784 + storage: + r2: + provider: r2 + bucket: arch-raw + key: raw/irs_soi/soi-table-1-1/2021/2c325fb48fe5bc72fdf339aba40da47d4c8285384ba1b7efe26762008a31d2ce/21in11si.xls + uri: r2://arch-raw/raw/irs_soi/soi-table-1-1/2021/2c325fb48fe5bc72fdf339aba40da47d4c8285384ba1b7efe26762008a31d2ce/21in11si.xls 2022: filename: 22in11si.xls source_url: https://www.irs.gov/pub/irs-soi/22in11si.xls sha256: 31e0203ded16576bad0e3042916a134161a3671405f6be494fbb927acecb8fe5 + size_bytes: 56320 + storage: + r2: + provider: r2 + bucket: arch-raw + key: raw/irs_soi/soi-table-1-1/2022/31e0203ded16576bad0e3042916a134161a3671405f6be494fbb927acecb8fe5/22in11si.xls + uri: r2://arch-raw/raw/irs_soi/soi-table-1-1/2022/31e0203ded16576bad0e3042916a134161a3671405f6be494fbb927acecb8fe5/22in11si.xls 2023: filename: 23in11si.xls source_url: https://www.irs.gov/pub/irs-soi/23in11si.xls sha256: 842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17 + size_bytes: 54272 + storage: + r2: + provider: r2 + bucket: arch-raw + key: raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls + uri: r2://arch-raw/raw/irs_soi/soi-table-1-1/2023/842da11fe09123796c861e919d16011ef161338de1c172d39064bdfa666aca17/23in11si.xls diff --git a/db/data/irs_soi/table_1_4/manifest.yaml b/db/data/irs_soi/table_1_4/manifest.yaml index c3152e0..2749e43 100644 --- a/db/data/irs_soi/table_1_4/manifest.yaml +++ b/db/data/irs_soi/table_1_4/manifest.yaml @@ -1,3 +1,5 @@ +source_id: irs_soi +package_id: soi-table-1-4 dataset: irs_soi_publication_1304_table_1_4 source_page: https://www.irs.gov/statistics/soi-tax-stats-individual-income-tax-returns-complete-report-publication-1304-basic-tables-part-1 table: Table 1.4 @@ -6,11 +8,32 @@ files: filename: 21in14ar.xls source_url: https://www.irs.gov/pub/irs-soi/21in14ar.xls sha256: b2c44704feb0ce4ad7d544e1ac12dc0943a10eefa0a8523f578a0f3fe8552682 + size_bytes: 105984 + storage: + r2: + provider: r2 + bucket: arch-raw + key: raw/irs_soi/soi-table-1-4/2021/b2c44704feb0ce4ad7d544e1ac12dc0943a10eefa0a8523f578a0f3fe8552682/21in14ar.xls + uri: r2://arch-raw/raw/irs_soi/soi-table-1-4/2021/b2c44704feb0ce4ad7d544e1ac12dc0943a10eefa0a8523f578a0f3fe8552682/21in14ar.xls 2022: filename: 22in14ar.xls source_url: https://www.irs.gov/pub/irs-soi/22in14ar.xls sha256: 93811f816933d4ac3250c402f7ddae5989a145b60ce47db413d0f19c71af6617 + size_bytes: 115712 + storage: + r2: + provider: r2 + bucket: arch-raw + key: raw/irs_soi/soi-table-1-4/2022/93811f816933d4ac3250c402f7ddae5989a145b60ce47db413d0f19c71af6617/22in14ar.xls + uri: r2://arch-raw/raw/irs_soi/soi-table-1-4/2022/93811f816933d4ac3250c402f7ddae5989a145b60ce47db413d0f19c71af6617/22in14ar.xls 2023: filename: 23in14ar.xls source_url: https://www.irs.gov/pub/irs-soi/23in14ar.xls sha256: b6c1f87fbb5533417e195f6938538e5de09b6a0825a6a54346bf9363a18d96af + size_bytes: 115712 + storage: + r2: + provider: r2 + bucket: arch-raw + key: raw/irs_soi/soi-table-1-4/2023/b6c1f87fbb5533417e195f6938538e5de09b6a0825a6a54346bf9363a18d96af/23in14ar.xls + uri: r2://arch-raw/raw/irs_soi/soi-table-1-4/2023/b6c1f87fbb5533417e195f6938538e5de09b6a0825a6a54346bf9363a18d96af/23in14ar.xls diff --git a/db/schema.py b/db/schema.py index c20bb45..fd91e6e 100644 --- a/db/schema.py +++ b/db/schema.py @@ -37,11 +37,14 @@ class DataSource(str, Enum): # US sources IRS_SOI = "irs-soi" CENSUS_ACS = "census-acs" + CENSUS_PEP = "census-pep" + CENSUS_STC = "census-stc" USDA_SNAP = "usda-snap" SSA = "ssa" BLS = "bls" CMS_MEDICAID = "cms-medicaid" CMS_ACA = "cms-aca" # ACA Marketplace enrollment data + HHS_ACF_TANF = "hhs-acf-tanf" CBO = "cbo" # Congressional Budget Office projections # UK sources diff --git a/db/supabase_client.py b/db/supabase_client.py index 8d42daf..dd2f520 100644 --- a/db/supabase_client.py +++ b/db/supabase_client.py @@ -22,9 +22,22 @@ from supabase import create_client, Client -ARCH_SCHEMA = os.environ.get("POLICYENGINE_ARCH_SCHEMA", "arch") -MICRODATA_SCHEMA = os.environ.get("POLICYENGINE_MICRODATA_SCHEMA", "microdata") -TARGETS_SCHEMA = os.environ.get("POLICYENGINE_TARGETS_SCHEMA", "targets") +def _env(*names: str) -> str | None: + """Read PolicyEngine-owned storage config.""" + for name in names: + value = os.environ.get(name) + if value: + return value + return None + + +ARCH_SCHEMA = _env("POLICYENGINE_ARCH_SCHEMA") or "arch" +MICRODATA_SCHEMA = ( + _env("POLICYENGINE_MICRODATA_SCHEMA") or "microdata" +) +TARGETS_SCHEMA = ( + _env("POLICYENGINE_TARGETS_SCHEMA") or "targets" +) @dataclass @@ -41,22 +54,25 @@ def from_env(cls) -> "SupabaseConfig": Required: POLICYENGINE_SUPABASE_URL: Supabase project URL - POLICYENGINE_SUPABASE_SECRET_KEY: Service role key for full access + POLICYENGINE_SUPABASE_SERVICE_KEY: Service role key for full access Raises: ValueError: If required environment variables are missing """ - url = os.environ.get("POLICYENGINE_SUPABASE_URL") + url = _env("POLICYENGINE_SUPABASE_URL") if not url: raise ValueError( "POLICYENGINE_SUPABASE_URL not set. " "Set this to your Supabase project URL." ) - secret_key = os.environ.get("POLICYENGINE_SUPABASE_SECRET_KEY") + secret_key = _env( + "POLICYENGINE_SUPABASE_SERVICE_KEY", + "POLICYENGINE_SUPABASE_SECRET_KEY", + ) if not secret_key: raise ValueError( - "POLICYENGINE_SUPABASE_SECRET_KEY not set. " + "POLICYENGINE_SUPABASE_SERVICE_KEY not set. " "Set this to your service role key." ) @@ -85,6 +101,7 @@ def get_supabase_client() -> Client: # Table naming helpers # ============================================================================= + def get_table_name( jurisdiction: str, institution: str, @@ -119,6 +136,7 @@ def _table(client: Client, schema: str, table_name: str): # Sources and datasets # ============================================================================= + def query_sources( jurisdiction: Optional[str] = None, institution: Optional[str] = None, @@ -222,7 +240,11 @@ def register_dataset( if source_url: data["source_url"] = source_url - result = _table(client, ARCH_SCHEMA, "datasets").upsert(data, on_conflict="jurisdiction,institution,dataset,year,table_type").execute() + result = ( + _table(client, ARCH_SCHEMA, "datasets") + .upsert(data, on_conflict="jurisdiction,institution,dataset,year,table_type") + .execute() + ) return result.data[0] if result.data else {} @@ -230,6 +252,7 @@ def register_dataset( # Raw microdata queries # ============================================================================= + def query_microdata( jurisdiction: str, institution: str, @@ -345,6 +368,7 @@ def query_cps( # Targets and strata # ============================================================================= + def query_strata( jurisdiction: Optional[str] = None, ) -> List[Dict[str, Any]]: @@ -387,7 +411,9 @@ def query_targets( """ client = get_supabase_client() # Nested join: strata with their stratum_constraints - query = _table(client, TARGETS_SCHEMA, "targets").select("*, strata(*, stratum_constraints(*)), sources(*)") + query = _table(client, TARGETS_SCHEMA, "targets").select( + "*, strata(*, stratum_constraints(*)), sources(*)" + ) if year: query = query.eq("period", year) @@ -401,7 +427,9 @@ def query_targets( # Filter by jurisdiction if specified (post-query since it's on joined table) data = result.data if jurisdiction: - data = [t for t in data if t.get("strata", {}).get("jurisdiction") == jurisdiction] + data = [ + t for t in data if t.get("strata", {}).get("jurisdiction") == jurisdiction + ] return data @@ -410,6 +438,7 @@ def query_targets( # Insert operations # ============================================================================= + def insert_microdata_batch( jurisdiction: str, institution: str, @@ -439,7 +468,7 @@ def insert_microdata_batch( total = 0 for i in range(0, len(records), chunk_size): - chunk = records[i:i + chunk_size] + chunk = records[i : i + chunk_size] _table(client, MICRODATA_SCHEMA, table_name).insert(chunk).execute() total += len(chunk) @@ -464,7 +493,7 @@ def insert_targets_batch( total = 0 for i in range(0, len(targets), chunk_size): - chunk = targets[i:i + chunk_size] + chunk = targets[i : i + chunk_size] _table(client, TARGETS_SCHEMA, "targets").insert(chunk).execute() total += len(chunk) diff --git a/docs/adr-arch-fact-identity-v2.md b/docs/adr-arch-fact-identity-v2.md new file mode 100644 index 0000000..d82206a --- /dev/null +++ b/docs/adr-arch-fact-identity-v2.md @@ -0,0 +1,357 @@ +# ADR: Arch Fact Identity v2 + +Status: proposed after external ChatGPT Pro review on 2026-05-09 + +## Decision + +Arch v2 uses layered identities instead of one overloaded target key: + +1. `source_record_key` + Identifies an immutable publisher record, row, section, cell group, or + synthetic legacy record within an immutable source release. + +2. `aggregate_fact_key` + Identifies one source-specific aggregate observation from an immutable source + release. + +3. `semantic_fact_key` + Identifies the source-agnostic statistic represented by that observation. + This is the bridge for downstream reconciliation and Microplex target + selection, but it is not the primary Arch source fact key. + +4. `concept_alignment_key` + Identifies a versioned assertion that a source-observed measure maps to a + canonical concept. + +Lineage, labels, evidence notes, layout coordinates, parser versions, build +timestamps, hosted mirror locations, and downstream adapter aliases are not +aggregate fact identity. + +## Rationale + +Arch is a source-data registry and build harness, not the Microplex target +activation layer. Its primary stable key should answer: "which publisher +observation, from which immutable source release, asserts this aggregate?" + +The current key includes the full `Measure` object, including evidence notes and +authority fields. That creates key churn when reviewers improve concept evidence +without changing the source observation. It also risks using row, cell, or table +layout details as fact identity when those should instead be lineage and audit +metadata. + +The v2 split keeps source facts stable while still giving Microplex a clean +semantic handle for source selection, aging, reconciliation, and activation. + +## Canonicalization + +All v2 keys are deterministic hashes over canonical JSON with explicit +namespaces, for example `arch:aggregate_fact:v2`. + +Canonical JSON rules: + +- sorted object keys; +- sorted dimension, filter, and constraint arrays; +- no null/default fields; +- normalized dates; +- normalized units and scales; +- normalized geography IDs and boundary vintages; +- explicit schema-version namespace. + +## Source Identity + +`source_release_key` identifies an immutable publisher release: + +```text +H("arch:source_release:v2", { + publisher_id, + source_dataset_id, + release_id_or_vintage, + release_revision +}) +``` + +If a publisher changes bytes under the same apparent vintage, Arch creates a +new release revision. The same `source_release_key` must never point to +different source content. + +`source_artifact_key` identifies a logical artifact in that release: + +```text +H("arch:source_artifact:v2", { + source_release_key, + artifact_id +}) +``` + +Artifact paths, filenames, mirror URIs, and publisher URLs are lookup and audit +metadata. They do not define aggregate fact identity. + +## Source Record Identity + +`source_record_key` identifies a native or synthetic source record inside a +source release: + +```text +H("arch:source_record:v2", { + source_release_key, + source_frame_key, + record_kind, + native_record_key +}) +``` + +`native_record_key` should use the best stable key available: + +1. publisher primary key, code, row ID, table ID, or record ID; +2. canonical semantic row key from source columns; +3. coordinate fallback, marked `lineage_stability = "coordinate"`; +4. synthetic legacy key, marked `lineage_stability = "synthetic"`. + +Row numbers, sheet ranges, XPath selectors, and cell addresses are locators. +They only become source-record identity when no stronger native key exists. + +## Observed Measures And Concept Alignment + +Split the current `Measure` object into an observed source measure plus a +separate concept alignment. + +`observed_measure_key`: + +```text +H("arch:observed_measure:v2", { + source_dataset_key, + source_measure_id, + unit_id, + quantity_kind, + scale, + measurement_basis_key +}) +``` + +`concept_alignment_key` is a versioned assertion with: + +- `observed_measure_key`; +- `canonical_concept_id`; +- `canonical_measure_key`; +- relation, such as `exact`, `narrower`, `broader`, or `overlaps`; +- authority; +- evidence URL and notes; +- legal vintage and validity window; +- status, such as `proposed`, `reviewed`, `active`, or `rejected`. + +Concept evidence, relation text, authority, and alignment status do not affect +`aggregate_fact_key`. Changing the active canonical alignment may change +`semantic_fact_key`, but the source observation remains the same. + +If legal vintage materially changes the observed statistic, represent it as a +measurement basis, dimension, or universe constraint. Otherwise keep it in the +concept alignment scope. + +## Aggregate Fact Identity + +`aggregate_fact_key` identifies a source-specific observation: + +```text +H("arch:aggregate_fact:v2", { + source_release_key, + source_series_key, + observed_measure_key, + aggregation_key, + period_key, + geography_key, + entity_key, + dimension_set_key, + universe_constraint_set_key +}) +``` + +Include in key material: + +- source release; +- source reporting series; +- observed source measure; +- aggregation; +- period; +- geography, including authority and boundary vintage when relevant; +- entity/unit of analysis; +- dimensions; +- universe constraints that define the statistic. + +Exclude from key material: + +- `source_record_key`; +- `source_row_keys`; +- `source_cell_keys`; +- artifact file path, URL, mirror path, or local path; +- sheet, table layout, row number, column number, or cell address; +- labels and descriptions; +- notes and source display formatting; +- evidence URL and evidence notes; +- parser version and package commit; +- build timestamp; +- value; +- Microplex target names, source-selection status, simulator aliases, aging, + reconciliation, and activation state. + +If two rows in the same source release produce the same `aggregate_fact_key` +with different values, Arch should fail validation. That usually means a missing +dimension, missing methodology/status field, or duplicate source data. Do not +patch the collision by adding `source_record_key` to aggregate identity. + +## Semantic Fact Identity + +`semantic_fact_key` is the source-agnostic reconciliation handle: + +```text +H("arch:semantic_fact:v2", { + canonical_measure_key_or_observed_measure_key, + aggregation_key, + period_key, + geography_key, + entity_key, + dimension_set_key, + universe_constraint_set_key +}) +``` + +Multiple source-specific facts may share a semantic key. That is expected and +belongs to downstream source selection and reconciliation. + +## Lineage + +Store lineage outside aggregate identity: + +```text +AggregateFactLineage { + aggregate_fact_key, + role, # value | numerator | denominator | period | geography | measure | filter | constraint + source_record_key, + source_cell_key, + source_field_key, + derivation_expr +} +``` + +`source_cell_key` is: + +```text +H("arch:source_cell:v2", { + source_record_key, + source_field_key +}) +``` + +Lineage answers "where did this value come from?" It does not answer "what +aggregate fact is this?" + +## Values And Hashes + +Values are payload, not identity. Store separate hashes: + +- `value_hash`: normalized value, value status, uncertainty, and unit payload; +- `lineage_hash`: sorted lineage references and derivation expressions; +- `content_hash`: aggregate key plus value and lineage hashes; +- `build_hash`: source package commit, parser versions, artifact content hashes, + dependency lock, and build environment. + +Parser bug fixes against the same immutable artifact should keep identity stable +and change content/build hashes. If a source release's bytes change, create a +new release revision. + +## Constraints + +Split constraints into: + +- `universe_constraint_set_key`: semantic population/statistic constraints that + affect identity, such as age range, recipient status, income condition, + fiscal-year basis, nominal/real basis, or inflation index. +- validation and quality rules: nonnegative checks, total-equals-components + checks, tolerance checks, confidence interval requirements, and completeness + checks. These do not affect identity. + +The broad `domain` field should normally be metadata. If domain is hiding real +meaning, encode that meaning as source namespace, measure basis, dimension, or +universe constraint. + +## Legacy Migration + +Legacy direct target rows are compatibility inputs, not production Arch facts. + +Migration path: + +1. Create one source package per legacy loader or legacy target table. +2. Create a synthetic source dataset and release, for example + `legacy:`. +3. Materialize each legacy target row as a `SourceRecord` with + `record_kind = "synthetic_legacy"` and + `lineage_stability = "synthetic"`. +4. Materialize synthetic cells for the value and, where possible, period, + geography, measure, and dimensions. +5. Compile through the same source-package pathway into `AggregateFact`. +6. Preserve `legacy_fact_key`, loader name, legacy table, and legacy variable. +7. Mark these facts as non-production until real publisher artifacts and + source-cell lineage replace them. +8. Retire the synthetic package when a real source package reproduces the + legacy outputs within tolerance. + +## Production Lineage Levels + +Use explicit lineage quality levels: + +- `L0_SYNTHETIC`: legacy or hand-entered compatibility rows, not production. +- `L1_ARTIFACT_ONLY`: publisher release and artifact hash exist, but weak or + missing record/cell lineage. Draft only. +- `L2_VALUE_CELL_LINEAGE`: immutable release, artifact hash, source record, + value cell or deterministic derivation, semantic coordinates, hashes, and + build run. Minimum production level for agent-authored facts. +- `L3_FULL_CELL_LINEAGE`: cell or field lineage for value, measure, period, + geography, dimensions, filters, and constraints, plus reviewed concept + evidence and reproducible build manifest. + +Agents should not populate production Arch facts at scale below `L2`. + +## Migration From Current Implementation + +1. Add v2 tables and columns alongside current `fact_key` output. +2. Replace raw source fields in fact identity with `source_dataset_key`, + `source_release_key`, `source_artifact_key`, `source_frame_key`, and + `source_series_key`. Only release and series affect aggregate identity. +3. Split `Measure` into `ObservedMeasure` and `ConceptAlignment`. +4. Add `aggregate_fact_key`, `semantic_fact_key`, `observed_measure_key`, and + `active_alignment_key`. +5. Normalize filters and constraints into `dimension_set_key` and + `universe_constraint_set_key`. +6. Move row and cell references into `AggregateFactLineage`. +7. Add compatibility views for existing downstream consumers. +8. Convert legacy loaders into synthetic source packages, then replace them + package by package with real publisher lineage. + +## Validation Invariants + +Builds should fail when: + +- a production fact lacks `source_release_key`; +- a production fact lacks value lineage at `L2` or better; +- the same `source_release_key` points to different artifact content; +- the same `aggregate_fact_key` has two values in one build; +- a duplicate key is resolved by adding source-row or source-cell identity + instead of adding the missing semantic dimension; +- source geography lacks required boundary vintage; +- unit, scale, aggregation, or universe constraints are ambiguous. + +## Tests To Add + +- Label edits do not change `aggregate_fact_key`. +- Evidence URL or note edits do not change `aggregate_fact_key`. +- Parser version and package commit changes do not change `aggregate_fact_key`. +- Row reorder does not change `source_record_key` when a native row key exists. +- Coordinate-only lineage is marked low stability. +- Source release byte changes force a new release revision. +- Unit, scale, aggregation, geography vintage, and universe-constraint changes + change aggregate identity. +- Constraint order is canonicalized. +- Duplicate aggregate keys with different values fail validation. +- Concept alignment evidence changes do not change `aggregate_fact_key`. +- Active canonical concept changes may change `semantic_fact_key`. +- Synthetic legacy facts remain non-production until backed by real source + artifacts and source-cell lineage. diff --git a/docs/agent-source-package-harness.md b/docs/agent-source-package-harness.md new file mode 100644 index 0000000..2368549 --- /dev/null +++ b/docs/agent-source-package-harness.md @@ -0,0 +1,550 @@ +# Agent Source Package Harness + +Arch source-population agents should fill constrained source packages and let +the build suite decide whether the package is admissible. Agents should not +hand-edit Arch DB artifacts, generated JSONL outputs, or core schema modules. + +The older Python ETL loaders that write directly into the legacy `targets` +tables are compatibility and migration inputs, not the preferred agent +population path. They are useful for proving source coverage against Microplex +today, but a source family should become agent-ready only after it is expressed +as a source package with full-document parsing, source-row or source-cell +lineage, provenance, constraints, and a passing `build-suite` report. + +The first gate for a new package is source-artifact acquisition. Agents should +register raw source files with `uv run arch fetch-artifact` before authoring +selectors. This writes the local artifact, captures checksum and retrieval +metadata in `manifest.yaml`, and can upload the exact bytes to the private +`arch-raw` R2 bucket when Wrangler is authenticated. Agents can audit the local +artifact registry with `uv run arch inventory-artifacts --root db/data`. +For already-downloaded manifest artifacts, agents should run +`uv run arch publish-raw --root db/data` to upload checksum-verified bytes to +R2 and write `storage.r2` metadata back into each manifest entry. + +Builds do not require production raw bytes to be committed to Git. Source +packages first read packaged fixture bytes, then +`ARCH_SOURCE_ARTIFACT_CACHE_DIR` (defaulting to +`~/.cache/policyengine-arch-data/source-artifacts`). If a manifest artifact is +missing locally, set `ARCH_SOURCE_ARTIFACT_FETCH=1` to fetch it from the +manifest `source_url`, verify the declared SHA-256, and write it to that cache. + +For broad PE source migration, generate the agent queue from the manifest before +assigning work: + +```bash +uv run arch plan-pe-sources \ + --manifest docs/pe-us-source-manifest.csv \ + --out docs/pe-us-source-agent-plan.json \ + --markdown docs/pe-us-source-agent-plan.md +``` + +The generated plan separates existing source packages, primary-source lookup +tasks, fetch/register tasks, source-cell scaffolds, and repair items. It is not +semantic acceptance; agents still need `validate-package` and `build-suite` +before a package can move past `semantic_candidate`. Aggregators such as FRED +are migration clues, not canonical Arch source artifacts; agents should find +and register the publisher-owned artifact before source cells or target facts +become canonical. + +## Source Package Contract + +A source package should eventually contain the source artifact manifest, parser +or retrieval code, cell selector specs, source-record specs, and focused tests +for one source family or table. The current in-repo pilot is +`soi-table-1-1`, with `soi-table-1-4` as a second SOI wage pilot, backed by +`arch.jurisdictions.us.soi` while the package contract stabilizes. + +Agents should prefer declarative package directories over Python edits. A +minimal package has a `source_package.yaml` file that identifies the source +artifact manifest and declares compact record sets. The SOI pilots live at +`packages/irs_soi/table_1_1/source_package.yaml`, +`packages/irs_soi/table_1_4/source_package.yaml`, and +`packages/irs_soi/historic_table_2/source_package.yaml`. +For rectangular state tables, row-level geography overrides let one record set +represent repeated state rows without duplicating the measures. The first +ZIP-backed PE migration example is +`packages/cms_aca/oep_state_level/source_package.yaml`, which parses the CMS +OEP ZIP's CSV member into full source rows and emits state-level facts. + +## Selector Guards + +Selectors should not rely on coordinates alone once a package is ready for +semantic review. Agents should add guards that prove the selected coordinates +still mean what the source package claims they mean. + +Use `guard_cells` for exact row-relative checks such as a start row label, end +row label, neighboring header, or absolute sentinel. A row guard uses an Excel +column, an expected value, and one of `row: start`, `row: end`, or a positive +integer row number. Columns must be Excel letters, and expected values must not +depend on presentation-only formatting. + +```yaml +rows: + - value_id: female_0_14 + label: Female age 0 to 14 + row_number: 2 + row_end_number: 16 + expected_row_header_column: A + expected_row_header: Females + guard_cells: + - column: B + row: start + expected_value: 0 + label: start age + - column: A + row: end + expected_value: Females + label: end sex + - column: B + row: end + expected_value: 14 + label: end age +``` + +Use `range_label_guards` when a fact sums a dense row range and interior labels +are part of the fact definition. Endpoint guards catch off-by-one boundaries, +but they do not catch an inserted, duplicated, or shifted interior label. Range +label guards require `row_end_number` and validate every expected label in the +guard column from `row_number` through `row_end_number`. + +```yaml +range_label_guards: + - column: B + expected_values: + integer_range: + start: 0 + end: 14 + label: age sequence +``` + +For ranges with tail labels, use `final_value` to replace the last integer and +`extra_values` to append labels after the integer range: + +```yaml +range_label_guards: + - column: B + expected_values: + integer_range: + start: 0 + end: 105 + final_value: 105 - 109 + extra_values: + - 110 and over + label: age sequence +``` + +For concatenated sequences, use `parts`. A compact mapping must use exactly one +form: either `integer_range` or `parts`, not both. `null` entries are rejected +because they would otherwise behave like unguarded labels. + +```yaml +range_label_guards: + - column: B + expected_values: + parts: + - integer_range: + start: 0 + end: 105 + final_value: 105 - 109 + extra_values: + - 110 and over + - integer_range: + start: 0 + end: 105 + final_value: 105 - 109 + extra_values: + - 110 and over + label: age sequence +``` + +Default rule: every selected record should have at least endpoint guards before +review. Add full range label guards for dense dimensions such as age, year, +geography, benefit band, income band, or education stage when a selected range +is interpreted as a sum over that dimension. Sparse sentinels are acceptable for +early drafts, but packages should not leave `semantic_candidate` with +coordinate-only selectors for dense summed ranges. + +Guard cells and range label cells become source-cell lineage. This is useful for +auditability, but it can add hundreds of lineage cells for very dense ranges. +Use full label sequences where the interior labels are material to the aggregate +meaning; otherwise prefer endpoint guards plus a small number of sentinels. + +The build suite is the review surface: + +```bash +uv run arch validate-package packages/irs_soi/table_1_1 --year 2023 +uv run arch build-suite soi-table-1-1 --year 2023 --out /tmp/arch-suite --replace +uv run arch build-suite packages/irs_soi/table_1_1 --year 2023 --out /tmp/arch-suite --replace +``` + +For the row-oriented IRS SOI Historic Table 2 package, the 2022 national first +slice can be checked with: + +```bash +uv run arch validate-package soi-historic-table-2 --year 2022 +uv run arch build-suite soi-historic-table-2 \ + --year 2022 \ + --out /tmp/arch-soi-historic-table-2-2022 \ + --replace +``` + +For the CMS Marketplace OEP state-level ZIP package, the 2024 first slice can +be checked with: + +```bash +uv run arch validate-package cms-aca-oep-state-level --year 2024 +uv run arch build-suite cms-aca-oep-state-level \ + --year 2024 \ + --out /tmp/arch-cms-aca-oep-2024 \ + --replace +``` + +For the next US publisher-source packages, the 2024 slices can be checked with: + +```bash +uv run arch validate-package cms-nhe-historical-service-source --year 2024 +uv run arch build-suite cms-nhe-historical-service-source \ + --year 2024 \ + --out /tmp/arch-cms-nhe-historical-service-source-2024 \ + --replace + +uv run arch validate-package census-stc-individual-income-tax --year 2024 +uv run arch build-suite census-stc-individual-income-tax \ + --year 2024 \ + --out /tmp/arch-census-stc-individual-income-tax-2024 \ + --replace + +uv run arch validate-package census-pep-2024-national-age-sex --year 2024 +uv run arch build-suite census-pep-2024-national-age-sex \ + --year 2024 \ + --out /tmp/arch-census-pep-2024-national-age-sex-2024 \ + --replace + +uv run arch validate-package hhs-acf-tanf-financial-2024 --year 2024 +uv run arch build-suite hhs-acf-tanf-financial-2024 \ + --year 2024 \ + --out /tmp/arch-hhs-acf-tanf-financial-2024 \ + --replace + +uv run arch validate-package soi-ira-traditional-contributions-2022 --year 2022 +uv run arch build-suite soi-ira-traditional-contributions-2022 \ + --year 2022 \ + --out /tmp/arch-soi-ira-traditional-contributions-2022 \ + --replace +uv run arch validate-package soi-ira-roth-contributions-2022 --year 2022 +uv run arch build-suite soi-ira-roth-contributions-2022 \ + --year 2022 \ + --out /tmp/arch-soi-ira-roth-contributions-2022 \ + --replace +uv run arch validate-package soi-w2-statistics-2020 --year 2020 +uv run arch build-suite soi-w2-statistics-2020 \ + --year 2020 \ + --out /tmp/arch-soi-w2-statistics-2020 \ + --replace +``` + +For the first UK packages, OBR March 2026 EFO receipts and expenditure can be +checked with: + +```bash +uv run arch validate-package obr-efo-receipts --year 2025 +uv run arch build-suite obr-efo-receipts \ + --year 2025 \ + --out /tmp/arch-obr-efo-receipts-2025 \ + --replace +uv run arch validate-package obr-efo-expenditure --year 2025 +uv run arch build-suite obr-efo-expenditure \ + --year 2025 \ + --out /tmp/arch-obr-efo-expenditure-2025 \ + --replace +uv run arch validate-package slc-student-support-england-2025 --year 2025 +uv run arch build-suite slc-student-support-england-2025 \ + --year 2025 \ + --out /tmp/arch-slc-student-support-england-2025 \ + --replace +uv run arch validate-package dwp-uc-two-child-limit-2025 --year 2026 +uv run arch build-suite dwp-uc-two-child-limit-2025 \ + --year 2026 \ + --out /tmp/arch-dwp-uc-two-child-limit-2026 \ + --replace +uv run arch validate-package dwp-benefit-cap-november-2025 --year 2025 +uv run arch build-suite dwp-benefit-cap-november-2025 \ + --year 2025 \ + --out /tmp/arch-dwp-benefit-cap-2025 \ + --replace +uv run arch validate-package dwp-benefit-statistics-february-2026 --year 2025 +uv run arch build-suite dwp-benefit-statistics-february-2026 \ + --year 2025 \ + --out /tmp/arch-dwp-benefit-statistics-2025 \ + --replace +uv run arch validate-package dwp-pip-daily-living-foi-2025 --year 2025 +uv run arch build-suite dwp-pip-daily-living-foi-2025 \ + --year 2025 \ + --out /tmp/arch-dwp-pip-daily-living-foi-2025 \ + --replace + +uv run arch validate-package dwp-uc-national-payment-dist-2025 --year 2025 +uv run arch build-suite dwp-uc-national-payment-dist-2025 \ + --year 2025 \ + --out /tmp/arch-dwp-uc-national-payment-dist-2025 \ + --replace + +uv run arch validate-package hmrc-salary-sacrifice-relief-2024 --year 2024 +uv run arch build-suite hmrc-salary-sacrifice-relief-2024 \ + --year 2024 \ + --out /tmp/arch-hmrc-salary-sacrifice-relief-2024 \ + --replace + +uv run arch validate-package hmrc-spi-income-bands-2023 --year 2023 +uv run arch build-suite hmrc-spi-income-bands-2023 \ + --year 2023 \ + --out /tmp/arch-hmrc-spi-income-bands-2023 \ + --replace + +uv run arch validate-package ons-savings-interest-income --year 2023 +uv run arch build-suite ons-savings-interest-income \ + --year 2023 \ + --out /tmp/arch-ons-savings-interest-income-2023 \ + --replace + +uv run arch validate-package ons-uk-population-projections-2022 --year 2022 +uv run arch build-suite ons-uk-population-projections-2022 \ + --year 2022 \ + --out /tmp/arch-ons-uk-population-projections-2022 \ + --replace + +uv run arch validate-package nrs-mid-year-population-estimates-2024 --year 2024 +uv run arch build-suite nrs-mid-year-population-estimates-2024 \ + --year 2024 \ + --out /tmp/arch-nrs-mid-year-population-estimates-2024 \ + --replace + +uv run arch validate-package nrs-vital-events-reference-tables-2024 --year 2024 +uv run arch build-suite nrs-vital-events-reference-tables-2024 \ + --year 2024 \ + --out /tmp/arch-nrs-vital-events-reference-tables-2024 \ + --replace + +uv run arch validate-package ons-subnational-dwellings-by-tenure-2024 --year 2024 +uv run arch build-suite ons-subnational-dwellings-by-tenure-2024 \ + --year 2024 \ + --out /tmp/arch-ons-subnational-dwellings-by-tenure-2024 \ + --replace + +uv run arch validate-package ons-national-balance-sheet-land-2025 --year 2024 +uv run arch build-suite ons-national-balance-sheet-land-2025 \ + --year 2024 \ + --out /tmp/arch-ons-national-balance-sheet-land-2025 \ + --replace + +uv run arch validate-package voa-council-tax-bands-2025 --year 2025 +uv run arch build-suite voa-council-tax-bands-2025 \ + --year 2025 \ + --out /tmp/arch-voa-council-tax-bands-2025 \ + --replace + +uv run arch validate-package scotgov-council-tax-bands-2025 --year 2025 +uv run arch build-suite scotgov-council-tax-bands-2025 \ + --year 2025 \ + --out /tmp/arch-scotgov-council-tax-bands-2025 \ + --replace + +uv run arch validate-package scotgov-scottish-budget-social-security-assistance-2026 --year 2026 +uv run arch build-suite scotgov-scottish-budget-social-security-assistance-2026 \ + --year 2026 \ + --out /tmp/arch-scotgov-scottish-budget-social-security-assistance-2026 \ + --replace + +uv run arch validate-package slc-student-loan-borrower-forecasts-england-2025 --year 2025 +uv run arch build-suite slc-student-loan-borrower-forecasts-england-2025 \ + --year 2025 \ + --out /tmp/arch-slc-student-loan-borrower-forecasts-england-2025 \ + --replace + +uv run arch validate-package slc-student-loan-repayments-england-2025 --year 2025 +uv run arch build-suite slc-student-loan-repayments-england-2025 \ + --year 2025 \ + --out /tmp/arch-slc-student-loan-repayments-england-2025 \ + --replace +uv run arch validate-package slc-student-loan-repayments-scotland-2025 --year 2025 +uv run arch build-suite slc-student-loan-repayments-scotland-2025 \ + --year 2025 \ + --out /tmp/arch-slc-student-loan-repayments-scotland-2025 \ + --replace +uv run arch validate-package slc-student-loan-repayments-wales-2025 --year 2025 +uv run arch build-suite slc-student-loan-repayments-wales-2025 \ + --year 2025 \ + --out /tmp/arch-slc-student-loan-repayments-wales-2025 \ + --replace +uv run arch validate-package slc-student-loan-repayments-northern-ireland-2025 --year 2025 +uv run arch build-suite slc-student-loan-repayments-northern-ireland-2025 \ + --year 2025 \ + --out /tmp/arch-slc-student-loan-repayments-northern-ireland-2025 \ + --replace +``` + +Use [`pe-uk-source-checklist.md`](pe-uk-source-checklist.md) as the ordered +queue for UK source-package migration against PolicyEngine UK's current target +sources. + +It produces source rows/cells, source-region specs, selector reports, +aggregate facts, a relational SQLite DB artifact, and per-stage JSON reports under +`/tmp/arch-suite/reports`. It also writes `datapackage.json` and +`ro-crate-metadata.json` sidecars so the generated artifacts can be described +with common data-package conventions while Arch keeps its native schema strict. +For downstream integration, agents should use the merged year bundle after +individual source packages pass: + +```bash +uv run arch build-bundle --year 2023 --out /tmp/arch-us-2023 --replace +``` + +The bundle emits a root `consumer_facts.jsonl`, `source_packages.json`, +`coverage.json`, and `reports/build_bundle.json`, while preserving each +source-package suite under `sources//`. + +The first agent-facing gate is now +`/tmp/arch-suite/reports/agent_acceptance.json`; it summarizes whether raw +artifacts have R2 pointers, the full source document was parsed, facts have +provenance and source-cell/source-row lineage, expected constraints are +first-class, row-backed facts are consistent with their parsed source rows, +concept alignments have evidence, and all stage reports are valid. It also +reports whether canonical concepts were checked +against Axiom metadata. If Axiom checking is omitted, otherwise valid packages +warn with `concept_alignment_validation_skipped`; stricter agent runs can make +that warning fatal: + +```bash +uv run arch build-suite packages/irs_soi/table_1_1 \ + --year 2023 \ + --out /tmp/arch-suite \ + --replace \ + --axiom-cli axiom \ + --axiom-root ../rules-us \ + --require-axiom-validation +``` + +The SQLite `arch.db` is the source of hosted mirrors. To prepare tables for +Supabase/Postgres bulk loading, export the DB artifact rather than inserting +cells through the Supabase client: + +```bash +uv run arch export-db-tables --db /tmp/arch-suite/arch.db --out /tmp/arch-mirror --replace +``` + +Accepted build-suite outputs can be published to the private `arch-derived` R2 +bucket after validation: + +```bash +uv run arch publish-derived \ + --dir /tmp/arch-suite \ + --source-id irs_soi \ + --package-id soi-table-1-1 \ + --year 2023 \ + --build-artifacts-out /tmp/arch-build-artifacts.jsonl +``` + +The SQL schema is checked in at +`supabase/migrations/20260504_arch_bronze.sql`. Spreadsheet publications are +stored as immutable artifact metadata and one parsed-cell row per workbook cell. +Agents should not try to normalize irregular government worksheets into tidy +sheet tables before selector specs interpret them. + +After the DB export and derived publish, agents can validate and load the +hosted mirror: + +```bash +uv run arch load-supabase-mirror \ + --dir /tmp/arch-mirror \ + --build-artifacts /tmp/arch-build-artifacts.jsonl \ + --dry-run +uv run arch load-supabase-mirror \ + --dir /tmp/arch-mirror \ + --build-artifacts /tmp/arch-build-artifacts.jsonl +``` + +The live load requires `POLICYENGINE_SUPABASE_URL` and +`POLICYENGINE_SUPABASE_SERVICE_KEY`, the Arch mirror migration applied, and the +`arch` schema exposed by the Supabase Data API. + +## Declarative Authoring Contract + +Each `source_package.yaml` should declare one source artifact and one or more +record sets. The artifact block points at a checked manifest with publisher +filenames, source URLs, and checksums by year. PE migration URLs from +aggregators can remain in the agent queue as clues, but they should not back +canonical source cells or target facts. Each record set declares sheet name, period, +geography, entity, domain, groupby dimension, row definitions, measure columns, +units, aggregation methods, filters, and first-class constraints. The harness +compiles those rows and measures into atomic source records, validates selectors +against parsed cells, then emits target facts and the relational Arch DB. + +Agents may add new package directories and YAML specs. They should not modify +`arch.core`, `arch.database`, or `arch.suite` unless the package cannot be +expressed in the current contract and the failure is documented in the build +report or PR notes. + +Agents can scaffold a new package before filling the table-specific fields: + +```bash +uv run arch scaffold-package --source-id irs_soi --package-id soi-table-1-2 \ + --out packages/irs_soi/table_1_2 \ + --source-table "Publication 1304 Table 1.2" \ + --resource-directory data/irs_soi/table_1_2 +``` + +`validate-package` is the first gate. It checks required YAML fields, artifact +manifest and year availability, duplicate row and measure identifiers, malformed +Excel columns, malformed guard specs, missing row constraints, and missing +evidence for exact concept alignments. `build-suite` remains the full gate +because it parses cells, resolves selectors, builds facts, and emits the SQLite +DB artifact. +For delimited full-row sources, selected-row criteria must match exactly one +parsed source row, and row-backed filters and constraints must be evidenced by +columns in that parsed row. + +## Status Levels + +Agents should move source packages through explicit statuses rather than claim +production readiness immediately: + +| Status | Meaning | +|--------|---------| +| `inventory` | Source artifact is identified with publisher, URL/path, vintage, checksum, local path, optional R2 key, and notes. | +| `parsed` | The artifact is preserved as parsed source rows or source cells with provenance. | +| `selected` | `validate-package` passes, source regions cover parsed cells, and cell selectors resolve with endpoint guards. | +| `semantic_candidate` | Source-record specs interpret selected cells as aggregate facts. | +| `validated` | Facts, constraints, lineage, provenance, dense-range guards, and concept checks pass. | +| `production` | A human reviewed the source family and accepted the semantics. | + +## Required Gates + +Before a source package can leave `semantic_candidate`, the build summary should +show zero validation errors for source cells, source records, targets, DB build, +and concept alignments. It should also report complete lineage coverage unless +the package has an explicit documented exception. + +Exact source-to-canonical concept alignments require evidence notes or an +evidence URL. When the canonical concept is an Axiom ID, the package should run +the suite with `--axiom-cli` and `--axiom-root` once the corresponding Axiom +concept exists. For agent-populated packages that are ready for review, run the +same command with `--require-axiom-validation` so unresolved or unchecked +canonical concepts fail `agent_acceptance.json`. + +## Review Checklist + +Reviewers should inspect `reports/build_summary.json` first, then only drill +into the stage report that failed. A valid source package should make it easy to +answer these questions: + +- Which source artifact was parsed, and what exact vintage/checksum backed it? +- How many rows/cells were preserved, and were any source-row or source-cell + keys duplicated? +- Which rectangular source regions were selected, and how many cells did they cover? +- Did every source-record selector resolve to the expected cell, endpoint guard, + and dense range label guard where applicable? +- Did every aggregate fact have provenance, dimensions, unit, aggregation, and + source-cell or source-row lineage? +- Are constraints first-class, queryable, and simulator-neutral? +- Are exact concept alignments evidence-bearing and externally validated where + possible? diff --git a/docs/architecture.md b/docs/architecture.md index dcbdda7..2cb1b6b 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -8,16 +8,19 @@ structured, queryable facts. Microplex consumes Arch facts to produce final calibrated simulation inputs. This document describes the full data pipeline from source publications to -Microplex target sets and calibrated output. +Microplex target sets and calibrated output. Arch is global at the schema, +validation, and build-harness layer. Jurisdiction source packages such as +`arch-us` and `arch-uk` emit records into that shared contract. ## Repository Boundaries | Layer | Owns | Does not own | |-------|------|--------------| -| Arch | Source artifacts, provenance, source facts, target inputs, microdata ingestion | Source reconciliation, aging, imputation, active target selection | +| Arch | Source artifacts, provenance, aggregate facts, constraints, microdata ingestion | Source reconciliation, aging, imputation, active target selection | | Microplex Targets | Source selection, reconciliation, aging, imputation, active target sets | Source artifact storage and provenance | | Microplex | Entity model, weights, calibration interfaces, calibrated output | Source ETL and source provenance | -| Jurisdiction packages | Model-specific adapters, variable mappings, target recipes | Source facts | +| Jurisdiction source packages | Source-specific parsers and specs that emit Arch records | Forked fact or constraint schemas | +| Jurisdiction simulation packages | Model-specific adapters, variable mappings, target recipes | Source facts | | PolicyEngine | Policy-facing workflows and analysis tools | Source ETL or calibrated microdata generation | ## Storage Layers @@ -60,6 +63,19 @@ from arch.normalization import convert_units The `db` package contains the current SQLModel persistence and loader implementation behind the public `arch` namespace. +Jurisdiction source packages should use short import namespaces and published +distribution names with a PolicyEngine prefix: + +```text +repo: PolicyEngine/arch-us +distribution: policyengine-arch-us +import: arch_us +``` + +They should depend on `policyengine-arch-data` and emit shared `arch` objects +rather than redefining source rows/cells, source-row values, aggregate facts, +aggregate constraints, stable keys, or DB tables. + ## Data Flow ```text @@ -83,8 +99,8 @@ arch.normalization microdata.* arithmetic) | | v | -targets.* | -(target input | +arch.aggregate_facts | +(published aggregate | facts) | | | +-----------+------------+ @@ -99,16 +115,32 @@ targets.* | microdata) ``` -## Source Facts And Target Inputs +## Source Facts And Microplex Targets -Source ETL should separate source facts from Microplex target composition: +Source ETL should separate Arch aggregate facts from Microplex target composition: 1. Load or parse source publications into source lineage and published cells. 2. Materialize source-backed facts in Arch. 3. Apply representation-only normalization such as unit scale conversion or source-published total/share arithmetic. -4. Materialize the fact as a target input with source and derivation metadata. -5. Let Microplex Targets select, reconcile, age, and activate target sets. +4. Keep the fact queryable with source and derivation metadata. +5. Let Microplex select, reconcile, age, and activate calibration target sets. + +Arch source facts can align source-published concepts to canonical vocabulary +terms. When a legal concept is available from Axiom, Arch should use the Axiom +term as the canonical concept key and keep the publisher's column/series concept +as `source_concept`. For example, SOI adjusted gross income is represented as: + +```text +canonical concept: us:statutes/26/62#adjusted_gross_income +source concept: irs_soi.adjusted_gross_income +relation: exact +authority: arch-us +``` + +This alignment is evidence-bearing metadata, not an Arch dependency on Axiom +runtime behavior. Nonlegal empirical inputs can use shared Arch/common concepts +and later align to Axiom or Microplex where appropriate. The `arch.normalization` package owns low-assumption representation helpers: @@ -137,6 +169,22 @@ Projection facts from official sources such as CBO, OBR, and ONS can be loaded as source facts directly. PolicyEngine-owned inflation, aging, projection, or cross-source reconciliation assumptions belong in Microplex Targets, not Arch. +### Downstream Adapter Aliases + +Arch variables should describe source-backed facts, not downstream simulator +variables. If a Microplex or PolicyEngine target cell names the same empirical +quantity differently, the alias belongs in the downstream adapter. + +For example, IRS SOI publishes nonnegative income tax liability aggregates. +Arch should preserve that as an SOI liability fact, while a Microplex adapter +may use it to satisfy a model target named `income_tax_positive`. Arch should +not create a duplicate source fact solely to match the model variable name. + +This rule also applies in reverse: if a Microplex target cell is really a +survey input, imputed model feature, or source-selection decision rather than a +publisher aggregate, the cell should stay out of Arch until a primary source +fact and its provenance are identified. + ## Calibration Pipeline ### 1. Target Inputs (from `targets.*` schema) @@ -155,7 +203,7 @@ VALUES (1, 'eitc_recipients', 2500000, 2023); ### 2. Variable Mapping -Arch target input variables are source-linked variable IDs. They should not +Arch fact concepts are source-linked or canonical vocabulary IDs. They should not depend on a simulator implementation. Microplex jurisdiction packages map those target IDs to model variables and entities. diff --git a/docs/repository-model.md b/docs/repository-model.md new file mode 100644 index 0000000..cc943b8 --- /dev/null +++ b/docs/repository-model.md @@ -0,0 +1,61 @@ +# Arch Repository Model + +Arch is global at the schema layer. Jurisdiction packages are modular source +packages that build source-backed Arch records for one jurisdiction or source +family. + +## Names + +```text +GitHub repositories: + PolicyEngine/arch-data + PolicyEngine/arch-us + PolicyEngine/arch-uk + +Python distributions: + policyengine-arch-data + policyengine-arch-us + policyengine-arch-uk + +Python imports: + arch + arch_us + arch_uk +``` + +The `policyengine-` prefix belongs in published distribution names, where +generic names collide. Repository names and import namespaces should stay short. + +## Ownership + +`arch` owns the stable contract: + +- source artifact metadata +- parsed source cells +- source record specs +- aggregate facts +- aggregate constraints +- source-to-canonical concept alignments +- stable keys +- validation +- relational DB schema +- fixture/build harness + +Jurisdiction packages own source implementations: + +- source manifests +- artifact retrieval specs +- source-specific parsers +- selector specs +- source-record specs +- fixture builds for that jurisdiction + +They must emit the shared Arch schema. They should not define a different fact, +constraint, lineage, validation, or DB model. + +## Current State + +`arch.jurisdictions.us` is an in-repo prototype so the core contract can move +quickly while SOI fixtures exercise the schema. Once the contract stabilizes, +the US loaders should move to `arch-us`, with `arch` retaining only a small +test fixture and the shared harness. diff --git a/docs/schemas/consumer_fact.v1.schema.json b/docs/schemas/consumer_fact.v1.schema.json new file mode 100644 index 0000000..3169fff --- /dev/null +++ b/docs/schemas/consumer_fact.v1.schema.json @@ -0,0 +1,327 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://policyengine.org/arch/schemas/consumer_fact.v1.schema.json", + "title": "Arch consumer fact contract row", + "type": "object", + "additionalProperties": false, + "required": [ + "schema_version", + "aggregate_fact_key", + "semantic_fact_key", + "legacy_fact_key", + "source_release_key", + "source_series_key", + "observed_measure_key", + "dimension_set_key", + "universe_constraint_set_key", + "value", + "value_type", + "period", + "geography", + "entity", + "aggregation", + "observed_measure", + "dimensions", + "universe_constraints", + "source", + "lineage" + ], + "properties": { + "schema_version": { + "const": "arch.consumer_fact.v1" + }, + "aggregate_fact_key": { + "type": "string", + "pattern": "^arch\\.aggregate_fact\\.v2:[0-9a-f]{24}$" + }, + "semantic_fact_key": { + "type": "string", + "pattern": "^arch\\.semantic_fact\\.v2:[0-9a-f]{24}$" + }, + "legacy_fact_key": { + "type": "string", + "pattern": "^arch\\.fact\\.v1:[0-9a-f]{24}$" + }, + "source_release_key": { + "type": "string", + "pattern": "^arch\\.source_release\\.v2:[0-9a-f]{24}$" + }, + "source_series_key": { + "type": "string", + "pattern": "^arch\\.source_series\\.v2:[0-9a-f]{24}$" + }, + "observed_measure_key": { + "type": "string", + "pattern": "^arch\\.observed_measure\\.v2:[0-9a-f]{24}$" + }, + "dimension_set_key": { + "type": "string", + "pattern": "^arch\\.dimension_set\\.v2:[0-9a-f]{24}$" + }, + "universe_constraint_set_key": { + "type": "string", + "pattern": "^arch\\.universe_constraint_set\\.v2:[0-9a-f]{24}$" + }, + "value": { + "type": ["integer", "number", "string", "boolean"] + }, + "value_type": { + "enum": ["integer", "number", "decimal", "string", "boolean"] + }, + "period": { + "type": "object", + "additionalProperties": false, + "required": ["type", "value"], + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": ["integer", "string"] + } + } + }, + "geography": { + "type": "object", + "additionalProperties": false, + "required": ["level", "id"], + "properties": { + "level": { + "type": "string" + }, + "id": { + "type": "string" + }, + "vintage": { + "type": "string" + } + } + }, + "entity": { + "type": "object", + "additionalProperties": false, + "required": ["name"], + "properties": { + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, + "aggregation": { + "type": "object", + "additionalProperties": false, + "required": ["method"], + "properties": { + "method": { + "type": "string" + }, + "count_entity": { + "type": "string" + }, + "denominator": { + "type": "string" + } + } + }, + "observed_measure": { + "type": "object", + "additionalProperties": false, + "required": [ + "source_name", + "source_table", + "source_measure_id", + "source_concept", + "unit" + ], + "properties": { + "source_name": { + "type": "string" + }, + "source_table": { + "type": "string" + }, + "source_measure_id": { + "type": "string" + }, + "source_concept": { + "type": "string" + }, + "unit": { + "type": "string" + } + } + }, + "dimensions": { + "type": "object", + "additionalProperties": { + "type": ["integer", "number", "string", "boolean"] + } + }, + "universe_constraints": { + "type": "object", + "additionalProperties": false, + "required": ["domain"], + "properties": { + "domain": { + "type": "string" + }, + "constraints": { + "type": "array", + "items": { + "$ref": "#/$defs/constraint" + } + } + } + }, + "source": { + "type": "object", + "additionalProperties": true, + "required": [ + "source_name", + "source_table", + "source_file", + "vintage", + "extracted_at", + "extraction_method", + "source_sha256", + "source_size_bytes", + "raw_r2_uri" + ], + "properties": { + "source_name": { + "type": "string" + }, + "source_table": { + "type": "string" + }, + "source_file": { + "type": "string" + }, + "url": { + "type": "string" + }, + "vintage": { + "type": "string" + }, + "extracted_at": { + "type": "string" + }, + "extraction_method": { + "type": "string" + }, + "method_notes": { + "type": "string" + }, + "source_sha256": { + "type": "string" + }, + "source_size_bytes": { + "type": "integer" + }, + "raw_r2_bucket": { + "type": "string" + }, + "raw_r2_key": { + "type": "string" + }, + "raw_r2_uri": { + "type": "string" + } + } + }, + "lineage": { + "type": "object", + "additionalProperties": false, + "required": ["source_record_id", "source_cell_keys"], + "properties": { + "source_record_id": { + "type": "string" + }, + "source_cell_keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "source_row_keys": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "layout": { + "type": "object", + "additionalProperties": true + }, + "label": { + "type": "string" + }, + "concept_alignment": { + "type": "object", + "additionalProperties": false, + "required": [ + "concept_alignment_key", + "source_concept", + "canonical_concept", + "relation", + "authority" + ], + "properties": { + "concept_alignment_key": { + "type": "string", + "pattern": "^arch\\.concept_alignment\\.v2:[0-9a-f]{24}$" + }, + "source_concept": { + "type": "string" + }, + "canonical_concept": { + "type": "string" + }, + "relation": { + "type": "string" + }, + "authority": { + "type": "string" + }, + "evidence_url": { + "type": "string" + }, + "evidence_notes": { + "type": "string" + }, + "legal_vintage": { + "type": "string" + } + } + } + }, + "$defs": { + "constraint": { + "type": "object", + "additionalProperties": false, + "required": ["variable", "operator", "value", "role"], + "properties": { + "variable": { + "type": "string" + }, + "operator": { + "type": "string" + }, + "value": { + "type": ["integer", "number", "string", "boolean"] + }, + "unit": { + "type": "string" + }, + "role": { + "type": "string" + } + } + } + } +} diff --git a/docs/storage-architecture.md b/docs/storage-architecture.md new file mode 100644 index 0000000..84b4519 --- /dev/null +++ b/docs/storage-architecture.md @@ -0,0 +1,154 @@ +# Arch Storage Architecture + +This note is the canonical storage plan for Arch while the source-package +harness stabilizes. The detailed agent workflow remains in +`docs/agent-source-package-harness.md`; this document only defines where each +class of Arch data belongs. + +## Decision Summary + +Arch uses three storage layers with different jobs. + +`arch-raw` is the immutable source-byte archive. It stores exact publisher +artifacts as fetched: workbooks, CSVs, PDFs, ZIPs, HTML snapshots, public raw +microdata files when allowed, and similar source files. Raw objects are +content-addressed by checksum and should never be overwritten in place. + +`arch-derived` is the reproducible artifact archive. It stores build outputs +that Arch can regenerate from raw bytes, package specs, parser code, and build +configuration. Examples include parsed-cell or parsed-row Parquet/JSONL files, +source record outputs, `arch.db`, mirror JSONL exports, QA reports, Data +Package metadata, and RO-Crate metadata. + +Supabase/Postgres is the queryable relational registry for accepted Arch +builds. It stores rows that applications, agents, and downstream systems need +to search and join: source artifacts, source rows/cells, source records, +aggregate facts, aggregate constraints, concept alignments, lineage edges, build +metadata, validation status, and object-location pointers. Supabase is not the +source of raw bytes and should not be hand-edited as the ingestion authority. + +The deterministic local build remains the authority for source-backed facts. +Hosted tables mirror accepted build outputs and provide a shared query surface. + +## Ownership Matrix + +| Data class | Git/local package | `arch-raw` R2 | `arch-derived` R2 | SQLite `arch.db` | Supabase/Postgres | +|------------|-------------------|---------------|-------------------|------------------|-------------------| +| Source package specs | Authoritative YAML and parser code | No | Optional packaged snapshot | No | Metadata only | +| Raw publisher files | Tiny fixtures only | Authoritative bytes | No | Metadata only | Metadata plus R2 pointer | +| Source manifests | Authoritative checked metadata | No | Optional snapshot | Metadata loaded into tables | Queryable artifact registry | +| Parsed source rows/cells | Generated local output | No | Snapshot artifact | Queryable table | Queryable mirror | +| Source records/facts | Generated local output | No | Snapshot artifact | Queryable table | Queryable mirror | +| Aggregate constraints | Generated local output | No | Snapshot artifact | Queryable table | Queryable mirror | +| Build reports and QA | Generated local output | No | Snapshot artifact | Build summary rows | Queryable validation status | +| Mirror JSONL exports | Generated local output | No | Snapshot artifact | Export source | Bulk-load input | +| Microplex active targets | No | No | No | No | Future adapter output outside Arch core | + +## Object Key Conventions + +Raw source artifacts use the implemented content-addressed key shape: + +```text +raw/{source_id}/{package_id}/{year}/{sha256}/{filename} +``` + +For example: + +```text +raw/irs_soi/soi-table-1-1/2023/842da11...aca17/23in11si.xls +``` + +Derived build artifacts should use build-scoped keys so different builds can +coexist and be audited: + +```text +derived/{source_id}/{package_id}/{year}/{build_id}/{artifact_name} +``` + +Examples: + +```text +derived/irs_soi/soi-table-1-1/2023/{build_id}/source_cells.jsonl +derived/bea/bea-nipa-pension-contributions/2022/{build_id}/source_rows.jsonl +derived/irs_soi/soi-table-1-1/2023/{build_id}/arch.db +derived/irs_soi/soi-table-1-1/2023/{build_id}/reports/build_summary.json +derived/irs_soi/soi-table-1-1/2023/{build_id}/mirror/aggregate_facts.jsonl +``` + +Derived artifacts are reproducible and may be replaced by a new build, but a +specific `{build_id}` path should be immutable once published. + +## Relational Registry Contract + +The hosted `arch` schema should be the lookup surface for Arch, not the place +where agents invent source facts. Rows should be bulk-loaded from deterministic +build outputs. + +The registry should expose: + +- source artifact identity: source name, table/file, URL, vintage, extraction + date, extraction method, checksum, size, and raw R2 bucket/key/URI; +- source rows/cells and source records, including exact source-row and + source-cell lineage; +- source columns and source-row values, so row-oriented artifacts are queryable + by raw or normalized column names without JSON scans; +- aggregate facts and aggregate constraints with stable keys, dimensions, + filters, units, aggregation semantics, labels, and source provenance; +- concept alignments, including source concept, canonical concept, relation, + authority, legal vintage, and evidence; +- build metadata, validation status, and derived artifact R2 bucket/key/URI. + +The current Supabase migration mirrors the core relational tables and includes +R2 location fields for raw source artifacts and derived build artifacts, so the +registry can serve as the shared index over both R2 buckets. + +## Build And Publish Flow + +The intended flow is: + +1. Register raw source artifacts with `uv run arch fetch-artifact`, which + writes local bytes, records checksums in `manifest.yaml`, and can upload the + exact bytes to `arch-raw`. Existing manifest-declared artifacts can be + checksum-validated, uploaded, and linked with `uv run arch publish-raw`. + Production package specs may omit raw bytes from Git as long as the manifest + keeps `source_url` and SHA-256 metadata; builds can fill + `ARCH_SOURCE_ARTIFACT_CACHE_DIR` by setting `ARCH_SOURCE_ARTIFACT_FETCH=1`. +2. Validate and build a source package with `uv run arch validate-package` and + `uv run arch build-suite`. +3. Produce local deterministic outputs: parsed rows/cells, source records, + aggregate facts, `arch.db`, QA reports, Data Package metadata, and RO-Crate + metadata. +4. Export relational mirror files with `uv run arch export-db-tables`. +5. Publish derived build outputs to `arch-derived`: + + ```bash + uv run arch publish-derived \ + --dir /tmp/arch-suite \ + --source-id irs_soi \ + --package-id soi-table-1-1 \ + --year 2023 \ + --build-artifacts-out /tmp/arch-build-artifacts.jsonl + ``` + +6. Bulk-load or upsert accepted relational rows into Supabase/Postgres: + + ```bash + uv run arch load-supabase-mirror \ + --dir /tmp/arch-mirror \ + --build-artifacts /tmp/arch-build-artifacts.jsonl + ``` + +The Supabase project must have the checked migration applied and the `arch` +schema exposed in PostgREST/Data API settings before the REST loader can write +to it. Use `--dry-run` to verify local JSONL files without writing. + +## Non-Goals + +Supabase should not store large raw binary artifacts. It should point to R2. + +R2 should not be the schema authority. It stores bytes and reproducible build +files, while Arch code and checked specs define semantics. + +Arch should not own Microplex source selection, aging, reconciliation, +activation profiles, or simulator-specific target mappings. Those belong in +Microplex or thin downstream adapters. diff --git a/docs/target-construction-harness-plan.md b/docs/target-construction-harness-plan.md new file mode 100644 index 0000000..27d6f2f --- /dev/null +++ b/docs/target-construction-harness-plan.md @@ -0,0 +1,837 @@ +# Fact Construction Harness Plan + +## Goal + +Build a harness that verifies source fact construction end to end: + +1. Arch preserves the full source artifact behind each PolicyEngine calibration source. +2. Arch preserves parsed source cells, including values PE omits. +3. Arch emits simulator-neutral source records for published statistical values. +4. Microplex can later compose active target values from Arch facts under declared modeling choices. +5. Each active target is bound downstream to the correct model measure: variable, count basis, filters, aggregation, units, weights, entity semantics, geography, period, and universe. + +This is separate from parser tests. Parser tests answer whether a spreadsheet was read correctly. The harness answers whether the parsed value became a source-backed fact with the right dimensions, constraints, provenance, and lineage. + +## Boundary + +Load-bearing rule: + +> Arch can change representation. Microplex can change meaning. + +Arch owns source preservation and simulator-neutral source records. + +Arch may: + +- Store immutable artifacts, checksums, retrieval metadata, parsed sheets/tables/rows/cells. +- Preserve raw value, raw units, source table, source row, source column, formula/display metadata, notes, and extraction method. +- Re-express published values in canonical units and IDs when the conversion is mechanical and reversible. +- Emit aggregate facts: source-published values that Microplex may later use. +- Run source-side integrity checks, such as declared component-to-total checks. + +Arch must not: + +- Store PolicyEngine, Microplex, or Axiom model variable IDs in source records. +- Age values to a different model year. +- Reconcile inconsistent national/state/district values. +- Select active targets. +- Choose a deflator, growth factor, or source preference. +- Apply simulator-specific calibration weighting. + +Microplex owns active targets and model measures. + +Microplex may: + +- Select records from Arch. +- Age source records to the model year. +- Reconcile across source granularities. +- Decide which calibration profile is active. +- Compile model measures against PolicyEngine or future Axiom variables. +- Bind source-derived target values to model-side measures through explicit target contracts. + +## ChatGPT Pro Review + +I asked ChatGPT Pro to critique the plan as a senior data/simulation architecture reviewer. The useful changes incorporated here are: + +- Remove model variable identity from Arch records. Arch records should use simulator-neutral source concepts, statistics, universes, periods, geographies, and dimensions. +- Split cell selection from semantic interpretation. A selector failure and a wrong AGI-band/universe mapping should fail different tests. +- Add a first-class target contract layer. Correct source value plus correct model expression is not enough if their units, universes, entities, periods, or geographies do not match. +- Treat PE parity as a pinned differential harness, not the truth oracle. +- Preserve every parsed source cell, but do not pretend every spreadsheet cell is a semantic source record. + +## Core Artifacts + +### Source Artifact Manifest + +The source manifest is the top-level checklist of documents/files PE uses to construct national and local targets. + +Current files: + +- `docs/pe-us-source-manifest.csv` +- `docs/pe-us-source-manifest.md` + +Required fields: + +- `origin_project` +- `pipeline` +- `jurisdiction` +- `source_id` +- `artifact_kind` +- `artifact` +- `filename` +- `format` +- `arch_source_status` +- `source_cell_status` +- `target_construction_status` +- `value_capture_policy` +- `notes` + +Acceptance criteria: + +- Every PE source document/file used by national or local calibration appears in the manifest. +- Every row has an explicit policy to preserve the full source artifact, including omitted PE rows. +- `arch_source_status` is row-parse inventory status only: `not_loaded`, `inventory_error`, `identity_mismatch`, `fetch_error`, `fetched_unparsed`, `parsed_no_rows`, or `row_parsed`. +- `row_parsed` does not imply source-cell completeness, selector readiness, or target-construction readiness. Those are represented by separate `source_cell_status` and `target_construction_status` fields. +- A row is row-parsed only when the expected artifact instance matches the stored artifact identity. URL-backed artifacts must match the expected URL; local artifacts must match the expected local path. Hash/vintage checks should be added as expected checksums and publisher vintages become available. +- The manifest is a migration checklist, not the permanent ontology. The long-term ontology should distinguish source series, artifact instances, and PE usage crosswalks. + +Long-term split: + +```text +source_series + IRS SOI Publication 1304 Table 1.4 workbooks + +artifact_instance + TY2023 workbook, exact checksum, retrieval timestamp + +pe_usage_crosswalk + PE used this source file/derived CSV/column for this target +``` + +### Parsed Source Cells + +Arch should preserve every parsed source cell as a generic cell record. + +```text +source_cell = generic parsed cell, including headers, notes, omitted cells +source_record = semantic statistical record selected from cells +``` + +This gives full preservation without claiming every spreadsheet cell is calibration-relevant. + +Parsed cells should distinguish: + +- empty cell +- zero +- suppressed value +- not applicable +- withheld or confidential +- formula cell +- displayed rounded value +- stored Excel numeric value +- footnoted value + +### Cell Selector Specs + +A selector spec maps a source artifact/table region to one or more parsed cells. It should use both coordinates and semantic guards when possible. + +Example: + +```yaml +selector_spec_id: irs_soi.ty2023.table_1_4.taxable_interest.amount.all.selector +artifact_slug: policyengine-us-data/national-soi-workbooks/irs_soi_ty2023_table_1_4.xls +table: Table 1.4 +sheet: Table 1.4 +cell: + expected_address: T12 +row_selector: + header_path: + - All returns + - Total +column_selector: + header_path: + - Taxable interest + - Amount +semantic_guards: + expected_left_header: All returns + expected_column_label_contains: Taxable interest +``` + +Rules: + +- Coordinate-only selectors are allowed for first drafts, but semantic guards should be added before declaring the source family production-ready. +- A workbook layout shift should fail a selector test. +- A same-cell semantic change should fail a guard test. + +### Source Record Specs + +A source record spec interprets selected source cells as simulator-neutral statistical records. + +Example: + +```yaml +source_record_id: irs_soi.ty2023.table_1_4.taxable_interest.amount.all +selector_spec_id: irs_soi.ty2023.table_1_4.taxable_interest.amount.all.selector +source: + raw_unit: thousand_usd +canonical: + concept_id: irs_soi.taxable_interest_income + statistic_id: aggregate_amount + universe_id: irs_soi.all_individual_income_tax_returns + value_unit: usd + period_type: tax_year + period: 2023 + geography_id: 0100000US + geography_vintage: census_current + dimensions: + filing_status: all + agi_lower: -inf + agi_upper: inf + taxable_only: true +lineage: + preserve_raw_value: true + preserve_source_cell: true +``` + +Rules: + +- `scale` should not be a calibration-time target option. Mechanical scale conversion belongs to source-record construction. +- Raw values and canonical values should both be stored or reconstructible. +- Representation conversions are allowed only when they are mechanical and documented, e.g. thousands of dollars to dollars. +- Canonical values should use decimal/fixed precision, not binary float. +- `all`, `unknown`, and missing must be distinct. `all` is an explicit dimension value; `unknown` is explicit and rare; missing dimensions are invalid unless the concept schema permits them. +- Arch source records should not contain simulator variable IDs. They may contain source concepts, source-domain variables, statistics, universes, and dimensions. + +### Target Value Recipes + +A target value recipe is Microplex-owned. It resolves Arch source records and transforms them into an active target value. + +Specs should normally use source queries, not hard-coded source record IDs. Compiled target values should store the resolved source record IDs. + +Example: + +```yaml +recipe_id: us_2024.irs_soi.taxable_interest.amount.all.value +source_query: + publisher: irs_soi + table: individual_income_tax_returns_table_1_4 + concept_id: irs_soi.taxable_interest_income + statistic_id: aggregate_amount + universe_id: irs_soi.all_individual_income_tax_returns + period: 2023 + geography_id: 0100000US + dimensions: + filing_status: all + agi_lower: -inf + agi_upper: inf + taxable_only: true +source_selection_policy: unique_required +transform_dag: + - method: age_dollar_value + base_period: 2023 + target_period: 2024 + growth_factor_source: soi_total_agi_growth +output_unit: usd +``` + +Rules: + +- Aging and reconciliation methods must be named and versioned. +- Identity/no-op recipes should be implemented first so the value side can be tested before aging. +- The compiled value records the resolved source IDs, transform fingerprint, Arch snapshot, and code/spec hashes. + +### Model Measure Specs + +A model measure spec maps a target contract to a quantity computed on a microdataset. + +Example: + +```yaml +measure_id: policyengine_us.taxable_interest_income.taxable_filers +model: policyengine_us +entity: tax_unit +aggregate: sum +variable: taxable_interest_income +weight_variable: household_weight +weight_entity: household +output_unit: usd +filters: + - variable: tax_unit_is_filer + operator: "==" + value: true + - variable: income_tax_before_credits + operator: ">" + value: 0 +``` + +For count targets: + +```yaml +measure_id: policyengine_us.tax_unit_count.filers_by_agi +model: policyengine_us +entity: tax_unit +aggregate: count +count_entity: tax_unit +weight_variable: household_weight +weight_entity: household +filters: + - variable: tax_unit_is_filer + operator: "==" + value: true + - variable: adjusted_gross_income + operator: ">=" + value: 50000 + - variable: adjusted_gross_income + operator: "<" + value: 75000 +``` + +Rules: + +- Entity can be inferred from the model variable registry as a linting convenience, but the compiled production spec should store it explicitly. +- Counts should be first-class specs with `aggregate: count` and `count_entity`. Constant-one backend variables are acceptable compiler implementation details, not the semantic spec. +- The harness should reject ambiguous count specs. +- Aggregation should be explicit: `sum`, `count`, `mean`, or `ratio`. +- Weight variable, weight entity, and entity joins must be explicit and validated. Microplex-US should default to household weights for final dataset validation. + +### Target Contracts + +A target contract binds a source-derived target value to a model measure and states the compatibility expectations. + +Example: + +```yaml +target_contract_id: us_2024.irs_soi.taxable_interest.amount.all.contract +recipe_id: us_2024.irs_soi.taxable_interest.amount.all.value +measure_id: policyengine_us.taxable_interest_income.taxable_filers +source_period: + period_type: tax_year + period: 2023 + period_basis: source_tax_year +target_value_period: + period_type: tax_year + period: 2024 + period_basis: target_tax_year +model_evaluation_period: + period_type: tax_year + period: 2024 + period_basis: model_tax_year +expected_statistic_id: aggregate_amount +expected_value_definition: total_nominal_dollars +expected_unit: usd +currency_basis: + currency_year: nominal_current + scale: units + annualization: annual +expected_entity: tax_unit +expected_universe_id: tax_units_with_taxable_interest_income_and_positive_income_tax +expected_weighting: household_weighted_estimate +denominator: none +geography_id: 0100000US +geography_basis: + code_system: geoid + boundary_vintage: census_current + assignment_basis: filing_residence +dimensions: + filing_status: all + agi_lower: -inf + agi_upper: inf +tolerance: + absolute: 1 + relative: 0.000001 +priority: primary +``` + +Rules: + +- A correctly parsed source value and a correctly compiled model measure can still be wrong together if their universes differ. +- Contracts should fail closed on statistic, value definition, unit, currency basis, denominator, weighting, entity, universe, geography basis, source period, transformed target-value period, model evaluation period, and dimension mismatch. +- Aged targets must keep source period and target-value period separate so valid aging does not look like an accidental period mismatch. +- Shares, rates, means, ratios, medians, percentiles, and bin counts need explicit denominator or statistic semantics. They must not be inferred from labels alone. +- Administrative totals, weighted survey estimates, and unweighted microdata counts are different value definitions even when their period, entity, geography, and unit match. +- Duplicate active targets in the same profile should be rejected unless marked as alternatives or competing definitions. + +### Active Target Specs + +An active target spec places a target contract into a Microplex calibration profile. + +Example: + +```yaml +active_target_id: us_2024.irs_soi.taxable_interest.amount.all +target_contract_id: us_2024.irs_soi.taxable_interest.amount.all.contract +calibration_profile: microplex_us_2024_national_v1 +status: active +replacement_for: + project: policyengine-us-data + target_id: soi.taxable_interest_income.amount.all +replacement_mode: improved_source_lineage +``` + +Rules: + +- Arch should not own active target specs. +- Excluded source records and excluded candidate targets need explicit exclusion reasons. +- Active target values should be reproducible from Arch snapshot + Microplex specs + transform DAG. + +## Harness Layers + +### Layer 1: Source Preservation Harness + +Purpose: + +Ensure every manifest row is represented in Arch source tables. + +Checks: + +- Artifact exists in `source_artifacts`. +- Stored artifact identity matches the expected manifest artifact instance: source URL for URL-backed artifacts, local path for local artifacts, and later expected checksum/vintage when available. +- Checksum is present. +- Retrieval status is explicit. +- Storage URI is present. +- Publisher/source URL or documented manual source is present. +- Retrieved/accessed date is present. +- Format is present. +- Parser version is present where parsing is attempted. +- Parsed table count is nonzero unless binary-only. +- Parsed row/cell count is nonzero for spreadsheet/CSV/JSON/text files. +- Source pages that fetch with errors are explicit `.fetch_error.yaml` artifacts, not silently absent. +- Parsed tables store row count, column count, parse-region checksum, sheet/page/table lineage, skipped-region explanations, and parse status. +- Row-parsed artifacts are not treated as source-cell-complete, selector-ready, or target-construction-ready until the `source_cell`, selector, and target layers say so explicitly. + +Initial acceptance: + +- PE-US manifest parsed coverage increases as new publisher-source documents are loaded, and publisher-source coverage is tracked separately from PE intermediate/support coverage. +- National SOI workbook rows move from todo to done. + +### Layer 2: Selector Harness + +Purpose: + +Ensure source specs select the intended cells robustly. + +Checks: + +- Every selector resolves to exactly one source artifact unless a multi-cell selector is explicit. +- Row and column selectors match at least one cell. +- Expected coordinate and semantic guards agree. +- Header paths match. +- Neighbor guards match when supplied. +- Empty, zero, suppressed, not applicable, formula, displayed value, and stored numeric value are represented distinctly. + +Failure modes this should catch: + +- Cell moved but meaning stayed the same. +- Cell stayed the same but meaning changed. +- Parser shifted a merged header or footnote into the wrong column. + +### Layer 3: Source Record Construction Harness + +Purpose: + +Ensure selected source cells are transformed into canonical Arch source records without value loss or simulator leakage. + +Checks: + +- Source records contain no simulator variable IDs. +- Raw value is captured before canonical conversion. +- Canonical value equals raw value converted by declared unit rules. +- Unit conversion is not applied twice. +- All required dimensions are present: period, geography, statistic, universe, AGI band, filing status, taxable-only, count-vs-amount. +- `all`, `unknown`, and missing are distinct. +- Omitted PE rows are still present as source records when they appear in the source artifact and pass semantic selection. +- Source integrity checks pass where declared. + +Initial SOI focus: + +- Publication 1304 Table 1.1: all rows/columns used for AGI, return counts, filing status. +- Publication 1304 Table 1.4: all income-source columns and AGI rows, not only PE-targeted variables. +- Publication 1304 Table 2.1: itemized deductions and AGI rows. +- IRS `in55cmcsv`: all state AGI-stub variables, not only `N1`, `A00100`, and income tax. +- IRS `incd`: all congressional-district AGI-stub variables. + +Optional source integrity checks: + +- Sum of declared mutually exclusive components approximately equals source total. +- Amount is nonnegative unless the concept permits negative values. +- Recipient count is less than or equal to universe count where both are published. +- Published mean equals amount/count when the source publishes all three. +- State totals sum to national only when the publisher states that the components are exhaustive. + +### Layer 4: Target Value Recipe Harness + +Purpose: + +Ensure Microplex target values are reproducible from Arch records and declared transformations. + +Checks: + +- Source query resolves to the expected number of records. +- Source selection policy is satisfied. +- Transform DAG is declared and hashable. +- Identity/no-op recipes reproduce the source record value exactly. +- Aging/reconciliation/source-selection methods are named and versioned. +- Target value is reproducible from Arch snapshot + source records + transform metadata. +- Excluded records have explicit exclusion reasons. + +### Layer 5: Model Measure Harness + +Purpose: + +Ensure each target contract has the right model-side expression. + +Checks: + +- All referenced variables exist in the selected model backend. +- Entity is explicit in the compiled spec. +- Weight variable and weight entity are explicit and compatible. +- Filters compile to backend expressions. +- Filter entity compatibility is checked. +- Counts have a count basis. +- Ratio numerator and denominator are compatible. +- NaN, missing, and negative value handling are explicit. +- Output unit is explicit. +- Aggregates produce finite values on fixture datasets. +- Tiny synthetic fixtures produce hand-checkable results. +- Matrix-builder results match direct simulation results for the same variable, geography, weights, and filters. + +Tiny fixture examples: + +- Two tax units, one filer and one non-filer. +- One filer with positive taxable interest and no income tax. +- One filer with positive income tax. +- Multiple persons in a single household to catch person-vs-tax-unit-vs-household count confusion. +- Multiple tax units in a household to catch household mapping errors. +- A ratio target with zero denominator handling. + +### Layer 6: PE Differential Harness + +Purpose: + +For targets inherited from PE, compare our source values, active values, measures, and profile decisions against pinned PE outputs. + +PE is a migration reference, not the source of truth. This matters because PE has multiple historical/current target-construction paths, and we already intend to supersede omissions and some modeling choices. + +Comparison modes: + +```text +exact +expected_difference +replacement +not_applicable +not_yet_classified +``` + +Checks: + +- Pin PE version/commit, dataset, and target files. +- Compare Arch source records against PE source CSV/workbook-derived values where PE has equivalents. +- Compare Microplex active target values against PE target databases/CSVs where PE has equivalents. +- Compile equivalent Microplex measure specs on the same dataset. +- Compare each PE-equivalent measure vector where an equivalence mapping exists. +- Compare included/excluded target profile decisions where PE has an equivalent profile. +- Fail on unclassified differences in entity mapping, filters, signs, units, weights, aggregation, or profile inclusion. + +Scope: + +- Start with national SOI rows because PE has useful legacy national target machinery there. +- Add PE local/geography-aware parity after national slices work. +- Do not require parity for improved or intentionally changed Microplex targets; those should have explicit `replacement_for` metadata and a reason. + +### Layer 7: Active Target Profile Harness + +Purpose: + +Ensure Microplex's active calibration profiles are explicit and reproducible. + +Checks: + +- Every active target points to one target contract. +- Every contract points to one target value recipe and one model measure. +- Every compiled active target value records resolved Arch source records. +- Aging/reconciliation/source-selection methods are declared. +- Target value is reproducible from source records and method metadata. +- No duplicate active target occupies the same measure/year/geography/dimension domain unless explicitly marked as alternative. +- Profile hash is reproducible from Arch snapshot, model adapter, measure specs, target specs, and code versions. + +## Database Implications + +Arch source tables already store artifacts, parsed tables, columns, and rows. However, the current row-oriented storage is not sufficient for the selector harness: it does not preserve stable spreadsheet coordinates, empty-cell distinctions, formulas, displayed values, merged-header lineage, or footnotes. The next implementation step must add a real `source_cell` layer before, or alongside, source-record specs. + +After `source_cell` exists, the next tables or artifacts should be source-record oriented, not active-target oriented. + +Candidate Arch concepts: + +```text +source_series +source_artifact +source_table +source_cell +cell_selector_specs +source_record_specs +source_records +source_record_lineage +arch_snapshots +``` + +`source_records` should include: + +- stable source record ID +- source record spec ID and spec hash +- source artifact/table/cell lineage +- publisher +- source table label +- source vintage +- raw text +- raw value +- raw unit +- canonical value +- canonical unit +- period type +- period +- geography ID +- geography vintage +- source concept ID +- statistic ID +- universe ID +- dimension JSON +- dimension hash +- missingness code +- footnotes JSON +- lineage hash + +`source_records` should not include PolicyEngine, Microplex, or Axiom model variable IDs. + +Microplex-side artifacts should include: + +```text +model_adapters +measure_specs +target_value_recipes +target_contracts +active_target_specs +active_target_values +target_profile_manifests +microplex_profile_snapshots +``` + +These can start as YAML/JSON files before being promoted into database tables. + +Authoring and materialization pattern: + +```text +YAML spec -> schema validation -> compiled DB rows -> emitted source records/target values +``` + +The DB should store spec hashes and compiled representations. It should not be the normal hand-editing surface. + +## Implementation Sequence + +### Phase 0: Boundary And Schema Contract + +Status: started through this plan. + +Tasks: + +- Freeze the minimum boundary rules: + - no model variable IDs in Arch source records + - source specs are versioned and hashable + - active targets are reproducible from Arch snapshot + Microplex specs + - every target has a value side, measure side, and binding contract +- Keep `docs/pe-us-source-manifest.csv` current. +- Add missing publisher source documents as they are discovered. +- Add manifest generation to CI as a smoke test. +- Fail CI if a known PE source disappears from the manifest unintentionally. + +### Phase 1: Artifact Vault And Parsed-Cell Pilot + +Tasks: + +- Load full IRS SOI TY2023 Table 1.4 workbook into Arch source artifacts. +- Capture artifact checksum, retrieval metadata, and storage URI. +- Parse sheets/tables/cells. +- Preserve headers, footnotes, raw cell values, displayed values, and omitted adjacent columns. +- Add parsed-cell coverage checks. + +Acceptance: + +- The Table 1.4 artifact is immutable and checksum-addressed. +- Parsed cell coverage is stable and tested. +- Empty/zero/suppressed/not-applicable/formula/displayed-value distinctions are represented. + +### Phase 2: Selector And Source Record Specs + +Tasks: + +- Define Pydantic/dataclass models for: + - `CellSelectorSpec` + - `SourceRecordSpec` +- Add YAML loader with clear validation errors. +- Add unit conversion registry: + - `usd` + - `thousand_usd` + - `count` + - `thousand_count` + - `person_months` if needed later +- Add source cell selector primitives: + - Excel column letter + - zero/one-based row index with explicit convention + - label lookup + - header path lookup + - table/sheet selection +- Add source-record specs for all Table 1.4 columns PE currently maps. +- Extend specs to all adjacent source columns in the workbook, even if PE omits them. +- Emit canonical simulator-neutral source records. + +Acceptance: + +- Arch can reproduce all PE TY2023 Table 1.4 rows in `soi_targets.csv` at the source-value layer. +- Arch also exposes source records for non-targeted Table 1.4 columns/rows. +- Source records have concept/statistic/universe metadata and no simulator model variable IDs. + +### Phase 3: Identity Target Values And Contracts + +Tasks: + +- Implement Microplex target value recipes with identity/no-op transforms first. +- Implement target contracts that bind a recipe to a model measure placeholder. +- Add profile uniqueness checks. +- Store resolved source record IDs in compiled active target values. + +Acceptance: + +- Source records can become active target values without aging or reconciliation. +- Every active target value is reproducible from Arch snapshot + recipe hash. +- Contract compatibility fields are present even before full model measure compilation. + +### Phase 4: Model Measure Compiler + +Tasks: + +- Implement a PolicyEngine-US backend compiler. +- Infer variable entity from `policyengine_us` metadata as a linting aid. +- Store entity explicitly in compiled measure specs. +- Compile filters and aggregates. +- Add count-basis support. +- Add weight variable/entity validation. +- Add ratio support or reject ratio specs clearly until implemented. +- Add tiny fixture tests. + +Acceptance: + +- A hand-built PE fixture passes count, sum, filter, and weight tests. +- Entity/weight/filter mismatches produce useful errors. +- Matrix-builder results match direct simulation results on fixtures. + +### Phase 5: Pinned PE Differential Slice + +Tasks: + +- Build equivalence mapping for PE national eCPS `build_loss_matrix()` column names where relevant. +- Also map against newer PE target database artifacts where relevant and available. +- Map at least: + - AGI by AGI/status + - return counts by AGI/status + - Table 1.4 income-source totals/counts by AGI + - aggregate-only SOI variables +- Compare source-value, active-value, measure-vector, and profile-selection layers. +- Classify every difference. + +Acceptance: + +- Exact or near-exact parity for declared PE-equivalent targets. +- Any intentional deviation has metadata and a test asserting the new behavior. +- No unclassified PE-equivalent differences remain in the pilot slice. + +### Phase 6: Expand SOI National Family + +Tasks: + +- Extend source-record specs to SOI Table 1.1, Table 1.4, Table 2.1, top-tail tables, filing-status variants, and AGI-band variants. +- Extend model measures and target contracts for the same family. +- Add source integrity checks for totals/components where valid. + +Acceptance: + +- Source records exist for every relevant value in the national SOI source files. +- Active Microplex national targets can be benchmarked against PE national. +- Missing and intentionally omitted values are visible in coverage reports. + +### Phase 7: CI And Dashboard + +Tasks: + +- Add CI job for source manifest smoke tests. +- Add selector/source-record spec validation tests. +- Add target contract validation tests. +- Add PE differential tests on small fixtures. +- Add optional or nightly full parity against larger PE datasets. +- Surface results in the Microplex/Arch observatory: + - source coverage + - parsed-cell coverage + - source-record coverage + - active target coverage + - model-measure compile coverage + - PE differential status + - known intentional deviations + +Acceptance: + +- A developer can see whether a dataset version is improving, regressing, or intentionally diverging from PE. +- CI catches accidental source omission, selector breakage, target contract incompatibility, and measure compiler regressions. + +### Phase 8: State And Local Expansion + +Tasks: + +- Extend source-record specs to `in55cmcsv`, `incd`, ACA, SNAP, Medicaid, ACS age, and Census support files. +- Add local PE matrix/database parity where available. +- Keep PE-local replacement scope separate from national replacement scope. + +Acceptance: + +- Source records exist for every value in PE target source files. +- Active Microplex local/geography-aware targets can be benchmarked against PE local outputs where PE local parity data exists. +- Local-readiness report shows which source families are not yet Microplex-active. + +## Open Design Answers + +1. Source-record specs should live in Arch as YAML source of truth plus compiled DB rows. +2. Active target specs should start in Microplex-US. Split later only when multiple adapters/profiles need independent versioning. +3. Count targets should be first-class `aggregate: count` specs with explicit `count_entity`. +4. PE parity should be required enough to classify differences, not enough to force exact reproduction of PE omissions or legacy shortcuts. +5. Arch should preserve every parsed source cell, then layer semantic source records on top. Do not automatically turn every cell into a semantic record. + +## Recommendation + +Start with YAML specs plus generated database records. + +Use: + +- Arch for source artifacts, parsed cells, selectors, and simulator-neutral source records. +- Microplex-US for target value recipes, model measure specs, target contracts, active target profiles, and PE differential metadata. +- PE parity as a pinned differential harness, not as the source of truth. + +The first implementation should target IRS SOI TY2023 Table 1.4 because it exercises the main failure modes: + +- workbook parsing +- raw-cell preservation +- selector semantic guards +- thousands-to-dollars conversion +- taxable-only interpretation +- source concept/statistic/universe mapping +- AGI-bin filters +- income-source model measure mapping +- count-vs-amount distinction +- household-weight validation +- PE differential checks against existing target machinery + +First-slice acceptance criteria: + +- The Table 1.4 artifact is stored with checksum and retrieval metadata. +- Parsed cells preserve raw/displayed/formula/missingness distinctions. +- Selector specs cover all PE-used cells and adjacent omitted source columns. +- Source records are simulator-neutral and contain concept/statistic/universe metadata. +- Identity target value recipes compile from source queries and store resolved source record IDs. +- Target contracts bind value recipes to model measure specs with explicit unit/entity/universe/geography/period/dimension expectations. +- Tiny model fixtures pass sum, count, filter, weight, and entity tests. +- PE-equivalent differences are either exact, expected, replacement, not applicable, or not yet classified. diff --git a/packages/__init__.py b/packages/__init__.py new file mode 100644 index 0000000..c039634 --- /dev/null +++ b/packages/__init__.py @@ -0,0 +1 @@ +"""Packaged Arch source-package specs.""" diff --git a/packages/irs_soi/table_1_1/source_package.yaml b/packages/irs_soi/table_1_1/source_package.yaml new file mode 100644 index 0000000..bfa60c0 --- /dev/null +++ b/packages/irs_soi/table_1_1/source_package.yaml @@ -0,0 +1,445 @@ +schema_version: arch.source_package.v1 +package_id: soi-table-1-1 +label: IRS SOI Publication 1304 Table 1.1 +artifact: + source_name: irs_soi + source_table: Publication 1304 Table 1.1 + resource_package: db + resource_directory: data/irs_soi/table_1_1 + manifest: manifest.yaml + vintage: tax_year_{year} + extracted_at: "2026-05-04" + extraction_method: xlrd whole-workbook used-range cell parse +record_sets: + - record_set_id: irs_soi.ty{year}.table_1_1 + record_set_spec_id: irs_soi.table_1_1.v1 + source_record_id_prefix: irs_soi.ty{year}.table_1_1 + sheet_name: TBL11 + period_type: tax_year + period: "{year}" + geography_id: 0100000US + geography_level: country + geography_name: United States + geography_vintage: 2020_census + entity: tax_unit + entity_role: filing_unit + domain: all_individual_income_tax_returns + groupby_dimension: us:statutes/26/62#adjusted_gross_income + rows: + - value_id: all + label: All returns + ordinal: 0 + row_number: 10 + filters: + filing_status: all + income_range: all + table_record_kind: total + - value_id: under_1 + label: No adjusted gross income + ordinal: 1 + row_number: 11 + filters: + filing_status: all + income_range: under_1 + agi_upper_usd: 1 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 1 + unit: usd + label: Adjusted gross income upper bound + - value_id: 1_to_5k + label: $1 under $5,000 + ordinal: 2 + row_number: 12 + filters: + filing_status: all + income_range: 1_to_5k + agi_lower_usd: 1 + agi_upper_usd: 5000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 1 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 5000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 5k_to_10k + label: $5,000 under $10,000 + ordinal: 3 + row_number: 13 + filters: + filing_status: all + income_range: 5k_to_10k + agi_lower_usd: 5000 + agi_upper_usd: 10000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 5000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 10000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 10k_to_15k + label: $10,000 under $15,000 + ordinal: 4 + row_number: 14 + filters: + filing_status: all + income_range: 10k_to_15k + agi_lower_usd: 10000 + agi_upper_usd: 15000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 10000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 15000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 15k_to_20k + label: $15,000 under $20,000 + ordinal: 5 + row_number: 15 + filters: + filing_status: all + income_range: 15k_to_20k + agi_lower_usd: 15000 + agi_upper_usd: 20000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 15000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 20000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 20k_to_25k + label: $20,000 under $25,000 + ordinal: 6 + row_number: 16 + filters: + filing_status: all + income_range: 20k_to_25k + agi_lower_usd: 20000 + agi_upper_usd: 25000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 20000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 25000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 25k_to_30k + label: $25,000 under $30,000 + ordinal: 7 + row_number: 17 + filters: + filing_status: all + income_range: 25k_to_30k + agi_lower_usd: 25000 + agi_upper_usd: 30000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 25000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 30000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 30k_to_40k + label: $30,000 under $40,000 + ordinal: 8 + row_number: 18 + filters: + filing_status: all + income_range: 30k_to_40k + agi_lower_usd: 30000 + agi_upper_usd: 40000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 30000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 40000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 40k_to_50k + label: $40,000 under $50,000 + ordinal: 9 + row_number: 19 + filters: + filing_status: all + income_range: 40k_to_50k + agi_lower_usd: 40000 + agi_upper_usd: 50000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 40000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 50000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 50k_to_75k + label: $50,000 under $75,000 + ordinal: 10 + row_number: 20 + filters: + filing_status: all + income_range: 50k_to_75k + agi_lower_usd: 50000 + agi_upper_usd: 75000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 50000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 75000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 75k_to_100k + label: $75,000 under $100,000 + ordinal: 11 + row_number: 21 + filters: + filing_status: all + income_range: 75k_to_100k + agi_lower_usd: 75000 + agi_upper_usd: 100000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 75000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 100000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 100k_to_200k + label: $100,000 under $200,000 + ordinal: 12 + row_number: 22 + filters: + filing_status: all + income_range: 100k_to_200k + agi_lower_usd: 100000 + agi_upper_usd: 200000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 100000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 200000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 200k_to_500k + label: $200,000 under $500,000 + ordinal: 13 + row_number: 23 + filters: + filing_status: all + income_range: 200k_to_500k + agi_lower_usd: 200000 + agi_upper_usd: 500000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 200000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 500000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 500k_to_1m + label: $500,000 under $1,000,000 + ordinal: 14 + row_number: 24 + filters: + filing_status: all + income_range: 500k_to_1m + agi_lower_usd: 500000 + agi_upper_usd: 1000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 500000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 1000000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 1m_to_1_5m + label: $1,000,000 under $1,500,000 + ordinal: 15 + row_number: 25 + filters: + filing_status: all + income_range: 1m_to_1_5m + agi_lower_usd: 1000000 + agi_upper_usd: 1500000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 1000000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 1500000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 1_5m_to_2m + label: $1,500,000 under $2,000,000 + ordinal: 16 + row_number: 26 + filters: + filing_status: all + income_range: 1_5m_to_2m + agi_lower_usd: 1500000 + agi_upper_usd: 2000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 1500000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 2000000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 2m_to_5m + label: $2,000,000 under $5,000,000 + ordinal: 17 + row_number: 27 + filters: + filing_status: all + income_range: 2m_to_5m + agi_lower_usd: 2000000 + agi_upper_usd: 5000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 2000000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 5000000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 5m_to_10m + label: $5,000,000 under $10,000,000 + ordinal: 18 + row_number: 28 + filters: + filing_status: all + income_range: 5m_to_10m + agi_lower_usd: 5000000 + agi_upper_usd: 10000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 5000000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 10000000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 10m_plus + label: $10,000,000 or more + ordinal: 19 + row_number: 29 + filters: + filing_status: all + income_range: 10m_plus + agi_lower_usd: 10000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 10000000 + unit: usd + label: Adjusted gross income lower bound + measures: + - measure_id: return_count + label: Number of returns + ordinal: 0 + column: B + concept: irs_soi.individual_income_tax_returns + unit: count + aggregation: count + - measure_id: adjusted_gross_income + label: Adjusted gross income + ordinal: 1 + column: D + concept: us:statutes/26/62#adjusted_gross_income + unit: usd + aggregation: sum + source_concept: irs_soi.adjusted_gross_income + concept_relation: exact + concept_authority: arch-us + concept_evidence_url: https://uscode.house.gov/view.xhtml?req=(title:26%20section:62%20edition:prelim) + concept_evidence_notes: > + IRS SOI Table 1.1 reports adjusted gross income for individual + income tax returns; IRC section 62 defines adjusted gross income. + This Arch assertion treats the SOI AGI column as exactly adopting + that legal concept for the tax-year source record. + legal_vintage: tax_year_{year} + value_scale: 1000 + - measure_id: total_income_tax + label: Total income tax + ordinal: 2 + column: Q + concept: irs_soi.total_income_tax + unit: usd + aggregation: sum + value_scale: 1000 + - measure_id: income_tax_after_credits_returns + label: Returns with income tax after credits + ordinal: 3 + column: N + concept: irs_soi.returns_with_income_tax_after_credits + unit: count + aggregation: count diff --git a/packages/irs_soi/table_1_4/source_package.yaml b/packages/irs_soi/table_1_4/source_package.yaml new file mode 100644 index 0000000..1678152 --- /dev/null +++ b/packages/irs_soi/table_1_4/source_package.yaml @@ -0,0 +1,567 @@ +schema_version: arch.source_package.v1 +package_id: soi-table-1-4 +label: IRS SOI Publication 1304 Table 1.4 total wages +artifact: + source_name: irs_soi + source_table: Publication 1304 Table 1.4 + resource_package: db + resource_directory: data/irs_soi/table_1_4 + manifest: manifest.yaml + vintage: tax_year_{year} + extracted_at: "2026-05-04" + extraction_method: xlrd whole-workbook used-range cell parse +record_sets: + - record_set_id: irs_soi.ty{year}.table_1_4 + record_set_spec_id: irs_soi.table_1_4.total_wages.v1 + source_record_id_prefix: irs_soi.ty{year}.table_1_4 + sheet_name: TBL14 + period_type: tax_year + period: "{year}" + geography_id: 0100000US + geography_level: country + geography_name: United States + geography_vintage: 2020_census + entity: tax_unit + entity_role: filing_unit + domain: all_individual_income_tax_returns + groupby_dimension: us:statutes/26/62#adjusted_gross_income + rows: + - value_id: all + label: All returns, total + ordinal: 0 + row_number: 9 + filters: + filing_status: all + income_range: all + table_record_kind: total + - value_id: under_1 + label: No adjusted gross income + ordinal: 1 + row_number: 10 + filters: + filing_status: all + income_range: under_1 + agi_upper_usd: 1 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 1 + unit: usd + label: Adjusted gross income upper bound + - value_id: 1_to_5k + label: $1 under $5,000 + ordinal: 2 + row_number: 11 + filters: + filing_status: all + income_range: 1_to_5k + agi_lower_usd: 1 + agi_upper_usd: 5000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 1 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 5000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 5k_to_10k + label: $5,000 under $10,000 + ordinal: 3 + row_number: 12 + filters: + filing_status: all + income_range: 5k_to_10k + agi_lower_usd: 5000 + agi_upper_usd: 10000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 5000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 10000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 10k_to_15k + label: $10,000 under $15,000 + ordinal: 4 + row_number: 13 + filters: + filing_status: all + income_range: 10k_to_15k + agi_lower_usd: 10000 + agi_upper_usd: 15000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 10000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 15000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 15k_to_20k + label: $15,000 under $20,000 + ordinal: 5 + row_number: 14 + filters: + filing_status: all + income_range: 15k_to_20k + agi_lower_usd: 15000 + agi_upper_usd: 20000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 15000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 20000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 20k_to_25k + label: $20,000 under $25,000 + ordinal: 6 + row_number: 15 + filters: + filing_status: all + income_range: 20k_to_25k + agi_lower_usd: 20000 + agi_upper_usd: 25000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 20000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 25000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 25k_to_30k + label: $25,000 under $30,000 + ordinal: 7 + row_number: 16 + filters: + filing_status: all + income_range: 25k_to_30k + agi_lower_usd: 25000 + agi_upper_usd: 30000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 25000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 30000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 30k_to_40k + label: $30,000 under $40,000 + ordinal: 8 + row_number: 17 + filters: + filing_status: all + income_range: 30k_to_40k + agi_lower_usd: 30000 + agi_upper_usd: 40000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 30000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 40000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 40k_to_50k + label: $40,000 under $50,000 + ordinal: 9 + row_number: 18 + filters: + filing_status: all + income_range: 40k_to_50k + agi_lower_usd: 40000 + agi_upper_usd: 50000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 40000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 50000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 50k_to_75k + label: $50,000 under $75,000 + ordinal: 10 + row_number: 19 + filters: + filing_status: all + income_range: 50k_to_75k + agi_lower_usd: 50000 + agi_upper_usd: 75000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 50000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 75000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 75k_to_100k + label: $75,000 under $100,000 + ordinal: 11 + row_number: 20 + filters: + filing_status: all + income_range: 75k_to_100k + agi_lower_usd: 75000 + agi_upper_usd: 100000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 75000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 100000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 100k_to_200k + label: $100,000 under $200,000 + ordinal: 12 + row_number: 21 + filters: + filing_status: all + income_range: 100k_to_200k + agi_lower_usd: 100000 + agi_upper_usd: 200000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 100000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 200000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 200k_to_500k + label: $200,000 under $500,000 + ordinal: 13 + row_number: 22 + filters: + filing_status: all + income_range: 200k_to_500k + agi_lower_usd: 200000 + agi_upper_usd: 500000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 200000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 500000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 500k_to_1m + label: $500,000 under $1,000,000 + ordinal: 14 + row_number: 23 + filters: + filing_status: all + income_range: 500k_to_1m + agi_lower_usd: 500000 + agi_upper_usd: 1000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 500000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 1000000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 1m_to_1_5m + label: $1,000,000 under $1,500,000 + ordinal: 15 + row_number: 24 + filters: + filing_status: all + income_range: 1m_to_1_5m + agi_lower_usd: 1000000 + agi_upper_usd: 1500000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 1000000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 1500000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 1_5m_to_2m + label: $1,500,000 under $2,000,000 + ordinal: 16 + row_number: 25 + filters: + filing_status: all + income_range: 1_5m_to_2m + agi_lower_usd: 1500000 + agi_upper_usd: 2000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 1500000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 2000000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 2m_to_5m + label: $2,000,000 under $5,000,000 + ordinal: 17 + row_number: 26 + filters: + filing_status: all + income_range: 2m_to_5m + agi_lower_usd: 2000000 + agi_upper_usd: 5000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 2000000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 5000000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 5m_to_10m + label: $5,000,000 under $10,000,000 + ordinal: 18 + row_number: 27 + filters: + filing_status: all + income_range: 5m_to_10m + agi_lower_usd: 5000000 + agi_upper_usd: 10000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 5000000 + unit: usd + label: Adjusted gross income lower bound + - variable: us:statutes/26/62#adjusted_gross_income + operator: < + value: 10000000 + unit: usd + label: Adjusted gross income upper bound + - value_id: 10m_plus + label: $10,000,000 or more + ordinal: 19 + row_number: 28 + filters: + filing_status: all + income_range: 10m_plus + agi_lower_usd: 10000000 + constraints: + - variable: us:statutes/26/62#adjusted_gross_income + operator: ">=" + value: 10000000 + unit: usd + label: Adjusted gross income lower bound + measures: + - measure_id: wages_salaries_returns + label: Returns with total wages + ordinal: 0 + column: F + concept: irs_soi.returns_with_total_wages + unit: count + aggregation: count + - measure_id: wages_salaries_amount + label: Total wages + ordinal: 1 + column: G + concept: us:statutes/26/62#input.wages + unit: usd + aggregation: sum + source_concept: irs_soi.total_wages + concept_relation: broad_match + concept_authority: arch-us + concept_evidence_url: https://www.irs.gov/statistics/soi-tax-stats-individual-income-tax-returns-complete-report-publication-1304-basic-tables-part-1 + concept_evidence_notes: > + IRS SOI Table 1.4 labels this measure Total wages for individual + income tax returns. Axiom exposes wages as an inferred input to IRC + section 62 adjusted gross income, so Arch treats the SOI total wages + measure as a broad match to that input concept rather than an exact + statutory definition. + legal_vintage: tax_year_{year} + value_scale: 1000 + - measure_id: net_capital_gains_returns + label: Returns with taxable net capital gains + ordinal: 2 + column: AL + column_by_year: + 2021: Z + 2022: AL + 2023: AL + concept: irs_soi.returns_with_taxable_net_capital_gains + unit: count + aggregation: count + - measure_id: net_capital_gains_amount + label: Taxable net capital gains + ordinal: 3 + column: AM + column_by_year: + 2021: AA + 2022: AM + 2023: AM + concept: irs_soi.taxable_net_capital_gains + unit: usd + aggregation: sum + value_scale: 1000 + - measure_id: taxable_ira_distributions_returns + label: Returns with taxable IRA distributions + ordinal: 4 + column: AT + column_by_year: + 2021: AH + 2022: AT + 2023: AT + concept: irs_soi.returns_with_taxable_ira_distributions + unit: count + aggregation: count + - measure_id: taxable_ira_distributions_amount + label: Taxable IRA distributions + ordinal: 5 + column: AU + column_by_year: + 2021: AI + 2022: AU + 2023: AU + concept: irs_soi.taxable_ira_distributions + unit: usd + aggregation: sum + value_scale: 1000 + - measure_id: taxable_pension_income_returns + label: Returns with taxable pension income + ordinal: 6 + column: AX + column_by_year: + 2021: AL + 2022: AX + 2023: AX + concept: irs_soi.returns_with_taxable_pension_income + unit: count + aggregation: count + - measure_id: taxable_pension_income_amount + label: Taxable pension income + ordinal: 7 + column: AY + column_by_year: + 2021: AM + 2022: AY + 2023: AY + concept: irs_soi.taxable_pension_income + unit: usd + aggregation: sum + value_scale: 1000 + - measure_id: unemployment_compensation_returns + label: Returns with unemployment compensation + ordinal: 8 + column: CF + column_by_year: + 2021: BT + 2022: CF + 2023: CF + concept: irs_soi.returns_with_unemployment_compensation + unit: count + aggregation: count + - measure_id: unemployment_compensation_amount + label: Unemployment compensation + ordinal: 9 + column: CG + column_by_year: + 2021: BU + 2022: CG + 2023: CG + concept: irs_soi.unemployment_compensation + unit: usd + aggregation: sum + value_scale: 1000 + - measure_id: taxable_social_security_returns + label: Returns with taxable Social Security benefits + ordinal: 10 + column: CJ + column_by_year: + 2021: BX + 2022: CJ + 2023: CJ + concept: irs_soi.returns_with_taxable_social_security_benefits + unit: count + aggregation: count + - measure_id: taxable_social_security_amount + label: Taxable Social Security benefits + ordinal: 11 + column: CK + column_by_year: + 2021: BY + 2022: CK + 2023: CK + concept: irs_soi.taxable_social_security_benefits + unit: usd + aggregation: sum + value_scale: 1000 + - measure_id: self_employed_pension_contribution_ald + label: Payments to a Keogh plan + ordinal: 12 + column: DM + column_by_year: + 2021: DA + 2022: DM + 2023: DM + concept: irs_soi.payments_to_keogh_plan + unit: usd + aggregation: sum + source_concept: irs_soi.payments_to_keogh_plan + concept_relation: broad_match + concept_authority: arch-us + concept_evidence_url: https://www.irs.gov/statistics/soi-tax-stats-individual-income-tax-returns-complete-report-publication-1304-basic-tables-part-1 + concept_evidence_notes: > + IRS SOI Table 1.4 labels this statutory-adjustments measure + Payments to a Keogh plan. PolicyEngine-US uses this SOI line as the + national calibration source for self_employed_pension_contribution_ald. + legal_vintage: tax_year_{year} + value_scale: 1000 diff --git a/pyproject.toml b/pyproject.toml index 940bef2..cb05188 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ dependencies = [ "openpyxl>=3.1.0", "odfpy>=1.4.1", "xlrd>=2.0.1", + "pypdf>=6.0.0", ] [project.optional-dependencies] @@ -41,7 +42,7 @@ requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] -packages = ["arch", "db", "micro", "calibration"] +packages = ["arch", "db", "micro", "calibration", "packages"] [tool.pytest.ini_options] testpaths = ["tests"] diff --git a/tests/test_arch_artifacts.py b/tests/test_arch_artifacts.py new file mode 100644 index 0000000..f47ea8d --- /dev/null +++ b/tests/test_arch_artifacts.py @@ -0,0 +1,369 @@ +"""Tests for Arch source artifact acquisition and storage metadata.""" + +from __future__ import annotations + +import hashlib +import json + +import pytest +import yaml + +from arch.cli import main as cli_main +from arch.artifacts import ( + build_artifact_rows, + build_derived_r2_key, + bootstrap_r2_buckets, + build_r2_key, + fetch_source_artifact, + infer_build_id, + inventory_source_artifacts, + publish_derived_artifacts, + publish_source_artifacts, +) +from arch.harness import main as harness_main + + +def test_build_r2_key_is_content_addressed(): + key = build_r2_key( + source_id="irs_soi", + package_id="soi-table-1-2", + year=2023, + sha256="abc123", + filename="23in12ms.xls", + ) + + assert key == "raw/irs_soi/soi-table-1-2/2023/abc123/23in12ms.xls" + + +def test_build_derived_r2_key_is_build_scoped(): + key = build_derived_r2_key( + source_id="irs_soi", + package_id="soi-table-1-1", + year=2023, + build_id="arch.build.v1:abc123", + artifact_name="reports/build_summary.json", + ) + + assert key == ( + "derived/irs_soi/soi-table-1-1/2023/" + "arch.build.v1:abc123/reports/build_summary.json" + ) + + +def test_fetch_source_artifact_writes_manifest_and_inventory(tmp_path): + source = tmp_path / "source.xls" + content = b"arch artifact fixture" + source.write_bytes(content) + output_dir = tmp_path / "data" / "irs_soi" / "table_1_2" + + report = fetch_source_artifact( + str(source), + source_id="irs_soi", + package_id="soi-table-1-2", + year=2023, + output_dir=output_dir, + source_page="https://example.test/source-page", + table="Publication 1304 Table 1.2", + ) + + expected_sha = hashlib.sha256(content).hexdigest() + manifest = yaml.safe_load((output_dir / "manifest.yaml").read_text()) + inventory = inventory_source_artifacts(output_dir) + + assert report.valid + assert report.sha256 == expected_sha + assert (output_dir / "source.xls").read_bytes() == content + assert manifest["source_id"] == "irs_soi" + assert manifest["package_id"] == "soi-table-1-2" + assert manifest["files"][2023]["sha256"] == expected_sha + assert manifest["files"][2023]["source_url"] == str(source) + assert inventory.valid + assert inventory.counts == { + "artifact_count": 1, + "checksum_mismatch_count": 0, + "manifest_count": 1, + "missing_count": 0, + "r2_link_count": 0, + } + + +def test_publish_source_artifacts_uploads_manifest_entries(tmp_path): + output_dir = tmp_path / "data" / "irs_soi" / "table_1_2" + source = tmp_path / "source.xls" + source.write_bytes(b"raw artifact") + fetch_source_artifact( + str(source), + source_id="irs_soi", + package_id="soi-table-1-2", + year=2023, + output_dir=output_dir, + ) + log = tmp_path / "wrangler.log" + wrangler = tmp_path / "wrangler" + wrangler.write_text( + "#!/bin/sh\n" + f"printf '%s\\n' \"$*\" >> {log}\n" + "echo ok\n" + ) + wrangler.chmod(0o755) + + report = publish_source_artifacts(output_dir, wrangler_command=str(wrangler)) + manifest = yaml.safe_load((output_dir / "manifest.yaml").read_text()) + storage = manifest["files"][2023]["storage"]["r2"] + + assert report.valid + assert report.counts == { + "artifact_count": 1, + "failed_count": 0, + "manifest_count": 1, + "r2_link_count": 1, + "uploaded_count": 1, + } + assert storage["bucket"] == "arch-raw" + assert storage["key"].startswith("raw/irs_soi/soi-table-1-2/2023/") + assert "arch-raw/raw/irs_soi/soi-table-1-2/2023/" in log.read_text() + + +def test_inventory_source_artifacts_catches_checksum_mismatch(tmp_path): + source = tmp_path / "source.xls" + source.write_bytes(b"original") + output_dir = tmp_path / "data" + fetch_source_artifact( + str(source), + source_id="irs_soi", + package_id="soi-table-1-2", + year=2023, + output_dir=output_dir, + ) + (output_dir / "source.xls").write_bytes(b"changed") + + report = inventory_source_artifacts(output_dir) + + assert not report.valid + assert report.counts["checksum_mismatch_count"] == 1 + assert report.entries[0].errors == ("checksum_mismatch",) + + +def test_artifact_cli_commands_emit_json(tmp_path, capsys): + source = tmp_path / "source.xls" + source.write_bytes(b"cli artifact") + output_dir = tmp_path / "artifact-dir" + + exit_code = harness_main( + [ + "fetch-artifact", + "--url", + str(source), + "--source-id", + "irs_soi", + "--package-id", + "soi-table-cli", + "--year", + "2023", + "--out-dir", + str(output_dir), + ] + ) + fetch_payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert fetch_payload["valid"] + assert (output_dir / "manifest.yaml").exists() + + exit_code = harness_main( + [ + "inventory-artifacts", + "--root", + str(output_dir), + ] + ) + inventory_payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert inventory_payload["valid"] + assert inventory_payload["counts"]["artifact_count"] == 1 + + wrangler = tmp_path / "wrangler" + wrangler.write_text("#!/bin/sh\necho ok\n") + wrangler.chmod(0o755) + exit_code = harness_main( + [ + "publish-raw", + "--root", + str(output_dir), + "--wrangler-command", + str(wrangler), + ] + ) + raw_payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert raw_payload["valid"] + assert raw_payload["counts"]["uploaded_count"] == 1 + + +def test_bootstrap_r2_reports_missing_authentication(tmp_path): + wrangler = tmp_path / "wrangler" + wrangler.write_text("#!/bin/sh\necho 'You are not authenticated.'\n") + wrangler.chmod(0o755) + + report = bootstrap_r2_buckets(wrangler_command=str(wrangler)) + + assert not report.valid + assert not report.authenticated + assert "wrangler_not_authenticated" in report.errors[0] + + +def test_publish_derived_artifacts_uploads_build_directory(tmp_path): + suite = tmp_path / "suite" + reports = suite / "reports" + reports.mkdir(parents=True) + build_id = "arch.build.v1:test123" + (reports / "database.json").write_text(json.dumps({"build_id": build_id})) + (reports / "build_summary.json").write_text( + json.dumps({"reports": {"database": {"build_id": build_id}}}) + ) + (suite / "facts.jsonl").write_text("{}\n") + log = tmp_path / "wrangler.log" + wrangler = tmp_path / "wrangler" + wrangler.write_text( + "#!/bin/sh\n" + f"printf '%s\\n' \"$*\" >> {log}\n" + "echo ok\n" + ) + wrangler.chmod(0o755) + + report = publish_derived_artifacts( + suite, + source_id="irs_soi", + package_id="soi-table-1-1", + year=2023, + build_artifacts_output=tmp_path / "build_artifacts.jsonl", + wrangler_command=str(wrangler), + ) + + uploaded_names = {entry.artifact_name for entry in report.entries} + command_log = log.read_text() + build_artifact_rows = [ + json.loads(line) + for line in (tmp_path / "build_artifacts.jsonl").read_text().splitlines() + ] + + assert report.valid + assert infer_build_id(suite) == build_id + assert report.build_id == build_id + assert report.build_artifacts_path == str(tmp_path / "build_artifacts.jsonl") + assert uploaded_names == { + "reports/build_summary.json", + "reports/database.json", + "facts.jsonl", + } + assert len(build_artifact_rows) == 3 + assert build_artifact_rows[0]["build_id"] == build_id + assert build_artifact_rows[0]["r2_bucket"] == "arch-derived" + assert "arch-derived/derived/irs_soi/soi-table-1-1/2023/" in command_log + assert "reports/build_summary.json" in command_log + + +def test_build_artifact_rows_skips_failed_uploads(tmp_path): + suite = tmp_path / "suite" + reports = suite / "reports" + reports.mkdir(parents=True) + (reports / "database.json").write_text( + json.dumps({"build_id": "arch.build.v1:failed-row"}) + ) + (suite / "facts.jsonl").write_text("{}\n") + wrangler = tmp_path / "wrangler" + wrangler.write_text("#!/bin/sh\nexit 1\n") + wrangler.chmod(0o755) + + report = publish_derived_artifacts( + suite, + source_id="irs_soi", + package_id="soi-table-1-1", + year=2023, + wrangler_command=str(wrangler), + ) + + assert not report.valid + assert build_artifact_rows(report) == () + + +def test_publish_derived_cli_emits_json(tmp_path, capsys): + suite = tmp_path / "suite" + reports = suite / "reports" + reports.mkdir(parents=True) + (reports / "database.json").write_text( + json.dumps({"build_id": "arch.build.v1:cli"}) + ) + (suite / "arch.db").write_bytes(b"db") + log = tmp_path / "wrangler.log" + wrangler = tmp_path / "wrangler" + wrangler.write_text( + "#!/bin/sh\n" + f"printf '%s\\n' \"$*\" >> {log}\n" + "echo ok\n" + ) + wrangler.chmod(0o755) + + exit_code = harness_main( + [ + "publish-derived", + "--dir", + str(suite), + "--source-id", + "irs_soi", + "--package-id", + "soi-table-1-1", + "--year", + "2023", + "--wrangler-command", + str(wrangler), + "--build-artifacts-out", + str(tmp_path / "build_artifacts.jsonl"), + ] + ) + payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert payload["valid"] + assert payload["build_id"] == "arch.build.v1:cli" + assert payload["counts"]["artifact_count"] == 2 + assert (tmp_path / "build_artifacts.jsonl").exists() + + +def test_top_level_cli_dispatches_publish_derived(tmp_path, capsys, monkeypatch): + suite = tmp_path / "suite" + reports = suite / "reports" + reports.mkdir(parents=True) + (reports / "database.json").write_text( + json.dumps({"build_id": "arch.build.v1:top-cli"}) + ) + (suite / "facts.jsonl").write_text("{}\n") + wrangler = tmp_path / "wrangler" + wrangler.write_text("#!/bin/sh\necho ok\n") + wrangler.chmod(0o755) + monkeypatch.setattr( + "sys.argv", + [ + "arch", + "publish-derived", + "--dir", + str(suite), + "--source-id", + "irs_soi", + "--package-id", + "soi-table-1-1", + "--year", + "2023", + "--wrangler-command", + str(wrangler), + ], + ) + + with pytest.raises(SystemExit) as exc: + cli_main() + payload = json.loads(capsys.readouterr().out) + + assert exc.value.code == 0 + assert payload["valid"] diff --git a/tests/test_arch_boundaries.py b/tests/test_arch_boundaries.py new file mode 100644 index 0000000..8717fa5 --- /dev/null +++ b/tests/test_arch_boundaries.py @@ -0,0 +1,30 @@ +"""Boundary tests for Arch core independence.""" + +from __future__ import annotations + +import ast +from pathlib import Path + + +FORBIDDEN_RUNTIME_IMPORTS = {"microplex", "microplex_us"} + + +def test_arch_modules_do_not_import_microplex_runtime(): + arch_root = Path(__file__).resolve().parents[1] / "arch" + violations: list[str] = [] + + for path in sorted(arch_root.rglob("*.py")): + tree = ast.parse(path.read_text(), filename=str(path)) + for node in ast.walk(tree): + imported_roots: list[str] = [] + if isinstance(node, ast.Import): + imported_roots = [alias.name.split(".", 1)[0] for alias in node.names] + elif isinstance(node, ast.ImportFrom) and node.module is not None: + imported_roots = [node.module.split(".", 1)[0]] + + for root in imported_roots: + if root in FORBIDDEN_RUNTIME_IMPORTS: + relative_path = path.relative_to(arch_root.parent) + violations.append(f"{relative_path}:{node.lineno}: {root}") + + assert violations == [] diff --git a/tests/test_arch_bundle.py b/tests/test_arch_bundle.py new file mode 100644 index 0000000..89a3ef4 --- /dev/null +++ b/tests/test_arch_bundle.py @@ -0,0 +1,162 @@ +"""Tests for merged Arch consumer bundles.""" + +from __future__ import annotations + +import json + +from arch.bundle import build_bundle, build_bundle_coverage +from arch.harness import main as harness_main + + +def _load_jsonl(path): + return [json.loads(line) for line in path.read_text().splitlines() if line] + + +def test_build_bundle_writes_merged_consumer_contract(tmp_path): + output_dir = tmp_path / "bundle" + + report = build_bundle(output_dir, year=2023) + summary = json.loads( + (output_dir / "reports" / "build_bundle.json").read_text() + ) + rows = _load_jsonl(output_dir / "consumer_facts.jsonl") + source_packages = json.loads((output_dir / "source_packages.json").read_text()) + coverage = json.loads((output_dir / "coverage.json").read_text()) + + assert report.valid + assert summary["valid"] + assert summary["counts"] == { + "aggregate_duplicate_key_count": 0, + "entity_count": 1, + "error_count": 0, + "fact_count": 340, + "geography_count": 1, + "period_count": 1, + "semantic_duplicate_key_count": 0, + "skipped_source_count": 0, + "source_count": 1, + "source_package_count": 2, + "warning_count": 0, + } + assert len(rows) == 340 + assert rows[0]["aggregate_fact_key"].startswith("arch.aggregate_fact.v2:") + assert rows[0]["semantic_fact_key"].startswith("arch.semantic_fact.v2:") + assert source_packages["source_package_count"] == 2 + assert source_packages["skipped_source_count"] == 0 + assert not source_packages["skipped_sources"] + assert coverage["fact_count"] == 340 + assert coverage["counts"]["by_source"] == { + "irs_soi": 340, + } + assert coverage["counts"]["by_source_table"] == { + "irs_soi:Publication 1304 Table 1.1": 80, + "irs_soi:Publication 1304 Table 1.4": 260, + } + assert coverage["counts"]["by_period"] == { + "tax_year:2023": 340, + } + assert coverage["counts"]["by_geography"] == { + "country:0100000US": 340, + } + assert coverage["counts"]["by_entity"] == { + "tax_unit": 340, + } + assert not coverage["duplicates"]["aggregate_fact_keys"] + assert not coverage["duplicates"]["semantic_fact_keys"] + assert (output_dir / "sources" / "soi-table-1-1" / "consumer_facts.jsonl").exists() + assert ( + output_dir + / "sources" + / "soi-table-1-4" + / "reports" + / "build_summary.json" + ).exists() + + +def test_build_bundle_cli_supports_explicit_sources(tmp_path, capsys): + output_dir = tmp_path / "bundle" + + exit_code = harness_main( + [ + "build-bundle", + "--year", + "2023", + "--source", + "soi-table-1-1", + "--out", + str(output_dir), + ] + ) + payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert payload["valid"] + assert payload["counts"]["source_package_count"] == 1 + assert payload["counts"]["fact_count"] == 80 + assert payload["outputs"]["consumer_facts"] == str( + output_dir / "consumer_facts.jsonl" + ) + assert payload["coverage"]["counts"]["by_source_table"] == { + "irs_soi:Publication 1304 Table 1.1": 80 + } +def test_build_bundle_coverage_reports_duplicate_keys(): + rows = [ + { + "aggregate_fact_key": "arch.aggregate_fact.v2:a", + "semantic_fact_key": "arch.semantic_fact.v2:s", + "legacy_fact_key": "arch.fact.v1:one", + "source": { + "source_name": "irs_soi", + "source_table": "Publication 1304 Table 1.1", + }, + "period": {"type": "tax_year", "value": 2023}, + "geography": {"level": "country", "id": "0100000US"}, + "entity": {"name": "tax_unit"}, + "observed_measure": { + "source_name": "irs_soi", + "source_measure_id": "return_count", + "source_concept": "irs_soi.individual_income_tax_returns", + }, + }, + { + "aggregate_fact_key": "arch.aggregate_fact.v2:a", + "semantic_fact_key": "arch.semantic_fact.v2:s", + "legacy_fact_key": "arch.fact.v1:two", + "source": { + "source_name": "irs_soi", + "source_table": "Publication 1304 Table 1.1", + }, + "period": {"type": "tax_year", "value": 2023}, + "geography": {"level": "country", "id": "0100000US"}, + "entity": {"name": "tax_unit"}, + "observed_measure": { + "source_name": "irs_soi", + "source_measure_id": "return_count", + "source_concept": "irs_soi.individual_income_tax_returns", + }, + }, + ] + + coverage = build_bundle_coverage( + rows, + aggregate_duplicates=[ + { + "key": "arch.aggregate_fact.v2:a", + "count": 2, + "sources": ["irs_soi:Publication 1304 Table 1.1"], + "legacy_fact_keys": ["arch.fact.v1:one", "arch.fact.v1:two"], + } + ], + semantic_duplicates=[ + { + "key": "arch.semantic_fact.v2:s", + "count": 2, + "sources": ["irs_soi:Publication 1304 Table 1.1"], + "legacy_fact_keys": ["arch.fact.v1:one", "arch.fact.v1:two"], + } + ], + ) + + assert coverage["counts"]["by_source"] == {"irs_soi": 2} + assert coverage["duplicates"]["aggregate_fact_keys"][0]["count"] == 2 + assert coverage["duplicates"]["semantic_fact_keys"][0]["count"] == 2 diff --git a/tests/test_arch_concepts.py b/tests/test_arch_concepts.py new file mode 100644 index 0000000..6a3d9a1 --- /dev/null +++ b/tests/test_arch_concepts.py @@ -0,0 +1,209 @@ +"""Tests for Arch concept-alignment validation.""" + +from __future__ import annotations + +import json +import textwrap + +from arch.concepts import ( + collect_concept_alignments, + validate_concept_alignments, +) +from arch.core import ( + Aggregation, + EntityDimension, + GeographyDimension, + Measure, + PeriodDimension, + SourceProvenance, + AggregateFact, +) +from arch.harness import main as harness_main +from arch.store import save_facts_jsonl + +AXIOM_CREDIT_CONCEPT = "us:statutes/26/45A/a#indian_employment_credit" +MISSING_CTC_CONCEPT = "us:statutes/26/24#child_tax_credit" +SOURCE_CREDIT_CONCEPT = "irs_soi.indian_employment_credit" + + +def _credit_fact(**overrides): + fact = AggregateFact( + value=123_000_000, + period=PeriodDimension(type="tax_year", value=2023), + geography=GeographyDimension( + level="country", + id="0100000US", + vintage="2020_census", + name="United States", + ), + entity=EntityDimension(name="return", role="filing_unit"), + measure=Measure( + concept=AXIOM_CREDIT_CONCEPT, + unit="usd", + source_concept=SOURCE_CREDIT_CONCEPT, + concept_relation="exact", + concept_authority="arch-us", + concept_evidence_notes=( + "Synthetic fixture asserting a source credit column exactly " + "adopts an encoded Axiom tax-credit concept." + ), + legal_vintage="tax_year_2023", + ), + aggregation=Aggregation(method="sum"), + filters={"filing_status": "all"}, + source=SourceProvenance( + source_name="irs_soi", + source_table="Synthetic credit table", + source_file="synthetic-credit.jsonl", + url="https://example.org/synthetic-credit", + vintage="tax_year_2023", + extracted_at="2026-05-04", + extraction_method="test fixture", + method_notes="Synthetic concept-alignment fixture.", + ), + source_record_id="irs_soi.ty2023.synthetic.indian_employment_credit", + label="United States 2023 tax year sum Indian employment credit", + ) + return AggregateFact(**{**fact.__dict__, **overrides}) + + +def test_collect_concept_alignments_deduplicates_assertions(): + fact = _credit_fact() + duplicate_assertion = _credit_fact(value=456_000_000) + + alignments = collect_concept_alignments([fact, duplicate_assertion]) + + assert len(alignments) == 1 + assert alignments[0].canonical_concept == AXIOM_CREDIT_CONCEPT + assert alignments[0].source_concept == SOURCE_CREDIT_CONCEPT + + +def test_validate_concept_alignments_warns_without_axiom_cli(): + report = validate_concept_alignments([_credit_fact()]) + + assert report.valid + assert report.alignment_count == 1 + assert report.checked_count == 0 + assert [warning.code for warning in report.warnings] == [ + "axiom_cli_not_configured" + ] + + +def test_exact_alignment_requires_evidence(): + fact = _credit_fact( + measure=Measure( + concept=AXIOM_CREDIT_CONCEPT, + unit="usd", + source_concept=SOURCE_CREDIT_CONCEPT, + concept_relation="exact", + ) + ) + + report = validate_concept_alignments([fact]) + + assert not report.valid + assert [error.code for error in report.errors] == ["missing_concept_evidence"] + + +def test_validate_concept_alignments_checks_encoded_axiom_concept(tmp_path): + axiom_cli = _write_fake_axiom_cli(tmp_path) + + report = validate_concept_alignments( + [_credit_fact()], + axiom_command=[str(axiom_cli)], + axiom_roots=[tmp_path / "rules-us"], + ) + + assert report.valid + assert report.alignment_count == 1 + assert report.checked_count == 1 + assert report.errors == () + + +def test_validate_concept_alignments_reports_missing_axiom_concept(tmp_path): + axiom_cli = _write_fake_axiom_cli(tmp_path) + fact = _credit_fact( + measure=Measure( + concept=MISSING_CTC_CONCEPT, + unit="usd", + source_concept="irs_soi.child_tax_credit", + concept_relation="exact", + concept_authority="arch-us", + concept_evidence_notes="Synthetic CTC assertion before §24 exists.", + legal_vintage="tax_year_2023", + ) + ) + + report = validate_concept_alignments( + [fact], + axiom_command=[str(axiom_cli)], + axiom_roots=[tmp_path / "rules-us"], + ) + + assert not report.valid + assert report.checked_count == 1 + assert [error.code for error in report.errors] == ["axiom_concept_invalid"] + + +def test_validate_concept_alignment_cli_emits_json(tmp_path, capsys): + axiom_cli = _write_fake_axiom_cli(tmp_path) + fact_path = tmp_path / "facts.jsonl" + save_facts_jsonl([_credit_fact()], fact_path) + + exit_code = harness_main( + [ + "validate-concept-alignments", + "--input", + str(fact_path), + "--axiom-cli", + str(axiom_cli), + "--axiom-root", + str(tmp_path / "rules-us"), + ] + ) + payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert payload["valid"] + assert payload["alignment_count"] == 1 + assert payload["checked_count"] == 1 + assert payload["errors"] == [] + + +def _write_fake_axiom_cli(tmp_path): + axiom_cli = tmp_path / "axiom" + axiom_cli.write_text( + textwrap.dedent( + f"""\ + #!/usr/bin/env python3 + import json + import sys + + concept_id = sys.argv[sys.argv.index("validate") + 1] + if concept_id == {AXIOM_CREDIT_CONCEPT!r}: + print(json.dumps({{ + "concept_id": concept_id, + "concept": {{ + "concept_id": concept_id, + "status": "encoded", + }}, + "errors": [], + "valid": True, + }})) + raise SystemExit(0) + print(json.dumps({{ + "concept_id": concept_id, + "errors": [ + {{ + "code": "concept_not_found", + "message": f"Concept {{concept_id}} is not available.", + }} + ], + "valid": False, + }})) + raise SystemExit(1) + """ + ) + ) + axiom_cli.chmod(0o755) + return axiom_cli diff --git a/tests/test_arch_consumer_contract.py b/tests/test_arch_consumer_contract.py new file mode 100644 index 0000000..cfe56da --- /dev/null +++ b/tests/test_arch_consumer_contract.py @@ -0,0 +1,546 @@ +"""Tests for Arch downstream consumer-contract exports.""" + +from __future__ import annotations + +import json +import re +from dataclasses import replace +from decimal import Decimal +from pathlib import Path +from typing import Any + +import pytest + +import arch.consumer_contract as consumer_contract +from arch.consumer_contract import ( + CONSUMER_FACT_SCHEMA_VERSION, + build_aggregate_fact_key, + build_source_release_key, + build_semantic_fact_key, + consumer_fact_row, + validate_consumer_fact_contract, + write_consumer_facts_jsonl, +) +from arch.core import ( + AggregateConstraint, + Measure, + build_aggregate_constraints, +) +from arch.harness import main +from arch.jurisdictions.us.soi import build_soi_table_1_1_facts +from arch.store import save_facts_jsonl + +CONSUMER_FACT_SCHEMA_PATH = ( + Path(__file__).parents[1] / "docs" / "schemas" / "consumer_fact.v1.schema.json" +) +CONSUMER_FACT_SAMPLE_PATH = ( + Path(__file__).parents[1] / "arch" / "fixtures" / "consumer_facts.jsonl" +) + + +def _soi_agi_fact(): + return next( + fact + for fact in build_soi_table_1_1_facts(2023) + if fact.source_record_id + == "irs_soi.ty2023.table_1_1.all.adjusted_gross_income" + ) + + +def _soi_agi_bracket_fact(): + return next( + fact + for fact in build_soi_table_1_1_facts(2023) + if fact.source_record_id + == "irs_soi.ty2023.table_1_1.1_to_5k.adjusted_gross_income" + ) + + +def _load_jsonl(path: Path) -> list[dict[str, Any]]: + return [json.loads(line) for line in path.read_text().splitlines() if line] + + +def _assert_matches_schema(row: Any, schema: dict[str, Any], root: dict[str, Any]): + if "$ref" in schema: + ref = schema["$ref"] + if not ref.startswith("#/$defs/"): + raise AssertionError(f"Unsupported test schema ref: {ref}") + schema = root["$defs"][ref.removeprefix("#/$defs/")] + + expected_type = schema.get("type") + if expected_type is not None: + allowed_types = ( + expected_type if isinstance(expected_type, list) else [expected_type] + ) + if not any(_matches_json_type(row, type_name) for type_name in allowed_types): + raise AssertionError(f"{row!r} does not match type {expected_type!r}") + + if "const" in schema and row != schema["const"]: + raise AssertionError(f"{row!r} does not match const {schema['const']!r}") + if "enum" in schema and row not in schema["enum"]: + raise AssertionError(f"{row!r} not in enum {schema['enum']!r}") + if "pattern" in schema and not re.match(schema["pattern"], row): + raise AssertionError(f"{row!r} does not match pattern {schema['pattern']!r}") + + if isinstance(row, dict): + required = set(schema.get("required", ())) + missing = required - set(row) + if missing: + raise AssertionError(f"Missing required keys: {sorted(missing)}") + + properties = schema.get("properties", {}) + if schema.get("additionalProperties") is False: + extra = set(row) - set(properties) + if extra: + raise AssertionError(f"Unexpected keys: {sorted(extra)}") + + for key, value in row.items(): + if key in properties: + _assert_matches_schema(value, properties[key], root) + elif isinstance(schema.get("additionalProperties"), dict): + _assert_matches_schema(value, schema["additionalProperties"], root) + + if isinstance(row, list) and "items" in schema: + for item in row: + _assert_matches_schema(item, schema["items"], root) + + +def _matches_json_type(value: Any, type_name: str) -> bool: + if type_name == "object": + return isinstance(value, dict) + if type_name == "array": + return isinstance(value, list) + if type_name == "string": + return isinstance(value, str) + if type_name == "integer": + return isinstance(value, int) and not isinstance(value, bool) + if type_name == "number": + return isinstance(value, int | float) and not isinstance(value, bool) + if type_name == "boolean": + return isinstance(value, bool) + raise AssertionError(f"Unsupported JSON Schema type in test: {type_name}") + + +def test_consumer_fact_row_exposes_arch_and_lineage_keys(): + row = consumer_fact_row(_soi_agi_fact()) + + assert row["schema_version"] == CONSUMER_FACT_SCHEMA_VERSION + assert row["aggregate_fact_key"].startswith("arch.aggregate_fact.v2:") + assert row["semantic_fact_key"].startswith("arch.semantic_fact.v2:") + assert row["legacy_fact_key"].startswith("arch.fact.v1:") + assert row["source_release_key"].startswith("arch.source_release.v2:") + assert row["observed_measure_key"].startswith("arch.observed_measure.v2:") + assert row["concept_alignment"]["canonical_concept"] == ( + "us:statutes/26/62#adjusted_gross_income" + ) + assert row["lineage"]["source_record_id"] == ( + "irs_soi.ty2023.table_1_1.all.adjusted_gross_income" + ) + assert row["lineage"]["source_cell_keys"] + + +def test_aggregate_fact_key_ignores_lineage_labels_and_evidence_notes(): + fact = _soi_agi_fact() + changed = replace( + fact, + label="Different human label", + source_record_id="different.row.identity", + source_cell_keys=("different-cell-key",), + measure=replace( + fact.measure, + concept_evidence_url="https://example.test/evidence", + concept_evidence_notes="Improved review notes.", + ), + ) + + assert build_aggregate_fact_key(fact) == build_aggregate_fact_key(changed) + + +def test_semantic_fact_key_ignores_source_release_but_aggregate_key_does_not(): + fact = _soi_agi_fact() + new_release = replace( + fact, + source=replace(fact.source, vintage="tax_year_2024"), + ) + + assert build_semantic_fact_key(fact) == build_semantic_fact_key(new_release) + assert build_aggregate_fact_key(fact) != build_aggregate_fact_key(new_release) + + +def test_source_release_key_includes_artifact_identity(): + fact = _soi_agi_fact() + corrected_artifact = replace( + fact, + source=replace(fact.source, source_sha256="0" * 64), + ) + + assert build_source_release_key(fact) != build_source_release_key( + corrected_artifact + ) + assert build_semantic_fact_key(fact) == build_semantic_fact_key( + corrected_artifact + ) + assert build_aggregate_fact_key(fact) != build_aggregate_fact_key( + corrected_artifact + ) + + +def test_semantic_fact_key_ignores_source_layout_filters(): + fact = _soi_agi_bracket_fact() + renamed_layout_filters = replace( + fact, + filters={ + "publisher_bucket": "$1 under $5,000", + "publisher_row_id": "line_12", + }, + constraints=build_aggregate_constraints(fact), + ) + + assert build_semantic_fact_key(fact) == build_semantic_fact_key( + renamed_layout_filters + ) + assert build_aggregate_fact_key(fact) != build_aggregate_fact_key( + renamed_layout_filters + ) + + +def test_consumer_contract_rejects_implicit_filter_constraints(tmp_path): + fact = replace(_soi_agi_bracket_fact(), constraints=()) + output = tmp_path / "consumer_facts.jsonl" + + report = validate_consumer_fact_contract([fact]) + + assert not report.valid + assert report.errors[0].code == "implicit_constraints_from_filters" + with pytest.raises(ValueError, match="consumer-contract"): + write_consumer_facts_jsonl([fact], output) + assert not output.exists() + + +def test_consumer_contract_rejects_partial_filter_constraint_mismatch(tmp_path): + bracket_fact = _soi_agi_bracket_fact() + fact = replace(bracket_fact, constraints=bracket_fact.constraints[:1]) + output = tmp_path / "consumer_facts.jsonl" + + report = validate_consumer_fact_contract([fact]) + + assert not report.valid + assert report.errors[0].code == "constraint_filter_mismatch" + with pytest.raises(ValueError, match="consumer-contract"): + write_consumer_facts_jsonl([fact], output) + assert not output.exists() + + +def test_consumer_contract_rejects_source_specific_explicit_constraints(): + bracket_fact = _soi_agi_bracket_fact() + source_specific_constraints = build_aggregate_constraints( + replace(bracket_fact, constraints=()) + ) + fact = replace(bracket_fact, constraints=source_specific_constraints) + + report = validate_consumer_fact_contract([fact]) + + assert not report.valid + assert report.errors[0].code == "constraint_filter_mismatch" + + +def test_consumer_contract_rejects_extra_source_specific_constraints(): + bracket_fact = _soi_agi_bracket_fact() + source_specific_constraints = build_aggregate_constraints( + replace(bracket_fact, constraints=()) + ) + fact = replace( + bracket_fact, + constraints=(*bracket_fact.constraints, *source_specific_constraints), + ) + + report = validate_consumer_fact_contract([fact]) + + assert not report.valid + assert "source_specific_constraint_variable" in { + error.code for error in report.errors + } + + +def test_consumer_contract_rejects_source_specific_equality_constraint(): + bracket_fact = _soi_agi_bracket_fact() + source_specific_constraint = AggregateConstraint( + variable="irs_soi.adjusted_gross_income", + operator="==", + value="1_to_5k", + ) + fact = replace( + bracket_fact, + constraints=(*bracket_fact.constraints, source_specific_constraint), + ) + + report = validate_consumer_fact_contract([fact]) + + assert not report.valid + assert "source_specific_constraint_variable" in { + error.code for error in report.errors + } + + +def test_consumer_contract_rejects_unrelated_source_specific_constraint(): + bracket_fact = _soi_agi_bracket_fact() + unrelated_constraint = AggregateConstraint( + variable="irs_soi:some_other_variable", + operator=">=", + value=1, + ) + fact = replace( + bracket_fact, + constraints=(*bracket_fact.constraints, unrelated_constraint), + ) + + report = validate_consumer_fact_contract([fact]) + + assert not report.valid + assert "source_specific_constraint_variable" in { + error.code for error in report.errors + } + + +def test_consumer_contract_does_not_overcanonicalize_source_filters(monkeypatch): + bracket_fact = _soi_agi_bracket_fact() + filing_status_constraint = AggregateConstraint( + variable="irs_soi.filing_status", + operator="==", + value="single", + ) + explicit_constraint = AggregateConstraint( + variable=bracket_fact.layout.groupby_dimension, + operator="==", + value="single", + ) + fact = replace(bracket_fact, constraints=(explicit_constraint,)) + monkeypatch.setattr( + consumer_contract, + "_filter_derived_constraints", + lambda _: (filing_status_constraint,), + ) + + report = validate_consumer_fact_contract([fact]) + + assert not report.valid + assert report.errors[0].code == "constraint_filter_mismatch" + + +def test_consumer_contract_does_not_overcanonicalize_exact_measure_source_concept(): + bracket_fact = _soi_agi_bracket_fact() + wrong_groupby = replace( + bracket_fact.layout, + groupby_dimension="us:tax#filing_status", + ) + fact = replace(bracket_fact, layout=wrong_groupby) + + report = validate_consumer_fact_contract([fact]) + + assert not report.valid + assert report.errors[0].code == "constraint_filter_mismatch" + + +def test_consumer_contract_counts_duplicate_filter_constraints(monkeypatch): + bracket_fact = _soi_agi_bracket_fact() + duplicate_constraint = AggregateConstraint( + variable="irs_soi.adjusted_gross_income", + operator=">=", + value=1, + unit="usd", + ) + explicit_constraint = AggregateConstraint( + variable=bracket_fact.layout.groupby_dimension, + operator=">=", + value=1, + unit="usd", + ) + fact = replace(bracket_fact, constraints=(explicit_constraint,)) + monkeypatch.setattr( + consumer_contract, + "_filter_derived_constraints", + lambda _: (duplicate_constraint, duplicate_constraint), + ) + + report = validate_consumer_fact_contract([fact]) + + assert not report.valid + assert report.errors[0].code == "constraint_filter_mismatch" + + +def test_consumer_fact_row_rejects_invalid_contract_fact(): + fact = replace(_soi_agi_bracket_fact(), constraints=()) + + with pytest.raises(ValueError, match="consumer-contract"): + consumer_fact_row(fact) + + +def test_semantic_fact_key_changes_with_canonical_concept(): + fact = _soi_agi_fact() + changed = replace( + fact, + measure=Measure( + concept="irs_soi.adjusted_gross_income_revised", + unit=fact.measure.unit, + source_concept=fact.measure.source_concept, + concept_relation=fact.measure.concept_relation, + concept_authority=fact.measure.concept_authority, + concept_evidence_url=fact.measure.concept_evidence_url, + concept_evidence_notes=fact.measure.concept_evidence_notes, + legal_vintage=fact.measure.legal_vintage, + ), + ) + + assert build_semantic_fact_key(fact) != build_semantic_fact_key(changed) + + +def test_write_consumer_facts_jsonl(tmp_path): + output = tmp_path / "consumer_facts.jsonl" + + report = write_consumer_facts_jsonl([_soi_agi_fact()], output) + rows = [json.loads(line) for line in output.read_text().splitlines()] + + assert report.to_dict() == { + "schema_version": CONSUMER_FACT_SCHEMA_VERSION, + "fact_count": 1, + "output": str(output), + } + assert len(rows) == 1 + assert rows[0]["aggregate_fact_key"].startswith("arch.aggregate_fact.v2:") + + +def test_consumer_fact_row_marks_decimal_values_as_decimal_strings(): + row = consumer_fact_row(replace(_soi_agi_fact(), value=Decimal("1.25"))) + + assert row["value"] == "1.25" + assert row["value_type"] == "decimal" + + +def test_consumer_fact_row_preserves_required_empty_dimensions(): + row = consumer_fact_row(replace(_soi_agi_fact(), filters={})) + + assert row["dimensions"] == {} + + +def test_checked_in_consumer_fact_sample_matches_schema(): + schema = json.loads(CONSUMER_FACT_SCHEMA_PATH.read_text()) + rows = _load_jsonl(CONSUMER_FACT_SAMPLE_PATH) + + assert len(rows) == 3 + for row in rows: + _assert_matches_schema(row, schema, schema) + + +def test_checked_in_consumer_fact_sample_matches_exporter(): + expected = [ + consumer_fact_row(fact) + for fact in build_soi_table_1_1_facts(2023)[:3] + ] + + assert _load_jsonl(CONSUMER_FACT_SAMPLE_PATH) == expected + + +def test_generated_consumer_fact_export_matches_schema(tmp_path): + schema = json.loads(CONSUMER_FACT_SCHEMA_PATH.read_text()) + output = tmp_path / "consumer_facts.jsonl" + + write_consumer_facts_jsonl(build_soi_table_1_1_facts(2023), output) + + for row in _load_jsonl(output): + _assert_matches_schema(row, schema, schema) + + +def test_export_consumer_facts_cli_writes_fixture(tmp_path, capsys): + output = tmp_path / "consumer_facts.jsonl" + + exit_code = main(["export-consumer-facts", "--fixture", "--output", str(output)]) + payload = json.loads(capsys.readouterr().out) + first_row = json.loads(output.read_text().splitlines()[0]) + + assert exit_code == 0 + assert payload["valid"] + assert payload["fact_count"] == 80 + assert payload["schema_version"] == CONSUMER_FACT_SCHEMA_VERSION + assert payload["source_validation"]["valid"] + assert payload["contract_validation"]["valid"] + assert first_row["aggregate_fact_key"].startswith("arch.aggregate_fact.v2:") + + +def test_export_consumer_facts_cli_rejects_invalid_facts(tmp_path, capsys): + input_path = tmp_path / "facts.jsonl" + output_path = tmp_path / "consumer_facts.jsonl" + invalid_fact = replace( + _soi_agi_fact(), + source=replace(_soi_agi_fact().source, source_name=None), + ) + save_facts_jsonl([invalid_fact], input_path) + + exit_code = main( + [ + "export-consumer-facts", + "--input", + str(input_path), + "--output", + str(output_path), + ] + ) + payload = json.loads(capsys.readouterr().out) + + assert exit_code == 1 + assert not payload["valid"] + assert not payload["source_validation"]["valid"] + assert payload["contract_validation"]["valid"] + assert payload["source_validation"]["errors"][0]["code"] == "missing_field" + assert not output_path.exists() + + +def test_export_consumer_facts_cli_rejects_contract_invalid_facts(tmp_path, capsys): + input_path = tmp_path / "facts.jsonl" + output_path = tmp_path / "consumer_facts.jsonl" + invalid_fact = replace( + _soi_agi_fact(), + source=replace(_soi_agi_fact().source, source_file=None), + ) + save_facts_jsonl([invalid_fact], input_path) + + exit_code = main( + [ + "export-consumer-facts", + "--input", + str(input_path), + "--output", + str(output_path), + ] + ) + payload = json.loads(capsys.readouterr().out) + + assert exit_code == 1 + assert not payload["valid"] + assert payload["source_validation"]["valid"] + assert not payload["contract_validation"]["valid"] + assert payload["contract_validation"]["errors"][0]["code"] == ( + "missing_contract_provenance" + ) + assert not output_path.exists() + + +def test_export_consumer_facts_cli_preserves_decimal_values(tmp_path, capsys): + input_path = tmp_path / "facts.jsonl" + output_path = tmp_path / "consumer_facts.jsonl" + save_facts_jsonl([replace(_soi_agi_fact(), value=Decimal("1.25"))], input_path) + + exit_code = main( + [ + "export-consumer-facts", + "--input", + str(input_path), + "--output", + str(output_path), + ] + ) + row = json.loads(output_path.read_text().splitlines()[0]) + + assert exit_code == 0 + assert json.loads(capsys.readouterr().out)["valid"] + assert row["value"] == "1.25" + assert row["value_type"] == "decimal" diff --git a/tests/test_arch_core.py b/tests/test_arch_core.py new file mode 100644 index 0000000..b73cb39 --- /dev/null +++ b/tests/test_arch_core.py @@ -0,0 +1,158 @@ +"""Tests for canonical Arch aggregate facts.""" + +from __future__ import annotations + +import builtins +import importlib +import sys + +from arch.core import ( + Aggregation, + EntityDimension, + GeographyDimension, + Measure, + PeriodDimension, + SourceProvenance, + SourceRecordLayout, + AggregateFact, + build_label, + build_fact_key, + validate_fact, + validate_facts, +) + + +def _fact(**overrides): + fact = AggregateFact( + value=1000, + period=PeriodDimension(type="tax_year", value=2023), + geography=GeographyDimension( + level="country", + id="0100000US", + vintage="2020_census", + name="United States", + ), + entity=EntityDimension(name="tax_unit", role="filing_unit"), + measure=Measure(concept="irs_soi.adjusted_gross_income", unit="usd"), + aggregation=Aggregation(method="sum"), + filters={"filing_status": "all"}, + source=SourceProvenance( + source_name="irs_soi", + source_table="Publication 1304 Table 1.1", + source_file="23in11si.xls", + url="https://www.irs.gov/statistics/soi-tax-stats", + vintage="tax_year_2023", + extracted_at="2026-05-04", + extraction_method="fixture hand entry", + method_notes="Fixture value for schema tests.", + ), + label="United States tax year 2023 sum adjusted gross income", + ) + return AggregateFact(**{**fact.__dict__, **overrides}) + + +def test_arch_core_imports_without_microplex(monkeypatch): + for name in list(sys.modules): + if name == "microplex" or name.startswith("microplex."): + del sys.modules[name] + + real_import = builtins.__import__ + + def guarded_import(name, *args, **kwargs): + if name == "microplex" or name.startswith("microplex."): + raise AssertionError("arch.core imported microplex") + return real_import(name, *args, **kwargs) + + monkeypatch.setattr(builtins, "__import__", guarded_import) + import arch.core + + importlib.reload(arch.core) + + +def test_valid_fact_passes_validation(): + assert validate_fact(_fact()) == () + assert validate_facts([_fact()]).valid + + +def test_stable_key_ignores_human_label(): + fact = _fact() + relabeled = _fact(label="A different display label") + + assert build_fact_key(fact) == build_fact_key(relabeled) + + +def test_stable_key_ignores_source_table_layout(): + fact = _fact() + with_layout = _fact( + layout=SourceRecordLayout( + record_set_id="irs_soi.ty2023.table_1_1", + groupby_value_id="all", + groupby_ordinal=0, + measure_id="adjusted_gross_income", + measure_ordinal=1, + ) + ) + + assert build_fact_key(fact) == build_fact_key(with_layout) + + +def test_duplicate_key_is_reported(): + report = validate_facts([_fact(), _fact(label="Different label")]) + + assert not report.valid + assert [error.code for error in report.errors] == ["duplicate_key"] + + +def test_missing_provenance_is_reported(): + fact = _fact( + source=SourceProvenance( + source_name=None, + vintage=None, + extracted_at=None, + extraction_method=None, + ) + ) + + error_codes = {error.code for error in validate_fact(fact)} + + assert "missing_field" in error_codes + assert "missing_provenance" in error_codes + + +def test_malformed_geography_entity_and_aggregation_are_reported(): + fact = _fact( + geography=GeographyDimension(level="planet", id="earth"), + entity=EntityDimension(name="simulator_row"), + aggregation=Aggregation(method="magic"), + ) + + errors = validate_fact(fact) + error_codes = {error.code for error in errors} + + assert "malformed_geography" in error_codes + assert "malformed_entity" in error_codes + assert "malformed_aggregation" in error_codes + + +def test_source_concept_requires_relation(): + fact = _fact( + measure=Measure( + concept="us:statutes/26/62#adjusted_gross_income", + unit="usd", + source_concept="irs_soi.adjusted_gross_income", + ) + ) + + errors = validate_fact(fact) + + assert "missing_field" in {error.code for error in errors} + + +def test_label_generation_uses_metadata_not_key_path(): + fact = _fact(label=None) + + assert build_label(fact) == ( + "United States 2023 tax year sum irs soi adjusted gross income " + "for tax unit (filing status=all) " + "[irs_soi Publication 1304 Table 1.1 23in11si.xls tax_year_2023]" + ) diff --git a/tests/test_arch_database.py b/tests/test_arch_database.py new file mode 100644 index 0000000..7ce218b --- /dev/null +++ b/tests/test_arch_database.py @@ -0,0 +1,202 @@ +"""Tests for the relational Arch database artifact.""" + +from __future__ import annotations + +from dataclasses import replace +import sqlite3 + +import pytest + +from arch.core import build_aggregate_constraints +from arch.jurisdictions.us.soi import AXIOM_IRC_AGI_CONCEPT +from arch.database import build_arch_db +from arch.harness import build_arch_db_file +from arch.jurisdictions.us.soi import ( + build_soi_table_1_1_source_cells, + build_soi_table_1_1_facts, +) + + +def test_build_aggregate_constraints_lifts_agi_filters(): + fact = next( + fact + for fact in build_soi_table_1_1_facts(2023) + if fact.source_record_id + == "irs_soi.ty2023.table_1_1.100k_to_200k.return_count" + ) + + constraints = build_aggregate_constraints(fact) + + assert [(item.variable, item.operator, item.value, item.unit) for item in constraints] == [ + (AXIOM_IRC_AGI_CONCEPT, ">=", 100_000, "usd"), + (AXIOM_IRC_AGI_CONCEPT, "<", 200_000, "usd"), + ] + + +def test_build_arch_db_writes_aggregate_fact_constraints_and_lineage(tmp_path): + db_path = tmp_path / "arch-fixture.db" + facts = build_soi_table_1_1_facts(2023) + cells = build_soi_table_1_1_source_cells(2023) + + report = build_arch_db(facts, db_path, source_cells=cells) + + assert report.facts_count == 80 + assert report.source_records_count == 80 + assert report.source_cells_count == 1932 + assert report.source_artifacts_count == 1 + + with sqlite3.connect(db_path) as connection: + connection.row_factory = sqlite3.Row + artifact = connection.execute( + """ + SELECT raw_r2_bucket, raw_r2_key, raw_r2_uri + FROM source_artifacts + WHERE artifact_sha256 = ? + """, + (cells[0].artifact.sha256,), + ).fetchone() + build_artifact_count = connection.execute( + "SELECT COUNT(*) FROM build_artifacts" + ).fetchone()[0] + all_returns = connection.execute( + """ + SELECT * + FROM aggregate_facts + WHERE source_record_id = ? + """, + ("irs_soi.ty2023.table_1_1.all.return_count",), + ).fetchone() + + assert all_returns["measure_concept"] == "irs_soi.individual_income_tax_returns" + assert all_returns["aggregation_method"] == "count" + assert all_returns["entity_name"] == "tax_unit" + assert all_returns["value_numeric"] == 160_602_107 + assert all_returns["domain"] == "all_individual_income_tax_returns" + assert artifact["raw_r2_bucket"] == "arch-raw" + assert artifact["raw_r2_key"].startswith( + "raw/irs_soi/soi-table-1-1/2023/" + ) + assert artifact["raw_r2_uri"].startswith("r2://arch-raw/") + assert build_artifact_count == 0 + + bracket = connection.execute( + """ + SELECT fact_key + FROM aggregate_facts + WHERE source_record_id = ? + """, + ("irs_soi.ty2023.table_1_1.100k_to_200k.return_count",), + ).fetchone() + constraints = connection.execute( + """ + SELECT variable, operator, value_numeric, unit + FROM aggregate_constraints + WHERE fact_key = ? + ORDER BY ordinal + """, + (bracket["fact_key"],), + ).fetchall() + + assert [tuple(row) for row in constraints] == [ + (AXIOM_IRC_AGI_CONCEPT, ">=", 100_000, "usd"), + (AXIOM_IRC_AGI_CONCEPT, "<", 200_000, "usd"), + ] + + agi_fact = connection.execute( + """ + SELECT + measure_concept, + measure_source_concept, + measure_concept_relation, + layout_record_set_id, + layout_groupby_value_id, + layout_measure_id + FROM aggregate_facts + WHERE source_record_id = ? + """, + ("irs_soi.ty2023.table_1_1.all.adjusted_gross_income",), + ).fetchone() + alignment = connection.execute( + """ + SELECT source_concept, canonical_concept, relation, authority + FROM concept_alignments + WHERE source_concept = ? + """, + ("irs_soi.adjusted_gross_income",), + ).fetchone() + + assert tuple(agi_fact) == ( + AXIOM_IRC_AGI_CONCEPT, + "irs_soi.adjusted_gross_income", + "exact", + "irs_soi.ty2023.table_1_1", + "all", + "adjusted_gross_income", + ) + assert tuple(alignment) == ( + "irs_soi.adjusted_gross_income", + AXIOM_IRC_AGI_CONCEPT, + "exact", + "arch-us", + ) + + lineage = connection.execute( + """ + SELECT source_cells.address, source_cells.raw_value_numeric + FROM aggregate_facts + JOIN fact_source_cells + ON fact_source_cells.fact_key = aggregate_facts.fact_key + JOIN source_cells + ON source_cells.source_cell_key = fact_source_cells.source_cell_key + WHERE aggregate_facts.source_record_id = ? + """, + ("irs_soi.ty2023.table_1_1.all.return_count",), + ).fetchone() + + assert tuple(lineage) == ("B10", 160_602_107) + + +def test_build_arch_db_build_id_changes_when_fact_payload_changes(tmp_path): + cells = build_soi_table_1_1_source_cells(2023) + facts = build_soi_table_1_1_facts(2023) + changed_facts = [replace(facts[0], value=999), *facts[1:]] + + original = build_arch_db( + facts, + tmp_path / "original.db", + source_cells=cells, + ) + changed = build_arch_db( + changed_facts, + tmp_path / "changed.db", + source_cells=cells, + ) + + assert original.build_id != changed.build_id + + +def test_build_arch_db_rejects_unresolved_source_cell_lineage(tmp_path): + fact = replace( + build_soi_table_1_1_facts(2023)[0], + source_cell_keys=("arch.source_cell.v1:missing",), + ) + + with pytest.raises(sqlite3.IntegrityError): + build_arch_db([fact], tmp_path / "bad-lineage.db") + + +def test_build_arch_db_file_uses_fixture_facts_and_cells(tmp_path): + db_path = tmp_path / "arch-fixture.db" + + report = build_arch_db_file(db_path) + + assert report.facts_count == 80 + assert report.source_cells_count == 1932 + with sqlite3.connect(db_path) as connection: + facts_count = connection.execute( + "SELECT COUNT(*) FROM aggregate_facts" + ).fetchone()[0] + cells_count = connection.execute("SELECT COUNT(*) FROM source_cells").fetchone()[0] + + assert facts_count == 80 + assert cells_count == 1932 diff --git a/tests/test_arch_harness.py b/tests/test_arch_harness.py new file mode 100644 index 0000000..536449b --- /dev/null +++ b/tests/test_arch_harness.py @@ -0,0 +1,39 @@ +"""Tests for the Arch fact validation harness.""" + +from __future__ import annotations + +import json + +from arch.harness import build_fixture_fact_file, validate_fixture_facts +from arch.store import load_facts_jsonl + + +def test_fixture_facts_validate_with_counts(): + report = validate_fixture_facts() + + assert report.valid + assert report.fact_count == 80 + assert report.counts["by_source"] == {"irs_soi": 80} + assert report.counts["by_entity"] == {"tax_unit": 80} + assert report.counts["by_period"] == {"tax_year:2023": 80} + + +def test_report_is_json_serializable(): + report = validate_fixture_facts() + + payload = json.loads(json.dumps(report.to_dict())) + + assert payload["fact_count"] == 80 + assert payload["errors"] == [] + + +def test_build_fixture_fact_file_writes_source_backed_jsonl(tmp_path): + output = tmp_path / "soi-facts.jsonl" + + report = build_fixture_fact_file("soi-table-1-1", output, year=2023) + facts = load_facts_jsonl(output) + + assert report.valid + assert len(facts) == 80 + assert facts[0].value == 160_602_107 + assert facts[0].source.source_file == "23in11si.xls" diff --git a/tests/test_arch_mirror.py b/tests/test_arch_mirror.py new file mode 100644 index 0000000..843fb2a --- /dev/null +++ b/tests/test_arch_mirror.py @@ -0,0 +1,226 @@ +"""Tests for hosted-mirror exports from Arch DB artifacts.""" + +from __future__ import annotations + +import json + +from arch.harness import main as harness_main +from arch.mirror import ARCH_MIRROR_TABLES, export_arch_db_tables, load_supabase_mirror +from arch.database import build_arch_db +from arch.jurisdictions.us.soi import ( + build_soi_table_1_1_source_cells, + build_soi_table_1_1_facts, +) + + +def test_export_arch_db_tables_writes_jsonl_and_manifest(tmp_path): + db_path = tmp_path / "arch.db" + output_dir = tmp_path / "mirror" + build_arch_db( + build_soi_table_1_1_facts(2023), + db_path, + source_cells=build_soi_table_1_1_source_cells(2023), + ) + + report = export_arch_db_tables(db_path, output_dir) + manifest = json.loads((output_dir / "manifest.json").read_text()) + + assert report.table_count == len(ARCH_MIRROR_TABLES) + assert manifest["table_count"] == len(ARCH_MIRROR_TABLES) + assert {table["table"] for table in manifest["tables"]} == set(ARCH_MIRROR_TABLES) + assert (output_dir / "source_cells.jsonl").exists() + assert (output_dir / "aggregate_facts.jsonl").exists() + assert (output_dir / "build_artifacts.jsonl").exists() + + first_cell = json.loads( + (output_dir / "source_cells.jsonl").read_text().splitlines()[0] + ) + first_artifact = json.loads( + (output_dir / "source_artifacts.jsonl").read_text().splitlines()[0] + ) + first_fact = json.loads( + (output_dir / "aggregate_facts.jsonl").read_text().splitlines()[0] + ) + + assert first_cell["artifact_sha256"] + assert "raw_r2_key" in first_artifact + assert "raw_value_json" in first_cell + assert isinstance(first_fact["filters_json"], dict) + + +def test_export_arch_db_tables_orders_rows_deterministically(tmp_path): + db_path = tmp_path / "arch.db" + first_output_dir = tmp_path / "mirror-first" + second_output_dir = tmp_path / "mirror-second" + build_arch_db( + build_soi_table_1_1_facts(2023), + db_path, + source_cells=build_soi_table_1_1_source_cells(2023), + ) + + first_report = export_arch_db_tables(db_path, first_output_dir) + second_report = export_arch_db_tables(db_path, second_output_dir) + + first_hashes = {table.table: table.sha256 for table in first_report.tables} + second_hashes = {table.table: table.sha256 for table in second_report.tables} + + assert first_hashes == second_hashes + + +def test_export_db_tables_cli_emits_manifest_summary(tmp_path, capsys): + db_path = tmp_path / "arch.db" + output_dir = tmp_path / "mirror" + build_arch_db( + build_soi_table_1_1_facts(2023), + db_path, + source_cells=build_soi_table_1_1_source_cells(2023), + ) + + exit_code = harness_main( + [ + "export-db-tables", + "--db", + str(db_path), + "--out", + str(output_dir), + ] + ) + payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert payload["output_dir"] == str(output_dir) + assert payload["table_count"] == len(ARCH_MIRROR_TABLES) + assert payload["row_count"] > 0 + assert (output_dir / "manifest.json").exists() + + +def test_load_supabase_mirror_dry_run_counts_exported_rows(tmp_path): + db_path = tmp_path / "arch.db" + output_dir = tmp_path / "mirror" + build_arch_db( + build_soi_table_1_1_facts(2023), + db_path, + source_cells=build_soi_table_1_1_source_cells(2023), + ) + export_report = export_arch_db_tables(db_path, output_dir) + + load_report = load_supabase_mirror(output_dir, dry_run=True, batch_size=25) + + assert load_report.valid + assert load_report.dry_run + assert load_report.table_count == len(ARCH_MIRROR_TABLES) + assert load_report.row_count == export_report.row_count + assert all( + table.row_count_matches_manifest + for table in load_report.tables + ) + + +def test_load_supabase_mirror_uses_schema_upserts_and_build_artifact_override( + tmp_path, +): + mirror_dir = tmp_path / "mirror" + mirror_dir.mkdir() + for table in ARCH_MIRROR_TABLES: + (mirror_dir / f"{table}.jsonl").write_text("") + build_artifacts_path = tmp_path / "build_artifacts.jsonl" + build_artifacts_path.write_text( + json.dumps( + { + "build_artifact_key": "arch.build_artifact.v1:test", + "build_id": "arch.build.v1:test", + "artifact_kind": "json", + "artifact_name": "reports/build_summary.json", + "sha256": "abc", + "size_bytes": 3, + "r2_bucket": "arch-derived", + "r2_key": "derived/test", + "r2_uri": "r2://arch-derived/derived/test", + }, + sort_keys=True, + ) + + "\n" + ) + client = _FakeSupabaseClient() + + report = load_supabase_mirror( + mirror_dir, + table_paths={"build_artifacts": build_artifacts_path}, + client=client, + ) + + assert report.valid + assert report.row_count == 1 + build_artifact_load = next( + table for table in report.tables if table.table == "build_artifacts" + ) + assert build_artifact_load.manifest_row_count is None + assert build_artifact_load.row_count_matches_manifest is None + assert client.upserts == [ + ( + "arch", + "build_artifacts", + "build_artifact_key", + ["arch.build_artifact.v1:test"], + ) + ] + + +def test_load_supabase_mirror_cli_dry_run(tmp_path, capsys): + mirror_dir = tmp_path / "mirror" + mirror_dir.mkdir() + for table in ARCH_MIRROR_TABLES: + (mirror_dir / f"{table}.jsonl").write_text("") + + exit_code = harness_main( + [ + "load-supabase-mirror", + "--dir", + str(mirror_dir), + "--dry-run", + ] + ) + payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert payload["valid"] + assert payload["dry_run"] + assert payload["table_count"] == len(ARCH_MIRROR_TABLES) + + +class _FakeSupabaseClient: + def __init__(self): + self.upserts = [] + + def schema(self, schema): + return _FakeSupabaseSchema(self, schema) + + +class _FakeSupabaseSchema: + def __init__(self, client, schema): + self.client = client + self.schema = schema + + def table(self, table): + return _FakeSupabaseTable(self.client, self.schema, table) + + +class _FakeSupabaseTable: + def __init__(self, client, schema, table): + self.client = client + self.schema = schema + self.table = table + + def upsert(self, rows, *, on_conflict): + self.client.upserts.append( + ( + self.schema, + self.table, + on_conflict, + [row.get("build_artifact_key") for row in rows], + ) + ) + return self + + def execute(self): + return None diff --git a/tests/test_arch_pe_source_plan.py b/tests/test_arch_pe_source_plan.py new file mode 100644 index 0000000..ef3a135 --- /dev/null +++ b/tests/test_arch_pe_source_plan.py @@ -0,0 +1,641 @@ +"""Tests for PE source agent batch planning.""" + +from __future__ import annotations + +import csv +import json + +from arch.harness import main as harness_main +from arch.pe_source_plan import build_pe_source_plan + + +FIELDNAMES = [ + "status", + "origin_project", + "jurisdiction", + "pipeline", + "source_id", + "artifact_role", + "artifact_kind", + "artifact", + "filename", + "format", + "exists_locally", + "arch_source_status", + "source_cell_status", + "target_construction_status", + "value_capture_policy", + "notes", +] + + +def test_build_pe_source_plan_classifies_agent_work(tmp_path): + manifest = tmp_path / "manifest.csv" + _write_manifest( + manifest, + [ + _row( + pipeline="national-soi-workbooks", + source_id="irs-soi", + artifact_kind="url", + artifact="https://www.irs.gov/pub/irs-soi/23in12ms.xls", + filename="irs_soi_ty2023_table_1_2.xls", + format=".xls", + exists_locally="n/a", + arch_source_status="not_loaded", + ), + _row( + pipeline="database", + artifact_role="pe_intermediate", + artifact_kind="local_file", + artifact="policyengine_us_data/storage/calibration/raw_inputs/source.csv", + filename="source.csv", + format=".csv", + exists_locally="yes", + arch_source_status="not_loaded", + ), + _row( + pipeline="long-term-target-references", + source_id="ssa", + artifact_kind="url", + artifact="https://www.ssa.gov/source.pdf", + filename="source.pdf", + format=".pdf", + exists_locally="n/a", + arch_source_status="row_parsed", + ), + _row( + pipeline="cbo-source-documents", + source_id="cbo", + artifact_kind="url", + artifact="https://www.cbo.gov/source.xlsx", + filename="blocked.xlsx", + format=".xlsx", + exists_locally="n/a", + arch_source_status="blocked", + source_cell_status="blocked_by_access_datadome", + ), + _row( + pipeline="local-geography-source-documents", + source_id="census", + artifact_kind="url", + artifact="https://www2.census.gov/source.zip", + filename="deferred.zip", + format=".zip", + exists_locally="n/a", + arch_source_status="deferred", + source_cell_status="deferred_geography_support_no_fact_package", + ), + _row( + pipeline="soi-source-pages", + source_id="irs-soi", + artifact_kind="url", + artifact="https://www.irs.gov/statistics/source-page", + filename="source_page.html", + format=".html", + exists_locally="n/a", + arch_source_status="source_package", + target_construction_status="build_suite_valid", + notes="Package soi-table-1-1 preserves the linked workbook.", + ), + ], + ) + + report = build_pe_source_plan( + manifest, + batch_size=2, + source_package_root=None, + ) + stages = { + item.filename: item.recommended_stage + for batch in report.batches + for item in batch.items + } + command_hints = { + item.filename: item.command_hint + for batch in report.batches + for item in batch.items + } + + assert report.row_count == 6 + assert report.item_count == 6 + assert stages["irs_soi_ty2023_table_1_2.xls"] == "fetch_artifact" + assert stages["source.csv"] == "register_local_artifact" + assert stages["source.pdf"] == "source_cell_scaffold" + assert stages["blocked.xlsx"] == "blocked_or_deferred" + assert stages["deferred.zip"] == "blocked_or_deferred" + assert stages["source_page.html"] == "existing_source_package" + assert "Manifest marks this row as source_package" in command_hints[ + "source_page.html" + ] + assert report.counts["by_recommended_stage"] == { + "blocked_or_deferred": 2, + "existing_source_package": 1, + "fetch_artifact": 1, + "register_local_artifact": 1, + "source_cell_scaffold": 1, + } + assert report.counts["by_publisher_hint"] == {"missing": 6} + + +def test_build_pe_source_plan_marks_existing_source_packages(tmp_path): + manifest = tmp_path / "manifest.csv" + packages = tmp_path / "packages" + package_dir = packages / "irs_soi" / "table_1_1" + resource_dir = tmp_path / "db" / "data" / "irs_soi" / "table_1_1" + package_dir.mkdir(parents=True) + resource_dir.mkdir(parents=True) + (package_dir / "source_package.yaml").write_text( + "\n".join( + [ + "schema_version: arch.source_package.v1", + "package_id: soi-table-1-1", + "artifact:", + " source_name: irs_soi", + " source_table: Table 1.1", + f" resource_package: {tmp_path / 'db'}", + " resource_directory: data/irs_soi/table_1_1", + " manifest: manifest.yaml", + "record_sets: []", + "", + ] + ), + encoding="utf-8", + ) + (resource_dir / "manifest.yaml").write_text( + "\n".join( + [ + "files:", + " 2023:", + " filename: 23in11si.xls", + " source_url: https://www.irs.gov/pub/irs-soi/23in11si.xls", + "", + ] + ), + encoding="utf-8", + ) + _write_manifest( + manifest, + [ + _row( + pipeline="national-soi-workbooks", + source_id="irs-soi", + artifact_kind="url", + artifact="https://www.irs.gov/pub/irs-soi/23in11si.xls", + filename="irs_soi_ty2023_table_1_1.xls", + format=".xls", + exists_locally="n/a", + arch_source_status="not_loaded", + ) + ], + ) + + report = build_pe_source_plan( + manifest, + source_package_root=packages, + ) + item = report.batches[0].items[0] + + assert item.recommended_stage == "existing_source_package" + assert item.package_id == "soi-table-1-1" + assert "build-suite" in item.command_hint + + +def test_build_pe_source_plan_keeps_artifact_year_packages_to_pinned_year( + tmp_path, +): + manifest = tmp_path / "manifest.csv" + packages = tmp_path / "packages" + all_returns_dir = packages / "irs_soi" / "table_2_5" + child_dir = packages / "irs_soi" / "table_2_5_eitc_children_2020" + resource_dir = tmp_path / "db" / "data" / "irs_soi" / "table_2_5" + all_returns_dir.mkdir(parents=True) + child_dir.mkdir(parents=True) + resource_dir.mkdir(parents=True) + shared_artifact = [ + " source_name: irs_soi", + " source_table: Table 2.5", + f" resource_package: {tmp_path / 'db'}", + " resource_directory: data/irs_soi/table_2_5", + " manifest: manifest.yaml", + ] + (all_returns_dir / "source_package.yaml").write_text( + "\n".join( + [ + "schema_version: arch.source_package.v1", + "package_id: soi-table-2-5", + "artifact:", + *shared_artifact, + "record_sets: []", + "", + ] + ), + encoding="utf-8", + ) + (child_dir / "source_package.yaml").write_text( + "\n".join( + [ + "schema_version: arch.source_package.v1", + "package_id: soi-table-2-5-eitc-children-2020", + "artifact:", + *shared_artifact, + " artifact_year: 2020", + "record_sets: []", + "", + ] + ), + encoding="utf-8", + ) + (resource_dir / "manifest.yaml").write_text( + "\n".join( + [ + "files:", + " 2020:", + " filename: 20in25ic.xls", + " source_url: https://www.irs.gov/pub/irs-soi/20in25ic.xls", + " 2021:", + " filename: 21in25ic.xls", + " source_url: https://www.irs.gov/pub/irs-soi/21in25ic.xls", + "", + ] + ), + encoding="utf-8", + ) + _write_manifest( + manifest, + [ + _row( + pipeline="national-soi-workbooks", + source_id="irs-soi", + artifact_kind="url", + artifact="https://www.irs.gov/pub/irs-soi/21in25ic.xls", + filename="irs_soi_ty2021_table_2_5.xls", + format=".xls", + exists_locally="n/a", + arch_source_status="source_package", + target_construction_status="build_suite_valid", + notes="Package soi-table-2-5 preserves the official source.", + ), + _row( + pipeline="legacy-loss-targets", + source_id="irs-soi", + artifact_role="pe_intermediate", + artifact_kind="local_file", + artifact="policyengine_us_data/storage/calibration_targets/eitc.csv", + filename="eitc.csv", + format=".csv", + exists_locally="yes", + arch_source_status="source_package", + target_construction_status="build_suite_valid", + notes=( + "Package soi-table-2-5-eitc-children-2020 preserves " + "the official IRS SOI source." + ), + ), + ], + ) + + report = build_pe_source_plan(manifest, source_package_root=packages) + items_by_filename = { + item.filename: item + for batch in report.batches + for item in batch.items + } + + assert items_by_filename["irs_soi_ty2021_table_2_5.xls"].package_id == ( + "soi-table-2-5" + ) + assert "--year 2021" in items_by_filename[ + "irs_soi_ty2021_table_2_5.xls" + ].command_hint + assert items_by_filename["eitc.csv"].package_id == ( + "soi-table-2-5-eitc-children-2020" + ) + assert "--year 2020" in items_by_filename["eitc.csv"].command_hint + + +def test_build_pe_source_plan_prefers_package_named_in_notes_for_shared_url( + tmp_path, +): + manifest = tmp_path / "manifest.csv" + packages = tmp_path / "packages" + first_dir = packages / "bea" / "nipa_pension_contributions" + second_dir = packages / "bea" / "nipa_total_wages_salaries" + resource_dir = tmp_path / "db" / "data" / "bea" / "nipa" + first_dir.mkdir(parents=True) + second_dir.mkdir(parents=True) + resource_dir.mkdir(parents=True) + shared_artifact = [ + " source_name: bea", + " source_table: NIPA annual flat file", + f" resource_package: {tmp_path / 'db'}", + " resource_directory: data/bea/nipa", + " manifest: manifest.yaml", + ] + for package_dir, package_id in ( + (first_dir, "bea-nipa-pension-contributions"), + (second_dir, "bea-nipa-total-wages-salaries"), + ): + (package_dir / "source_package.yaml").write_text( + "\n".join( + [ + "schema_version: arch.source_package.v1", + f"package_id: {package_id}", + "artifact:", + *shared_artifact, + "record_sets: []", + "", + ] + ), + encoding="utf-8", + ) + (resource_dir / "manifest.yaml").write_text( + "\n".join( + [ + "files:", + " 2024:", + " filename: NipaDataA.txt", + " source_url: https://apps.bea.gov/national/Release/TXT/NipaDataA.txt", + "", + ] + ), + encoding="utf-8", + ) + _write_manifest( + manifest, + [ + _row( + pipeline="macro-source-documents", + source_id="bea", + artifact_kind="url", + artifact="https://apps.bea.gov/national/Release/TXT/NipaDataA.txt", + filename="bea_nipa_annual_data_ba06rc.txt", + format=".txt", + exists_locally="n/a", + arch_source_status="source_package", + target_construction_status="build_suite_valid", + notes=( + "Package bea-nipa-total-wages-salaries preserves the " + "official BEA source." + ), + ), + ], + ) + + report = build_pe_source_plan(manifest, source_package_root=packages) + item = report.batches[0].items[0] + + assert item.package_id == "bea-nipa-total-wages-salaries" + assert item.package_path.endswith("packages/bea/nipa_total_wages_salaries") + + +def test_build_pe_source_plan_matches_source_package_local_files_by_filename(tmp_path): + manifest = tmp_path / "manifest.csv" + packages = tmp_path / "packages" + package_dir = packages / "ssa" / "population_projections_tr2024" + resource_dir = tmp_path / "db" / "data" / "ssa" / "population_projections_tr2024" + package_dir.mkdir(parents=True) + resource_dir.mkdir(parents=True) + (package_dir / "source_package.yaml").write_text( + "\n".join( + [ + "schema_version: arch.source_package.v1", + "package_id: ssa-population-projections-tr2024", + "artifact:", + " source_name: ssa", + " source_table: Population projections", + f" resource_package: {tmp_path / 'db'}", + " resource_directory: data/ssa/population_projections_tr2024", + " manifest: manifest.yaml", + "record_sets: []", + "", + ] + ), + encoding="utf-8", + ) + (resource_dir / "manifest.yaml").write_text( + "\n".join( + [ + "files:", + " 2024:", + " filename: SSPopJul_TR2024.csv", + " source_url: https://www.ssa.gov/oact/HistEst/Population/2024/SSPopJul_TR2024.csv", + "", + ] + ), + encoding="utf-8", + ) + _write_manifest( + manifest, + [ + _row( + pipeline="long-term-target-sources", + source_id="ssa", + artifact_role="pe_support", + artifact_kind="local_file", + artifact="policyengine_us_data/storage/SSPopJul_TR2024.csv", + filename="SSPopJul_TR2024.csv", + format=".csv", + exists_locally="yes", + arch_source_status="source_package", + target_construction_status="build_suite_valid", + ) + ], + ) + + report = build_pe_source_plan(manifest, source_package_root=packages) + item = report.batches[0].items[0] + + assert item.recommended_stage == "existing_source_package" + assert item.package_id == "ssa-population-projections-tr2024" + assert item.package_path.endswith("packages/ssa/population_projections_tr2024") + assert "build-suite" in item.command_hint + + +def test_build_pe_source_plan_matches_source_package_named_in_notes(tmp_path): + manifest = tmp_path / "manifest.csv" + packages = tmp_path / "packages" + package_dir = packages / "irs_soi" / "historic_table_2_state_agi_2022" + resource_dir = tmp_path / "db" / "data" / "irs_soi" / "historic_table_2" + package_dir.mkdir(parents=True) + resource_dir.mkdir(parents=True) + (package_dir / "source_package.yaml").write_text( + "\n".join( + [ + "schema_version: arch.source_package.v1", + "package_id: soi-historic-table-2-state-agi-2022", + "artifact:", + " source_name: irs_soi", + " source_table: Historic Table 2 state AGI", + f" resource_package: {tmp_path / 'db'}", + " resource_directory: data/irs_soi/historic_table_2", + " manifest: manifest.yaml", + "record_sets: []", + "", + ] + ), + encoding="utf-8", + ) + (resource_dir / "manifest.yaml").write_text( + "\n".join( + [ + "files:", + " 2022:", + " filename: 22in55cmcsv.csv", + " source_url: https://www.irs.gov/pub/irs-soi/22in55cmcsv.csv", + "", + ] + ), + encoding="utf-8", + ) + _write_manifest( + manifest, + [ + _row( + pipeline="legacy-loss-targets", + source_id="irs-soi", + artifact_role="pe_intermediate", + artifact_kind="local_file", + artifact="policyengine_us_data/storage/calibration_targets/agi_state.csv", + filename="agi_state.csv", + format=".csv", + exists_locally="yes", + arch_source_status="source_package", + target_construction_status="build_suite_valid", + notes=( + "Package soi-historic-table-2-state-agi-2022 preserves " + "the official IRS SOI source." + ), + ) + ], + ) + + report = build_pe_source_plan(manifest, source_package_root=packages) + item = report.batches[0].items[0] + + assert item.recommended_stage == "existing_source_package" + assert item.package_id == "soi-historic-table-2-state-agi-2022" + assert item.package_path.endswith( + "packages/irs_soi/historic_table_2_state_agi_2022" + ) + assert "build-suite" in item.command_hint + + +def test_plan_pe_sources_cli_writes_json_and_markdown(tmp_path, capsys): + manifest = tmp_path / "manifest.csv" + output = tmp_path / "plan.json" + markdown = tmp_path / "plan.md" + _write_manifest( + manifest, + [ + _row( + pipeline="national-soi-workbooks", + source_id="irs-soi", + artifact_kind="url", + artifact="https://www.irs.gov/pub/irs-soi/23in12ms.xls", + filename="irs_soi_ty2023_table_1_2.xls", + format=".xls", + exists_locally="n/a", + arch_source_status="not_loaded", + ) + ], + ) + + exit_code = harness_main( + [ + "plan-pe-sources", + "--manifest", + str(manifest), + "--out", + str(output), + "--markdown", + str(markdown), + ] + ) + payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert payload["valid"] + assert output.exists() + assert markdown.exists() + assert json.loads(output.read_text())["item_count"] == 1 + assert "irs_soi_ty2023_table_1_2.xls" in markdown.read_text() + + +def test_build_pe_source_plan_does_not_treat_embedded_ids_as_years(tmp_path): + manifest = tmp_path / "manifest.csv" + _write_manifest( + manifest, + [ + _row( + pipeline="macro-source-documents", + source_id="bea", + artifact="https://example.test/series/ABC192090005Q", + filename="bea_abc192090005q.html", + format=".html", + ) + ], + ) + + report = build_pe_source_plan(manifest) + item = report.batches[0].items[0] + + assert "--year TODO_YEAR" in item.command_hint + assert "--year 2090" not in item.command_hint + + +def test_build_pe_source_plan_routes_fred_to_publisher_lookup(tmp_path): + manifest = tmp_path / "manifest.csv" + _write_manifest( + manifest, + [ + _row( + pipeline="macro-source-documents", + source_id="fred", + artifact="https://fred.stlouisfed.org/series/Y351RC1A027NBEA", + filename="fred_y351rc1a027nbea.html", + format=".html", + notes="FRED/BEA defined-contribution pension contribution series page.", + ) + ], + ) + + report = build_pe_source_plan(manifest) + item = report.batches[0].items[0] + + assert item.recommended_stage == "find_primary_source" + assert item.publisher_hint == "bea" + assert item.priority == 75 + assert item.blockers == ("publisher_source_required",) + assert "Find and register the bea publisher artifact" in item.command_hint + assert "Do not use this FRED URL as an Arch source artifact" in item.command_hint + + +def _row(**overrides): + row = { + "status": "todo", + "origin_project": "policyengine-us-data", + "jurisdiction": "us", + "pipeline": "database", + "source_id": "census", + "artifact_role": "publisher_source", + "artifact_kind": "url", + "artifact": "https://example.test/source.csv", + "filename": "source.csv", + "format": ".csv", + "exists_locally": "n/a", + "arch_source_status": "not_loaded", + "source_cell_status": "blocked_by_artifact_status", + "target_construction_status": "not_ready", + "value_capture_policy": "full source artifact", + "notes": "test row", + } + row.update(overrides) + return row + + +def _write_manifest(path, rows): + with path.open("w", newline="", encoding="utf-8") as file: + writer = csv.DictWriter(file, fieldnames=FIELDNAMES) + writer.writeheader() + writer.writerows(rows) diff --git a/tests/test_arch_soi_targets.py b/tests/test_arch_soi_targets.py new file mode 100644 index 0000000..b50d6f4 --- /dev/null +++ b/tests/test_arch_soi_targets.py @@ -0,0 +1,183 @@ +"""Tests for source-backed Arch SOI fact builders.""" + +from __future__ import annotations + +from arch.core import validate_facts +from arch.jurisdictions.us.soi import ( + AXIOM_IRC_AGI_CONCEPT, + IRS_SOI_AGI_SOURCE_CONCEPT, + build_soi_table_1_1_source_cells, + build_soi_table_1_1_source_region_specs, + build_soi_table_1_1_source_record_set_spec, + build_soi_table_1_1_source_record_specs, + build_soi_table_1_1_facts, + build_soi_table_1_4_source_region_specs, + build_soi_table_1_4_facts, + _legacy_soi_table_1_1_source_record_specs, +) +from arch.sources.cells import build_source_cell_key + + +def test_build_soi_table_1_1_facts_from_packaged_source(): + facts = build_soi_table_1_1_facts(2023) + values_by_concept = { + fact.measure.concept: fact.value + for fact in facts + if fact.filters["income_range"] == "all" + } + + assert validate_facts(facts).valid + assert len(facts) == 80 + assert values_by_concept == { + "irs_soi.individual_income_tax_returns": 160_602_107, + AXIOM_IRC_AGI_CONCEPT: 15_286_017_359_000, + "irs_soi.total_income_tax": 2_147_909_818_000, + "irs_soi.returns_with_income_tax_after_credits": 111_545_061, + } + assert {fact.source.url for fact in facts} == { + "https://www.irs.gov/pub/irs-soi/23in11si.xls" + } + assert all(fact.label for fact in facts) + assert all(fact.source_record_id for fact in facts) + assert all(len(fact.source_cell_keys) == 1 for fact in facts) + + +def test_build_soi_table_1_1_facts_includes_agi_brackets(): + facts = build_soi_table_1_1_facts(2023) + facts_by_concept_and_range = { + (fact.measure.concept, fact.filters["income_range"]): fact + for fact in facts + } + + returns = facts_by_concept_and_range[ + ("irs_soi.individual_income_tax_returns", "100k_to_200k") + ] + agi = facts_by_concept_and_range[ + (AXIOM_IRC_AGI_CONCEPT, "100k_to_200k") + ] + tax = facts_by_concept_and_range[ + ("irs_soi.total_income_tax", "100k_to_200k") + ] + positive_tax_returns = facts_by_concept_and_range[ + ("irs_soi.returns_with_income_tax_after_credits", "100k_to_200k") + ] + + assert returns.value == 27_602_755 + assert agi.value == 3_818_295_141_000 + assert tax.value == 409_532_689_000 + assert positive_tax_returns.value == 27_208_705 + assert returns.filters["agi_lower_usd"] == 100_000 + assert returns.filters["agi_upper_usd"] == 200_000 + assert returns.constraints[0].variable == AXIOM_IRC_AGI_CONCEPT + assert agi.measure.source_concept == IRS_SOI_AGI_SOURCE_CONCEPT + assert agi.measure.concept_relation == "exact" + assert agi.layout is not None + assert agi.layout.record_set_id == "irs_soi.ty2023.table_1_1" + assert agi.layout.groupby_dimension == AXIOM_IRC_AGI_CONCEPT + assert agi.layout.groupby_value_id == "100k_to_200k" + assert agi.layout.measure_id == "adjusted_gross_income" + + +def test_soi_facts_carry_source_cell_lineage(): + facts = build_soi_table_1_1_facts(2023) + fact = next( + fact + for fact in facts + if fact.measure.concept == AXIOM_IRC_AGI_CONCEPT + and fact.filters["income_range"] == "all" + ) + source_cell = next( + cell + for cell in build_soi_table_1_1_source_cells(2023) + if cell.address == "D10" + ) + + assert ( + fact.source_record_id + == "irs_soi.ty2023.table_1_1.all.adjusted_gross_income" + ) + assert fact.source_cell_keys == (build_source_cell_key(source_cell),) + + +def test_soi_record_set_spec_compiles_to_legacy_atomic_specs(): + record_set = build_soi_table_1_1_source_record_set_spec(2023) + compiled = build_soi_table_1_1_source_record_specs(2023) + legacy = _legacy_soi_table_1_1_source_record_specs(2023) + + assert len(record_set.rows) == 20 + assert len(record_set.measures) == 4 + assert len(compiled) == 80 + assert [ + (spec.source_record_id, spec.selector.address, spec.concept) + for spec in compiled + ] == [ + (spec.source_record_id, spec.selector.address, spec.concept) + for spec in legacy + ] + assert compiled[0].layout is not None + assert compiled[0].layout.record_set_spec_hash + + +def test_soi_source_region_spec_covers_selected_record_set(): + regions = build_soi_table_1_1_source_region_specs(2023) + + assert len(regions) == 1 + assert regions[0].region_id == "irs_soi.ty2023.table_1_1.selected_region" + assert regions[0].record_set_id == "irs_soi.ty2023.table_1_1" + assert regions[0].sheet_name == "TBL11" + assert regions[0].top_row == 10 + assert regions[0].bottom_row == 29 + assert regions[0].left_column == 1 + assert regions[0].right_column == 17 + + +def test_build_soi_table_1_4_wage_facts_from_packaged_source(): + facts = build_soi_table_1_4_facts(2023) + facts_by_concept_and_range = { + (fact.measure.concept, fact.filters["income_range"]): fact + for fact in facts + } + + assert validate_facts(facts).valid + assert len(facts) == 260 + assert facts_by_concept_and_range[ + ("irs_soi.returns_with_total_wages", "all") + ].value == 128_591_050 + all_wages = facts_by_concept_and_range[ + ("us:statutes/26/62#input.wages", "all") + ] + assert all_wages.value == 10_204_095_705_000 + assert all_wages.measure.source_concept == "irs_soi.total_wages" + assert all_wages.measure.concept_relation == "broad_match" + assert facts_by_concept_and_range[ + ("irs_soi.returns_with_total_wages", "100k_to_200k") + ].value == 23_193_910 + assert facts_by_concept_and_range[ + ("us:statutes/26/62#input.wages", "100k_to_200k") + ].value == 2_774_550_975_000 + assert facts_by_concept_and_range[ + ("irs_soi.taxable_net_capital_gains", "all") + ].value == 966_168_014_000 + assert facts_by_concept_and_range[ + ("irs_soi.taxable_pension_income", "all") + ].value == 932_130_236_000 + assert facts_by_concept_and_range[ + ("irs_soi.taxable_social_security_benefits", "all") + ].value == 527_072_873_000 + assert {fact.source.url for fact in facts} == { + "https://www.irs.gov/pub/irs-soi/23in14ar.xls" + } + assert all(fact.layout for fact in facts) + + +def test_soi_table_1_4_source_region_spec_covers_wage_record_set(): + regions = build_soi_table_1_4_source_region_specs(2023) + + assert len(regions) == 1 + assert regions[0].region_id == "irs_soi.ty2023.table_1_4.selected_region" + assert regions[0].record_set_id == "irs_soi.ty2023.table_1_4" + assert regions[0].sheet_name == "TBL14" + assert regions[0].top_row == 9 + assert regions[0].bottom_row == 28 + assert regions[0].left_column == 1 + assert regions[0].right_column == 117 diff --git a/tests/test_arch_source_cells.py b/tests/test_arch_source_cells.py new file mode 100644 index 0000000..3c36516 --- /dev/null +++ b/tests/test_arch_source_cells.py @@ -0,0 +1,152 @@ +"""Tests for Arch source-cell preservation.""" + +from __future__ import annotations + +from dataclasses import replace + +import pytest + +from arch.harness import ( + build_fixture_source_cell_file, + validate_fixture_source_cells, +) +from arch.jurisdictions.us.soi import ( + build_soi_table_1_1_source_cells, + build_soi_table_1_1_source_record_specs, +) +from arch.sources.cells import ( + load_source_cells_jsonl, + source_cells_from_html_tables_and_text, + validate_source_cells, +) +from arch.sources.cells import SourceArtifactMetadata +from arch.sources.rows import SourceRow, source_cells_from_source_rows +from arch.sources.specs import resolve_source_record + + +def test_build_soi_table_1_1_source_cells_preserves_workbook_used_range(): + cells = build_soi_table_1_1_source_cells(2023) + report = validate_source_cells(cells) + cells_by_address = {cell.address: cell for cell in cells} + + assert report.valid + assert report.cell_count == 92 * 21 + assert report.counts["by_sheet"] == {"TBL11": 1932} + assert report.counts["by_source"] == {"irs_soi": 1932} + assert cells_by_address["A10"].raw_value == "All returns" + assert cells_by_address["B10"].raw_value == 160_602_107 + assert cells_by_address["B10"].artifact.source_file == "23in11si.xls" + + +def test_build_source_cell_file_writes_jsonl(tmp_path): + output = tmp_path / "soi-cells.jsonl" + + report = build_fixture_source_cell_file("soi-table-1-1", output, year=2023) + cells = load_source_cells_jsonl(output) + + assert report.valid + assert len(cells) == 1932 + assert cells[0].artifact.sha256 + + +def test_fixture_source_cells_validate(): + report = validate_fixture_source_cells() + + assert report.valid + assert report.cell_count == 1932 + assert report.counts["by_sheet"] == {"TBL11": 1932} + + +def test_source_record_selector_guard_fails_on_changed_row_header(): + cells = build_soi_table_1_1_source_cells(2023) + spec = build_soi_table_1_1_source_record_specs(2023)[0] + bad_spec = replace( + spec, + selector=replace(spec.selector, expected_row_header="Not all returns"), + ) + + with pytest.raises(ValueError, match="expected row header"): + resolve_source_record(cells, bad_spec) + + +def test_delimited_source_row_selection_requires_exact_match(): + artifact = SourceArtifactMetadata( + source_name="bea", + source_table="test", + source_file="test.csv", + url="https://example.test/test.csv", + vintage="test", + sha256="abc123", + size_bytes=10, + extracted_at="2026-05-06", + extraction_method="test", + ) + rows = [ + SourceRow( + artifact=artifact, + sheet_name="NipaDataA", + row_number=2, + values={"Period": 2021, "SeriesCode": "W351RC", "Value": 1}, + ), + SourceRow( + artifact=artifact, + sheet_name="NipaDataA", + row_number=3, + values={"Period": 2022, "SeriesCode": "W351RC", "Value": 2}, + ), + ] + + with pytest.raises(ValueError, match="matched 2 rows"): + source_cells_from_source_rows( + rows, + selected_rows=({"SeriesCode": "W351RC"},), + ) + + with pytest.raises(ValueError, match="matched 0 rows"): + source_cells_from_source_rows( + rows, + selected_rows=({"SeriesCode": "Y351RC", "Period": "2022"},), + ) + + +def test_html_tables_and_text_parser_preserves_tables_and_document_numbers(): + artifact = SourceArtifactMetadata( + source_name="dwp", + source_table="test html", + source_file="test.html", + url="https://example.test/test.html", + vintage="test", + sha256="abc123", + size_bytes=10, + extracted_at="2026-05-10", + extraction_method="test", + ) + html = b""" + + +

There were 620,000 ESA cases and 180,000 income-related cases.

+ + + + + + + +
BenefitCases
Employment and Support Allowance999,000
+ + + """ + + cells = source_cells_from_html_tables_and_text(html, artifact) + cells_by_sheet_address = { + (cell.sheet_name, cell.address): cell for cell in cells + } + + assert validate_source_cells(cells).valid + assert cells_by_sheet_address[("table_1", "A1")].raw_value == "Benefit" + assert cells_by_sheet_address[("table_1", "B2")].raw_value == 999_000 + assert cells_by_sheet_address[("table_1", "B2")].display_value == "999,000" + assert cells_by_sheet_address[("document_numbers", "D2")].raw_value == "620,000" + assert cells_by_sheet_address[("document_numbers", "E2")].raw_value == 620_000 + assert cells_by_sheet_address[("document_numbers", "D3")].raw_value == "180,000" + assert cells_by_sheet_address[("document_numbers", "E3")].raw_value == 180_000 diff --git a/tests/test_arch_source_package.py b/tests/test_arch_source_package.py new file mode 100644 index 0000000..748d08e --- /dev/null +++ b/tests/test_arch_source_package.py @@ -0,0 +1,260 @@ +"""Focused tests for declarative Arch source packages.""" + +from __future__ import annotations + +from copy import deepcopy +import hashlib +from io import BytesIO +from pathlib import Path +from zipfile import ZipFile + +import openpyxl +import yaml + +from arch.core import validate_facts +from arch.source_package import ( + SOURCE_ARTIFACT_CACHE_ENV, + SOURCE_ARTIFACT_FETCH_ENV, + SourceArtifactSpec, + _read_source_artifact_content, + _source_artifact_cache_path, + load_source_package, + validate_source_package, +) +from arch.sources.cells import build_source_cell_key + +REPO_ROOT = Path(__file__).resolve().parents[1] + + +class _InlineZipArtifactSpec(SourceArtifactSpec): + def __init__(self, *, content: bytes, filename: str) -> None: + super().__init__( + source_name="test", + source_table="Test workbook in ZIP", + resource_package="db", + resource_directory="data/test", + manifest="manifest.yaml", + vintage="test", + extracted_at="2026-05-10", + extraction_method="test ZIP member parse", + parser="zip_xlsx_used_range", + ) + object.__setattr__(self, "_content", content) + object.__setattr__(self, "_filename", filename) + + def _artifact_content(self, year: int) -> tuple[bytes, str, str, dict[str, str]]: + return ( + self._content, + self._filename, + f"https://example.test/{year}/{self._filename}", + { + "bucket": "arch-raw-test", + "key": f"raw/{self._filename}", + "uri": f"r2://arch-raw-test/raw/{self._filename}", + }, + ) + + +def _tiny_xlsx_bytes() -> bytes: + workbook = openpyxl.Workbook() + sheet = workbook.active + sheet.title = "Sheet1" + sheet["A1"] = "label" + sheet["B2"] = 123 + buffer = BytesIO() + workbook.save(buffer) + return buffer.getvalue() + + +def _zip_with_workbook(workbook_content: bytes, *, note: str) -> bytes: + buffer = BytesIO() + with ZipFile(buffer, "w") as archive: + archive.writestr("book.xlsx", workbook_content) + archive.writestr("note.txt", note) + return buffer.getvalue() + + +class _MissingArtifactPath: + def read_bytes(self) -> bytes: + raise FileNotFoundError("not packaged") + + +def test_source_package_alias_compiles_soi_table_1_1_specs(): + package = load_source_package("soi-table-1-1") + record_set = package.build_source_record_set_specs(2023)[0] + specs = package.build_source_record_specs(2023) + + assert package.package_id == "soi-table-1-1" + assert record_set.record_set_id == "irs_soi.ty2023.table_1_1" + assert len(record_set.rows) == 20 + assert len(record_set.measures) == 4 + assert len(specs) == 80 + assert specs[0].source_record_id == "irs_soi.ty2023.table_1_1.all.return_count" + assert specs[0].layout is not None + assert specs[0].layout.record_set_spec_hash == "d606c87f11948c197386dfa4" + + +def test_empty_guard_cells_do_not_change_legacy_single_cell_hash(tmp_path): + source_path = REPO_ROOT / "packages" / "irs_soi" / "table_1_1" + payload = yaml.safe_load((source_path / "source_package.yaml").read_text()) + payload["record_sets"][0]["rows"][0]["guard_cells"] = [] + + package_dir = tmp_path / "soi-with-empty-guards" + package_dir.mkdir() + (package_dir / "source_package.yaml").write_text(yaml.safe_dump(payload)) + + specs = load_source_package(package_dir).build_source_record_specs(2023) + + assert specs[0].layout is not None + assert specs[0].layout.record_set_spec_hash == "d606c87f11948c197386dfa4" + + +def test_guard_cell_order_does_not_change_record_set_spec_hash(tmp_path): + source_path = REPO_ROOT / "packages" / "irs_soi" / "table_1_1" + payload = yaml.safe_load((source_path / "source_package.yaml").read_text()) + row = payload["record_sets"][0]["rows"][0] + row["guard_cells"] = [ + {"column": "A", "expected_value": "All returns"}, + {"column": "B", "expected_value": 160_602_107}, + ] + reordered = deepcopy(payload) + reordered["record_sets"][0]["rows"][0]["guard_cells"] = list( + reversed(row["guard_cells"]) + ) + + package_dir = tmp_path / "soi-original" + reordered_dir = tmp_path / "soi-reordered-guards" + package_dir.mkdir() + reordered_dir.mkdir() + (package_dir / "source_package.yaml").write_text(yaml.safe_dump(payload)) + (reordered_dir / "source_package.yaml").write_text(yaml.safe_dump(reordered)) + + original_specs = load_source_package(package_dir).build_source_record_specs(2023) + reordered_specs = load_source_package(reordered_dir).build_source_record_specs(2023) + + assert original_specs[0].layout is not None + assert reordered_specs[0].layout is not None + assert ( + reordered_specs[0].layout.record_set_spec_hash + == original_specs[0].layout.record_set_spec_hash + ) + + +def test_guard_cell_expected_value_changes_record_set_spec_hash(tmp_path): + source_path = REPO_ROOT / "packages" / "irs_soi" / "table_1_1" + payload = yaml.safe_load((source_path / "source_package.yaml").read_text()) + payload["record_sets"][0]["rows"][0]["guard_cells"] = [ + {"column": "A", "expected_value": "All returns"}, + ] + changed = deepcopy(payload) + changed["record_sets"][0]["rows"][0]["guard_cells"][0][ + "expected_value" + ] = "Different label" + + package_dir = tmp_path / "soi-original" + changed_dir = tmp_path / "soi-changed-guard" + package_dir.mkdir() + changed_dir.mkdir() + (package_dir / "source_package.yaml").write_text(yaml.safe_dump(payload)) + (changed_dir / "source_package.yaml").write_text(yaml.safe_dump(changed)) + + original_specs = load_source_package(package_dir).build_source_record_specs(2023) + changed_specs = load_source_package(changed_dir).build_source_record_specs(2023) + + assert original_specs[0].layout is not None + assert changed_specs[0].layout is not None + assert ( + changed_specs[0].layout.record_set_spec_hash + != original_specs[0].layout.record_set_spec_hash + ) + + +def test_zip_xlsx_cell_identity_uses_inner_workbook_hash(): + workbook_content = _tiny_xlsx_bytes() + first_zip = _zip_with_workbook(workbook_content, note="first container") + second_zip = _zip_with_workbook(workbook_content, note="second container") + + first_cells = _InlineZipArtifactSpec( + content=first_zip, + filename="first.zip", + ).build_source_cells(2024) + second_cells = _InlineZipArtifactSpec( + content=second_zip, + filename="second.zip", + ).build_source_cells(2024) + + first_cell = next(cell for cell in first_cells if cell.address == "B2") + second_cell = next(cell for cell in second_cells if cell.address == "B2") + workbook_sha256 = hashlib.sha256(workbook_content).hexdigest() + + assert ( + hashlib.sha256(first_zip).hexdigest() != hashlib.sha256(second_zip).hexdigest() + ) + assert first_cell.artifact.sha256 == workbook_sha256 + assert second_cell.artifact.sha256 == workbook_sha256 + assert first_cell.artifact.source_file == "first.zip!book.xlsx" + assert second_cell.artifact.source_file == "second.zip!book.xlsx" + assert build_source_cell_key(first_cell) == build_source_cell_key(second_cell) + assert "outer SHA-256" in first_cell.artifact.extraction_method + + +def test_source_artifact_loader_reads_content_addressed_cache(tmp_path, monkeypatch): + content = b"cached source artifact" + source = tmp_path / "source.csv" + source.write_bytes(b"publisher content should not be fetched") + spec = { + "filename": "source.csv", + "source_url": str(source), + "sha256": hashlib.sha256(content).hexdigest(), + } + monkeypatch.setenv(SOURCE_ARTIFACT_CACHE_ENV, str(tmp_path / "cache")) + cache_path = _source_artifact_cache_path(spec) + cache_path.parent.mkdir(parents=True) + cache_path.write_bytes(content) + + assert _read_source_artifact_content(_MissingArtifactPath(), spec) == content + + +def test_source_artifact_loader_fetches_missing_artifact_when_enabled( + tmp_path, + monkeypatch, +): + content = b"publisher source artifact" + source = tmp_path / "source.csv" + source.write_bytes(content) + spec = { + "filename": "source.csv", + "source_url": str(source), + "sha256": hashlib.sha256(content).hexdigest(), + } + monkeypatch.setenv(SOURCE_ARTIFACT_CACHE_ENV, str(tmp_path / "cache")) + monkeypatch.setenv(SOURCE_ARTIFACT_FETCH_ENV, "1") + + assert _read_source_artifact_content(_MissingArtifactPath(), spec) == content + assert _source_artifact_cache_path(spec).read_bytes() == content + + +def test_source_package_path_builds_valid_soi_table_1_4_facts(): + package_path = REPO_ROOT / "packages" / "irs_soi" / "table_1_4" + package = load_source_package(package_path) + cells = package.build_source_cells(2023) + facts = package.build_facts(2023, cells=cells) + + assert package.package_id == "soi-table-1-4" + assert len(cells) == 8109 + assert len(facts) == 260 + assert validate_facts(facts).valid + assert facts[0].source.source_table == "Publication 1304 Table 1.4" + + +def test_validate_source_package_reports_fixture_counts(): + report = validate_source_package("soi-table-1-1", year=2023) + + assert report.valid + assert report.counts == { + "measure_count": 4, + "record_set_count": 1, + "row_count": 20, + "source_record_count": 80, + "source_region_count": 1, + } diff --git a/tests/test_arch_source_rows.py b/tests/test_arch_source_rows.py new file mode 100644 index 0000000..c954108 --- /dev/null +++ b/tests/test_arch_source_rows.py @@ -0,0 +1,286 @@ +"""Tests for row-oriented source parsers.""" + +from __future__ import annotations + +import json + +import pytest + +from arch.sources.cells import SourceArtifactMetadata +from arch.sources.rows import ( + source_rows_from_census_acs_s0101_age_json, + source_rows_from_census_acs_s2201_snap_json, + source_rows_from_census_b01001_female_age_json, + source_rows_from_cdc_vsrr_live_births_json, + source_rows_from_ees_permalink_table_html, + source_rows_from_json_table, +) + + +def _artifact() -> SourceArtifactMetadata: + return SourceArtifactMetadata( + source_name="slc", + source_table="test", + source_file="test.html", + url="https://example.test/test", + vintage="test", + sha256="abc123", + size_bytes=10, + extracted_at="2026-05-10", + extraction_method="test", + ) + + +def _ees_html(tbody: list[list[str]]) -> bytes: + table_json = { + "thead": [ + [ + {"colSpan": 2, "rowSpan": 2, "tag": "td"}, + {"colSpan": 2, "text": "Plan 2", "tag": "th"}, + ], + [ + {"text": "2025-26", "tag": "th"}, + {"text": "2024-25", "tag": "th"}, + ], + ], + "tbody": [ + [{"text": value, "tag": "td"} for value in row] for row in tbody + ], + } + next_data = { + "props": { + "pageProps": { + "data": { + "table": { + "json": table_json, + }, + }, + }, + }, + } + return ( + '" + ).encode() + + +def test_ees_permalink_parser_expands_grouped_and_continuation_rows(): + rows = source_rows_from_ees_permalink_table_html( + _ees_html( + [ + [ + "Higher education total", + "Number of borrowers liable to make repayments", + "9,710,000", + "8,940,000", + ], + [ + ( + "Number of borrowers liable to make repayments and " + "earning above repayment threshold" + ), + "4,460,000", + "3,985,000", + ], + ] + ), + _artifact(), + sheet_name="table", + ) + + assert [row.values["row_group"] for row in rows] == [ + "Higher education total", + "Higher education total", + ] + assert rows[0].values["borrower_status"] == "liable_to_repay" + assert rows[1].values["borrower_status"] == "above_repayment_threshold" + assert rows[0].values["value_2025"] == 8_940_000 + assert rows[1].values["value_2026"] == 4_460_000 + + +def test_ees_permalink_parser_rejects_short_rows(): + with pytest.raises(ValueError, match="unexpected cell count"): + source_rows_from_ees_permalink_table_html( + _ees_html( + [ + [ + "Higher education total", + "Number of borrowers liable to make repayments", + ], + ] + ), + _artifact(), + ) + + +def test_ees_permalink_parser_rejects_continuation_before_group(): + with pytest.raises(ValueError, match="before any row group"): + source_rows_from_ees_permalink_table_html( + _ees_html( + [ + [ + ( + "Number of borrowers liable to make repayments and " + "earning above repayment threshold" + ), + "4,460,000", + "3,985,000", + ], + ] + ), + _artifact(), + ) + + +def test_json_table_parser_reads_header_array_rows(): + rows = source_rows_from_json_table( + json.dumps( + [ + ["GEO_ID", "NAME", "S0101_C01_002E"], + ["0100000US", "United States", "18365047"], + ] + ).encode(), + _artifact(), + sheet_name="api", + ) + + assert len(rows) == 1 + assert rows[0].row_number == 2 + assert rows[0].values == { + "GEO_ID": "0100000US", + "NAME": "United States", + "S0101_C01_002E": 18_365_047, + } + + +def test_json_table_parser_reads_object_rows(): + rows = source_rows_from_json_table( + json.dumps( + [ + {"state": "ALABAMA", "data_value": "4932"}, + {"state": "ALASKA", "data_value": "753"}, + ] + ).encode(), + _artifact(), + sheet_name="api", + ) + + assert [row.row_number for row in rows] == [1, 2] + assert rows[0].values == {"state": "ALABAMA", "data_value": 4_932} + + +def test_census_acs_s0101_age_parser_unpivots_age_columns(): + rows = source_rows_from_census_acs_s0101_age_json( + json.dumps( + [ + [ + "GEO_ID", + "NAME", + "S0101_C01_002E", + "S0101_C01_003E", + "S0101_C01_019E", + ], + ["0100000US", "United States", "18365047", "18110921", "6343153"], + ] + ).encode(), + _artifact(), + sheet_name="api", + ) + + assert len(rows) == 18 + assert rows[0].values["age"] == "Aged 0-4" + assert rows[0].values["source_column_id"] == "S0101_C01_002E" + assert rows[0].values["value"] == 18_365_047 + assert rows[-1].values["age"] == "Aged 85 and over" + assert rows[-1].values["value"] == 6_343_153 + + +def test_census_b01001_female_age_parser_unpivots_age_columns(): + rows = source_rows_from_census_b01001_female_age_json( + json.dumps( + [ + [ + "B01001_030E", + "B01001_031E", + "B01001_038E", + "state", + ], + ["100354", "72341", "168164", "01"], + ] + ).encode(), + _artifact(), + sheet_name="api", + ) + + assert len(rows) == 9 + assert rows[0].values["state"] == "01" + assert rows[0].values["geography_id"] == "0400000US01" + assert rows[0].values["sex"] == "female" + assert rows[0].values["source_column_id"] == "B01001_030E" + assert rows[0].values["age"] == "Female 15 to 17 years" + assert rows[0].values["value"] == 100_354 + assert rows[-1].values["source_column_id"] == "B01001_038E" + assert rows[-1].values["age"] == "Female 40 to 44 years" + assert rows[-1].values["value"] == 168_164 + + +def test_census_acs_s2201_snap_parser_unpivots_household_columns(): + rows = source_rows_from_census_acs_s2201_snap_json( + json.dumps( + [ + [ + "GEO_ID", + "NAME", + "S2201_C01_001E", + "S2201_C03_001E", + "S2201_C05_001E", + ], + [ + "5001900US0101", + "Congressional District 1 (119th Congress), Alabama", + "300636", + "34742", + "265894", + ], + ] + ).encode(), + _artifact(), + sheet_name="api", + ) + + assert len(rows) == 3 + assert rows[0].values["snap_receipt_status"] == "all" + assert rows[0].values["source_column_id"] == "S2201_C01_001E" + assert rows[0].values["value"] == 300_636 + assert rows[1].values["snap_receipt_status"] == "receiving_food_stamps_snap" + assert rows[1].values["source_column_id"] == "S2201_C03_001E" + assert rows[1].values["value"] == 34_742 + assert rows[2].values["snap_receipt_status"] == ( + "not_receiving_food_stamps_snap" + ) + assert rows[2].values["value"] == 265_894 + + +def test_cdc_vsrr_live_births_parser_sets_month_period(): + rows = source_rows_from_cdc_vsrr_live_births_json( + json.dumps( + [ + { + "state": "ALABAMA", + "year": "2024", + "month": "January", + "period": "Monthly", + "indicator": "Number of Live Births", + "data_value": "4932", + } + ] + ).encode(), + _artifact(), + sheet_name="api", + ) + + assert len(rows) == 1 + assert rows[0].values["period"] == "2024-01" + assert rows[0].values["frequency"] == "Monthly" + assert rows[0].values["data_value"] == 4_932 diff --git a/tests/test_arch_suite.py b/tests/test_arch_suite.py new file mode 100644 index 0000000..5e58db6 --- /dev/null +++ b/tests/test_arch_suite.py @@ -0,0 +1,658 @@ +"""Tests for the Arch source-package build suite.""" + +from __future__ import annotations + +import json +import sqlite3 +import textwrap + +from arch.concepts import ConceptAlignmentReport +from arch.core import ( + Aggregation, + AggregateConstraint, + AggregateFact, + EntityDimension, + GeographyDimension, + Measure, + PeriodDimension, + SourceProvenance, + SourceRecordLayout, + validate_facts, +) +from arch.harness import main as harness_main +from arch.sources.cells import ( + SourceArtifactMetadata, + SourceCell, + build_source_cell_key, + validate_source_cells, +) +from arch.sources.rows import SourceRow, build_source_row_key, validate_source_rows +from arch.suite import ( + SourceRecordSuiteReport, + SourceRegionSuiteReport, + build_agent_acceptance_report, + build_source_cells, + build_source_record_specs, + build_source_regions, + build_source_suite, + validate_source_record_specs, + validate_source_regions, +) + + +def test_build_source_suite_writes_artifacts_and_reports(tmp_path): + output_dir = tmp_path / "suite" + + report = build_source_suite("soi-table-1-1", output_dir, year=2023) + summary = json.loads((output_dir / "reports" / "build_summary.json").read_text()) + + assert report.valid + assert summary["valid"] + assert summary["counts"] == { + "artifact_count": 1, + "agent_acceptance_error_count": 0, + "concept_alignment_count": 1, + "constraint_count": 144, + "consumer_fact_count": 80, + "fact_count": 80, + "lineage_coverage": 1.0, + "source_cell_count": 1932, + "source_record_count": 80, + "source_region_count": 1, + "source_row_count": 0, + } + assert (output_dir / "source_cells.jsonl").exists() + assert (output_dir / "source_regions.jsonl").exists() + assert (output_dir / "facts.jsonl").exists() + assert (output_dir / "consumer_facts.jsonl").exists() + assert (output_dir / "arch.db").exists() + assert (output_dir / "datapackage.json").exists() + assert (output_dir / "ro-crate-metadata.json").exists() + assert (output_dir / "reports" / "source_regions.json").exists() + assert (output_dir / "reports" / "selectors.json").exists() + assert (output_dir / "reports" / "source_records.json").exists() + assert (output_dir / "reports" / "consumer_facts.json").exists() + assert (output_dir / "reports" / "agent_acceptance.json").exists() + consumer_facts = [ + json.loads(line) + for line in (output_dir / "consumer_facts.jsonl").read_text().splitlines() + ] + datapackage = json.loads((output_dir / "datapackage.json").read_text()) + acceptance = json.loads( + (output_dir / "reports" / "agent_acceptance.json").read_text() + ) + + assert len(consumer_facts) == 80 + assert consumer_facts[0]["aggregate_fact_key"].startswith( + "arch.aggregate_fact.v2:" + ) + assert consumer_facts[0]["semantic_fact_key"].startswith( + "arch.semantic_fact.v2:" + ) + assert datapackage["profile"] == "data-package" + assert {resource["path"] for resource in datapackage["resources"]} >= { + "source_cells.jsonl", + "source_regions.jsonl", + "facts.jsonl", + "consumer_facts.jsonl", + "arch.db", + "reports/build_summary.json", + "reports/source_regions.json", + "reports/selectors.json", + "reports/consumer_facts.json", + "reports/agent_acceptance.json", + } + assert acceptance["valid"] + assert acceptance["checks"] == { + "concept_alignments_have_evidence": True, + "concept_alignments_resolve": True, + "expected_constraints_present": True, + "facts_have_provenance": True, + "facts_have_source_cell_lineage": True, + "facts_have_source_row_lineage": True, + "full_source_document_parsed": True, + "raw_artifacts_have_r2": True, + "required_concept_alignments_validated": True, + "row_lineage_semantics_evidenced": True, + "selected_row_only_parser_not_used": True, + "stage_reports_valid": True, + } + assert [warning["code"] for warning in acceptance["warnings"]] == [ + "concept_alignment_validation_skipped" + ] + + with sqlite3.connect(output_dir / "arch.db") as connection: + facts_count = connection.execute( + "SELECT COUNT(*) FROM aggregate_facts" + ).fetchone()[0] + + assert facts_count == 80 + + +def test_build_source_suite_supports_soi_table_1_4(tmp_path): + output_dir = tmp_path / "suite" + + report = build_source_suite("soi-table-1-4", output_dir, year=2023) + summary = json.loads((output_dir / "reports" / "build_summary.json").read_text()) + + assert report.valid + assert summary["counts"] == { + "artifact_count": 1, + "agent_acceptance_error_count": 0, + "concept_alignment_count": 2, + "constraint_count": 468, + "consumer_fact_count": 260, + "fact_count": 260, + "lineage_coverage": 1.0, + "source_cell_count": 8109, + "source_record_count": 260, + "source_region_count": 1, + "source_row_count": 0, + } + assert summary["reports"]["source_regions"]["covered_cell_count"] == 2340 + assert summary["reports"]["agent_acceptance"]["valid"] + assert summary["reports"]["agent_acceptance"]["warnings"][0]["code"] == ( + "concept_alignment_validation_skipped" + ) + assert (output_dir / "source_regions.jsonl").exists() + assert (output_dir / "arch.db").exists() + + +def test_agent_acceptance_rejects_row_constraints_without_source_evidence(): + artifact = SourceArtifactMetadata( + source_name="bea", + source_table="test", + source_file="test.csv", + url="https://example.test/test.csv", + vintage="test", + sha256="abc123", + size_bytes=10, + extracted_at="2026-05-06", + extraction_method="test", + raw_r2_bucket="arch-raw", + raw_r2_key="raw/bea/test.csv", + raw_r2_uri="r2://arch-raw/raw/bea/test.csv", + ) + row = SourceRow( + artifact=artifact, + sheet_name="NipaDataA", + row_number=2, + values={"Period": 2022, "SeriesCode": "W351RC", "Value": 1}, + ) + row_key = build_source_row_key(row) + cell = SourceCell( + artifact=artifact, + sheet_name="NipaDataA", + row_number=2, + column_number=3, + address="C2", + cell_type="number", + raw_value=1, + display_value="1", + source_row_key=row_key, + ) + fact = AggregateFact( + value=1, + period=PeriodDimension(type="calendar_year", value=2022), + geography=GeographyDimension( + level="country", + id="0100000US", + vintage="current", + name="United States", + ), + entity=EntityDimension(name="pension_plan"), + measure=Measure( + concept="bea_nipa.defined_contribution_employer_contributions", + unit="usd", + ), + aggregation=Aggregation(method="sum"), + source=SourceProvenance( + source_name="bea", + source_table="test", + source_file="test.csv", + url="https://example.test/test.csv", + vintage="test", + extracted_at="2026-05-06", + extraction_method="test", + ), + filters={"bea_nipa.series_code": "W351RC"}, + source_record_id="bea.test.w351rc", + source_cell_keys=(build_source_cell_key(cell),), + source_row_keys=(row_key,), + constraints=( + AggregateConstraint( + variable="bea_nipa.table_id", + operator="==", + value="T61100D", + ), + ), + layout=SourceRecordLayout( + groupby_dimension="bea_nipa.series_code", + groupby_value_id="w351rc", + table_record_kind="detail", + ), + ) + + report = build_agent_acceptance_report( + [fact], + [row], + [cell], + source_rows=validate_source_rows([row]), + source_cells=validate_source_cells([cell]), + source_regions=SourceRegionSuiteReport( + region_count=0, + covered_cell_count=0, + errors=(), + ), + source_records=SourceRecordSuiteReport( + spec_count=1, + resolved_count=1, + lineaged_count=1, + errors=(), + ), + fact_report=validate_facts([fact]), + concept_alignments=ConceptAlignmentReport( + alignment_count=0, + checked_count=0, + alignments=(), + errors=(), + ), + ) + + assert not report.valid + assert "row_constraint_not_evidenced" in { + error.code for error in report.errors + } + + +def test_agent_acceptance_accepts_source_row_bound_constraints(): + artifact = SourceArtifactMetadata( + source_name="hmrc_spi", + source_table="test", + source_file="test.csv", + url="https://example.test/test.csv", + vintage="test", + sha256="abc123", + size_bytes=10, + extracted_at="2026-05-22", + extraction_method="test", + raw_r2_bucket="arch-raw", + raw_r2_key="raw/hmrc_spi/test.csv", + raw_r2_uri="r2://arch-raw/raw/hmrc_spi/test.csv", + ) + row = SourceRow( + artifact=artifact, + sheet_name="incomes_projection", + row_number=58, + values={ + "total_income_lower_bound": 12570, + "total_income_upper_bound": 15000.0, + "employment_income_amount": 1, + }, + ) + row_key = build_source_row_key(row) + cell = SourceCell( + artifact=artifact, + sheet_name="incomes_projection", + row_number=2, + column_number=4, + address="D2", + cell_type="number", + raw_value=1, + display_value="1", + source_row_key=row_key, + ) + fact = AggregateFact( + value=1, + period=PeriodDimension(type="calendar_year", value=2026), + geography=GeographyDimension( + level="country", + id="GBR", + vintage="current", + name="United Kingdom", + ), + entity=EntityDimension(name="person"), + measure=Measure( + concept="uk_personal_income.employment_income", + unit="gbp", + ), + aggregation=Aggregation(method="sum"), + source=SourceProvenance( + source_name="hmrc_spi", + source_table="test", + source_file="test.csv", + url="https://example.test/test.csv", + vintage="test", + extracted_at="2026-05-22", + extraction_method="test", + ), + source_record_id="hmrc_spi.test.12k_to_15k.employment_income_amount", + source_cell_keys=(build_source_cell_key(cell),), + source_row_keys=(row_key,), + constraints=( + AggregateConstraint( + variable="total_income", + operator=">=", + value=12570, + ), + AggregateConstraint( + variable="total_income", + operator="<", + value=15000, + ), + ), + layout=SourceRecordLayout( + groupby_dimension="total_income", + groupby_value_id="12k_to_15k", + table_record_kind="detail", + ), + ) + + report = build_agent_acceptance_report( + [fact], + [row], + [cell], + source_rows=validate_source_rows([row]), + source_cells=validate_source_cells([cell]), + source_regions=SourceRegionSuiteReport( + region_count=0, + covered_cell_count=0, + errors=(), + ), + source_records=SourceRecordSuiteReport( + spec_count=1, + resolved_count=1, + lineaged_count=1, + errors=(), + ), + fact_report=validate_facts([fact]), + concept_alignments=ConceptAlignmentReport( + alignment_count=0, + checked_count=0, + alignments=(), + errors=(), + ), + ) + + assert report.valid + assert report.checks["row_lineage_semantics_evidenced"] + + +def test_agent_acceptance_accepts_age_constraints_from_source_cell_header(): + artifact = SourceArtifactMetadata( + source_name="census_population_projections", + source_table="test", + source_file="test.csv", + url="https://example.test/test.csv", + vintage="test", + sha256="abc123", + size_bytes=10, + extracted_at="2026-05-11", + extraction_method="test", + raw_r2_bucket="arch-raw", + raw_r2_key="raw/census/test.csv", + raw_r2_uri="r2://arch-raw/raw/census/test.csv", + ) + row = SourceRow( + artifact=artifact, + sheet_name="test", + row_number=2, + values={"YEAR": 2025, "POP_0": 1}, + ) + row_key = build_source_row_key(row) + header_cell = SourceCell( + artifact=artifact, + sheet_name="test", + row_number=1, + column_number=6, + address="F1", + cell_type="text", + raw_value="POP_0", + display_value="POP_0", + ) + value_cell = SourceCell( + artifact=artifact, + sheet_name="test", + row_number=2, + column_number=6, + address="F2", + cell_type="number", + raw_value=1, + display_value="1", + source_row_key=row_key, + ) + fact = AggregateFact( + value=1, + period=PeriodDimension(type="calendar_year", value=2025), + geography=GeographyDimension( + level="country", + id="0100000US", + vintage="current", + name="United States", + ), + entity=EntityDimension(name="person"), + measure=Measure( + concept="census.population_projection", + unit="count", + ), + aggregation=Aggregation(method="count"), + source=SourceProvenance( + source_name="census_population_projections", + source_table="test", + source_file="test.csv", + url="https://example.test/test.csv", + vintage="test", + extracted_at="2026-05-11", + extraction_method="test", + ), + source_record_id="census.test.age_0.population", + source_cell_keys=( + build_source_cell_key(value_cell), + build_source_cell_key(header_cell), + ), + source_row_keys=(row_key,), + constraints=( + AggregateConstraint( + variable="age", + operator=">=", + value=0, + ), + AggregateConstraint( + variable="age", + operator="<", + value=1, + ), + ), + layout=SourceRecordLayout( + groupby_dimension="age", + groupby_value_id="age_0", + table_record_kind="detail", + ), + ) + cells = [header_cell, value_cell] + + report = build_agent_acceptance_report( + [fact], + [row], + cells, + source_rows=validate_source_rows([row]), + source_cells=validate_source_cells(cells), + source_regions=SourceRegionSuiteReport( + region_count=0, + covered_cell_count=0, + errors=(), + ), + source_records=SourceRecordSuiteReport( + spec_count=1, + resolved_count=1, + lineaged_count=1, + errors=(), + ), + fact_report=validate_facts([fact]), + concept_alignments=ConceptAlignmentReport( + alignment_count=0, + checked_count=0, + alignments=(), + errors=(), + ), + ) + + assert report.valid + assert report.checks["row_lineage_semantics_evidenced"] + assert "row_constraint_not_evidenced" not in { + error.code for error in report.errors + } + + +def test_build_suite_cli_emits_json_summary(tmp_path, capsys): + output_dir = tmp_path / "suite" + + exit_code = harness_main( + [ + "build-suite", + "soi-table-1-1", + "--year", + "2023", + "--out", + str(output_dir), + ] + ) + payload = json.loads(capsys.readouterr().out) + + assert exit_code == 0 + assert payload["valid"] + assert payload["outputs"]["source_regions"] == str( + output_dir / "source_regions.jsonl" + ) + assert payload["outputs"]["database"] == str(output_dir / "arch.db") + assert payload["outputs"]["consumer_facts"] == str( + output_dir / "consumer_facts.jsonl" + ) + assert payload["outputs"]["datapackage"] == str(output_dir / "datapackage.json") + assert payload["reports"]["consumer_facts"]["fact_count"] == 80 + assert payload["reports"]["source_regions"]["covered_cell_count"] == 340 + assert payload["reports"]["source_records"]["lineage_coverage"] == 1.0 + assert payload["reports"]["agent_acceptance"]["valid"] + assert payload["reports"]["agent_acceptance"]["warnings"][0]["code"] == ( + "concept_alignment_validation_skipped" + ) + + +def test_build_source_suite_accepts_required_axiom_validation(tmp_path): + output_dir = tmp_path / "suite" + axiom_cli = _write_fake_axiom_cli( + tmp_path, + valid_concepts={"us:statutes/26/62#adjusted_gross_income"}, + ) + + report = build_source_suite( + "soi-table-1-1", + output_dir, + year=2023, + axiom_command=[str(axiom_cli)], + axiom_roots=[tmp_path / "rules-us"], + require_axiom_validation=True, + ) + summary = json.loads((output_dir / "reports" / "build_summary.json").read_text()) + + assert report.valid + assert summary["reports"]["concept_alignments"]["checked_count"] == 1 + assert summary["reports"]["agent_acceptance"]["warnings"] == [] + assert summary["reports"]["agent_acceptance"]["checks"][ + "required_concept_alignments_validated" + ] + + +def test_build_source_suite_can_require_axiom_validation(tmp_path): + output_dir = tmp_path / "suite" + + report = build_source_suite( + "soi-table-1-4", + output_dir, + year=2023, + require_axiom_validation=True, + ) + summary = json.loads((output_dir / "reports" / "build_summary.json").read_text()) + + assert not report.valid + assert not summary["valid"] + assert summary["reports"]["agent_acceptance"]["errors"][0]["code"] == ( + "concept_alignment_validation_skipped" + ) + assert not summary["reports"]["agent_acceptance"]["checks"][ + "required_concept_alignments_validated" + ] + + +def test_build_suite_refuses_nonempty_output_dir_without_replace(tmp_path): + output_dir = tmp_path / "suite" + output_dir.mkdir() + (output_dir / "existing.txt").write_text("keep", encoding="utf-8") + + try: + build_source_suite("soi-table-1-1", output_dir, year=2023) + except FileExistsError as exc: + assert "not empty" in str(exc) + else: + raise AssertionError("Expected nonempty output directory to be rejected") + + assert (output_dir / "existing.txt").read_text(encoding="utf-8") == "keep" + + +def test_source_record_suite_reports_selector_errors(): + specs = build_source_record_specs("soi-table-1-1", year=2023) + + report = validate_source_record_specs(specs[:1], cells=[]) + + assert not report.valid + assert report.spec_count == 1 + assert report.resolved_count == 0 + assert report.errors[0].code == "source_record_resolution_failed" + + +def test_source_region_suite_reports_covered_cells(): + cells = build_source_cells("soi-table-1-1", year=2023) + regions = build_source_regions("soi-table-1-1", year=2023) + + report = validate_source_regions(regions, cells) + + assert report.valid + assert report.region_count == 1 + assert report.covered_cell_count == 340 + + +def _write_fake_axiom_cli(tmp_path, *, valid_concepts: set[str]): + axiom_cli = tmp_path / "axiom" + axiom_cli.write_text( + textwrap.dedent( + f"""\ + #!/usr/bin/env python3 + import json + import sys + + concept_id = sys.argv[sys.argv.index("validate") + 1] + valid_concepts = {sorted(valid_concepts)!r} + if concept_id in valid_concepts: + print(json.dumps({{ + "concept_id": concept_id, + "concept": {{"concept_id": concept_id}}, + "errors": [], + "valid": True, + }})) + raise SystemExit(0) + print(json.dumps({{ + "concept_id": concept_id, + "errors": [ + {{ + "code": "concept_not_found", + "message": f"Concept {{concept_id}} is not available.", + }} + ], + "valid": False, + }})) + raise SystemExit(1) + """ + ) + ) + axiom_cli.chmod(0o755) + return axiom_cli diff --git a/tests/test_supabase_client.py b/tests/test_supabase_client.py index 652a939..0020035 100644 --- a/tests/test_supabase_client.py +++ b/tests/test_supabase_client.py @@ -19,8 +19,11 @@ def test_get_client_returns_client_with_env_vars(self): # Skip if no real credentials if not os.environ.get("POLICYENGINE_SUPABASE_URL"): pytest.skip("POLICYENGINE_SUPABASE_URL not set") - if not os.environ.get("POLICYENGINE_SUPABASE_SECRET_KEY"): - pytest.skip("POLICYENGINE_SUPABASE_SECRET_KEY not set") + if not ( + os.environ.get("POLICYENGINE_SUPABASE_SERVICE_KEY") + or os.environ.get("POLICYENGINE_SUPABASE_SECRET_KEY") + ): + pytest.skip("POLICYENGINE_SUPABASE_SERVICE_KEY not set") # Clear the lru_cache to ensure fresh client get_supabase_client.cache_clear() @@ -31,10 +34,29 @@ def test_config_from_env(self): """SupabaseConfig loads from environment variables.""" from db.supabase_client import SupabaseConfig - with patch.dict(os.environ, { - "POLICYENGINE_SUPABASE_URL": "https://test.supabase.co", - "POLICYENGINE_SUPABASE_SECRET_KEY": "test-secret-key", - }): + with patch.dict( + os.environ, + { + "POLICYENGINE_SUPABASE_URL": "https://test.supabase.co", + "POLICYENGINE_SUPABASE_SERVICE_KEY": "test-secret-key", + }, + ): + config = SupabaseConfig.from_env() + assert config.url == "https://test.supabase.co" + assert config.secret_key == "test-secret-key" + + def test_config_uses_policyengine_secret_key_as_fallback(self): + """PolicyEngine SECRET_KEY keeps existing deployments working.""" + from db.supabase_client import SupabaseConfig + + with patch.dict( + os.environ, + { + "POLICYENGINE_SUPABASE_URL": "https://test.supabase.co", + "POLICYENGINE_SUPABASE_SECRET_KEY": "test-secret-key", + }, + clear=True, + ): config = SupabaseConfig.from_env() assert config.url == "https://test.supabase.co" assert config.secret_key == "test-secret-key" @@ -51,10 +73,14 @@ def test_config_missing_key_raises(self): """Missing secret key raises ValueError.""" from db.supabase_client import SupabaseConfig - with patch.dict(os.environ, { - "POLICYENGINE_SUPABASE_URL": "https://test.supabase.co", - }, clear=True): - with pytest.raises(ValueError, match="POLICYENGINE_SUPABASE_SECRET_KEY"): + with patch.dict( + os.environ, + { + "POLICYENGINE_SUPABASE_URL": "https://test.supabase.co", + }, + clear=True, + ): + with pytest.raises(ValueError, match="POLICYENGINE_SUPABASE_SERVICE_KEY"): SupabaseConfig.from_env() @@ -105,7 +131,7 @@ def test_query_strata_with_constraints(self, mock_client): "jurisdiction": "us", "constraints": [ {"variable": "state_fips", "operator": "==", "value": "06"} - ] + ], } ] @@ -145,7 +171,9 @@ def test_query_cps_filters_by_year(self, mock_client): with patch("db.supabase_client.get_supabase_client", return_value=mock_client): query_cps(year=2021) - mock_client.table.return_value.select.return_value.eq.assert_called_with("year", 2021) + mock_client.table.return_value.select.return_value.eq.assert_called_with( + "year", 2021 + ) def test_query_cps_filters_by_state(self, mock_client): """CPS query can filter by state.""" diff --git a/uv.lock b/uv.lock index 071f830..a88cf35 100644 --- a/uv.lock +++ b/uv.lock @@ -292,6 +292,7 @@ dependencies = [ { name = "openpyxl" }, { name = "pandas" }, { name = "pyarrow" }, + { name = "pypdf" }, { name = "pyyaml" }, { name = "scipy" }, { name = "sqlmodel" }, @@ -323,6 +324,7 @@ requires-dist = [ { name = "pandas", specifier = ">=2.0.0" }, { name = "policyengine-us", marker = "extra == 'policyengine'", specifier = ">=1.670.2" }, { name = "pyarrow", specifier = ">=22.0.0" }, + { name = "pypdf", specifier = ">=6.0.0" }, { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0.0,<9" }, { name = "pyyaml", specifier = ">=6.0" }, { name = "ruff", marker = "extra == 'dev'", specifier = ">=0.5.0" }, @@ -2140,6 +2142,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8b/40/2614036cdd416452f5bf98ec037f38a1afb17f327cb8e6b652d4729e0af8/pyparsing-3.3.1-py3-none-any.whl", hash = "sha256:023b5e7e5520ad96642e2c6db4cb683d3970bd640cdf7115049a6e9c3682df82", size = 121793, upload-time = "2025-12-23T03:14:02.103Z" }, ] +[[package]] +name = "pypdf" +version = "6.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/58/6dd97d78a4b17a7a6b9d1c6ad23895abc41f0fdc49c553cc05bdfdcc36d0/pypdf-6.11.0.tar.gz", hash = "sha256:062b51c81b0910e6d2755e99e1c5547a0a23b7d0a32322af66240d8edcfabe87", size = 6453975, upload-time = "2026-05-09T13:26:48.955Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/07/b1/68feb7eb3b99f0c020b414234825f4a5d70e0126c18d933770e8c93a35fc/pypdf-6.11.0-py3-none-any.whl", hash = "sha256:769394d5756d5b304c9b6bef88b54b1816b328e7e6fc9254e625529a15ed4ab8", size = 338819, upload-time = "2026-05-09T13:26:46.904Z" }, +] + [[package]] name = "pyroaring" version = "1.0.3"