Search Link

Legislative Status

HR3012

11/29/2011 Passed/agreed to in House: On motion to suspend the rules and pass the bill, as amended Agreed to by the Yeas and Nays: (2/3 required): 389 - 15 (Roll no. 860).(text: CR H7903)
11/18/2011 Reported (Amended) by the Committee on Judiciary. H. Rept. 112-292.
09/22/2011 Introduced in House

S1857

11/10/2011 Introduced in Senate

S1983

12/13/2011 Introduced in Senate

HR633

04/08/2013 Referred to the Subcommittee on Immigration And Border Security. Action By: Committee on the Judiciary 02/13/2013 Referred to the House Committee on the Judiciary. Action By: House of Representatives 02/13/2013 Introduced in House Action By: House of Representatives

S293

02/13/2013 Introduced in Senate

HR213

02/02/2015 Referred to the Subcommittee on Immigration and Border Security. Action By: Committee on the Judiciary 01/08/2015 Referred to the House Committee on the Judiciary. Action By: House of Representatives 01/08/2015 Introduced in House Action By: House of Representatives

HR392

07/11/2017-2:07pm ASSUMING FIRST SPONSORSHIP - Mr. Yoder asked unanimous consent that he may hereafter be considered as the first sponsor of H.R. 392, a bill originally introduced by Representative Chaffetz, for the purpose of adding cosponsors and requesting reprintings pursuant to clause 7 of rule XII. Agreed to without objection. Action By: House of Representatives 02/06/2017 Referred to the Subcommittee on Immigration and Border Security. Action By: Committee on the Judiciary 01/10/2017 Referred to the House Committee on the Judiciary. Action By: House of Representatives 01/10/2017 Introduced in House Action By: House of Representatives

S281

02/02/2017 Introduced in Senate

HR1044

12/02/2020 Passed/agreed to in Senate: Passed Senate with an amendment by Voice Vote.(text of amendment in the nature of a substitute: CR S7183-7187) 12/02/2020 Senate Committee on the Judiciary discharged by Unanimous Consent. 07/10/2019 Passed/agreed to in House: On motion to suspend the rules and pass the bill, as amended Agreed to by the Yeas and Nays: (2/3 required): 365 - 65 (Roll no. 437).(text: CR H5323-5324) 02/07/2019 Introduced in House

S386

07/09/2019 S.Amdt.906 Referred to the Committee on the Judiciary. 02/07/2019 Read twice and referred to the Committee on the Judiciary. Action By: Senate

Summary

112th-116th Congress, IMM, S. and H.R.

95% immigration bills that passed both chambers became law.

Progress #4 and #5 are parallel, progress #7 is optional.

HR1044/S386 is the only bill that passed both chambers but failed to become law in the past decade.

library(knitr)
status <- c("Introduced","Committee Consideration","Floor Consideration","Failed One Chamber","Passed One Chamber","Passed Both Chambers","Resolving Differences","To President","Became Law")
numbers <- c(1488,102,76,4,67,20,4,19,19)
progress <- seq(1:length(status))
legislativeprocess <- data.frame(cbind(progress, status,numbers))
legislativeprocess$probability <- round(c(numbers[1]/1488,numbers[2]/1488,numbers[3]/1488,(numbers[4]+numbers[5])/1488,numbers[5]/1488,numbers[6]/1488,numbers[6]/1488,numbers[8]/1488,numbers[9]/1488),4)
legislativeprocess$advancement <- 1-legislativeprocess$probability
legislativeprocess$bills <- c("S1857,S1983,S293,HR633,HR213,S281","","HR392","","HR3012","HR1044/S386","","","")
legislativeprocess$Congress <- c("113th, 114th","","115th","","112th","116th","","","")
kable(legislativeprocess)
progress status numbers probability advancement bills Congress
1 Introduced 1488 1.0000 0.0000 S1857,S1983,S293,HR633,HR213,S281 113th, 114th
2 Committee Consideration 102 0.0685 0.9315
3 Floor Consideration 76 0.0511 0.9489 HR392 115th
4 Failed One Chamber 4 0.0477 0.9523
5 Passed One Chamber 67 0.0450 0.9550 HR3012 112th
6 Passed Both Chambers 20 0.0134 0.9866 HR1044/S386 116th
7 Resolving Differences 4 0.0134 0.9866
8 To President 19 0.0128 0.9872
9 Became Law 19 0.0128 0.9872
#write.csv(legislativeprocess,"PolicyChange.csv",row.names = F)

Import Lobbying Records

