6 Matérias Legislativas
O que o Senado realmente legisla? A grande maioria das matérias nunca vira lei — elas tramitam, são arquivadas ou ficam paradas por anos. Este capítulo mostra como mapear o universo de propostas e identificar padrões de tramitação.
| Função | O que retorna |
|---|---|
materias_legislatura_atual() |
Matérias da legislatura em curso |
info_materia_temas() |
Temas/assuntos de matérias |
extrair_situacoes_tramitacao() |
Situações de tramitação cadastradas |
extrair_classificacoes_materia() |
Classificações/tipos de matéria |
extrair_siglas_ativas() |
Siglas de tipos (PL, PEC, MPV…) |
info_atualizacao_materias() |
Matérias atualizadas recentemente |
6.1 Tipos de matérias legislativas
O Senado classifica as matérias por sigla:
library(senatebR)
siglas <- extrair_siglas_ativas()
head(siglas)
#> # A tibble: 6 × 4
#> Sigla Descricao DataInicio DataFim
#> <chr> <chr> <chr> <chr>
#> 1 ACE Aviso da Comissão de Educação 2017-01-01 2024-09-18
#> 2 ACL Ato Conjunto Legislativo 2023-01-01 <NA>
#> 3 AP Ato da Presidência 2017-01-01 <NA>
#> 4 MPV Medida Provisória 2017-01-01 <NA>
#> 5 PEC Proposta de Emenda à Constituição 2017-01-01 <NA>
#> 6 PL Projeto de Lei 2017-01-01 <NA>As siglas mais comuns:
| Sigla | Tipo |
|---|---|
| PL | Projeto de Lei |
| PEC | Proposta de Emenda à Constituição |
| MPV | Medida Provisória |
| PLS | Projeto de Lei do Senado (nomenclatura anterior a 2019) |
| PDL | Projeto de Decreto Legislativo |
| PRS | Projeto de Resolução do Senado |
6.2 Matérias da legislatura atual
# Todas as matérias em tramitação na legislatura atual
materias <- materias_legislatura_atual()
glimpse(materias)
#> Rows: 4521
#> Columns: 9
#> $ CodigoMateria <chr> "158423", "158100", ...
#> $ SiglaCasaIdentificacaoMateria <chr> "SF", "SF", ...
#> $ NomeCasaIdentificacaoMateria <chr> "Senado Federal", ...
#> $ SiglaSubtipoMateria <chr> "PL", "PEC", "MPV", ...
#> $ NumeroMateria <chr> "1234", "45", ...
#> $ AnoMateria <chr> "2024", "2023", ...
#> $ DescricaoIdentificacaoMateria <chr> "PL 1234/2024", ...
#> $ IndicadorTramitando <chr> "S", "N", ...
#> $ IdentificacaoProcesso <chr> NA, NA, ...Esta função pode retornar mais de 4 000 linhas. Use os filtros abaixo para trabalhar com subconjuntos menores e evitar lentidão.
Atenção: a coluna AnoMateria contém apenas o ano de apresentação (ex: "2024"), não uma data completa. Não há coluna de data no retorno desta função. Para obter a data e a ementa, use info_atualizacao_materias().
library(dplyr)
# Filtrar apenas PECs
pecs <- materias |>
filter(SiglaSubtipoMateria == "PEC")
# Matérias em tramitação (IndicadorTramitando == "S")
em_tramitacao <- materias |>
filter(IndicadorTramitando == "S")
# Contagem por tipo
materias |>
count(SiglaSubtipoMateria, sort = TRUE)
#> # A tibble: 28 × 2
#> SiglaSubtipoMateria n
#> <chr> <int>
#> 1 PL 2841
#> 2 PDL 612
#> 3 PEC 210
#> 4 PRS 187
#> 5 MPV 143
#> ...IndicadorTramitando assume dois valores:
| Valor | Significado |
|---|---|
"S" |
Ainda em tramitação |
"N" |
Tramitação encerrada |
6.3 Temas de matérias
# Lista de temas/assuntos cadastrados
temas <- info_materia_temas()
head(temas)
#> # A tibble: 6 × 5
#> Codigo AssuntoGeral AssuntoEspecifico DataInicio DataFim
#> <chr> <chr> <chr> <chr> <chr>
#> 1 1 Administração Administração Pública NA NA
#> 2 2 Agricultura Reforma Agrária NA NA
#> 3 3 Ciência Tecnologia NA NA
#> 4 4 Comunicações Telecomunicações NA NA
#> 5 5 Direitos Humanos Direitos Fundamentais NA NA
#> 6 6 Economia Finanças Públicas NA NAAs colunas:
| Coluna | Descrição |
|---|---|
Codigo |
Código do tema |
AssuntoGeral |
Área temática geral |
AssuntoEspecifico |
Subtema específico |
DataInicio / DataFim |
Vigência do tema no sistema |
6.4 Situações de tramitação
situacoes <- extrair_situacoes_tramitacao()
head(situacoes)
#> # A tibble: 6 × 4
#> Codigo Sigla Descricao DataCriacao
#> <chr> <chr> <chr> <chr>
#> 1 1 APS Aguardando Pauta no Senado NA
#> 2 2 AGC Aguardando Complementação NA
#> 3 3 APR Aguardando Promulgação NA
#> ...As colunas:
| Coluna | Descrição |
|---|---|
Codigo |
Código interno da situação |
Sigla |
Sigla abreviada |
Descricao |
Descrição completa |
DataCriacao |
Data de criação no sistema |
6.5 Classificações de matéria
classificacoes <- extrair_classificacoes_materia()
head(classificacoes)
#> # A tibble: 6 × 6
#> CodigoClasse NomeClasse CodigoClassePai Nivel Tree Path
#> <chr> <chr> <chr> <chr> <chr> <chr>
#> 1 1 Administração NA 1 1 Administração
#> 2 2 Administração Pública 1 2 1.2 Administração > ...
#> ...As colunas:
| Coluna | Descrição |
|---|---|
CodigoClasse |
Código da classificação |
NomeClasse |
Nome da classe temática |
CodigoClassePai |
Código da classe superior (hierarquia) |
Nivel |
Nível hierárquico (1 = raiz) |
Tree |
Código completo na árvore |
Path |
Caminho legível (ex: "Administração > Administração Pública") |
6.6 Matérias atualizadas recentemente
Use info_atualizacao_materias() para monitorar matérias que tiveram movimentação recente:
# Matérias com atualização recente
atualizadas <- info_atualizacao_materias()
glimpse(atualizadas)
#> Rows: 87
#> Columns: 16
#> $ TipoSubtipoMateria <chr> "PL", "MPV", ...
#> $ DataApresentacao <chr> "2024-03-01", "2024-01-10", ...
#> $ DataUltimaAtualizacao <chr> "2024-04-17", "2024-04-15", ...
#> $ EmentaMateria <chr> "Dispõe sobre crédito...", ...
#> $ IndicadorTramitando <chr> "S", "S", ...
#> ...info_atualizacao_materias() é útil para monitorar a pauta legislativa sem precisar baixar toda a lista de matérias a cada execução. Ela inclui a ementa (EmentaMateria) e a data de apresentação (DataApresentacao), que não estão disponíveis em materias_legislatura_atual().
6.7 Análise: volume de matérias por tipo
library(ggplot2)
materias |>
count(SiglaSubtipoMateria, sort = TRUE) |>
slice_head(n = 8) |>
ggplot(aes(x = reorder(SiglaSubtipoMateria, n), y = n)) +
geom_col(fill = "#2d6a4f") +
coord_flip() +
labs(
title = "Matérias por tipo na legislatura atual",
x = "Tipo", y = "Quantidade"
) +
theme_minimal()6.8 Análise: volume por ano de apresentação
Como AnoMateria já é o ano em formato texto, basta converter para inteiro:
materias |>
filter(!is.na(AnoMateria)) |>
mutate(Ano = as.integer(AnoMateria)) |>
count(Ano, SiglaSubtipoMateria) |>
filter(SiglaSubtipoMateria %in% c("PL", "PEC", "MPV")) |>
ggplot(aes(x = Ano, y = n, color = SiglaSubtipoMateria)) +
geom_line(linewidth = 1) +
geom_point() +
labs(
title = "Volume de matérias ao longo do tempo",
x = "Ano", y = "Quantidade", color = "Tipo"
) +
theme_minimal()6.9 Exercício
library(senatebR)
library(dplyr)
library(ggplot2)
materias <- materias_legislatura_atual()
# Taxa de tramitação ativa por tipo
materias |>
group_by(SiglaSubtipoMateria) |>
summarise(
total = n(),
tramitando = sum(IndicadorTramitando == "S"),
taxa_ativa = tramitando / total,
.groups = "drop"
) |>
filter(total >= 20) |>
arrange(desc(taxa_ativa))
# MPVs tendem a ter alta taxa ativa (têm prazo legal) enquanto PLs acumulam muitos arquivados
# Matérias por ano x anos eleitorais
materias |>
filter(!is.na(AnoMateria)) |>
mutate(
Ano = as.integer(AnoMateria),
ano_eleitoral = (Ano %% 2 == 0)
) |>
count(Ano, ano_eleitoral) |>
ggplot(aes(x = Ano, y = n, fill = ano_eleitoral)) +
geom_col() +
scale_fill_manual(
values = c("FALSE" = "#5ba4cf", "TRUE" = "#e76f51"),
labels = c("Não eleitoral", "Eleitoral")
) +
labs(title = "Matérias por ano de apresentação",
subtitle = "Anos eleitorais em destaque",
x = NULL, y = "Quantidade", fill = NULL) +
theme_minimal()A hipótese mais comum é que anos eleitorais produzem mais PLs (ativismo legislativo para visibilidade). Os dados do Senado permitem testar isso — mas lembre que a 57ª legislatura começa em 2023, então anos anteriores refletem múltiplas legislaturas acumuladas.