Skip to content

DiSCos

Distributional Synthetic Controls Estimation

v0.1.3 · Mar 7, 2026 · MIT + file LICENSE

Description

The method of synthetic controls is a widely-adopted tool for evaluating causal effects of policy changes in settings with observational data. In many settings where it is applicable, researchers want to identify causal effects of policy changes on a treated unit at an aggregate level while having access to data at a finer granularity. This package implements a simple extension of the synthetic controls estimator, developed in Gunsilius (2023) <doi:10.3982/ECTA18260>, that takes advantage of this additional structure and provides nonparametric estimates of the heterogeneity within the aggregate unit. The idea is to replicate the quantile function associated with the treated unit by a weighted average of quantile functions of the control units. The package contains tools for aggregating and plotting the resulting distributional estimates, as well as for carrying out inference on them.

Downloads

527

Last 30 days

7537th

1.7K

Last 90 days

4.4K

Last year

Trend: -0.8% (30d vs prior 30d)

CRAN Check Status

13 OK
Show all 13 flavors
Flavor Status
r-devel-linux-x86_64-debian-clang OK
r-devel-linux-x86_64-debian-gcc OK
r-devel-linux-x86_64-fedora-clang OK
r-devel-linux-x86_64-fedora-gcc OK
r-devel-windows-x86_64 OK
r-oldrel-macos-arm64 OK
r-oldrel-macos-x86_64 OK
r-oldrel-windows-x86_64 OK
r-patched-linux-x86_64 OK
r-release-linux-x86_64 OK
r-release-macos-arm64 OK
r-release-macos-x86_64 OK
r-release-windows-x86_64 OK

Check History

OK 13 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Jun 23, 2026
ERROR 12 OK · 0 NOTE · 0 WARNING · 1 ERROR · 0 FAILURE Jun 22, 2026
ERROR r-devel-linux-x86_64-debian-gcc

tests

Running ‘testthat.R’ [102s/120s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additiona
...[truncated]...
DiSCos (local) FUN(newX[, i], ...)
   6.           ├─stats::quantile(x, probs = (1 - cl)/2)
   7.           └─stats:::quantile.default(x, probs = (1 - cl)/2)
  
  [ FAIL 1 | WARN 35 | SKIP 0 | PASS 113 ]
  Error:
  ! Test failures.
  Execution halted
OK 13 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Jun 1, 2026
ERROR 11 OK · 0 NOTE · 0 WARNING · 2 ERROR · 0 FAILURE May 29, 2026
ERROR r-devel-linux-x86_64-debian-gcc

tests

Running ‘testthat.R’ [102s/123s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additiona
...[truncated]...
DiSCos (local) FUN(newX[, i], ...)
   6.           ├─stats::quantile(x, probs = (1 - cl)/2)
   7.           └─stats:::quantile.default(x, probs = (1 - cl)/2)
  
  [ FAIL 1 | WARN 35 | SKIP 0 | PASS 113 ]
  Error:
  ! Test failures.
  Execution halted
ERROR r-devel-windows-x86_64

tests

Running 'testthat.R' [141s]
Running the tests in 'tests/testthat.R' failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additional tes
...[truncated]...
DiSCos (local) FUN(newX[, i], ...)
   6.           ├─stats::quantile(x, probs = (1 - cl)/2)
   7.           └─stats:::quantile.default(x, probs = (1 - cl)/2)
  
  [ FAIL 1 | WARN 35 | SKIP 0 | PASS 113 ]
  Error:
  ! Test failures.
  Execution halted
OK 13 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE May 6, 2026
ERROR 12 OK · 0 NOTE · 0 WARNING · 1 ERROR · 0 FAILURE May 4, 2026
ERROR r-devel-windows-x86_64

tests

Running 'testthat.R' [145s]
Running the tests in 'tests/testthat.R' failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additional tes
...[truncated]...
DiSCos (local) FUN(newX[, i], ...)
   6.           ├─stats::quantile(x, probs = (1 - cl)/2)
   7.           └─stats:::quantile.default(x, probs = (1 - cl)/2)
  
  [ FAIL 1 | WARN 35 | SKIP 0 | PASS 113 ]
  Error:
  ! Test failures.
  Execution halted
OK 14 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Apr 9, 2026
ERROR 13 OK · 0 NOTE · 0 WARNING · 1 ERROR · 0 FAILURE Apr 2, 2026
ERROR r-patched-linux-x86_64

tests

Running ‘testthat.R’ [165s/204s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additiona
...[truncated]...
DiSCos (local) FUN(newX[, i], ...)
   6.           ├─stats::quantile(x, probs = (1 - cl)/2)
   7.           └─stats:::quantile.default(x, probs = (1 - cl)/2)
  
  [ FAIL 1 | WARN 35 | SKIP 0 | PASS 113 ]
  Error:
  ! Test failures.
  Execution halted
OK 14 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 24, 2026
ERROR 13 OK · 0 NOTE · 0 WARNING · 1 ERROR · 0 FAILURE Mar 21, 2026
ERROR r-oldrel-windows-x86_64

tests

Running 'testthat.R' [200s]
Running the tests in 'tests/testthat.R' failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additional tes
...[truncated]...
DiSCos (local) FUN(newX[, i], ...)
   6.           ├─stats::quantile(x, probs = (1 - cl)/2)
   7.           └─stats:::quantile.default(x, probs = (1 - cl)/2)
  
  [ FAIL 1 | WARN 34 | SKIP 0 | PASS 113 ]
  Error:
  ! Test failures.
  Execution halted
OK 14 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 20, 2026
ERROR 13 OK · 0 NOTE · 0 WARNING · 1 ERROR · 0 FAILURE Mar 19, 2026
ERROR r-devel-linux-x86_64-debian-gcc

tests

Running ‘testthat.R’ [103s/135s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additiona
...[truncated]...
DiSCos (local) FUN(newX[, i], ...)
   6.           ├─stats::quantile(x, probs = (1 - cl)/2)
   7.           └─stats:::quantile.default(x, probs = (1 - cl)/2)
  
  [ FAIL 1 | WARN 35 | SKIP 0 | PASS 113 ]
  Error:
  ! Test failures.
  Execution halted
OK 14 OK · 0 NOTE · 0 WARNING · 0 ERROR · 0 FAILURE Mar 14, 2026
ERROR 12 OK · 0 NOTE · 0 WARNING · 2 ERROR · 0 FAILURE Mar 10, 2026
ERROR r-release-linux-x86_64

dependencies in R code

Missing or unexported object: ‘CVXR::solve’
ERROR r-release-windows-x86_64

dependencies in R code

Missing or unexported object: 'CVXR::solve'

Dependency Network

Dependencies Reverse dependencies data.table ggplot2 CVXR pracma Rdpack evmix extremeStat MASS DiSCos

Version History

6 tracked
new 0.1.3 Mar 10, 2026
updated 0.1.3 ← 0.1.2 diff Mar 6, 2026
updated 0.1.2 ← 0.1.1 diff Feb 3, 2026
updated 0.1.1 ← 0.1.0 diff Jul 22, 2024
updated 0.1.0 ← 0.0.1 diff May 12, 2024
new 0.0.1 Mar 13, 2024