Changes in version 0.1.0 First release of sdid, which builds on synthdid 0.0.9 by Arkhangelsky, Athey, Hirshberg, Imbens, and Wager. BSD 3-Clause License. Interface - sdid() estimates the ATT, following the Stata command sdid. It takes a long format panel, detects staggered adoption, and fits SDiD, SC, or DiD via method ("sdid", "sc", "did"). - Inference must be chosen with vce: "bootstrap", "jackknife", "placebo", or "noinference". reps defaults to 50. seed makes replications reproducible without changing the session's RNG state. - sdid() prints a header, replication progress, and the ATT with its z statistic, p-value, and confidence interval at level. graph = FALSE skips the plot; quietly = TRUE prints nothing. - alternative sets a two-sided (default) or one-sided ("greater", "less") test. One-sided tests give one-sided p-values and intervals, labeled P>z or P= 3.4.0. Performance - Unit and time weights are estimated in C++. Bootstrap, jackknife, and placebo replications run in parallel, with identical results for any thread count under the same seed. Set threads with sdid.num.threads or num.threads. - Long weight solves switch to a Gram matrix gradient, much faster on large panels. Controlled by sdid.solver and sdid.gram.max.mb. - Replications can be interrupted with Ctrl-C. Bug fixes relative to synthdid 0.0.9 - Tibbles and data.tables are accepted. They previously failed with "There is no variation in treatment status". - Fixed a line-search edge case that could produce NaN weights. - The in-time placebo for SC no longer fails with a duplicated omega.intercept argument. - Replications use the fitted estimator's sparsify settings, not the defaults. - A treatment column stored as doubles no longer warns. - The PENN documentation gives the correct number of rows. Removed - synthdid_estimate(), sc_estimate(), did_estimate(), panel.matrices(), synthdid_se(), synthdid_effect_curve(), and timesteps() are no longer exported. - synthdid_rmse_plot(), synthdid_controls(), simulate_dgp(), estimate_dgp(), and lindsey_density_estimate() are removed. - Underlying estimates (in estimates and from sdid_placebo()) have class sdid_estimate and print on one line without computing an SE. Their summary() and format() methods are removed, and the methods dependency is dropped. - The original plot style, standard errors in plots, and several estimates in one shared panel are removed. - Options are renamed with the sdid. prefix. The verbosity option is removed; use quietly.