Does Divided Government Stop Congress From Passing Major Laws?

A pre-registered test of significant lawmaking under divided government, 1947 to 2024

Author

Frank Frisbie

Published

September 30, 2026

Code
# Every figure on this page is read from files written by the analysis scripts
# (R/05-R/08, corrected pass) or from a live run of the unaltered July script R/03.
# Nothing here estimates anything; this chunk only reads and formats.
library(jsonlite)
D  <- "data/derived/corrected"
S5 <- fromJSON(file.path(D, "stats_05.json"))
S6 <- fromJSON(file.path(D, "stats_06.json"), simplifyVector = FALSE)
S7 <- fromJSON(file.path(D, "stats_07.json"))
S8 <- fromJSON(file.path(D, "stats_08.json"))$measures

f2 <- function(x) sprintf("%.2f", x)
f3 <- function(x) sprintf("%.3f", x)
fp <- function(p) { s <- sprintf("%.3f", p); if (s == "0.050") sprintf("%.4f", p) else s }
to <- function(lo, hi) paste(f3(lo), "to", f3(hi))
br <- function(lo, hi) sprintf("[%s, %s]", f3(lo), f3(hi))
ord <- function(n) paste0(n, ifelse(n %% 100 %in% 11:13, "th",
                                    c("th", "st", "nd", "rd", rep("th", 6))[n %% 10 + 1]))
words <- c("one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten",
           "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen",
           "eighteen", "nineteen", "twenty")
cap <- function(s) paste0(toupper(substring(s, 1, 1)), substring(s, 2))
end_year <- function(c) 1789 + 2 * (c - 1) + 1
sig <- function(p) p < 0.05

sp <- function(label) S7$specs[S7$specs$spec == label, ]
PARS <- sp("parsimonious (divided + congress_c + war)")
FULL <- sp("full (+ post_elec + seat shares + dem_pres)")
HAC  <- sp("parsimonious, HAC SEs")
MIX  <- sp("mixed DV, parsimonious + regime_sweepone")
H2   <- sp("H2 interaction, pooled (registered)")
H2H  <- sp("H2 interaction, House only (secondary)")
H2S  <- sp("H2 interaction, Senate only (secondary)")
WINT <- sp("parsimonious, war = inter-state only")
ms <- function(dv) S8[S8$dv == dv, ]
APS <- ms("aps"); STA <- ms("stathis"); CL1 <- ms("cl_top1"); CL2 <- ms("cl_top2"); CL5 <- ms("cl_top5")
CL  <- list(CL1, CL2, CL5)
LC  <- S7$loo_congress; LD <- S7$loo_decade
loo_lo <- min(LC$pois_min, LD$pois_min); loo_hi <- max(LC$pois_max, LD$pois_max)
pre_comb <- S6$pre1990_combined; pre_s1 <- S6$pre1990_sweepone
n_war <- length(S6$war_congresses); n_war_inter <- length(S6$war_inter_congresses)
indep_last <- max(S8$last_congress[S8$dv != "n_sweepone"])
cl_pct <- unlist(S5$thresholds_pct)

# July pass: run the unaltered R/03 (it reads the July panel and writes nothing).
july <- system2("python", c("-W", "ignore", "R/03_models.py"), stdout = TRUE, stderr = FALSE)
grab <- function(pattern) {
  l <- grep(pattern, july, value = TRUE)[1]
  as.numeric(regmatches(l, regexpr("(?<=IRR=)[0-9.]+", l, perl = TRUE))) -> irr
  as.numeric(regmatches(l, regexpr("(?<=p=)[0-9.]+", l, perl = TRUE))) -> p
  list(irr = irr, p = p)
}
J_PARS <- grab("^\\s+parsimonious :"); J_HAC <- grab("divided w/ HAC SEs")

