Specialist SIP headcount vs BW procedure rate

Exploration: does district BW procedure rate track with specialist SIP count?

Author

ARC Institute — 8.3 Timely Access

Published

April 18, 2026

1 Purpose

Quick exploratory check: does district-level BW procedure rate (from 8.2) track with the count of surgical specialists licensed to practice (SIP headcount from DREAMS, 8.1) in that district?

Specialist counts here are strictly SIP (Surat Izin Praktik) headcount — the count of active practice licenses sourced from the SATUSEHAT DREAMS dashboard. This measures where specialists are actively licensed to work, which is closer to “surgical capacity” than SIRS headcount (which records where a hospital says a specialist is employed, often including moonlighters double-counted across sites).

1.1 Specialist → procedure pairings

Each BW procedure requires specific specialty support:

  • C-section → Obgyn + Anesthesiologist
  • Fracture fixation → Orthopedic + Anesthesiologist
  • Laparotomy → General Surgeon + Anesthesiologist
  • Any BW procedure → sum of all four specialties

For each procedure, we sum the SIP counts of the relevant specialties (e.g. csec_sip_sum = obgyn_sip_raw + anes_sip_raw) and plot against the corresponding BW procedure rate.

1.2 Temporal caveat

SIP counts are a late-2024/early-2025 DREAMS snapshot. BW rates are per-year (2016-2024). We plot rates against the single SIP snapshot, which is valid as a cross-sectional association check (specialist counts are reasonably stable year-to-year), but not as evidence of temporal causality.

2 Build the joined panel

Joined panel: 3616 kab-year rows across 463 kabupaten, 8 years

3 Headline scatter — 2024

Most recent year; specialist SIP snapshot is closest in time to 2024 BW rates, so this is the headline cross-sectional view. Each point = one kabupaten.

3.1 2024 correlation summary table

2024 cross-sectional correlations: specialist SIP density vs age-standardized BW procedure rate
Procedure n Spearman ρ Pearson r
C-section 419 0.516 0.145
Fracture fixation 229 0.535 0.132
Laparotomy 243 0.132 0.004
Any BW procedure 419 0.572 0.172

4 Stability across years

If the specialist-count → procedure-rate relationship is real, it should persist across years. The plot below repeats the scatter for each year 2016-2024. If ρ is roughly stable across years, we can rule out the possibility that the 2024 result is a coincidence.

4.1 Correlation trend across years

5 Hospital-level check

District aggregates might hide heterogeneity. For each hospital (in hw), the corresponding BW case count across 2022-2024 was computed in 8.2 — but it is not currently aggregated to hospital-level in rates_master. As a proxy for hospital- level volume, we use the BW procedure share among each hospital class × kab pairing from 8.2 output.

For a quick hospital-level check, we use the raw hw data with SIP counts and the 8.2 fkrtl_bw_flagged to compute per-hospital BW case counts.

Hospital-level match: 0 hospitals of 3268 (0%)
Hospital-level match rate too low (0 hospitals). Skipping hospital scatter.

6 Interpretation notes

  • A positive correlation means districts with more SIP-licensed specialists perform more procedures per capita. This is consistent with (but does not prove) a supply-constrained model: where the team exists, more procedures get done.
  • The correlation could also reflect demand-driven placement: specialists move to districts with higher case volumes. Both mechanisms coexist.
  • Laparotomy typically shows weaker correlation than C-section/fracture because emergency abdominal surgery is performed by any available surgeon with OR access; specialist density is less determining.
  • Hospital-level match depends on matched_hospital_id (from 8.1 DREAMS→SIRS linkage) matching FKL33 (BPJS PPK ID). These are different coding systems and overlap imperfectly; hospital-level results are more fragile than district.

7 Save panel

Saved joined panel to /mnt/d/OneDrive - Yayasan Transformasi Kesejahteraan Bangsa/1. Project Center/ARC8. Global Surgery Institute/8.1 Workforce/../8.3 Timely Access/output/sip_vs_bw_panel.rds 
   3616 rows, 27 cols
