{
  "anchors": [],
  "capability": "ai_infrastructure.production",
  "codebooks": {
    "basis": {
      "codes": {
        "not_seasonally_adjusted": {
          "label": "Not seasonally adjusted (IP only)"
        },
        "seasonally_adjusted": {
          "label": "Seasonally adjusted"
        }
      },
      "coverage": "IP on both bases; capacity/utilization seasonally adjusted only",
      "note": "Two readings of the same industry \u2014 never blend them: a scope averaging the IP index across both bases without grouping by basis carries a production_aggregation note.",
      "semantics": "seasonal_adjustment_basis",
      "source": "The Fed's SDMX SA attribute, verbatim semantics."
    },
    "series_kind": {
      "codes": {
        "capacity": {
          "label": "Capacity index (2017=100, SA only)"
        },
        "capacity_utilization": {
          "label": "Capacity utilization (percent, SA only)"
        },
        "ip": {
          "label": "Industrial-production index (2017=100)"
        }
      },
      "coverage": "every served row is exactly one kind",
      "note": "ip = production index; capacity_utilization = percent of capacity in use; capacity = the capacity index behind the rate.",
      "semantics": "fed_g17_series_kind",
      "source": "Derived 1:1 from the pinned SERIES_NAME (a friendly alias, never a new fact)."
    },
    "series_name": {
      "codes": {
        "CAP.G3344.S": {
          "label": "Capacity index, seasonally adjusted (2017=100)"
        },
        "CAPUTL.G3344.S": {
          "label": "Capacity utilization, seasonally adjusted (percent)"
        },
        "IP.G3344.N": {
          "label": "Industrial-production index, not seasonally adjusted (2017=100)"
        },
        "IP.G3344.S": {
          "label": "Industrial-production index, seasonally adjusted (2017=100)"
        }
      },
      "coverage": "the four pinned NAICS-3344 series (the finest split G.17 publishes for this family)",
      "note": "IP.* is the industrial-production index (2017=100); CAPUTL.* is capacity utilization (percent); CAP.* is the capacity index. Suffix .S = seasonally adjusted, .N = not adjusted. The Fed publishes NO NSA capacity/utilization series.",
      "semantics": "fed_g17_series",
      "source": "Fed G.17 SDMX SERIES_NAME, verbatim."
    }
  },
  "data_point": {
    "does_not_answer": [
      "semiconductors ALONE \u2014 NAICS 3344 includes other electronic components; the Fed publishes no finer split in G.17 (and it is NOT the same slice as QCEW's 334413)",
      "dollars, units shipped, or physical output volume (an index, 2017=100, is relative to the 2017 average \u2014 never a dollar or unit count)",
      "summing an index or a utilization rate across months or series (intensive readings; a multi-month figure is an average, and the Fed publishes its own quarterly/annual series we do not serve)",
      "not-seasonally-adjusted capacity or utilization (the Fed publishes capacity and utilization seasonally adjusted only \u2014 their NSA cells are structurally absent, not suppressed)",
      "any other G.17 industry, market group, or aggregate (total industry, computers NAICS 3341, the \"semiconductors, printed circuit boards, and other\" market group, \u2026) \u2014 this block pins NAICS 3344",
      "which fab, company, or state is producing (a national industry aggregate with no place or operator anchor)",
      "WHY utilization moved (no editorializing; the block serves the Board's published readings)"
    ],
    "grain": "series_monthly",
    "id": "ai_infrastructure.production",
    "note": "This is the Fed's monthly industrial-production index (2017=100), capacity index, and capacity utilization (percent) for SEMICONDUCTOR AND OTHER ELECTRONIC COMPONENT manufacturing (NAICS 3344) \u2014 broader than semiconductors alone, and NOT the same slice as QCEW's 334413. An index or a rate is INTENSIVE: averaged / min'd / max'd over a scope, never summed; a multi-month figure is an average. Capacity and utilization exist seasonally adjusted ONLY. An index is not dollars and not physical output volume.",
    "product_spec": "blocks/ai_infrastructure_production/card.md",
    "represented_fact": "Fed G.17 (Industrial Production and Capacity Utilization) \u2014 the Board's monthly industrial-production index (2017=100, seasonally adjusted and not adjusted), capacity index, and capacity utilization (percent, seasonally adjusted) for SEMICONDUCTOR AND OTHER ELECTRONIC COMPONENT manufacturing (NAICS 3344), served exactly as the Board publishes them. NAICS 3344 is the finest split G.17 publishes for this family \u2014 broader than semiconductors alone, and NOT the same slice as QCEW's 334413. Public domain; cited to the Board.",
    "source_basis": [
      "production.fed.g17"
    ],
    "source_decisions": [
      "docs/sources/production/fed_g17/build-plan.md"
    ]
  },
  "input": {
    "controls": [
      "include_records",
      "include_evidence",
      "limit",
      "order_by",
      "top_n",
      "order",
      "rollup_other"
    ],
    "date_range_params": [
      "data_month_from",
      "data_month_to"
    ],
    "date_ranges": [
      "data_month"
    ],
    "field_metadata": {
      "obs_status": {
        "answer_label": "observation status (verbatim)",
        "counting_definition": "A per-observation flag \u2014 context only, never aggregated.",
        "definition": "The Fed's verbatim per-observation status flag; 'A' is the only code the Board has published on these series (the gate fails closed on any new code).",
        "semantics": "fed_g17_sdmx_obs_status",
        "source_field": "obs_status"
      },
      "time_period_label": {
        "answer_label": "Fed time period (verbatim)",
        "counting_definition": "A per-observation label \u2014 context only, never aggregated.",
        "definition": "The Fed's verbatim TIME_PERIOD stamp \u2014 a month-END date (e.g. '2026-05-31'); data_month is the same month normalized to first-of-month.",
        "semantics": "fed_g17_sdmx_time_period",
        "source_field": "time_period_label"
      },
      "unit_label": {
        "answer_label": "series unit (verbatim)",
        "counting_definition": "A per-series constant label \u2014 context only, never aggregated.",
        "definition": "The Fed's verbatim SDMX UNIT attribute for the record's series \u2014 'Index:_2017_100' or 'Percentage'.",
        "semantics": "fed_g17_sdmx_unit_attribute",
        "source_field": "unit_label"
      }
    },
    "filters": [
      "as_of",
      "series_name",
      "series_kind",
      "basis",
      "data_month",
      "data_month_from",
      "data_month_to",
      "year"
    ],
    "group_by": [
      "series_name",
      "series_kind",
      "basis",
      "data_month",
      "year"
    ],
    "ranking": {
      "no_ranking": "Omit order_by and top_n to return all groups in group-key order.",
      "order": {
        "default": "desc",
        "valid_values": [
          "desc",
          "asc"
        ]
      },
      "order_by": {
        "accepts": "one of output.metrics",
        "note": "Ranks the groups by a metric (a measure). Not a group_by dimension \u2014 rows already come back grouped by each group_by field.",
        "requires": [
          "group_by"
        ],
        "valid_values": [
          "avg_ip_index",
          "min_ip_index",
          "max_ip_index",
          "avg_capacity_index",
          "min_capacity_index",
          "max_capacity_index",
          "avg_capacity_utilization_pct",
          "min_capacity_utilization_pct",
          "max_capacity_utilization_pct",
          "source_record_count"
        ]
      },
      "top_n": {
        "note": "Keeps the top N groups by order_by; the rest fold into one (other) remainder (additive metrics sum into it, non-additive ones are nulled) so the result still reconciles to summary.totals.",
        "requires": [
          "group_by",
          "order_by"
        ],
        "type": "positive integer"
      }
    }
  },
  "output": {
    "aggregate_citation_fields": [
      "source_id",
      "publisher",
      "source_url",
      "source_file",
      "raw_file_sha256",
      "as_of",
      "source_rows_count",
      "source_rows_sample",
      "verify",
      "lineage_filter"
    ],
    "citation_fields": [
      "source_id",
      "source_url",
      "source_file",
      "sheet",
      "source_row",
      "time_period",
      "raw_file_sha256",
      "as_of"
    ],
    "detail_fields": [
      "source_id",
      "series_name",
      "source_record_key",
      "report_period",
      "series_kind",
      "basis",
      "data_month",
      "year",
      "time_period_label",
      "obs_status",
      "unit_label",
      "ip_index",
      "capacity_index",
      "capacity_utilization_pct",
      "source_row_number",
      "as_of",
      "raw_file_sha256",
      "citation"
    ],
    "metric_groups": {
      "capacity_index": [
        "avg_capacity_index",
        "min_capacity_index",
        "max_capacity_index"
      ],
      "capacity_utilization": [
        "avg_capacity_utilization_pct",
        "min_capacity_utilization_pct",
        "max_capacity_utilization_pct"
      ],
      "production_index": [
        "avg_ip_index",
        "min_ip_index",
        "max_ip_index"
      ],
      "records": [
        "source_record_count"
      ]
    },
    "metric_metadata": {
      "avg_capacity_index": {
        "additive_across_groups": false,
        "aggregation": "average",
        "authoritative_total_path": "summary.totals.avg_capacity_index",
        "category": "capacity_index",
        "definition": "The average of the Fed's published monthly capacity index (NAICS 3344) over the result scope.",
        "description": "An index (2017=100) and a utilization rate are INTENSIVE \u2014 averaged, min'd, and max'd over the scope, NEVER summed (a 'total index' is meaningless). Each measure exists only on its own series' rows: the IP index on both bases (seasonally_adjusted / not_seasonally_adjusted), capacity and utilization seasonally adjusted ONLY (the Fed publishes no NSA series for them \u2014 their cells are structurally absent, not zero). A scope averaging the IP index across BOTH bases without grouping by basis carries a production_aggregation note. NAICS 3344 is 'semiconductor and OTHER electronic component' manufacturing \u2014 broader than semiconductors alone.",
        "display_name": "Average capacity index",
        "display_precision": "Values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "series x data_month",
        "null_handling": "A scope with none of this measure's rows returns null (not 0 \u2014 absence is structural, e.g. no NSA capacity/utilization series exists).",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.avg_capacity_index",
        "source_fields": [
          "capacity_index"
        ],
        "unit": "index (2017=100)"
      },
      "avg_capacity_utilization_pct": {
        "additive_across_groups": false,
        "aggregation": "average",
        "authoritative_total_path": "summary.totals.avg_capacity_utilization_pct",
        "category": "capacity_utilization",
        "definition": "The average of the Fed's published monthly capacity utilization (NAICS 3344) over the result scope.",
        "description": "An index (2017=100) and a utilization rate are INTENSIVE \u2014 averaged, min'd, and max'd over the scope, NEVER summed (a 'total index' is meaningless). Each measure exists only on its own series' rows: the IP index on both bases (seasonally_adjusted / not_seasonally_adjusted), capacity and utilization seasonally adjusted ONLY (the Fed publishes no NSA series for them \u2014 their cells are structurally absent, not zero). A scope averaging the IP index across BOTH bases without grouping by basis carries a production_aggregation note. NAICS 3344 is 'semiconductor and OTHER electronic component' manufacturing \u2014 broader than semiconductors alone.",
        "display_name": "Average capacity utilization",
        "display_precision": "Values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "series x data_month",
        "null_handling": "A scope with none of this measure's rows returns null (not 0 \u2014 absence is structural, e.g. no NSA capacity/utilization series exists).",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.avg_capacity_utilization_pct",
        "source_fields": [
          "capacity_utilization_pct"
        ],
        "unit": "percent"
      },
      "avg_ip_index": {
        "additive_across_groups": false,
        "aggregation": "average",
        "authoritative_total_path": "summary.totals.avg_ip_index",
        "category": "production_index",
        "definition": "The average of the Fed's published monthly industrial-production index (NAICS 3344) over the result scope.",
        "description": "An index (2017=100) and a utilization rate are INTENSIVE \u2014 averaged, min'd, and max'd over the scope, NEVER summed (a 'total index' is meaningless). Each measure exists only on its own series' rows: the IP index on both bases (seasonally_adjusted / not_seasonally_adjusted), capacity and utilization seasonally adjusted ONLY (the Fed publishes no NSA series for them \u2014 their cells are structurally absent, not zero). A scope averaging the IP index across BOTH bases without grouping by basis carries a production_aggregation note. NAICS 3344 is 'semiconductor and OTHER electronic component' manufacturing \u2014 broader than semiconductors alone.",
        "display_name": "Average industrial-production index",
        "display_precision": "Values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "series x data_month",
        "null_handling": "A scope with none of this measure's rows returns null (not 0 \u2014 absence is structural, e.g. no NSA capacity/utilization series exists).",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.avg_ip_index",
        "source_fields": [
          "ip_index"
        ],
        "unit": "index (2017=100)"
      },
      "max_capacity_index": {
        "additive_across_groups": false,
        "aggregation": "maximum",
        "authoritative_total_path": "summary.totals.max_capacity_index",
        "category": "capacity_index",
        "definition": "The maximum of the Fed's published monthly capacity index (NAICS 3344) over the result scope.",
        "description": "An index (2017=100) and a utilization rate are INTENSIVE \u2014 averaged, min'd, and max'd over the scope, NEVER summed (a 'total index' is meaningless). Each measure exists only on its own series' rows: the IP index on both bases (seasonally_adjusted / not_seasonally_adjusted), capacity and utilization seasonally adjusted ONLY (the Fed publishes no NSA series for them \u2014 their cells are structurally absent, not zero). A scope averaging the IP index across BOTH bases without grouping by basis carries a production_aggregation note. NAICS 3344 is 'semiconductor and OTHER electronic component' manufacturing \u2014 broader than semiconductors alone.",
        "display_name": "Maximum capacity index",
        "display_precision": "Values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "series x data_month",
        "null_handling": "A scope with none of this measure's rows returns null (not 0 \u2014 absence is structural, e.g. no NSA capacity/utilization series exists).",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.max_capacity_index",
        "source_fields": [
          "capacity_index"
        ],
        "unit": "index (2017=100)"
      },
      "max_capacity_utilization_pct": {
        "additive_across_groups": false,
        "aggregation": "maximum",
        "authoritative_total_path": "summary.totals.max_capacity_utilization_pct",
        "category": "capacity_utilization",
        "definition": "The maximum of the Fed's published monthly capacity utilization (NAICS 3344) over the result scope.",
        "description": "An index (2017=100) and a utilization rate are INTENSIVE \u2014 averaged, min'd, and max'd over the scope, NEVER summed (a 'total index' is meaningless). Each measure exists only on its own series' rows: the IP index on both bases (seasonally_adjusted / not_seasonally_adjusted), capacity and utilization seasonally adjusted ONLY (the Fed publishes no NSA series for them \u2014 their cells are structurally absent, not zero). A scope averaging the IP index across BOTH bases without grouping by basis carries a production_aggregation note. NAICS 3344 is 'semiconductor and OTHER electronic component' manufacturing \u2014 broader than semiconductors alone.",
        "display_name": "Maximum capacity utilization",
        "display_precision": "Values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "series x data_month",
        "null_handling": "A scope with none of this measure's rows returns null (not 0 \u2014 absence is structural, e.g. no NSA capacity/utilization series exists).",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.max_capacity_utilization_pct",
        "source_fields": [
          "capacity_utilization_pct"
        ],
        "unit": "percent"
      },
      "max_ip_index": {
        "additive_across_groups": false,
        "aggregation": "maximum",
        "authoritative_total_path": "summary.totals.max_ip_index",
        "category": "production_index",
        "definition": "The maximum of the Fed's published monthly industrial-production index (NAICS 3344) over the result scope.",
        "description": "An index (2017=100) and a utilization rate are INTENSIVE \u2014 averaged, min'd, and max'd over the scope, NEVER summed (a 'total index' is meaningless). Each measure exists only on its own series' rows: the IP index on both bases (seasonally_adjusted / not_seasonally_adjusted), capacity and utilization seasonally adjusted ONLY (the Fed publishes no NSA series for them \u2014 their cells are structurally absent, not zero). A scope averaging the IP index across BOTH bases without grouping by basis carries a production_aggregation note. NAICS 3344 is 'semiconductor and OTHER electronic component' manufacturing \u2014 broader than semiconductors alone.",
        "display_name": "Maximum industrial-production index",
        "display_precision": "Values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "series x data_month",
        "null_handling": "A scope with none of this measure's rows returns null (not 0 \u2014 absence is structural, e.g. no NSA capacity/utilization series exists).",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.max_ip_index",
        "source_fields": [
          "ip_index"
        ],
        "unit": "index (2017=100)"
      },
      "min_capacity_index": {
        "additive_across_groups": false,
        "aggregation": "minimum",
        "authoritative_total_path": "summary.totals.min_capacity_index",
        "category": "capacity_index",
        "definition": "The minimum of the Fed's published monthly capacity index (NAICS 3344) over the result scope.",
        "description": "An index (2017=100) and a utilization rate are INTENSIVE \u2014 averaged, min'd, and max'd over the scope, NEVER summed (a 'total index' is meaningless). Each measure exists only on its own series' rows: the IP index on both bases (seasonally_adjusted / not_seasonally_adjusted), capacity and utilization seasonally adjusted ONLY (the Fed publishes no NSA series for them \u2014 their cells are structurally absent, not zero). A scope averaging the IP index across BOTH bases without grouping by basis carries a production_aggregation note. NAICS 3344 is 'semiconductor and OTHER electronic component' manufacturing \u2014 broader than semiconductors alone.",
        "display_name": "Minimum capacity index",
        "display_precision": "Values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "series x data_month",
        "null_handling": "A scope with none of this measure's rows returns null (not 0 \u2014 absence is structural, e.g. no NSA capacity/utilization series exists).",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.min_capacity_index",
        "source_fields": [
          "capacity_index"
        ],
        "unit": "index (2017=100)"
      },
      "min_capacity_utilization_pct": {
        "additive_across_groups": false,
        "aggregation": "minimum",
        "authoritative_total_path": "summary.totals.min_capacity_utilization_pct",
        "category": "capacity_utilization",
        "definition": "The minimum of the Fed's published monthly capacity utilization (NAICS 3344) over the result scope.",
        "description": "An index (2017=100) and a utilization rate are INTENSIVE \u2014 averaged, min'd, and max'd over the scope, NEVER summed (a 'total index' is meaningless). Each measure exists only on its own series' rows: the IP index on both bases (seasonally_adjusted / not_seasonally_adjusted), capacity and utilization seasonally adjusted ONLY (the Fed publishes no NSA series for them \u2014 their cells are structurally absent, not zero). A scope averaging the IP index across BOTH bases without grouping by basis carries a production_aggregation note. NAICS 3344 is 'semiconductor and OTHER electronic component' manufacturing \u2014 broader than semiconductors alone.",
        "display_name": "Minimum capacity utilization",
        "display_precision": "Values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "series x data_month",
        "null_handling": "A scope with none of this measure's rows returns null (not 0 \u2014 absence is structural, e.g. no NSA capacity/utilization series exists).",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.min_capacity_utilization_pct",
        "source_fields": [
          "capacity_utilization_pct"
        ],
        "unit": "percent"
      },
      "min_ip_index": {
        "additive_across_groups": false,
        "aggregation": "minimum",
        "authoritative_total_path": "summary.totals.min_ip_index",
        "category": "production_index",
        "definition": "The minimum of the Fed's published monthly industrial-production index (NAICS 3344) over the result scope.",
        "description": "An index (2017=100) and a utilization rate are INTENSIVE \u2014 averaged, min'd, and max'd over the scope, NEVER summed (a 'total index' is meaningless). Each measure exists only on its own series' rows: the IP index on both bases (seasonally_adjusted / not_seasonally_adjusted), capacity and utilization seasonally adjusted ONLY (the Fed publishes no NSA series for them \u2014 their cells are structurally absent, not zero). A scope averaging the IP index across BOTH bases without grouping by basis carries a production_aggregation note. NAICS 3344 is 'semiconductor and OTHER electronic component' manufacturing \u2014 broader than semiconductors alone.",
        "display_name": "Minimum industrial-production index",
        "display_precision": "Values are rounded to 6 decimal places in JSON to remove binary floating-point noise.",
        "grain": "series x data_month",
        "null_handling": "A scope with none of this measure's rows returns null (not 0 \u2014 absence is structural, e.g. no NSA capacity/utilization series exists).",
        "rollup_behavior": "non_additive_measure",
        "row_metric_path": "rows[].metrics.min_ip_index",
        "source_fields": [
          "ip_index"
        ],
        "unit": "index (2017=100)"
      },
      "source_record_count": {
        "additive_across_groups": true,
        "aggregation": "count source records",
        "authoritative_total_path": "summary.totals.source_record_count",
        "category": "records",
        "definition": "Count of normalized source observations (series \u00d7 month) contributing to the current result scope.",
        "description": "Number of Fed observations contributing to the avg/min/max \u2014 e.g. 12 for one series over one calendar year.",
        "display_name": "Source record count",
        "display_precision": "Integer.",
        "grain": "series x data_month",
        "null_handling": "Always an integer count.",
        "rollup_behavior": "additive_partition_metric",
        "row_metric_path": "rows[].metrics.source_record_count",
        "source_fields": [
          "source_record_key"
        ],
        "unit": "count"
      }
    },
    "metrics": [
      "avg_ip_index",
      "min_ip_index",
      "max_ip_index",
      "avg_capacity_index",
      "min_capacity_index",
      "max_capacity_index",
      "avg_capacity_utilization_pct",
      "min_capacity_utilization_pct",
      "max_capacity_utilization_pct",
      "source_record_count"
    ],
    "summary_fields": [
      "group_count",
      "totals"
    ]
  },
  "primitive": "query_ai_infrastructure_production_v1",
  "status": "available"
}