# v5.1 comparison (predictor only)
v51 <- S6$v51_rows
v51_row <- function(num) Filter(function(r) abs(r$num - num) < 1e-6, v51)
v51_extra <- setdiff(unlist(S6$v51_war_congresses), unlist(S6$war_congresses))
n_2014 <- sum(vapply(v51, function(r) r$y0 == 2014, logical(1)))
Code
# Guards: each verbal claim in the prose below must hold in the numbers, or the render stops.
stopifnot(
  is.na(PARS$nb_IRR), is.na(FULL$nb_IRR), is.na(HAC$nb_IRR), is.na(H2$nb_IRR),   # NB failed at boundary
  S7$pearson_ratio < 1, !sig(S7$ct_p),                                               # no overdispersion
  PARS$pois_IRR < 1, !sig(PARS$pois_p), !sig(HAC$pois_p),                            # lean, not significant
  FULL$pois_IRR > 1, !sig(FULL$pois_p),                                              # full flips, n.s.
  sig(APS$nb_p), sig(APS$pois_p), APS$nb_IRR < 1,                                    # APS both
  !sig(STA$nb_p), !sig(STA$pois_p), STA$nb_IRR > 1,                                  # Stathis null, above 1
  sig(CL1$pois_p), !sig(CL2$pois_p), sig(CL5$pois_p),                                # CL Poisson pattern
  !any(sig(c(CL1$nb_p, CL2$nb_p, CL5$nb_p))),                                        # CL NB none
  all(c(CL1$nb_hi - CL1$nb_lo > CL1$pois_hi - CL1$pois_lo,
        CL5$nb_hi - CL5$nb_lo > CL5$pois_hi - CL5$pois_lo)),                         # NB intervals wider
  LC$pois_flips == 0, LD$pois_flips == 0, loo_hi < 1,                                # LOO stable negative
  MIX$nb_IRR < 1, !sig(MIX$nb_p), !sig(MIX$pois_p),                                  # seam
  !sig(S7$lb_p), !sig(H2$pois_p), !sig(H2H$pois_p), !sig(H2S$pois_p),
  (H2H$pois_IRR - 1) * (H2S$pois_IRR - 1) < 0,                                       # opposite sides of 1
  !sig(WINT$nb_p), !sig(WINT$pois_p),
  sig(J_HAC$p), f3(J_PARS$irr) == f3(WINT$pois_IRR),                                 # July = war_inter model
  length(S7$minority_mismatch) == 2
)

The claim being tested

When one party holds the White House and the other holds a chamber of Congress, the standard story says Washington seizes up. Bills stall, big laws stop, and the country gets gridlock. It is one of the most repeated claims in American politics.

The scholarship is less settled than the story. David Mayhew’s Divided We Govern (1991) counted the important laws Congress passed from 1947 to 1990 and found that divided government produced about as many as unified government. Later work did not close the question. Ansolabehere, Palmer, and Schneer, using their own coding of significant acts, reported roughly four fewer significant acts under divided government in the twentieth century.

This study asks the narrow version: across the 80th to 118th Congresses (1947 to 2024), does divided government reduce the number of significant laws Congress enacts? The unit is the two-year Congress, so there are 39 observations. A Congress is divided when the president’s party does not control both chambers, which is Mayhew’s definition.

NoteThis analysis was pre-registered

The question, the outcome, the controls, the estimator, and every robustness test were frozen in PRE_REGISTRATION.md on 2026-07-14, before any count of significant laws was downloaded. One amendment followed, PRE_REGISTRATION_AMENDMENT_01.md, made before any model was fit, when it turned out Mayhew’s own series changes method in 1990. The registered expectation was a null. How the analysis was run, including three deviations that had to be corrected, is set out in Integrity and provenance.

The finding

The popular gridlock claim is not robustly supported. Divided Congresses lean toward passing fewer significant laws, and the lean is persistent: it points the same way in nearly every cut of the data. But it never clears significance cleanly, and it depends on who decides which laws count as significant. Independent codings of “significant legislation” disagree with one another, and under the rule this study registered in advance, that disagreement means the effect is not robust.