─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.5.2 (2025-10-31)
 os       Ubuntu 24.04.4 LTS
 system   x86_64, linux-gnu
 ui       X11
 language (EN)
 collate  C.UTF-8
 ctype    C.UTF-8
 tz       Asia/Jakarta
 date     2026-04-18
 pandoc   3.2 @ /usr/lib/rstudio-server/bin/quarto/bin/tools/x86_64/ (via rmarkdown)
 quarto   1.5.57 @ /usr/lib/rstudio-server/bin/quarto/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 package      * version date (UTC) lib source
 cli            3.6.6   2026-04-09 [1] CRAN (R 4.5.2)
 dichromat      2.0-0.1 2022-05-02 [1] CRAN (R 4.5.0)
 digest         0.6.39  2025-11-19 [1] CRAN (R 4.5.2)
 dplyr        * 1.2.0   2026-02-03 [1] CRAN (R 4.5.2)
 evaluate       1.0.5   2025-08-27 [1] CRAN (R 4.5.1)
 farver         2.1.2   2024-05-13 [1] CRAN (R 4.5.0)
 fastmap        1.2.0   2024-05-15 [1] CRAN (R 4.5.0)
 generics       0.1.4   2025-05-09 [1] CRAN (R 4.5.1)
 ggplot2      * 4.0.2   2026-02-03 [1] CRAN (R 4.5.2)
 glue           1.8.0   2024-09-30 [1] CRAN (R 4.5.0)
 gtable         0.3.6   2024-10-25 [1] CRAN (R 4.5.0)
 htmltools      0.5.9   2025-12-04 [1] CRAN (R 4.5.2)
 htmlwidgets    1.6.4   2023-12-06 [1] CRAN (R 4.5.0)
 jsonlite       2.0.0   2025-03-27 [1] CRAN (R 4.5.0)
 kableExtra   * 1.4.0   2024-01-24 [1] CRAN (R 4.5.0)
 knitr        * 1.51    2025-12-20 [1] CRAN (R 4.5.2)
 labeling       0.4.3   2023-08-29 [1] CRAN (R 4.5.0)
 lattice        0.22-9  2026-02-09 [2] CRAN (R 4.5.2)
 lifecycle      1.0.5   2026-01-08 [1] CRAN (R 4.5.2)
 magrittr       2.0.5   2026-04-04 [1] CRAN (R 4.5.2)
 Matrix         1.7-4   2025-08-28 [2] CRAN (R 4.5.1)
 mgcv           1.9-4   2025-11-07 [1] CRAN (R 4.5.2)
 nlme           3.1-168 2025-03-31 [2] CRAN (R 4.5.1)
 otel           0.2.0   2025-08-29 [1] CRAN (R 4.5.2)
 patchwork    * 1.3.2   2025-08-25 [1] CRAN (R 4.5.1)
 pillar         1.11.1  2025-09-17 [1] CRAN (R 4.5.1)
 pkgconfig      2.0.3   2019-09-22 [1] CRAN (R 4.5.0)
 purrr        * 1.2.1   2026-01-09 [1] CRAN (R 4.5.2)
 R6             2.6.1   2025-02-15 [1] CRAN (R 4.5.0)
 RColorBrewer   1.1-3   2022-04-03 [1] CRAN (R 4.5.0)
 rlang          1.2.0   2026-04-06 [1] CRAN (R 4.5.2)
 rmarkdown      2.30    2025-09-28 [1] CRAN (R 4.5.1)
 rstudioapi     0.18.0  2026-01-16 [1] CRAN (R 4.5.2)
 S7             0.2.1   2025-11-14 [1] CRAN (R 4.5.2)
 scales       * 1.4.0   2025-04-24 [1] CRAN (R 4.5.0)
 sessioninfo    1.2.3   2025-02-05 [1] CRAN (R 4.5.0)
 stringi        1.8.7   2025-03-27 [1] CRAN (R 4.5.0)
 stringr      * 1.6.0   2025-11-04 [1] CRAN (R 4.5.2)
 svglite        2.2.2   2025-10-21 [1] CRAN (R 4.5.2)
 systemfonts    1.3.1   2025-10-01 [1] CRAN (R 4.5.1)
 textshaping    1.0.4   2025-10-10 [1] CRAN (R 4.5.2)
 tibble         3.3.1   2026-01-11 [1] CRAN (R 4.5.2)
 tidyr        * 1.3.2   2025-12-19 [1] CRAN (R 4.5.2)
 tidyselect     1.2.1   2024-03-11 [1] CRAN (R 4.5.0)
 vctrs          0.7.2   2026-03-21 [1] CRAN (R 4.5.2)
 viridisLite    0.4.3   2026-02-04 [1] CRAN (R 4.5.2)
 withr          3.0.2   2024-10-28 [1] CRAN (R 4.5.0)
 xfun           0.56    2026-01-18 [1] CRAN (R 4.5.2)
 xml2           1.5.2   2026-01-17 [1] CRAN (R 4.5.2)
 yaml           2.3.12  2025-12-10 [1] CRAN (R 4.5.2)

 [1] /usr/local/lib/R/site-library
 [2] /usr/lib/R/library
 * ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────