fullrecord <- read.csv("fullrecord.csv")
names(fullrecord)
## [1] "Client"      "Year"        "Reports"     "Bill"        "Congress"   
## [6] "sector"      "type"        "description"
table(fullrecord$Year)
## 
## 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 
##   38   63   25   15   14   13   14   27  126  121
lobbyintensity <- c(38,63,25,15,14,13,14,27,126,121)
years <- 2011:2020
billadvancement <- c(legislativeprocess$advancement[5],legislativeprocess$advancement[5],legislativeprocess$advancement[1],legislativeprocess$advancement[1],legislativeprocess$advancement[1],legislativeprocess$advancement[1],legislativeprocess$advancement[1],legislativeprocess$advancement[3],legislativeprocess$advancement[5],legislativeprocess$advancement[6])

Import Tweets by Year

data-making: tweets by year table

library(rtweet)

time_user = read_twitter_csv("All_time_user.csv")
time_interval = seq(as.Date("2011-12-31T15:29:42.000Z"), by = "year", length.out = 10);time_interval
time_interval <- as.data.frame(time_interval)
time_interval$n <- rep(NA,10)
for (i in 1:10) {
  time_interval$n[i] <- length(which(time_user$created_at<=time_interval$time_interval[i]))
}
time_interval
time_interval$tweets <- rep(NA, 10)
time_interval$tweets[1] <- time_interval$n[1]

for (i in 2:10) {
  time_interval$tweets[i] <- time_interval$n[i]-time_interval$n[i-1]
}
time_interval <- time_interval[,c("time_interval","tweets")]
names(time_interval) <- c("year","tweets")
write.csv(time_interval,"Tweets by Year.csv",row.names = F)
tweetsbyYear <- read.csv("Tweets by Year.csv")
tweetsbyYear
##          year tweets
## 1  2011-12-31  18904
## 2  2012-12-31   9988
## 3  2013-12-31     22
## 4  2014-12-31      3
## 5  2015-12-31   3209
## 6  2016-12-31    895
## 7  2017-12-31  19359
## 8  2018-12-31 218127
## 9  2019-12-31 258668
## 10 2020-12-31 506459

Visualization

par(mar=c(4,5,3,3))
plot(years,c(5,5,1,1,1,1,1,3,5,6),type = "b",pch = "*",xaxt = 'n',yaxt = 'n', xlab = "Year", ylab = "",lwd = 2,lty = 1, main = "Trends of Legislative Status, Lobbying Intensity, and Tweets", ylim = c(0,8))
axis(side = 1,at = years, labels = years, las = 3)
axis(side = 2, at = c(1,3,5,6,7.5), labels = c("Introduced","Floor \n Consideration","Passed \n One Chamber","Passed \n Both Chambers","Became Law"),las = 1,cex.axis = 0.6, font = 2)
axis(side = 4, at = c(0,7.5), labels = c(0,1),col = "black", las = 1)
lines(years,lobbyintensity/max(lobbyintensity)*6, lty = 1,col = "blue",lwd = 2)
lines(years,6*tweetsbyYear$tweets/max(tweetsbyYear$tweets), lty = 1, col = "orange", lwd = 2)
text(2011.2,5.2,labels = "H.R. 3012", cex = .6,font = 2)
text(2017.7,3.2, labels = "H.R. 392",cex = .6,font = 2)
text(2019.3,4.8, labels = "H.R. 1044",cex = .6,font = 2)
text(2020,6.2, labels = "S. 386",cex = .6,font = 2)
legend("top", bty = "n", legend = c("Legislative Status","Lobbying Intensity","Tweets"), col = c("black","blue","orange"), cex = 0.7, lty = 1, horiz = T, text.font = 2)

legislativesteps <- c(5,5,1,1,1,1,1,3,5,6)
advancementbyYear <- c(0.955, 0.955, 0,0,0,0,0,0.949, 0.955, 0.986)
df_cor <- as.data.frame(cbind(legislativesteps,lobbyintensity,tweetsbyYear$tweets))
names(df_cor) <- c("bill status","lobby intensity","Tweets")
library(corrplot)
## corrplot 0.92 loaded
cor(df_cor[,1:3])
##                 bill status lobby intensity    Tweets
## bill status       1.0000000       0.8334544 0.6539109
## lobby intensity   0.8334544       1.0000000 0.8018767
## Tweets            0.6539109       0.8018767 1.0000000
corrplot(corr = cor(df_cor[,1:3]), type = "upper", order = "hclust")
library(psych)