In the primary model, a divided Congress enacts about 0.84 times as many significant laws as a unified one (incidence-rate ratio 0.841, 95% CI 0.687 to 1.028, p = 0.091). With Newey-West standard errors, which the pre-registration required because this is a time series, the interval narrows to 0.707 to 1.000 and p = 0.0503. That lands just outside the conventional threshold. It does not clear the bar.

This should not be read as a clean null, and it should not be read as an effect. The honest reading sits between the two: a modest negative association that shows up repeatedly and that none of the tests can confirm.

The primary model is the one the pre-registration named as parsimonious: divided government, a centered Congress number for the long-run decline in landmark laws, and a war indicator. The outcome is the count of significant enactments from Mayhew’s list, using only his contemporaneous “Sweep One” judgments so that 1955 and 2015 are counted the same way (see The 1990 seam).

Robustness

Why Poisson and not negative binomial

The pre-registration made negative binomial the primary estimator and Poisson the robustness check, with an overdispersion test to decide between them. Negative binomial was attempted for every specification. On the Mayhew series it could not be estimated, because the data show no overdispersion at all. The Pearson chi-square over degrees of freedom from the Poisson fit is 0.954, slightly below 1, and the Cameron-Trivedi test finds nothing (one-sided p = 0.746). The negative binomial’s dispersion parameter goes to zero, the model collapses onto Poisson, and its standard errors cannot be computed at that boundary.

So Poisson is the correct model for this series and it stands. This is the registered structure doing its job: the robustness estimator exists for exactly this case. The fallback rule was written into code before any corrected estimate existed (R/estimators.py), and each failed negative binomial fit is printed with its reason in the run log. Where negative binomial did converge (the mixed series and the independent measures below), it is reported first.

The full model flips sign, and why that should not be read as a reversal

Adding the registered full controls (post-election Congress, the president’s party’s share of House and Senate seats, and a Democratic-president indicator) moves the divided coefficient to 1.216 (95% CI 0.845 to 1.748, p = 0.293). On its face, divided government now goes with more laws.

That flip is a collinearity artifact, not a finding. The full model conditions on seat shares that almost define the treatment. Divided government matches “the president’s party held under 50% of the seats in a chamber at the start of the Congress” in 37 of 39 Congresses; the two exceptions are the 107th and 117th, both split Senates. The correlation between divided government and the president’s House seat share is -0.835, and that seat share has a variance inflation factor of 7.27 in the full model (3.48 for divided itself, against 1.07 in the parsimonious model). Once the model holds seat shares fixed, most of the variation in divided government is already carried by the seats, and the divided coefficient rests on what little is left.

Do not read the flip as the controls reversing the effect. The parsimonious model is the one whose divided coefficient means what the question asks. But the pre-registration also said that if the coefficient moved between the two specifications, the movement would be reported as fragility rather than resolved by picking one. It is reported that way here. The collinearity explains the flip; it does not turn the parsimonious estimate into a robust one.

Independent measures disagree

This is the center of the study. The pre-registration required the divided coefficient to agree across independent codings of significant legislation before any claim could be called robust. Each measure below uses the same predictor and controls; only the count of significant laws changes. The last column refits the Mayhew count on the same Congresses, so a difference between columns is the measure, not the sample.

Code
lab <- c(n_sweepone = "Mayhew, Sweep One (primary)", aps = "Ansolabehere-Palmer-Schneer",
         stathis = "Stathis landmark laws",
         cl_top1 = sprintf("Clinton-Lapinski, top %d%%", cl_pct[["cl_top1"]]),
         cl_top2 = sprintf("Clinton-Lapinski, top %d%%", cl_pct[["cl_top2"]]),
         cl_top5 = sprintf("Clinton-Lapinski, top %d%%", cl_pct[["cl_top5"]]))
est <- function(i, lo, hi, p) ifelse(is.na(i), "not estimable (no overdispersion)",
                                     sprintf("%s %s, p = %s", f3(i), br(lo, hi), sapply(p, fp)))
