---
title: "Gráfico Payroll"
date: "2026-04-07"
output: 
 html_document:
  toc: true
  theme: lumen
  highlight: tango
  code_folding: show
  code_download: true
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, message = FALSE, warning = FALSE)
```

```{r}
library(fredr)
library(dplyr)
library(lubridate)
library(highcharter)

fredr_set_key("70467a311ec8a895b8785299f55ff322")

# ── Coleta das séries ──────────────────────────────────────
payroll_raw <- fredr("PAYEMS",
                     observation_start = as.Date("2023-01-01"),
                     observation_end   = as.Date("2026-03-01"),
                     frequency         = "m")

unemp_raw <- fredr("UNRATE",
                   observation_start = as.Date("2024-01-01"),
                   observation_end   = as.Date("2026-03-01"),
                   frequency         = "m")

# ── Variação mensal do Payroll (em postos) ────────────────
payroll <- payroll_raw |>
  arrange(date) |>
  mutate(
    variacao  = round((value - lag(value)) * 1000, 0),
    timestamp = datetime_to_timestamp(date)
  ) |>
  filter(!is.na(variacao), date >= as.Date("2024-02-01")) |>
  select(date, timestamp, variacao)

# ── Desemprego ────────────────────────────────────────────
unemp <- unemp_raw |>
  arrange(date) |>
  mutate(
    value     = round(value, 1),
    timestamp = datetime_to_timestamp(date)
  ) |>
  filter(!is.na(value)) |>
  select(date, timestamp, value)

# ── Revisões marcadas hardcoded ───────────────────────────
revisoes <- data.frame(
  date      = as.Date(c("2024-06-01", "2024-09-01",
                        "2025-03-01", "2025-06-01",
                        "2025-12-01", "2026-01-01")),
  valor      = c(-30000, -25000, -40000, -35000, -65000, -4000),
  label      = c("Rev.: -30k", "Rev.: -25k",
                "Rev.: -40k", "Rev.: -35k",
                "Rev.: -65k", "Rev.: -4k")
) |>
  mutate(timestamp = datetime_to_timestamp(date))

# ── Preparação de pontos para Highcharts ─────────────────
pts_pos <- lapply(1:nrow(payroll), function(i) {
  list(x = payroll$timestamp[i],
       y = ifelse(payroll$variacao[i] >= 0, payroll$variacao[i], 0))
})

pts_neg <- lapply(1:nrow(payroll), function(i) {
  list(x = payroll$timestamp[i],
       y = ifelse(payroll$variacao[i] < 0, payroll$variacao[i], 0))
})

pts_une <- lapply(1:nrow(unemp), function(i) {
  list(x = unemp$timestamp[i], y = unemp$value[i])
})

pts_rev <- lapply(1:nrow(revisoes), function(i) {
  list(
    x     = revisoes$timestamp[i],
    y     = revisoes$valor[i],
    label = revisoes$label[i]
  )
})

# ── Limites ───────────────────────────────────────────────
pay_min   <- floor(min(payroll$variacao,  na.rm = TRUE) / 100000) * 100000
pay_max   <- ceiling(max(payroll$variacao, na.rm = TRUE) / 100000) * 100000
une_min   <- floor(min(unemp$value,   na.rm = TRUE) - 0.3)
une_max   <- ceiling(max(unemp$value, na.rm = TRUE) + 0.3)

