{
  "_id": "6a161c72acfb0bcc41d71f54",
  "Package": "Synth",
  "Version": "1.2-0",
  "Date": "2026-05-04",
  "Title": "Synthetic Control Group Method for Comparative Case Studies",
  "Authors@R": "c(person(given = 'Jens', family = 'Hainmueller', role = c('aut','cre'), email = 'jhain@stanford.edu'), person(given = 'Alexis', family = 'Diamond', role = 'aut'))",
  "Description": "Implements the synthetic control group method for\ncomparative case studies as described in Abadie and Gardeazabal\n(2003) and Abadie, Diamond, and Hainmueller (2010, 2011, 2014).\nThe synthetic control method allows for effect estimation in\nsettings where a single unit (a state, country, firm, etc.) is\nexposed to an event or intervention. It provides a data-driven\nprocedure to construct synthetic control units based on a\nweighted combination of comparison units that approximates the\ncharacteristics of the unit that is exposed to the\nintervention. A combination of comparison units often provides\na better comparison for the unit exposed to the intervention\nthan any comparison unit alone.",
  "Config/testthat/edition": "3",
  "VignetteBuilder": "knitr",
  "License": "GPL (>= 2)",
  "URL": "https://web.stanford.edu/~jhain/",
  "Encoding": "UTF-8",
  "Config/pak/sysreqs": "cmake",
  "Repository": "https://j-hai.r-universe.dev",
  "Date/Publication": "2026-05-26 21:23:34 UTC",
  "RemoteUrl": "https://github.com/j-hai/synth",
  "RemoteRef": "HEAD",
  "RemoteSha": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-26 22:11:02 UTC",
    "User": "root"
  },
  "Author": "Jens Hainmueller [aut, cre],\nAlexis Diamond [aut]",
  "Maintainer": "Jens Hainmueller <jhain@stanford.edu>",
  "MD5sum": "be4b296852817e9c4d3583dc57f077c1",
  "_user": "j-hai",
  "_type": "src",
  "_file": "Synth_1.2-0.tar.gz",
  "_fileid": "80281067bdb40bca80a20948b012d23d5e0fcc25b55c5e1c3b40db5d34358fda",
  "_filesize": 1195736,
  "_sha256": "80281067bdb40bca80a20948b012d23d5e0fcc25b55c5e1c3b40db5d34358fda",
  "_created": "2026-05-26T22:11:02.000Z",
  "_published": "2026-05-26T22:19:30.688Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 77968644817,
      "time": 475,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7227437478"
    },
    {
      "job": 77968644770,
      "time": 356,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7227406596"
    },
    {
      "job": 77968644771,
      "time": 281,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7227382635"
    },
    {
      "job": 77968644782,
      "time": 316,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7227386506"
    },
    {
      "job": 77967845005,
      "time": 350,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7227312850"
    },
    {
      "job": 77968644821,
      "time": 104,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7227340293"
    },
    {
      "job": 77968644798,
      "time": 402,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7227418326"
    },
    {
      "job": 77968644814,
      "time": 405,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "7227419031"
    },
    {
      "job": 77968644806,
      "time": 455,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7227432098"
    }
  ],
  "_buildurl": "https://github.com/r-universe/j-hai/actions/runs/26477832294",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/j-hai/synth",
  "_commit": {
    "id": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
    "author": "j-hai <115841204+j-hai@users.noreply.github.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "Fix R CMD check: CVXR 1.8 backend (CLARABEL) and platform-robust QP tests\n\nThe CVXR backend was written against CVXR <= 1.0 and broke under CVXR 1.8.x\n(what CRAN/CI now install), failing R CMD check on every run. Four stacked\nissues:\n\n- Defaulted to the ECOS solver, but ECOSolveR is no longer bundled with CVXR.\n- CVXR 1.8 psolve() returns the objective value (a scalar), not a result list,\n  so res$status errored; now read status/value version-defensively.\n- Switched the default solver to CLARABEL, CVXR 1.8's bundled interior-point\n  solver, using its solver-agnostic tolerance names; require CVXR (>= 1.8.0).\n- Reworked two platform-fragile tests to compare the QP objective (the true\n  invariant) rather than a non-unique downstream MSPE, and loosened the\n  objective tolerance to match ipop's sigf=5 precision.\n\nVerified locally against CVXR 1.8.2 + CLARABEL; all five CI matrix jobs\n(macOS, Windows, Ubuntu release/oldrel/devel) pass.\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)",
    "time": 1779830614
  },
  "_maintainer": {
    "name": "Jens Hainmueller",
    "email": "jhain@stanford.edu",
    "login": "j-hai",
    "description": "",
    "uuid": 115841204
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 2.10",
      "role": "Depends"
    },
    {
      "package": "kernlab",
      "role": "Imports"
    },
    {
      "package": "optimx",
      "role": "Imports"
    },
    {
      "package": "rgenoud",
      "role": "Imports"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    },
    {
      "package": "CVXR",
      "version": ">= 1.8.0",
      "role": "Suggests"
    },
    {
      "package": "torch",
      "role": "Suggests"
    },
    {
      "package": "ggplot2",
      "role": "Suggests"
    }
  ],
  "_owner": "j-hai",
  "_selfowned": true,
  "_usedby": 1,
  "_updates": [
    {
      "week": "2026-18",
      "n": 7
    },
    {
      "week": "2026-19",
      "n": 2
    },
    {
      "week": "2026-20",
      "n": 6
    },
    {
      "week": "2026-22",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "v1.1-10",
      "date": "2026-04-28"
    },
    {
      "name": "v1.2-0",
      "date": "2026-05-05"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "j-hai",
      "count": 16,
      "uuid": 115841204
    }
  ],
  "_userbio": {
    "uuid": 115841204,
    "type": "user",
    "name": "j-hai"
  },
  "_downloads": {
    "count": 3051,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/Synth"
  },
  "_mentions": 9,
  "_devurl": "https://github.com/j-hai/synth",
  "_searchresults": 626,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/readme.html",
    "extra/readme.md",
    "extra/Synth.html",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/j-hai/synth",
  "_realowner": "j-hai",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.1-2",
      "date": "2007-02-11"
    },
    {
      "version": "0.1-3",
      "date": "2007-09-23"
    },
    {
      "version": "0.1-4",
      "date": "2007-10-18"
    },
    {
      "version": "0.1-5",
      "date": "2007-12-19"
    },
    {
      "version": "0.1-6",
      "date": "2008-09-11"
    },
    {
      "version": "0.1-8",
      "date": "2011-03-15"
    },
    {
      "version": "0.1-9",
      "date": "2011-04-27"
    },
    {
      "version": "1.1-1",
      "date": "2011-09-28"
    },
    {
      "version": "1.1-2",
      "date": "2011-12-27"
    },
    {
      "version": "1.1-3",
      "date": "2012-10-24"
    },
    {
      "version": "1.1-4",
      "date": "2013-08-12"
    },
    {
      "version": "1.1-5",
      "date": "2014-01-26"
    },
    {
      "version": "1.1-6",
      "date": "2022-06-09"
    },
    {
      "version": "1.1-8",
      "date": "2023-06-02"
    },
    {
      "version": "1.1-9",
      "date": "2025-10-19"
    },
    {
      "version": "1.1-10",
      "date": "2026-04-29"
    }
  ],
  "_exports": [
    "collect.optimx",
    "dataprep",
    "fn.V",
    "gaps.plot",
    "generate_placebos",
    "mspe_plot",
    "mspe_test",
    "path.plot",
    "plot_placebos",
    "spec.pred.func",
    "synth",
    "synth_data",
    "synth_inference",
    "synth.tab"
  ],
  "_datasets": [
    {
      "name": "basque",
      "title": "Panel Data from Spanish Regions to demonstrate the use of the Synthetic Control Method",
      "object": "basque",
      "file": "basque.rda",
      "class": [
        "data.frame"
      ],
      "fields": [
        "regionno",
        "regionname",
        "year",
        "gdpcap",
        "sec.agriculture",
        "sec.energy",
        "sec.industry",
        "sec.construction",
        "sec.services.venta",
        "sec.services.nonventa",
        "school.illit",
        "school.prim",
        "school.med",
        "school.high",
        "school.post.high",
        "popdens",
        "invest"
      ],
      "rows": 774,
      "table": true,
      "tojson": true
    },
    {
      "name": "smoking",
      "title": "Annual State-Level Cigarette Sales in the United States, 1970-2000",
      "object": "smoking",
      "file": "smoking.rda",
      "class": [
        "data.frame"
      ],
      "fields": [
        "state_id",
        "state_name",
        "year",
        "cigsale",
        "lnincome",
        "beer",
        "age15to24",
        "retprice"
      ],
      "rows": 1209,
      "table": true,
      "tojson": true
    },
    {
      "name": "synth.data",
      "title": "Panel Data to demonstrate the use of the Synthetic Control Method",
      "object": "synth.data",
      "file": "synth.data.rda",
      "class": [
        "data.frame"
      ],
      "fields": [
        "unit.num",
        "year",
        "name",
        "Y",
        "X1",
        "X2",
        "X3"
      ],
      "rows": 168,
      "table": true,
      "tojson": true
    }
  ],
  "_help": [
    {
      "page": "basque",
      "title": "Panel Data from Spanish Regions to demonstrate the use of the Synthetic Control Method",
      "topics": [
        "basque"
      ]
    },
    {
      "page": "collect.optimx",
      "title": "Collect results from optimx optimization methods",
      "topics": [
        "collect.optimx"
      ]
    },
    {
      "page": "dataprep",
      "title": "Constructs a list of matrices from panel dataset to be loaded into synth()",
      "topics": [
        "dataprep"
      ]
    },
    {
      "page": "fn.V",
      "title": "Loss Function for nested optimization of W and V weights",
      "topics": [
        "fn.V"
      ]
    },
    {
      "page": "gaps.plot",
      "title": "Plots Gap in Outcome Trajectories between the Treated its Synthetic Control Unit",
      "topics": [
        "gaps.plot"
      ]
    },
    {
      "page": "generate_placebos",
      "title": "In-space placebo refits for synthetic control inference",
      "topics": [
        "generate_placebos",
        "plot.synth_placebos",
        "print.synth_placebos"
      ]
    },
    {
      "page": "mspe_plot",
      "title": "Plot of placebo post/pre MSPE ratios",
      "topics": [
        "mspe_plot"
      ]
    },
    {
      "page": "mspe_test",
      "title": "One-sided placebo p-value via post/pre MSPE ratio",
      "topics": [
        "mspe_test"
      ]
    },
    {
      "page": "path.plot",
      "title": "Plots Outcome Trajectories for Treated Unit and its Synthetic Control Unit",
      "topics": [
        "path.plot"
      ]
    },
    {
      "page": "plot_placebos",
      "title": "Overlay placebo gap series with the treated gap",
      "topics": [
        "plot_placebos"
      ]
    },
    {
      "page": "plot.synth_inference",
      "title": "Plot a synthetic control prediction band",
      "topics": [
        "plot.synth_inference"
      ]
    },
    {
      "page": "smoking",
      "title": "Annual State-Level Cigarette Sales in the United States, 1970-2000",
      "topics": [
        "smoking"
      ]
    },
    {
      "page": "spec.pred.func",
      "title": "Special Predictor Function for Dataprep",
      "topics": [
        "spec.pred.func"
      ]
    },
    {
      "page": "synth",
      "title": "Constructs synthetic control units for comparative case studies",
      "topics": [
        "synth"
      ]
    },
    {
      "page": "synth_data",
      "title": "Build inputs for 'synth()' from a panel data frame",
      "topics": [
        "synth_data"
      ]
    },
    {
      "page": "synth_inference",
      "title": "Prediction intervals for synthetic control counterfactuals",
      "topics": [
        "print.synth_inference",
        "synth_inference"
      ]
    },
    {
      "page": "synth.data",
      "title": "Panel Data to demonstrate the use of the Synthetic Control Method",
      "topics": [
        "synth.data"
      ]
    },
    {
      "page": "synth.tab",
      "title": "Creates Tables that Summarize Results of Synthetic Control Group Method",
      "topics": [
        "synth.tab"
      ]
    }
  ],
  "_readme": "https://github.com/j-hai/synth/raw/HEAD/README.md",
  "_rundeps": [
    "kernlab",
    "nloptr",
    "numDeriv",
    "optimx",
    "pracma",
    "rgenoud"
  ],
  "_vignettes": [
    {
      "source": "inference.Rmd",
      "filename": "inference.html",
      "title": "Inference for Synthetic Control Estimators",
      "author": "Jens Hainmueller and Alexis Diamond",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Which inference method should I use?",
        "1. Build the synthetic control",
        "2. Prediction intervals: synth_inference()",
        "Split-conformal (default)",
        "Parametric (Gaussian residuals)",
        "When to use which",
        "3. Placebo inference",
        "Generate the placebos",
        "Test",
        "Plot the placebo distribution",
        "Plot the placebo gaps",
        "4. Combining prediction intervals and placebos",
        "Alternative QP backends",
        "See also",
        "References"
      ],
      "created": "2026-05-05 00:41:36",
      "modified": "2026-05-12 14:48:12",
      "commits": 4
    },
    {
      "source": "synth-quickstart.Rmd",
      "filename": "synth-quickstart.html",
      "title": "Quickstart: building a synthetic control with Synth",
      "author": "Jens Hainmueller and Alexis Diamond",
      "engine": "knitr::rmarkdown",
      "headings": [
        "1. Build the inputs",
        "2. Fit the synthetic control",
        "3. Inspect",
        "4. What next?"
      ],
      "created": "2026-05-05 00:41:36",
      "modified": "2026-05-11 22:08:26",
      "commits": 2
    }
  ],
  "_score": 8.314440296339786,
  "_indexed": true,
  "_nocasepkg": "synth",
  "_universes": [
    "j-hai"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.2-0",
      "date": "2026-05-26T22:13:21.000Z",
      "distro": "noble",
      "commit": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
      "fileid": "1abad27d6fcacc807badaf95a2c947c761bcc43e0f4d62068d7917649d759ed6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-hai/actions/runs/26477832294"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.2-0",
      "date": "2026-05-26T22:13:04.000Z",
      "distro": "noble",
      "commit": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
      "fileid": "26c5a0938e9a8fad9c79f7ac7e0b717d4dc55dfcc8025c9e3d4a860ed01c58f8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-hai/actions/runs/26477832294"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.2-0",
      "date": "2026-05-26T22:13:17.000Z",
      "commit": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
      "fileid": "5f69655a7cece6d36cf8f1c59d1f9211a4fd9c56030a3489937cc2213a78999d",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-hai/actions/runs/26477832294"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.2-0",
      "date": "2026-05-26T22:13:01.000Z",
      "commit": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
      "fileid": "a7e88ff3a943deeb516b9b408e5e4aaa42e1038bcd44e88edc954eba4eeb369f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-hai/actions/runs/26477832294"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.2-0",
      "date": "2026-05-26T22:13:03.000Z",
      "commit": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
      "fileid": "e1eb2314f905f1872eee1fd2a3786129e44d436c03b1c24c0119336a6e933151",
      "status": "success",
      "buildurl": "https://github.com/r-universe/j-hai/actions/runs/26477832294"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.2-0",
      "date": "2026-05-26T22:12:26.000Z",
      "commit": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
      "fileid": "cc404439c821fb882b40d929dd763c35057884360099517934cb7d135d4ce454",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-hai/actions/runs/26477832294"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.2-0",
      "date": "2026-05-26T22:12:34.000Z",
      "commit": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
      "fileid": "5fad3e1e7d4bef8002be162de8726f4e3c4b7ca891bfbe6d1f05a7e569921675",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-hai/actions/runs/26477832294"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.2-0",
      "date": "2026-05-26T22:12:22.000Z",
      "commit": "7ad2c8fcdbc230c10af736e8433755f6c5740c08",
      "fileid": "3110f168561803b5b976a6c234b9df09ce568bf540dccec82ac9dab6a8689667",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/j-hai/actions/runs/26477832294"
    }
  ]
}