same <- ifelse(S8$dv == "n_sweepone", f3(S8$mayhew_same_span_pois_IRR),
               sprintf("%s (p = %s)", f3(S8$mayhew_same_span_pois_IRR), sapply(S8$mayhew_same_span_pois_p, fp)))
tab <- data.frame(Measure = lab[S8$dv],
                  Congresses = paste0(S8$first_congress, "-", S8$last_congress), n = S8$n,
                  `NB: divided IRR [95% CI], p` = est(S8$nb_IRR, S8$nb_lo, S8$nb_hi, S8$nb_p),
                  `Poisson: divided IRR [95% CI], p` = est(S8$pois_IRR, S8$pois_lo, S8$pois_hi, S8$pois_p),
                  `Mayhew, same Congresses (Poisson)` = same, check.names = FALSE)
knitr::kable(tab, row.names = FALSE)
Measure Congresses n NB: divided IRR [95% CI], p Poisson: divided IRR [95% CI], p Mayhew, same Congresses (Poisson)
Mayhew, Sweep One (primary) 80-118 39 not estimable (no overdispersion) 0.841 [0.687, 1.028], p = 0.091 0.841
Ansolabehere-Palmer-Schneer 80-111 32 0.745 [0.561, 0.988], p = 0.041 0.748 [0.619, 0.904], p = 0.003 0.836 (p = 0.117)
Stathis landmark laws 80-112 33 1.068 [0.857, 1.331], p = 0.556 1.069 [0.905, 1.261], p = 0.433 0.830 (p = 0.102)
Clinton-Lapinski, top 1% 80-103 24 0.652 [0.386, 1.102], p = 0.110 0.645 [0.455, 0.914], p = 0.014 0.823 (p = 0.176)
Clinton-Lapinski, top 2% 80-103 24 0.833 [0.601, 1.155], p = 0.273 0.852 [0.680, 1.066], p = 0.162 0.823 (p = 0.176)
Clinton-Lapinski, top 5% 80-103 24 0.841 [0.639, 1.107], p = 0.217 0.853 [0.745, 0.976], p = 0.021 0.823 (p = 0.176)

The three independent codings do not agree. APS finds fewer significant laws under divided government, significant under both estimators. Stathis finds nothing, with a point estimate slightly above 1. Clinton-Lapinski depends on where the significance line is drawn and on the estimator: under Poisson the top 1% and top 5% cutoffs are significant and the top 2% is not; under negative binomial, which converged for these series because they are overdispersed, none of the three cutoffs is significant.

Per the registered rule, that disagreement means the effect is not robust. It is not reconciled here, and no measure is promoted over another. We do not know which coding of “significant” is right, and this study cannot settle it.

The disagreement may also help explain why the literature has not converged. Mayhew and Ansolabehere, Palmer, and Schneer reached different conclusions using different lists of important laws. On the same Congresses, with the same model, the choice of list alone moves the estimate from a significant reduction to nothing. That is consistent with the prior disagreement being partly a disagreement about measurement, though this study does not test that directly.

Two details of these measures matter. Clinton and Lapinski publish a continuous significance score, not a list, so a count requires a cutoff. The cutoff is a coding choice; it was fixed at the top 1%, 2%, and 5% of their global rank across all 37,767 ranked laws, and all three are reported rather than one. And the Stathis file used here ends at the 112th Congress (2012), not 2014.

Leave-one-out

Dropping one Congress at a time (39 refits), the divided rate ratio stays between 0.817 and 0.877. Dropping one decade at a time (9 refits), it stays between 0.805 and 0.892. It never changes sign. So no single Congress or decade manufactures the negative lean. What leave-one-out shows is that the estimate is reliably marginal: always negative, always near the edge, never robustly significant.

The 1990 seam

