agency_lifecycle_stats
Time to final rule by agency
The Aalen-Johansen cumulative incidence of a final rule, withdrawal competing (decision 54a), per agency and for all agencies (agency_code NULL), overall, routine, non-routine and per routine family: the first day it reaches each quartile, NULL where it never does, with a 95% interval from the log-log band. A cell under 30 rules keeps its row, suppressed, with no estimates; the Parquet metadata states the estimator exactly. Routine families exist for FAA, EPA and USCG only; for every other agency non_routine equals all. Cells pool every proposal year and no cohort cell is published; for a cohort (proposals since 2015, say), select its rulemaking_lifecycles rows by proposal_date and estimate it the same way. A rule is a docketed proceeding, so a Register proposal naming several dockets counts once per docket and the band treats them as independent. Keyed (agency_code, stratum). Built by build_agency_lifecycle_stats; counts and days are INTEGER.
Coverage. Derived from rulemaking_lifecycles with a survival outcome, every proposal year together (no cohort window), per agency_code as the proceeding states it (no department roll-up: HHS, CMS and FDA are separate cells). A cell covering fewer than 30 rules is suppressed. (measured 2026-09-27)
Data quality. On 2026-09-27 every unsuppressed estimate equalled R's multi-state survfit.
- Parquet file:
agency_lifecycle_stats.parquet, in the snapshot thatmaterialized/rulemaking/latest.jsonnames - MCP
query_sqlsupport: Configured; requires an available artifact. - Publication status: Not established by this schema page or its measurement date.
- Row count: Not stated here; the MCP
describe_tablereply gives the live count underpublication.
| Column | Type | Description |
|---|---|---|
agency_code |
VARCHAR |
The agency the cell covers; NULL for all agencies together. |
stratum |
VARCHAR |
The rules counted: all, routine, non_routine, or one routine family. |
rules |
INTEGER |
Lifecycles in the cell with a survival outcome. |
finals |
INTEGER |
How many of them became final. |
withdrawals |
INTEGER |
How many of them were withdrawn. |
censored |
INTEGER |
How many of them were still open at censor_date. |
suppressed |
BOOLEAN |
Whether the cell has fewer than 30 rules and so carries no estimates. |
q1_days |
INTEGER |
First day the cumulative incidence of a final reaches 25%; NULL where it never does or the cell is suppressed. |
q1_lower_days |
INTEGER |
Lower end of the 95% interval of q1_days: the first day the band's upper edge reaches 25%; NULL where it never does or the cell is suppressed. |
q1_upper_days |
INTEGER |
Upper end of the 95% interval of q1_days: the first day the band's lower edge reaches 25%; NULL where it never does. |
median_days |
INTEGER |
First day the cumulative incidence of a final reaches 50%: the median time to final; NULL where it never does or the cell is suppressed. |
median_lower_days |
INTEGER |
Lower end of the 95% interval of median_days: the first day the band's upper edge reaches 50%; NULL where it never does or the cell is suppressed. |
median_upper_days |
INTEGER |
Upper end of the 95% interval of median_days; NULL where the band's lower edge never reaches 50%. |
q3_days |
INTEGER |
First day the cumulative incidence of a final reaches 75%; NULL where it never does or the cell is suppressed. |
q3_lower_days |
INTEGER |
Lower end of the 95% interval of q3_days: the first day the band's upper edge reaches 75%; NULL where it never does or the cell is suppressed. |
q3_upper_days |
INTEGER |
Upper end of the 95% interval of q3_days; NULL where the band's lower edge never reaches 75%. |
censor_date |
DATE |
The lifecycles' censor date, where the estimates' open rules are censored. |
method |
VARCHAR |
How the row was asserted; deterministic (computed by rule) throughout. |
actor_id |
VARCHAR |
The builder that asserted the row, with its version (spicy-regs:agency-lifecycle-stats:v<n>), bumped when its published rows change. |
run_id |
VARCHAR |
The materialization run that built the snapshot (e.g. rulemaking-20260927T062656Z). |
asserted_at |
VARCHAR |
When that run asserted the row, as a UTC ISO 8601 instant. |
supersedes_id |
VARCHAR |
Id of a prior row this one continues; always NULL here. |