Closes the last blocked test in the suite. Owner ruled both halves of the open question yes on 2026-07-30. `cog_revenue()` gains `revenue_concept`, mirroring `expenditure_concept`, with Census's two published concepts defined as crosswalk `revenue_subtype` sets rather than item-code prefixes: general = own_source + federal + state + local_aid (the default) total = general + utility + liquor_store + insurance_trust The manual defines the first by subtracting the other three from the second (4.3), so both are computable only once all four families are named -- which cog_pipeline#79 does. Insurance trust now includes the employee-retirement X codes (X01/X02/X05/X08) alongside the Y codes. - inst/sql: revenue_long / revenue_long_harmonized carry EVERY revenue subtype; the concept narrows in R via the existing subtype_scope machinery, exactly as expenditure_concept narrows spending_long. - cog_explain() now prints each verb's OWN concept. It previously printed `expenditure_concept` unconditionally, so a cog_revenue() caller was told "Concept: primary" -- a spending concept their result has nothing to do with. - Fixture regenerated at pipeline_commit aadb46b (330 crosswalk rows). Corrected two stale expectations in the blocked test while un-skipping it. It asserted X01+X04+X05+X08 and omitted X02, which applies to state governments and is nonzero for Wisconsin; X04 is an exhibit code for an INTRAgovernmental transfer that Census's own "Total Emp Ret Rev" excludes. Verified against that Census field: the right set is X01+X02+X05+X08 = $2,283,883k, exactly. And its expected `total` of $33,377,093k predated the Y codes being classified -- complete Total Revenue for WI FY2012 is $34,881,961k (general 31,338,293 + Y 1,259,785 + X 2,283,883). Behaviour change worth knowing: `general` is now STRICT Census General Revenue, so utility and liquor store revenue leave the default. Measured on the fixture that is 15.9% of what cog_revenue() returned for cities, vs 1.2% for states and 1.7% for counties. Suite: 716 pass / 0 fail / 0 skip -- the first time this package has had no skipped tests. Closes #12
121 lines
5.2 KiB
JSON
121 lines
5.2 KiB
JSON
{
|
|
"schema_version": 6,
|
|
"built_at": "2026-07-31T00:47:27Z",
|
|
"pipeline_commit": "aadb46b",
|
|
"fixture_note": "Four-year (2011, 2012, 2019, 2020) fixture for uscogdata tests. Full corpus available via USCOGDATA_URL. Regenerated from the sparsified schema-v6 corpus: the wide era (<= FY2011) no longer stores explicit zeros, so FY2011 absence means Census published $0 while FY2012+ absence means not reported. representation.parquet and code_set.parquet carry that rule and ship in full, as do every other metadata table in the publish tree. 2011/2012 straddle both the wide-aggregate -> modern-leaf format boundary (exercised by basis=\"harmonized\" and recipe= queries) and the dense -> sparse representation boundary (SB194); 2019/2020 retain the prior per-capita/CPI regression anchors. Regenerated via data-raw/regenerate_fixture_corpus.R.",
|
|
"data_vintage": {
|
|
"source_vintages": {
|
|
"2012": "10162019",
|
|
"2013": "10162019",
|
|
"2014": "10162019",
|
|
"2015": "10162019",
|
|
"2016": "10162019",
|
|
"2017": "06102021",
|
|
"2018": "06102021",
|
|
"2019": "06102021",
|
|
"2020": "06122023",
|
|
"2021": "06122023",
|
|
"2022": "06052025",
|
|
"2023": "06052025"
|
|
},
|
|
"registry_rows": 148,
|
|
"acs_vintage": "ACS 2018-2022 5-year"
|
|
},
|
|
"scope": {
|
|
"gov_types_included": [0, 1, 2, 3],
|
|
"gov_types_excluded": [4, 5],
|
|
"scope_note": "v0.1 covers state, county, city/municipality, and township governments. Special districts (type 4) and school districts (type 5) are excluded pending validation in a future cycle."
|
|
},
|
|
"schema": {
|
|
"long_column_count": 28,
|
|
"long_columns": ["fips_state", "type", "fips_county", "govid", "gov_blank", "gov_name", "county_name", "fips_state_asof", "fips_county_asof", "cog_legacy_state", "cog_legacy_county", "fips_place_code", "population", "popyear", "enrollment", "enrollyear", "function_code", "sch_level_code", "fiscal_year_end", "srvy_year", "item_code", "amt", "srv_data", "impute_flag", "is_aggregate", "canonical_govid", "harmonized_code", "survey_weight"],
|
|
"data_dictionary": "docs/data_dictionary.md"
|
|
},
|
|
"files": {
|
|
"long_partitions": [
|
|
{
|
|
"year": 2011,
|
|
"path": "data/long/year=2011/part-0.parquet",
|
|
"sha256": "7848e18497080c8980a4f89c5b386205b2c5bc90db6773827ea01ab3943d16b1",
|
|
"row_count": 496004,
|
|
"size_bytes": 2202455
|
|
},
|
|
{
|
|
"year": 2012,
|
|
"path": "data/long/year=2012/part-0.parquet",
|
|
"sha256": "b82ac82d5e35f844b26c887445601f3748438c52c998ba4e403b025941a6f170",
|
|
"row_count": 1163338,
|
|
"size_bytes": 5929917
|
|
},
|
|
{
|
|
"year": 2019,
|
|
"path": "data/long/year=2019/part-0.parquet",
|
|
"sha256": "5cbd4726dcc7d0dab5c2a05a64702e979533ae119ed0587073cd31c089e0d737",
|
|
"row_count": 318139,
|
|
"size_bytes": 1719548
|
|
},
|
|
{
|
|
"year": 2020,
|
|
"path": "data/long/year=2020/part-0.parquet",
|
|
"sha256": "ee548fec80bf1beda844fe03916ac145f10dd34c45968407cc330ec260935f00",
|
|
"row_count": 317500,
|
|
"size_bytes": 1722918
|
|
}
|
|
],
|
|
"metadata": [
|
|
{
|
|
"path": "data/canonical_alias.parquet",
|
|
"sha256": "3f617051c23a99bea322889857f7106df0c92954564afeec181df7083ee6698e",
|
|
"description": "canonical_alias.parquet"
|
|
},
|
|
{
|
|
"path": "data/canonical_fips_xwalk.parquet",
|
|
"sha256": "f98742f941269dacf8f7de5c273aa4dd4e75017a5bb70c054da35852a95a8d46",
|
|
"description": "canonical_fips_xwalk.parquet"
|
|
},
|
|
{
|
|
"path": "data/census_collection_coverage.parquet",
|
|
"sha256": "143e025616cde684da7c4442bc00d07fbd1556fabb0ea96223931b737e5d10a4",
|
|
"description": "census_collection_coverage.parquet"
|
|
},
|
|
{
|
|
"path": "data/code_set.parquet",
|
|
"sha256": "4cffcb0198dd51e4ff2b694050bb371a5f9965cdac12f25521cb628fb8e118a9",
|
|
"description": "code_set.parquet"
|
|
},
|
|
{
|
|
"path": "data/harmonization_map.parquet",
|
|
"sha256": "4cf32d0f817079ba4f28dc0ce65450d3247ebbf08d94c0c26c0d02af597bf812",
|
|
"description": "harmonization_map.parquet"
|
|
},
|
|
{
|
|
"path": "data/harmonization_recipes.parquet",
|
|
"sha256": "1133e9a0b02f8f34f5f936e55c5ecd596bb8a55d8425dcce76767f0f3203581c",
|
|
"description": "harmonization_recipes.parquet"
|
|
},
|
|
{
|
|
"path": "data/lineage_events.parquet",
|
|
"sha256": "36c16acfbe621d61010984767f1c566993b8a5f481a2c1e134c4c0a600e4502f",
|
|
"description": "lineage_events.parquet"
|
|
},
|
|
{
|
|
"path": "data/representation.parquet",
|
|
"sha256": "31ec328a7dd505a321b45f97aafff12e53d68a1a986f63509863035b22a4360d",
|
|
"description": "representation.parquet"
|
|
},
|
|
{
|
|
"path": "data/series_breaks.parquet",
|
|
"sha256": "06dcc995ff533e57cc65fa25086cc9bf83ba592c58bf7cc99269dc2576f69944",
|
|
"description": "series_breaks.parquet"
|
|
},
|
|
{
|
|
"path": "data/summary_categories.parquet",
|
|
"sha256": "e3b0efa00ce713b8f45829b89cfde24b55333f26101f0495df82d85997d18d8e",
|
|
"description": "summary_categories.parquet"
|
|
}
|
|
]
|
|
},
|
|
"series_breaks_ref": "docs/series_breaks.md",
|
|
"reader_spec_ref": "docs/reader-specification.md"
|
|
}
|