Mayhew’s list changes method in 1990. Before that, each Congress’s count combines contemporaneous judgments (Sweep One) with a later retrospective review (Sweep Two). From 1991 on, Mayhew uses Sweep One only, because the retrospective review cannot yet be done for recent years. Of the 267 laws on the 1947-1990 list, 56 come from Sweep Two alone. Because divided government also became more common after 1994, a series that mixes the two methods would let “divided” absorb “counted differently,” which is why the amendment made Sweep One the primary series.

The registered robustness check runs the model on the mixed series with an indicator for the post-1990 method. The divided rate ratio is 0.904 (negative binomial, 95% CI 0.734 to 1.112, p = 0.338; Poisson 0.904, p = 0.303). It agrees in sign with the primary and is not significant. The method indicator itself is 0.610, the drop in counts that comes with losing Sweep Two. The seam does not overturn the conclusion.

Serial correlation

Residual autocorrelation is mild. The Durbin-Watson statistic is 1.680, and a Ljung-Box test at three lags finds nothing (p = 0.751). The Newey-West standard errors reported above are the registered correction regardless.

War coding

The pre-registration defines the war control as a Correlates of War inter-state or intra-state war in either year of the Congress. Coded that way, 20 of the 39 Congresses are war Congresses. Counting inter-state wars only gives 12. The divided estimate depends on this choice more than on anything else in the specification. With inter-state wars only, the parsimonious rate ratio is 0.822 (95% CI 0.674 to 1.003, p = 0.054); with both, as registered, it is 0.841 (p = 0.091). Neither version is significant on model standard errors. This is a stated limitation, below, and the full coding is listed in the war appendix.

The polarization question (underpowered by design)

The pre-registration included a secondary hypothesis, that gridlock emerges or grows as the parties polarize, and registered it as underpowered before seeing any data. It is tested as an interaction between divided government and the distance between the parties’ mean DW-NOMINATE scores, with House and Senate members pooled into one party gap.

The interaction is 0.239 (95% CI -1.389 to 1.868, p = 0.773). Only 13 divided Congresses sit above median polarization, so the test has little power. Splitting polarization by chamber, as a secondary check, gives the same picture (House p = 0.728, Senate p = 0.591, with point estimates on opposite sides of 1).

This is no evidence of a polarization effect. It is not evidence that there is none.

Limitations

  • The modern era rests on Mayhew alone. Every independent measure stops by 2012 (Clinton-Lapinski at 1994). The 113th to 118th Congresses, the most polarized in the series, cannot be cross-checked.
  • “Significant” is a coding choice. The cross-measure disagreement is the main result, and it cannot be resolved with the data available. The Clinton-Lapinski cutoffs are a further choice inside one measure.
  • War coding is load-bearing at the margin. Inter-state-only war coding gives 0.822 (p = 0.054); the registered inter- and intra-state coding gives 0.841 (p = 0.091). The Correlates of War’s current intra-state release (v5.1) codes US participation differently after 2006 and ends in 2014, so it cannot code the 114th to 118th Congresses. It fails the completeness gate as a modeling variable and was not run. It is documented in the war appendix only.
  • Sweep One is the same procedure throughout, but not guaranteed to be applied identically across decades. Drift within Sweep One is possible and is not corrected. The primary series also drops the 56 pre-1990 laws that only the retrospective review picked up; that is a choice of consistent measurement, not a claim that those laws were unimportant.
  • n = 39. Enough to see a main effect of the size prior work reported, if it were stable. Not enough for the polarization interaction, as registered.
  • The full model’s controls are near-definitional. Seat shares and divided government measure almost the same thing, so the full specification cannot separate them.

Integrity and provenance

This study’s analysis was run twice, and the first run did not follow the pre-registration in three places. The record of both runs is kept in the open.