# ── Gráfico ───────────────────────────────────────────────
highchart(type = "stock") %>%
  # CORREÇÃO: Fundo branco no visualizador
  hc_chart(backgroundColor = "#FFFFFF") %>%

  hc_add_series(
    data    = pts_pos,
    type    = "column",
    name    = "Payroll positivo",
    color   = "#feb712",
    yAxis   = 0,
    tooltip = list(
      pointFormatter = JS("function() {
        if (this.y === 0) return '';
        return '<span style=\"color:#feb712\">●</span> ' +
               '<b>Payroll:</b> +' +
               Highcharts.numberFormat(this.y, 0) + ' postos<br/>';
      }")
    )
  ) %>%

  hc_add_series(
    data    = pts_neg,
    type    = "column",
    name    = "Payroll negativo",
    color   = "#e74c3c",
    yAxis   = 0,
    tooltip = list(
      pointFormatter = JS("function() {
        if (this.y === 0) return '';
        return '<span style=\"color:#e74c3c\">●</span> ' +
               '<b>Payroll:</b> ' +
               Highcharts.numberFormat(this.y, 0) + ' postos<br/>';
      }")
    )
  ) %>%

  hc_add_series(
    data    = pts_rev,
    type    = "scatter",
    name    = "Revisões BLS",
    color   = "#02023c",
    yAxis   = 0,
    marker = list(
      symbol    = "triangle-down",
      radius    = 8,
      fillColor = "#02023c",
      lineColor = "#ffffff",
      lineWidth = 1.5
    ),
    dataLabels = list(
      enabled   = TRUE,
      format    = "{point.label}",
      style     = list(
        fontSize    = "9px",
        color       = "#b8860b",
        fontWeight  = "bold",
        textOutline = "none"
      ),
      y = -18
    )
  ) %>%

  hc_add_series(
    data      = pts_une,
    type      = "spline",
    name      = "Taxa de Desemprego (%)",
    color      = "#02023c",
    lineWidth = 2.5,
    yAxis      = 1,
    marker    = list(
      enabled   = TRUE,
      radius    = 4,
      fillColor = "#02023c",
      lineColor = "#ffffff",
      lineWidth = 1.5
    )
  ) %>%

  hc_yAxis_multiples(
    list(
      title = list(text = "Variação de postos", style = list(color = "#02023c")),
      labels = list(
        formatter = JS("function() {
          if (Math.abs(this.value) >= 1000) {
            return Highcharts.numberFormat(this.value / 1000, 0) + 'k';
          }
          return this.value;
        }"),
        style = list(fontSize = "11px")
      ),
      opposite = FALSE, min = pay_min, max = pay_max,
      plotLines = list(
        list(value = 0, color = "#cccccc", width = 1.5),
        list(value = 50000, color = "#aaaaaa", dashStyle = "ShortDot", width = 1,
             label = list(text = "Break-even: ~50k", align = "right", style = list(color = "#aaaaaa", fontSize = "9px")))
      )
    ),
    list(
      title = list(text = "Taxa de Desemprego (%)", style = list(color = "#feb712")),
      labels = list(format = "{value}%", style = list(fontSize = "11px")),
      opposite = TRUE, min = une_min, max = une_max, tickInterval = 0.2,
      gridLineWidth = 0,
      plotLines = list(
        list(value = 4.4, color = "#feb712", dashStyle = "ShortDash", width = 1,
             label = list(text = "Atual: 4,4%", align = "left", style = list(color = "#feb712", fontSize = "9px")))
      )
    )
  ) %>%

  hc_xAxis(
    type   = "datetime",
    labels = list(format = "{value:%b/%Y}"),
    plotLines = list(
      list(
        value     = datetime_to_timestamp(as.Date("2026-02-01")),
        color     = "#e74c3c",
        dashStyle = "ShortDash",
        width     = 1.5,
        label     = list(
          text  = "Fev/26: -92k",
          align = "left",
          y     = 16,
          style = list(color = "#e74c3c", fontSize = "10px", fontWeight = "bold")
        )
      )
    )
  ) %>%

  hc_title(text = "Nonfarm Payroll + Taxa de Desemprego — Últimos 24 Meses") %>%
  hc_subtitle(text = "Criação mensal de empregos (postos) e desemprego (%) — com revisões BLS marcadas") %>%
  hc_credits(enabled = TRUE, text = "Gráfico de confecção própria: Ibmacro BH") %>%

  hc_rangeSelector(
    enabled  = TRUE,
    buttons  = list(
      list(type = "month", count = 12, text = "12M"),
      list(type = "month", count = 18, text = "18M"),
      list(type = "all",                text = "24M")
    ),
    selected = 2
  ) %>%

  hc_tooltip(shared = TRUE, headerFormat = '<span style="font-size:12px"><b>{point.key}</b></span><br/>') %>%

  hc_plotOptions(
    column = list(pointPadding = 0.05, groupPadding = 0, grouping = FALSE),
    spline  = list(connectNulls = TRUE)
  ) %>%

  hc_legend(
    enabled       = TRUE,
    align         = "center",
    verticalAlign = "bottom",
    layout        = "horizontal"
  ) %>%

  # CORREÇÃO: Fundo branco na exportação da imagem
  hc_exporting(
    enabled = TRUE,
    chartOptions = list(
      chart = list(backgroundColor = "#FFFFFF")
    )
  )
```