corr.test(df_cor[,1:3])$p
##                 bill status lobby intensity     Tweets
## bill status     0.000000000     0.008216513 0.04027248
## lobby intensity 0.002738838     0.000000000 0.01053369
## Tweets          0.040272481     0.005266845 0.00000000
library(rtweet)
time_user <- read_twitter_csv("All_time_user.csv")
tweetsbymonth <- as.data.frame(ts_data(time_user, by = "months"))
tweetsbymonth <- tweetsbymonth[1:113,]
tweetsbymonth$time <- as.Date(tweetsbymonth$time)
tweetsbymonth$progress <- rep(NA,nrow(tweetsbymonth))
tweetsbymonth$progress[tweetsbymonth$time<"2011-11-29"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2011-11-29" & tweetsbymonth$time<"2013-01-03"] <- 5
tweetsbymonth$progress[tweetsbymonth$time>="2013-01-03" & tweetsbymonth$time<"2013-02-13"] <- 0
tweetsbymonth$progress[tweetsbymonth$time>="2013-02-13" & tweetsbymonth$time<"2015-01-03"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2013-02-13" & tweetsbymonth$time<"2015-01-03"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2015-01-03" & tweetsbymonth$time<"2017-01-03"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2017-01-03" & tweetsbymonth$time<"2017-07-11"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2017-07-11" & tweetsbymonth$time<"2019-01-03"] <- 3 # HR392 floor consideration
tweetsbymonth$progress[tweetsbymonth$time>="2019-01-03" & tweetsbymonth$time<"2019-07-10"] <- 1
tweetsbymonth$progress[tweetsbymonth$time>="2019-07-10" & tweetsbymonth$time<"2020-12-02"] <- 5
tweetsbymonth$progress[tweetsbymonth$time>="2020-12-02" & tweetsbymonth$time<"2021-01-03"] <- 6
#write.csv(tweetsbymonth,"tweetsbymonth.csv",row.names = F)
tweetsbymonth <- read.csv("tweetsbymonth.csv")
tweetsbymonth$seq <- seq(1:nrow(tweetsbymonth))
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq))
## 
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -72.75 -31.04 -10.06  12.65 226.13 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       -37.9621     9.9761  -3.805 0.000232 ***
## tweetsbymonth$seq   1.6904     0.1519  11.128  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 52.67 on 111 degrees of freedom
## Multiple R-squared:  0.5273, Adjusted R-squared:  0.5231 
## F-statistic: 123.8 on 1 and 111 DF,  p-value: < 2.2e-16
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$progress))
## 
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$progress)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -120.37  -23.48  -13.09   15.81  232.43 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              -1.173     10.021  -0.117    0.907    
## tweetsbymonth$progress   24.655      3.350   7.359 3.43e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 62.81 on 111 degrees of freedom
## Multiple R-squared:  0.3279, Adjusted R-squared:  0.3219 
## F-statistic: 54.16 on 1 and 111 DF,  p-value: 3.429e-11
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq+tweetsbymonth$progress))
## 
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq + tweetsbymonth$progress)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -85.440 -29.000  -6.615  11.005 180.653 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)            -63.4261     9.1896  -6.902 3.44e-10 ***
## tweetsbymonth$seq        1.4208     0.1338  10.615  < 2e-16 ***
## tweetsbymonth$progress  16.9012     2.4756   6.827 4.97e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 44.34 on 110 degrees of freedom
## Multiple R-squared:  0.668,  Adjusted R-squared:  0.662 
## F-statistic: 110.7 on 2 and 110 DF,  p-value: < 2.2e-16
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq+tweetsbymonth$progress+tweetsbymonth$seq:tweetsbymonth$progress))
## 
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq + tweetsbymonth$progress + 
##     tweetsbymonth$seq:tweetsbymonth$progress)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -96.188 -24.080  -7.113   7.757 154.714 
## 
## Coefficients:
##                                           Estimate Std. Error t value Pr(>|t|)
## (Intercept)                              -26.53720   14.95674  -1.774  0.07881
## tweetsbymonth$seq                          0.67051    0.27699   2.421  0.01714
## tweetsbymonth$progress                     5.94725    4.30123   1.383  0.16959
## tweetsbymonth$seq:tweetsbymonth$progress   0.20909    0.06831   3.061  0.00278
##                                            
## (Intercept)                              . 
## tweetsbymonth$seq                        * 
## tweetsbymonth$progress                     
## tweetsbymonth$seq:tweetsbymonth$progress **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 42.75 on 109 degrees of freedom
## Multiple R-squared:  0.6943, Adjusted R-squared:  0.6859 
## F-statistic: 82.51 on 3 and 109 DF,  p-value: < 2.2e-16
summary(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq+tweetsbymonth$seq:tweetsbymonth$progress)) # r = 0.68
## 
## Call:
## lm(formula = sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq + tweetsbymonth$seq:tweetsbymonth$progress)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -96.664 -22.722  -9.541  11.395 146.860 
## 
## Coefficients:
##                                          Estimate Std. Error t value Pr(>|t|)
## (Intercept)                              -9.91608    8.93638  -1.110   0.2696
## tweetsbymonth$seq                         0.41775    0.20897   1.999   0.0481
## tweetsbymonth$seq:tweetsbymonth$progress  0.28766    0.03805   7.559  1.3e-11
##                                             
## (Intercept)                                 
## tweetsbymonth$seq                        *  
## tweetsbymonth$seq:tweetsbymonth$progress ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 42.92 on 110 degrees of freedom
## Multiple R-squared:  0.6889, Adjusted R-squared:  0.6833 
## F-statistic: 121.8 on 2 and 110 DF,  p-value: < 2.2e-16
#plot(lm(sqrt(tweetsbymonth$n) ~ tweetsbymonth$seq+tweetsbymonth$progress))
summary(lm(tweetsbyYear$tweets ~ seq(1:10)))
## 
## Call:
## lm(formula = tweetsbyYear$tweets ~ seq(1:10))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -150341  -68088    2561   47229  204486 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  -138938      77962  -1.782  0.11259   
## seq(1:10)      44091      12565   3.509  0.00797 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 114100 on 8 degrees of freedom
## Multiple R-squared:  0.6062, Adjusted R-squared:  0.557 
## F-statistic: 12.31 on 1 and 8 DF,  p-value: 0.007972
summary(lm(tweetsbyYear$tweets ~ seq(1:10)+legislativesteps)) # r = 0.86, p = 0.0004264
## 
## Call:
## lm(formula = tweetsbyYear$tweets ~ seq(1:10) + legislativesteps)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -73060 -46016    842  31434  92134 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       -237575      49522  -4.797 0.001972 ** 
## seq(1:10)           39080       7160   5.458 0.000948 ***
## legislativesteps    43516      10169   4.279 0.003659 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 64160 on 7 degrees of freedom
## Multiple R-squared:  0.8911, Adjusted R-squared:   0.86 
## F-statistic: 28.64 on 2 and 7 DF,  p-value: 0.0004264
summary(lm(tweetsbyYear$tweets ~ seq(1:10)+legislativesteps+seq(1:10):legislativesteps)) # r = 0.93
## 
## Call:
## lm(formula = tweetsbyYear$tweets ~ seq(1:10) + legislativesteps + 
##     seq(1:10):legislativesteps)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -79204 -12131  -2129  20928  55865 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)  
## (Intercept)                  -22073      85989  -0.257   0.8060  
## seq(1:10)                     -1803      15718  -0.115   0.9124  
## legislativesteps              -5596      19279  -0.290   0.7814  
## seq(1:10):legislativesteps     8981       3263   2.753   0.0332 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 46070 on 6 degrees of freedom
## Multiple R-squared:  0.9519, Adjusted R-squared:  0.9278 
## F-statistic: 39.55 on 3 and 6 DF,  p-value: 0.0002395
summary(lm(tweetsbyYear$tweets ~ seq(1:10):legislativesteps)) # r = 0.94
## 
## Call:
## lm(formula = tweetsbyYear$tweets ~ seq(1:10):legislativesteps)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -79616  -9093   1620  14198  55257 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                -37602.8    17100.9  -2.199   0.0591 .  
## seq(1:10):legislativesteps   8353.0      672.8  12.416 1.65e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 40390 on 8 degrees of freedom
## Multiple R-squared:  0.9507, Adjusted R-squared:  0.9445 
## F-statistic: 154.2 on 1 and 8 DF,  p-value: 1.653e-06
summary(lm(sqrt(tweetsbyYear$tweets) ~ seq(1:10):legislativesteps)) # r = 0.9
## 
## Call:
## lm(formula = sqrt(tweetsbyYear$tweets) ~ seq(1:10):legislativesteps)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -58.33 -45.39 -28.24  28.29 165.70 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                   11.80      32.03   0.369    0.722    
## seq(1:10):legislativesteps    12.06       1.26   9.574 1.17e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 75.65 on 8 degrees of freedom
## Multiple R-squared:  0.9197, Adjusted R-squared:  0.9097 
## F-statistic: 91.67 on 1 and 8 DF,  p-value: 1.173e-05
summary(lm(sqrt(tweetsbyYear$tweets) ~ seq(1:10)+legislativesteps+seq(1:10):legislativesteps)) # r = 0.925
## 
## Call:
## lm(formula = sqrt(tweetsbyYear$tweets) ~ seq(1:10) + legislativesteps + 
##     seq(1:10):legislativesteps)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -74.065 -43.556  -5.384  31.459 116.481 
## 
## Coefficients:
##                            Estimate Std. Error t value Pr(>|t|)
## (Intercept)                -226.473    128.699  -1.760    0.129
## seq(1:10)                    43.248     23.525   1.838    0.116
## legislativesteps             52.822     28.854   1.831    0.117
## seq(1:10):legislativesteps    3.024      4.884   0.619    0.558
## 
## Residual standard error: 68.95 on 6 degrees of freedom
## Multiple R-squared:   0.95,  Adjusted R-squared:  0.925 
## F-statistic: 37.99 on 3 and 6 DF,  p-value: 0.0002684