The first modeling pass ran on 2026-07-16, the day after the amendment was decided. A review against the frozen spec on 2026-09-26 found that it:

  1. used Poisson as the primary estimator for every reported estimate, where the spec made negative binomial primary. For the Mayhew primary series this is immaterial: there is no overdispersion for negative binomial to model, and it collapses onto Poisson. For the independent measures it is material. Negative binomial converges there, with wider intervals, and Clinton-Lapinski is significant at the top 1% and top 5% cutoffs under Poisson but not significant at any cutoff under the registered negative binomial. The cross-measure disagreement, and so the study’s conclusion, holds under either estimator. But the estimator choice does change that one measure’s significance verdict, which is why both estimators are shown side by side;
  2. coded the war control from inter-state wars only, where the spec said inter- or intra-state; and
  3. assigned the 117th Congress (2021-22) to President Trump instead of President Biden, because the voteview data lists both for the January 2021 transition.

It also cited three collinearity figures that no script produced, and it used a hand-made Clinton-Lapinski count file. The corrected pass fixed all three deviations, rebuilt the Clinton-Lapinski counts from the source data by script (they match the hand-made file exactly), computed every diagnostic in code, and switched seat shares to start-of-Congress counts from the official House and Senate tables. All of those decisions were made before the corrected pass produced any estimate, and the corrected scripts were committed before they were run.

The correction changed the result at the margin. In the first pass, the parsimonious divided estimate with Newey-West standard errors was 0.822, p = 0.031: significant. In the corrected pass it is 0.841, p = 0.0503: just outside. The whole shift comes from the war coding the spec required. The inter-state-only sensitivity in the corrected pass reproduces the first pass’s parsimonious estimate exactly (0.822), and the other two fixes touch only the full model. A reader should know that the first pass, run with a war control that departed from the registered spec, reported the HAC estimate as significant.

The git history is itself part of the record, and it contains one false statement. The commit that added the amendment, made on 2026-09-26, says “Stop 2 has not been run as of this commit.” That is false: stop 2 had run on 2026-07-16. The line was written without checking the working tree. It has been left in place and corrected in PROVENANCE.md, which gives the true timeline, the original file timestamps, and what the corrected pass changed and why. The repository was created on 2026-09-26, so git commit dates say nothing about the July sequence; for July, the evidence is the amendment’s blindness attestation and the file modification times.

Method and completeness

Outcome. Mayhew’s important-enactments list, through its last fully covered Congress (the 118th, from his file dated 2025-01-06). Sweep One counts for 1947-1990 come from the Sweep One markers in his 1947-1990 enactments file (211 laws, against 267 combined); from 1991 on, his list is Sweep One only. Every Congress in the span has a count, or the pipeline halts.

Divided government. Mayhew’s own classification for the 80th to 101st Congresses, and the control table from this portfolio’s executive-orders study for the 102nd on. Where both exist (83rd to 101st), they agree on every Congress. The 107th, split by the 2001 Jeffords switch, is coded divided, and Mayhew’s post-1990 list agrees.

Controls. Congress number, centered. War from the Correlates of War project (below). Post-election Congress, the one convening in the January after a presidential election. President’s party from voteview, with the 117th set to Biden. President’s-party seat shares from the official start-of-Congress party divisions (history.house.gov and senate.gov, as of the initial election results).

Polarization. Mean Republican minus mean Democratic first-dimension DW-NOMINATE score among House and Senate members, from voteview.

Independent measures. Ansolabehere, Palmer, and Schneer’s replication data (Harvard Dataverse, doi:10.7910/DVN/TVCY6I), which also carries the Stathis landmark list; Clinton and Lapinski’s statute significance data (1877-1994).

Estimation. Negative binomial (NB2) attempted first for every estimate, with Poisson beside it; Newey-West HAC standard errors with three lags; leave-one-Congress-out and leave-one-decade-out refits.

War appendix

War = 1 if the United States was in a Correlates of War inter-state war (v4.0) or intra-state war (v4.1) in either year of the Congress. Twenty Congresses qualify:

Code
yy <- function(a, b) if (a == b) as.character(a) else
  if (a %/% 100 == b %/% 100) sprintf("%d-%02d", a, b %% 100) else sprintf("%d-%d", a, b)
seen <- c()
rows <- lapply(S6$war_appendix, function(r) {
  parts <- c()
  for (k in c("inter-state", "intra-state")) {
    ws <- Filter(function(w) w$kind == k, r$wars)
    if (!length(ws)) next
    items <- vapply(ws, function(w) {
      key <- paste(w$kind, w$num)
      s <- if (key %in% seen) sprintf("#%d", w$num) else sprintf("#%d %s (%s)", w$num, w$name, yy(w$y0, w$y1))
      seen <<- c(seen, key); s }, character(1))
    parts <- c(parts, paste(k, paste(items, collapse = ", ")))
  }
  data.frame(Congress = r$congress, Years = yy(r$y0, r$y1),
             `Source wars` = cap(paste(parts, collapse = "; ")), check.names = FALSE)
})
knitr::kable(do.call(rbind, rows), row.names = FALSE)
Congress Years Source wars
81 1949-50 Inter-state #151 Korean (1950-53)
82 1951-52 Inter-state #151
83 1953-54 Inter-state #151
85 1957-58 Intra-state #743 First Lebanese (1958)
87 1961-62 Intra-state #748 Vietnam Phase 1 (1961-65)
88 1963-64 Intra-state #748, #756 Second Laotian Phase 1 (1964-68)
89 1965-66 Inter-state #163 Vietnam War, Phase 2 (1965-73); intra-state #748, #756, #766 Dominican Republic (1965), #770 First Guatemala (1966-68)
90 1967-68 Inter-state #163, #170 Second Laotian, Phase 2 (1968-73); intra-state #756, #770
91 1969-70 Inter-state #163, #170, #176 Communist Coalition (1970-71)
92 1971-72 Inter-state #163, #170, #176; intra-state #785 Khmer Rouge (1971-73)
93 1973-74 Inter-state #163, #170; intra-state #785
98 1983-84 Intra-state #833 Fourth Lebanese Civil (1983-84)
102 1991-92 Inter-state #211 Gulf War (1991); intra-state #870 Second Somalia (1992-94)
103 1993-94 Intra-state #870
104 1995-96 Intra-state #877 Bosnian-Serb Rebellion (1995)
106 1999-2000 Inter-state #221 War for Kosovo (1999)
107 2001-02 Inter-state #225 Invasion of Afghanistan (2001)
108 2003-04 Inter-state #227 Invasion of Iraq (2003); intra-state #932 Waziristan (2004-06)
109 2005-06 Intra-state #932
110 2007-08 Intra-state #938 Third Somalia (2007)

The inter-state-only sensitivity codes 12 of these: 81, 82, 83, 89, 90, 91, 92, 93, 102, 106, 107, 108.

Coding-sensitivity note: COW intra-state v5.1. The Correlates of War’s current intra-state release codes US participation differently from v4.1 after 2006. It adds the Third Somalia War through 2012, the Second Waziristan War from 2008, the Iraqi Sunni Revolt (2010-11), the Libyan Civil War (listed with US years “2001-2011,” apparently a data error), and two wars beginning in 2014; it also dates US involvement in Waziristan to 2006 only. With v5.1, the 111th to 113th Congresses would also be war Congresses. But v5.1 ends in 2014 and cannot code the 114th to 118th, so it fails the completeness gate as a modeling variable. It was not run in any model.

Reproduce this

python R/01_build_spine.py                    # stop 1: Mayhew spine and gates (July artifact; not re-run)
python R/05_cl_counts.py                      # Clinton-Lapinski counts from source
python R/06_build_panel_corrected.py          # analysis panel, war appendix, seam table
python R/07_models_corrected.py               # primary battery
python R/08_robustness_measures_corrected.py  # independent measures
quarto render report.qmd                      # rebuild this page

The first pass (R/02 to R/04, docs/STOP2_REPORT.md) is kept unaltered for the record. Full method: PRE_REGISTRATION.md and PRE_REGISTRATION_AMENDMENT_01.md. Timeline and corrections: PROVENANCE.md.


Cite this: Frisbie, F. (2026). Does Divided Government Stop Congress From Passing Major Laws? DOI pending.