Straight from development to you. With StataNow, you always have the latest features.
This page summarises the latest StataNow additions and enhancements. If you’re comparing options, see Stata editions and the full Stata features list.
___ ____ ____ ____ ____(R)
/__ / ____/ / ____/
___/ / /___/ / /___/
Statistics/Data analysis
Title
Additions to Stata since release 19
Description
Update history:
Stata 19.0 base 08apr2025
updated to 03jun2026
StataNow 19.5 08apr2025
updated to 03jun2026
This file records the additions and fixes made to Stata since the release of version 19. See What's
new table of contents for changes in other Stata versions.
Updates are available for free over the internet. Updates and items available only in StataNow are
marked as such. Click here to obtain the latest update, or see updates for detailed instructions.
The most recent changes are listed first.
-------- update 03jun2026 ---------------------------------------------------------------------------------
1. (StataNow) Financial statistics. The new financial statistics suite of commands provides data
management, descriptive statistics, and model-fitting tools for analysis of financial data. The
new features complement and expand existing data-management and time-series features for
researchers and students of finance.
The financial statistics suite includes
-------------------------------------------------------------------------------------------------
Command Description
-------------------------------------------------------------------------------------------------
finreturns Generate financial returns
finportfolio Financial portfolio selection
finsummarize Financial summary statistics
finvalrisk Value at risk
finregress capm Capital asset pricing model (CAPM)
finregress fmb Fama-MacBeth regression
-------------------------------------------------------------------------------------------------
For example, suppose you start your analysis with a set of asset prices, a1 through a20, and
would like to generate simple returns r_a1 through r_a20. You would type
. finreturns a1-a20, simple(r_)
With these returns, you can construct a portfolio that minimizes the variance of your returns by
typing
. finportfolio minvariance r_a1-r_a20, generate(myport)
Or you can even create a minimum-variance portfolio that does not allow short selling by typing
. finportfolio minvariance r_a1-r_a20, noshort generate(myport)
Or you can create a portfolio that maximizes the Sharpe ratio by typing
. finportfolio maxsharpe r_a1-r_a20, generate(myport)
You can inspect properties of your portfolio such as the mean, standard deviation, and Sharpe
ratio:
. finsummarize myport
If you have a benchmark asset, bench, you can also compute the Treynor index, Jensen's alpha, and
the beta with respect to the benchmark. You can also adjust for the risk-free rate rf.
. finsummarize myport, rfrate(rf) benchmark(bench)
You can assess the portfolio's potential losses by using historical or normal-based value at risk
(VaR).
. finvalrisk myport
Or you can compute VaR based on an ARCH model that accounts for time-varying volatility.
. finvalrisk myport, model(arch, ar(1) arch(1) garch(1))
If you want to fit a CAPM for your 20 returns on market index mkt, you can type
. finregress capm r_a1-r_a20 = mkt
Or to perform a Fama-MacBeth regression and estimate the price of risk, you can type
. finregress fmb r_a1-r_a20 = mkt
Learn more at www.stata.com/statanow/financial-statistics.
2. (StataNow) Convert PDF to plain text. New command pdf2txt converts PDF documents to plain text
files. Conversion to plain text is useful when you need to extract content that can be easily
parsed for data mining or efficient processing by large language models. You may also want to
convert the content from your PDF to plain text when you need a smaller file size that can
quickly be loaded and processed.
Learn more at www.stata.com/statanow/convert-pdf-to-plain-text/.
3. (StataNow) Download business calendars. Command bcal has new subcommand webcopy to download a
business calendar for a common stock exchange. You can select from calendars for the London
Stock Exchange, NASDAQ, New York Stock Exchange, Shanghai Stock Exchange, Tokyo Stock Exchange,
S&P 500, or an example stock exchange that is useful for teaching purposes. These calendars are
customized for recent years and are useful for analyzing modern data that are collected only on
the trading days of the selected exchange. They are also easily extended to accommodate any date
range corresponding to your data.
4. graph twoway bar and graph twoway rbar have new option baroffset(#) for offsetting the centers of
the bars.
5. icd10pcs has been updated for the 01apr2026 update. Type icd10pcs query to see information about
the changes.
6. kwallis has the following new stored results: r(p) and r(p_adj).
7. The Java Development Kit (OpenJDK) that is redistributed with Stata is now updated to version
21.0.11+10-LTS acquired from Azul Systems.
8. Online help and the search index have been brought up to date for Stata Journal 26(2).
9. colorstyles hsv and cmyk ignored intensity. This has been fixed.
10. estat summarize, when used with estimation results that contain time-series operators on
variables in an interaction, failed to apply the time-series operators when computing the
statistics for the interaction. This has been fixed.
11. graph twoway with options msangle() and aspect(), when the graph was exported (in any format --
png, svg, pdf, etc.), ignored the marker angle specified in option msangle(). This has been
fixed.
12. import spss, after the 15apr2026 update, failed to store variable labels longer than 80 Unicode
characters in characteristics. This has been fixed.
13. margins, when used with gsem results with continuous latent variables and option group() and when
all the observed exogenous variables were set to a constant value, incorrectly produced
predictive margins using the first observation instead of using the range of group() values in
the estimation sample. This has been fixed.
14. marginsplot, when used after proportion, did not respect the method specified in proportion's
option citype(), which is used to compute the reported confidence limits for the estimated
proportions. This has been fixed.
While this is not a documented feature of margins, marginsplot will now also respect the method
specified in margins's option citype() when plotting the reported confidence limits.
15. The 12nov2025 update introduced a bug in the Data Editor where data columns to the right of
column 1001 were not selectable. This has been fixed.
16. (Windows) Previously, the OpenJDK on Windows included OpenJFX to provide a WebView component used
by the Tables Builder. Because of stability issues, OpenJFX is no longer included with the
OpenJDK bundled with Stata. Thus, the Tables Builder no longer supports an HTML preview; a plain
text preview is displayed instead.
-------- update 15apr2026 ---------------------------------------------------------------------------------
1. svyset and svy have new option dofsubpop. When specified, out-of-subpopulation primary sampling
units are not counted in the design degrees of freedom.
2. mean, proportion, ratio, and total have new option dofsubpop. When specified with option over(),
each subpopulation estimate gets its own degrees of freedom, and out-of-subpopulation
observations are not counted in their degrees of freedom. This option has no effect when option
over() is not specified.
3. import spss now supports variable labels up to 256 bytes long.
4. Stata's tracking of temporary matrices has been improved. The number of global matrices no
longer affects the time Stata takes to remove temporary matrices created within an exiting
program.
5. Online help and the search index have been brought up to date for Stata Journal 26(1).
6. collect layout, when working with results from spregress, failed to correctly parse levels of
colname with operator e.. This has been fixed.
For example, suppose you collected the results from
. spregress y ..., ... errorlag(W)
where e.y is a coefficient in the second equation, and arranged the collected results into a
table with
. collect layout (colname[_cons e.y]) (result[_r_b])
Before this fix, collect layout would report
(level e.y of dimension colname not found)
and fail to show the requested coefficient.
7. graph use, when displaying a graph produced by twoway heatmap with a dataset that differs from
what is currently in memory, displayed the saved graph incorrectly even though the saved .gph
file was correct. This has been fixed.
8. (StataNow) import parquet has the following fixes:
a. import parquet for binary columns did not go beyond the first \0. This has been fixed.
b. import parquet, when either option favormemory was specified or a column list was used and
when the parquet file contained a column or columns with nested parquet data types (list,
struct, or map), produced an error message or imported the wrong columns. This has been
fixed.
9. (StataNow) lateffects with method ipwra with binary or fractional outcome models produced
standard errors for the LATE parameter that were conservative. For count outcomes, the standard
errors were too small. This has been fixed.
10. me commands mecloglog, meglm, meintreg, melogit, menbreg, meologit, meoprobit, mepoisson,
meprobit, mestreg, and metobit, when levelvar was specified as _all with one or more spaces
before the colon (:), exited with an unhelpful error message. This has been fixed.
11. menl with option rescorrelation(ctar1, t(timevar)) or rescorrelation(ar 1, t(timevar))
incorrectly labeled an estimated parameter as corr that was not a correlation. This parameter is
now labeled rho. The corresponding coefficient in e(b) is labeled logitrho or athrho,
respectively.
12. ml model, when specified with option svy and when the svyset properties contained a value for
dof(#), failed to respect the svyset design degrees of freedom. This has been fixed.
13. Mata function ustrsplit(), when the first element of the string row vector result was an empty
string and the row vector contained more than 49 elements, sometimes mistakenly dropped the last
element if it was an empty string or added extra empty strings in the middle of the row vector
result. This has been fixed.
14. (Unix) In the console version of Stata, the Enter key on a numeric keypad was unrecognized when
the terminal sent the VT100 Application Keypad Enter sequence (\eOM). This has been fixed.
-------- update 18feb2026 ---------------------------------------------------------------------------------
1. (Win,Unix) When a file on disk is open in the Do-file Editor, the Do-file Editor will now prompt
you if the contents of the file have been changed outside the Do-file Editor. Click on OK to
reload the file, click on Cancel to ignore the changes and leave the open file as-is, or click on
Auto to reload the file and automatically load changed files in the future. You may uncheck
checkbox Automatically reload when a file changes on disk in the Do-file Editor's Advanced
settings to always be prompted when a file changes on disk, or you may uncheck checkbox Watch for
changes to a file on disk to stop watching for changes to files on disk. Stata for Mac already
supports watching for changes to a file on disk. Stata for Windows has an additional checkbox
Watch for changes to a file on a network drive to allow watching for changes to files on a
network drive.
2. The Java Development Kit (OpenJDK) that is redistributed with Stata is now updated to version
21.0.10+7-LTS acquired from Azul Systems.
3. bootstrap and commands using option vce(bootstrap), when data were xtset with a specified period
between observations using option delta(), failed to apply the specified value of delta() within
each bootstrap sample, instead setting the value to the default. This has been fixed.
4. In the Data Editor, browse mode behavior was previously inconsistent in what was allowed and what
was not. Going forward, all actions that could accidentally change the data, such as typing in
various fields or keyboard shortcuts, will continue to be disallowed. All actions that are taken
deliberately, such as overt menu actions, will now be allowed.
5. estat aggregation, estat ptrends, and estat moderation after xthdidregress twfe formed Mundlak
terms by averaging over the group variable instead of the panel variable, meaning that models
were fit using group fixed effects instead of panel fixed effects as documented when the group
variable was different from the panel variable. This has been fixed.
6. graph twoway bar and graph twoway rbar with options colorvar() and colorfillonly drew an extra
outline with the fill color around bars. This has been fixed.
7. (StataNow) xtreg, fe with option absorb(varlist, halperin) could declare convergence prematurely
when estimating the panel and residual variances, sigma_u and sigma_e. This occurred in
numerically difficult situations where there were many absorbed variables. The numerical
precision for these parameters was accurate to at least four digits. The model coefficients were
not affected. This has been fixed.
-------- update 28jan2026 ---------------------------------------------------------------------------------
1. (StataNow) Psychometric meta-analysis. The meta suite has been extended to perform psychometric
meta-analysis. New command meta psycorr allows you to correct correlations for the distorting
effects of measurement error, range restriction, and other statistical artifacts.
A fundamental assumption in meta-analysis is that the reported effect sizes are accurate
reflections of the true relationships being studied. In many correlational studies, the
variables of interest are latent constructs, like intelligence, job satisfaction, or depression,
measured with error or limited sample ranges. The observed correlations are often distorted due
to these statistical artifacts.
Psychometric meta-analysis corrects correlations and their standard errors for these distortions,
providing more accurate estimates of the mean correlation and between-study variance and thus
providing more valid, generalizable conclusions.
Consider a fictional dataset in which variable rho records the observed correlations between
cognitive ability test scores (X) and job performance ratings (Y) in the restricted sample of
hired employees. The unrestricted sample represents all job applicants, but because only top
scorers are hired, the observed correlations are attenuated by range restriction -- a common
situation in personnel selection studies. Variable n contains the within-study sample sizes.
Reliability estimates of X (as a measure of true cognitive ability T) and Y (as a measure of true
job performance P), both estimated from the restricted sample, are stored in rxxr and ryyr.
Variable ux contains the ratio of restricted to unrestricted variability in X. The goal of meta
psycorr is to use this information to recover the correlation between T and P in the unrestricted
applicant population.
. meta psycorr rho n, xreliability(rxxr) yreliability(ryyr) xuratios(ux)
You may update any setting of the psychometric meta-analysis, keeping all other settings the
same, by using the meta update command. For example, to assume that the range restriction is
direct, type
. meta update, direct
To estimate the overall effect size and its confidence interval, based on a random-effects model
with the individual-correction meta-analysis (ICMA) method, type
. meta summarize
All the commands in the meta suite that are available for standard meta-analysis are also
available for psychometric meta-analysis. For example, to perform subgroup meta-analysis and plot
the results on a forest plot with credibility intervals, we type
. meta forestplot, subgroup(grpvar) credinterval
Learn more at stata.com/statanow/psychometric-meta-analysis/.
2. (StataNow) Proportional odds test. The ordered logit model fit by ologit relies on the
proportional odds assumption, also called the parallel lines assumption, which implies that the
cumulative probability curves for each outcome category plotted against a predictor should be
parallel.
New postestimation command estat parallel provides five tests of the proportional odds
assumption: the Brant, likelihood-ratio, score, Wald, and Wolfe-Gould tests.
Learn more at stata.com/statanow/proportional-odds-test-after-ologit/.
3. (StataNow) Moderating effects for heterogeneous DID. New postestimation command estat moderation
is now available after fitting a heterogeneous DID model with hdidregress twfe or xthdidregress
twfe. estat moderation reports the moderating effects of covariates, which show how the cohort-
and time-varying average treatment effects on the treated (ATETs) vary with covariates.
Learn more at stata.com/statanow/moderating-effects-heterogeneous-DID/.
4. (StataNow) Convert Word to HTML, EPUB, and more. You can now convert Word documents (.docx
files) to four new file types.
a. New command docx2html converts a Word document to an HTML file.
b. New command docx2epub converts a Word document to an EPUB file.
c. New command docx2markdown converts a Word document to a Markdown file. New command docx2md is
a synonym for docx2markdown.
d. New command docx2txt converts a Word document to a plain text file.
Learn more at stata.com/statanow/convert-word-documents/.
5. (StataNow) Discrete derivatives. New mata classes are available for discrete numerical
derivatives.
a. New Mata class DerivDiscreteDiff() computes the coefficients for a real, discrete numerical
derivative using finite difference approximation.
b. New Mata class DerivDiscretePartial() computes discrete numerical partial derivatives.
6. (StataNow) HDFE interactions. areg, ivregress 2sls, and xtreg, fe now allow factor-variable
notation within option absorb(varlist). This is particularly useful when you wish to include
interactions between high-dimensional fixed effects and continuous variables.
7. (StataNow) Do-file Editor enhancements. The Do-file Editor now includes the following new
features:
a. The Do-file Editor now supports bracket pair colorization for do- and ado-files. Bracket pair
colorization is a feature where matching brackets -- (), {}, and [] -- are highlighted so that
users can follow nested code structure at a glance. Each nesting level of brackets receives a
distinct, reusable color, making it easy to trace from an opening (, {, or [ to its matching
close bracket even in deeply nested, multiline expressions. Unmatched brackets are also
displayed in a unique color, allowing them to stand out in the code. You can enable or
disable bracket pair colorization in the Do-file Editor preferences as well as customize the
different nesting level colors and the unmatched bracket color.
b. The checkbox Display > Show line guide has been added to the Do-file Editor's preferences.
When checked, it displays a line guide in the code-folding margin to denote where a code block
begins and ends.
c. The dropdown box Advanced > Default action of Do button: has been added to the Do-file
Editor's preferences. The selected action will be executed when a user clicks the Do button
in the Do-file Editor's toolbar.
8. (StataNow) hdidregress twfe and xthdidregress twfe have new option over(). Specifying
over(timecohort) when cohort-time ATETs or cohort ATETs are requested and covariates are
specified causes cohort-time-specific covariate means to be used in estimation. over(cohort),
the default, yields the existing behavior of computing cohort-specific covariate means.
9. (StataNow) hdidregress twfe and xthdidregress twfe have new option noxinteract. Specifying
noxinteract omits the interaction of specified covariates with difference-in-difference variables
in the model so that covariates enter only as levels.
10. (StataNow) New Mata class NDMatrix() defines an N-dimensional matrix.
11. (StataNow) Mata function quantile() has two improvements:
a. Quantile estimator method "galton" is now supported as a synonym for "hazen".
b. Method "inv_cdf" is renamed to "invedf", and method "avg_inv_cdf" is renamed to "avginvedf".
The previous names are still supported but no longer documented.
12. collect remap, when specified to remap dimension levels that contain square brackets, such as
colname's level var(_cons[id]) in
. collect remap colname[var(_cons[id])] = Variance[id]
incorrectly exited with error message "too many brackets". This has been fixed.
13. irf create, bs after xtvar has the following fixes:
a. irf create, bs after xtvar with option vce(bootstrap) incorrectly resampled within existing
bootstrap samples. This has been fixed.
b. irf create, bs after xtvar could return an uninformative error message when the last bootstrap
replication failed. This has been fixed.
14. twoway rpcap y1var y2var y3var xvar mistakenly drew the caps for observations whose y1var or
y2var were missing. This has been fixed.
-------- update 14jan2026 ---------------------------------------------------------------------------------
1. lincom after logistic now accepts option coef. By default, lincom after logistic continues to
report the exponentiated estimated linear combination, labeled as "Odds ratio". With option
coef, lincom will report the estimated linear combination.
2. Prefix commands bootstrap, collect, jackknife, nestreg, permute, simulate, statsby, and stepwise
have been updated to accommodate community-contributed prefix commands.
3. icd10cm and icd10pcs have been updated for the 2026 fiscal year. Type icd10cm query or icd10pcs
query to see information about the changes.
4. SMCL paragraph mode directive {p} has an optional fourth argument that sets the overall width for
the paragraph. This argument had a minimum bound of 40. This has been changed to 20 to allow
for more flexibility.
5. Online help and the search index have been brought up to date for Stata Journal 25(4).
6. frlink failed to properly set the time portion of the date characteristic on the generated link
variable linkvar1. This has been fixed so that the link creation date and time are reported by
frlink describe.
For linked datasets created prior to this fix, frlink describe will continue to only mention the
date when the link was created.
7. graph twoway with option color(), when a stylelist was used that contained either ".." or "...",
mistakenly produced error message "option(s) qxav() not allowed", r(198). This has been fixed.
8. markdown, when the source file was in a path containing an uppercase letter, mistakenly looked
for the file in the wrong path. For example, if test.md was located in /home/user/Desktop,
markdown test.md looked for /home/user/desktop/test.md. This has been fixed.
9. ologit and oprobit allowed aweights, even though they were not documented. aweights are no
longer allowed with these commands because these estimators are not suitable for aweighted data.
For reproducibility, aweights are available under version control; see version.
10. (StataNow) regress, areg, and xtreg, fe with option vce(hc3 [clustvar], hansen) reported
confidence intervals at the default confidence level of 95%, even when option level() specified a
different value. This has been fixed.
11. streg with options distribution(weibull) and either vce(robust) or vce(cluster), when the fitted
model included the constant term, displayed correct results, but the entry for the constant term
in the posted e(V_modelbased) matrix was in a transformed scale instead of the original scale.
This has been fixed.
12. svy: total, when used with survey data containing strata with a single sampling unit and when the
data were svyset with option singleunit(centered), used the wrong denominator in computing the
grand mean used to center the single sampling units. It used the number of strata within the
stage instead of the number of sampling units, and this usually resulted in greatly inflated
variance estimates. This has been fixed.
13. Stata and Mata functions ustrpos(s1, s2) and ustrrpos(s1, s2), when either s1 or s2 contained
characters with Unicode code points greater than U+FFFF (that is, Unicode characters known as
supplementary characters, mainly emojis, rare CJK ideographs, and other specialized symbols),
produced incorrect results. This has been fixed.
14. (mac) macOS Tahoe made a change to alert dialogs that caused alert dialogs in Stata that are
supposed to contain OK and Cancel buttons to display only the OK button with no ability to cancel
the dialog. This has been fixed.
-------- update 12nov2025 ---------------------------------------------------------------------------------
1. (StataNow) Import data from Parquet files. New command import parquet reads into memory a
Parquet file. Most of the Parquet compression methods and variable types are supported.
Learn more at stata.com/statanow/import-data-parquet-files/.
2. (StataNow) Causal mediation with two mediators. Existing command mediate fits causal mediation
models and estimates natural direct, natural indirect, and total effects of a treatment on an
outcome. mediate now supports estimation of these effects for two mediator variables. mediate
can fit both parallel mediation models (when there is no causal order among mediators) and
sequential mediation models (when a causal order exists among mediators). By accounting for each
path-specific component of a treatment effect, mediate estimates the finest possible
decomposition of a total effect into natural direct and indirect effects. Because the number of
decompositions grows at a rapid rate when more than one mediator is included, the finest possible
decomposition potentially encompasses many estimands. Coarser decompositions are available by
estimating mediator-specific natural effects. Postestimation commands are available to estimate
controlled direct effects and to perform a sequential mediation sensitivity analysis.
Learn more at stata.com/statanow/causal-mediation-analysis-two-mediators/.
3. (StataNow) Mata quantile function. New Mata function quantile(X, p[, method]) computes quantile
values of data matrix X at specified quantile vector p. Optional argument method allows you to
choose from several quantile calculation methods, including both discontinuous and continuous
piecewise linear methods.
4. h2oml postestimation commands now provide permutation variable importance and regression
diagnostic plots:
a. h2omlgraph permimp plots permutation variable importance after using h2oml to perform random
forest or gradient boosting machine.
b. h2omlgraph rvfplot produces a residual-versus-fitted plot after h2oml gbregress and h2oml
rfregress.
c. h2omlgraph rvpplot produces a residual-versus-predictor plot after h2oml gbregress and h2oml
rfregress.
5. The Stata-Python API Specification has the following new features:
a. Class Data has new method fromNPArray(arr, prefix='v', force=False) that loads a NumPy array
into Stata's memory, making it the current dataset.
b. Class Data has new method fromPDataFrame(df, force=False) that loads a pandas DataFrame into
Stata's memory, making it the current dataset.
c. Class Data has new method toNPArray(var=None, obs=None, selectvar=None, valuelabel=False,
missingval=_DefaultMissing()) that exports values from the current Stata dataset into a NumPy
array.
d. Class Data has new method toPDataFrame(var=None, obs=None, selectvar=None, valuelabel=False,
missingval=_DefaultMissing()) that exports values from the current Stata dataset into a pandas
DataFrame.
e. Class Frame has new method fromNPArray(arr, stfr, prefix='v', force=False) that loads a NumPy
array into a specified frame in Stata.
f. Class Frame has new method fromPDataFrame(df, stfr, force=False) that loads a pandas DataFrame
into a specified frame in Stata.
g. Class Frame has new method toNPArray(var=None, obs=None, selectvar=None, valuelabel=False,
missingval=_DefaultMissing()) that exports values from a Stata frame into a NumPy array.
h. Class Frame has new method toPDataFrame(var=None, obs=None, selectvar=None, valuelabel=False,
missingval=_DefaultMissing()) that exports values from a Stata frame into a pandas DataFrame.
i. Class Mata has new method fromNPArray(arr, name) that exports values from a NumPy array into a
Mata matrix.
j. Class Mata has new method toNPArray(name, rows=None, cols=None) that exports values from an
existing Mata matrix into a NumPy array.
k. Class Matrix has new method fromNPArray(arr, name) that exports values from a NumPy array into
a Stata matrix.
l. Class Matrix has new method toNPArray(name, rows=None, cols=None) that exports values from an
existing Stata matrix into a NumPy array.
6. Postestimation command estat aggregation after hdidregress and xthdidregress with estimators ra,
ipw, and aipw has new option weights(). Two weight types are allowed: timecohort and cohort.
The default weights(timecohort) accounts for variation of cohort size over time. weights(cohort)
provides weights for each cohort that are constant over time. The two weights are equivalent if
the proportions and sizes of groups are stable over time.
7. The Java Development Kit (OpenJDK) that is redistributed with Stata is now updated to version
21.0.9+10-LTS acquired from Azul Systems.
8. bayesmh, when used with a log-posterior evaluator and multiple chains, ignored initial values
provided with option chain#() for chains 2, 3, etc. This has been fixed.
9. bayesselect, when the name of the outcome variable was longer than 16 characters, failed. This
has been fixed.
10. didregress, xtdidregress, hdidregress, and xthdidregress, when specified with weights where the
weight type was misspelled, failed to abort with an error message and returned unweighted
results. This has been fixed.
11. esize twosample with option by(groupvar), where groupvar had attached but undefined value labels,
failed to report the sample size for undefined value-label levels. This has been fixed.
12. estat ptrends after hdidregress twfe or xthdidregress twfe has the following fixes:
a. estat ptrends after hdidregress twfe or xthdidregress twfe with option controlgroup(notyet)
did not exclude the last-treated cohort from the regression as documented, which affected test
results in some cases. This has been fixed.
b. estat ptrends after hdidregress twfe or xthdidregress twfe failed to detect nonestimability of
effects in some cases, leading to incorrect results. This has been fixed.
13. estat series after cate ignored suboption saving() in option graph(). This has been fixed.
14. ivregress 2sls using time-series operators in the model specification posted temporary variable
names in ereturn. This has been fixed.
15. predict with statistic residuals, d, or xbd, after areg using a time-series operator on the
dependent variable and a single absorbed variable, could exit with error message "not sorted".
This has been fixed.
16. predict after nl using a user-written program with optional arguments would error because the
options were not passed through to the program. This has been fixed.
17. predict after nlsur using a user-written program with optional arguments would error because the
options were not passed through to the program. This has been fixed.
18. putdocx append, when merging multiple .docx files into a single .docx file and when one of them
contained a table, in some cases would not properly open the resulting document in Word. This
has been fixed.
19. When initializing Python 3.14 from within Stata, the initialization failed and Stata reported
error code 7100. This has been fixed.
20. sts list has the following fixes:
a. sts list with options saving() and risktable() stored all variables' storage types as float,
which was inconsistent with the storage types when specifying option saving() alone. This has
been fixed.
b. sts list with option failure or cumhaz listed the reported value incorrectly as 1 when the
reporting time points were smaller than the minimum of the observed time values. This has
been fixed.
-------- update 06oct2025 ---------------------------------------------------------------------------------
1. stcurve and estat gofplot with option saving(), when a space was used in the saving filename,
exited with error message "only one filename is allowed". This has been fixed.
2. (Windows) The 24sep2025 update could cause Stata to crash when the Do-file Editor opened or saved
a file and if the user's profile contained Unicode characters. This has been fixed.
-------- update 24sep2025 ---------------------------------------------------------------------------------
1. (StataNow) In the Do-file Editor, you can now select Tools > Execute (do) lines on Windows and
Unix or View > Do-file Editor > Execute (do) lines on Mac while multiple lines of text are
selected to execute all selected lines. After the lines are executed, the cursor will
automatically advance to the next line that can be executed, skipping comments and blank lines.
If the next line is the beginning of a code block, such as a for loop or an if expression, then
the entire code block will be selected so that it will all be executed.
2. By default, the Do-file Editor will save a backup of an open document in the same directory that
the document is saved in. There is now an option for the Do-file Editor to store all backup
files in an operating-system-specific directory that is local to the host computer. This option
is ideal when editing documents from a network drive where saving files may be slow, or when
collaborating with other users where an existing backup file can cause conflicts when editing a
shared document. The setting for where to save backup files can be changed in the Do-file
Editor's advanced settings. For more information, see 13 Using the Do-file Editor -- automating
Stata in Getting Started with Stata for Windows, Getting Started with Stata for Mac, or Getting
Started with Stata for Unix.
3. graph bar, graph box, and graph dot have new option assecondcategory for treating the y variables
as the second over() group. This option is useful when you have specified multiple y variables
and the over() option, and you want to group first based on the over() categories and second on
the y variables.
4. Command syntax now supports numbers in minimum option abbreviations, identified by capital
letters at the beginning of option names. You can now define an option name that includes a
number between capital letters and this will not produce an error message. For instance,
previously, using option name, say, CASE1OPtion with syntax in a program would produce error
message "option case1option not allowed", when option case1option was specified with the program.
This is allowed now, and the desired minimum abbreviation case1op works as expected. However, if
a number appears at the end of the minimum abbreviation, such as CASE1option, the number will
continue being ignored in the minimum abbreviation, such as case instead of case1, per the
original design of syntax.
5. Online help and the search index have been brought up to date for Stata Journal 25(3).
6. (StataNow) The variance-covariance estimator in linear regression commands areg, regress,
didregress, xtdidregress, and xtreg, fe with option vce(hc3, hansen) was not equivalent to the
Hansen jackknife estimator in cases of cluster noninvertibility but instead was equal to the
ordinary HC3 estimator. Cluster noninvertibility can occur when fixed-effect variables serving
as the clustering variable are included in a regression rather than being partialed out or when
some clusters are large relative to the sample size minus the number of regressors. In these
nonstandard cases, jackknife variance estimates provide conservative coverage. This has been
fixed.
7. (StataNow) areg now disallows option vce(hc3 [clustvar], hansen) when not specified with a
cluster variable that nests the absorbed variable. This affects specifications in didregress
with option vce(hc3 clustvar, hansen) when areg is used for estimation.
8. (StataNow) areg with option vce(hac kernel) and xtreg, fe with option vce(dkraay kernel), when
used with time-series operators, could return an uninformative error message. This has been
fixed.
9. (StataNow) areg with option vce(hac kernel) and aweights as well as xtreg, fe with option
vce(dkraay kernel) and aweights returned incorrect standard errors in some cases where the sample
was restricted or there were missing values in some variables. This has been fixed.
10. (StataNow) regress and areg with option vce(hac kernel) and using the default lags, in cases
where time-series operators were applied to the dependent or independent variables or when the
absorbed variable had missing values, could fail to correctly define the estimation sample when
computing the default lags (N - 2). This has been fixed.
11. (StataNow) regress and areg with option vce(hc3, hansen) or vce(hc3, dfadjust) specified without
a cluster variable, when fweights were specified, could return standard errors that were too
large. This has been fixed.
12. estat ptrends after hdidregress twfe in models with no available pretreatment differences exited
with an uninformative error message. This has been fixed.
13. graph bar, graph box, and graph dot with suboption sort(1) of option over(), when specified with
option ascategory, did not sort based on the first y variable. graph bar, graph box, and graph
dot with suboption sort(2) of option over(), when specified with option ascategory, exited with
error message "sort() invalid, category 2 not found". This has been fixed.
14. graph box with options over(), by(), and ascategory, when some combination of the by-groups and
over() variable produced an empty cell and when specified with two or more y variables,
incorrectly exited with error message "barstyles[].remake_as_copy". This has been fixed.
15. gsem specified with no latent variables or with observation-level latent variables, when
specified with options group(varname) and vce(cluster clustvar), incorrectly exited with error
message "highest-level groups are not nested within clustvar". Here "groups" was meant to refer
to multilevel latent variables instead of group(varname), but in this case, there are no
multilevel latent variables, so this should not have triggered the error message. This has been
fixed.
16. hdidregress and xthdidregress with option controlgroup(notyet), with no never-treated groups, and
with only one treated cohort exited with an uninformative error message. This has been fixed.
17. hdidregress twfe and xthdidregress twfe in models with covariates and a large number of cohorts
and time periods could exit with an uninformative error message. This has been fixed.
18. regress with option vce(hc2 clustvar) (and also for StataNow with option vce(hc3 clustvar)) has
the following fixes:
a. regress with option vce(hc2 clustvar) (or vce(hc3 clustvar)) no longer displays the ANOVA
table in the table header.
b. regress with option vce(hc2 clustvar) (or vce(hc3 clustvar)) reported an incorrect model F
test in the coefficient table header. However, the corresponding returned results e(F),
e(df_m), and e(df_r) stored the correct values. This has been fixed.
19. return list, when displaying long variable names that use Unicode multibyte character sets used
by languages such as Japanese and when set linesize was set to a value greater than 205, could
cause Stata to crash. This has been fixed.
20. tobit, when instructed to use default weights, defaulted to using frequency weights instead of
analytical weights as documented. This has been fixed.
21. Stata numerical formats %w.dgc and %w.dg might produce an incorrect string representation of
number if the number of digits of the base 10 representation of the integer part of number was
greater than or equal to 19. This has been fixed.
22. Opacity color modifiers such as %20 in mcolor(red%20) after the 13aug2025 update could produce
error message "unknown function =int()" instead of producing the requested graph. This has been
fixed.
23. (Mac) macOS 26 introduced a change that caused controls within Stata's programmable dialogs that
contained radio buttons (such as twoway) to not respond to mouse clicks. This has been fixed.
24. (Unix GUI) The Command window now uses the same cursor color as the Do-file Editor when syntax
highlighting is enabled.
-------- update 13aug2025 ---------------------------------------------------------------------------------
1. (StataNow) Local average treatment effects (LATE). New command lateffects estimates a local
average treatment effect (LATE), also known as a complier average treatment effect. When
individuals do not comply with their assigned treatment, it may not be possible to estimate a
treatment effect for the entire population. But with lateffects, we can exploit information
regarding the assigned treatment by using an instrumental variable. This allows us to estimate
the treatment effect for those who comply with the assigned treatment, the LATE.
lateffects estimates LATE for a continuous, binary, count, or fractional outcome with a binary
treatment. Three estimators are available:
o Normalized kappa weighted
o Normalized covariate-balancing propensity scores
o Inverse-probability-weighted regression adjustment
Postestimation command latebalance provides two balancing diagnostics and an overidentification
test.
o latebalance summarize compares the means and variances of the raw data and the weighted data
over the treatment-assignment groups.
o latebalance density plots the density of the raw data and the weighted data over the
treatment-assignment groups.
o latebalance overid performs a test for covariate balance.
Postestimation command lateoverlap provides a diagnostic plot for the overlap assumption.
Learn more at https://www.stata.com/statanow/local-average-treatment-effects/.
2. (StataNow) More VCE options for linear models. Stata's most commonly used linear regression
commands now come with a richer set of VCE specifications.
If you have autocorrelated errors in your time-series or panel-data model, you can use regress or
areg, which now allow for heteroskedasticity- and autocorrelation-consistent (HAC) standard
errors with option vce(hac hacspec), or use xtreg, fe, which now allows users to specify
Driscoll-Kraay standard errors with new option vce(dkraay hacspec).
Commands regress, areg, xtreg, fe, didregress, and xtdidregress each now allow for both HC2 and
HC3 standard errors with clustering. The inference adjustment of Hansen (2025) is available with
HC3 standard errors using new suboption hansen.
You can also account for multiple nonnested clusters when fitting an instrumental-variables
regression with ivregress. And you can allow for arbitrary correlation within panels by
specifying new option corr(unstructured) in xtgls.
Learn more at https://www.stata.com/statanow/vce-options-for-linear-models/.
3. (StataNow) The Do-file Editor can now indicate that changes have been made to a line by using
colored markers in the change history ribbon located in the margin. Two different markers
indicate changes to a line: modified and reverted-to-original. A modified marker indicates that
a change was made to a line. A reverted-to-original marker indicates that a change was made to a
line, saved, and then reverted to its original state. To update the visibility of the change
history ribbon, right-click in the Do-file Editor, select Preferences..., and check or uncheck
Change history in the General tab for Windows and Unix and the Display tab for Mac. Note that
changes to the visibility of the change history ribbon will only take effect on new editors.
4. (StataNow) In the Data Editor grid, variable names can now be truncated using several different
methods, including at the end (the default), in the middle, or by selecting 1, 2, 3, or 4
characters before the end. The behavior can be changed in the Data Editor's preference dialog.
5. (StataNow) xtgls with option panels(iid) or panels(heteroskedastic) is now faster.
6. Syntax highlighting now includes macros within strings. Unchecking the Do-file Editor preference
Advanced > Syntax highlight macros in strings disables the feature.
7. dtable with option factor(, test(ftest)) now supports factor-variable test (ftest) kendall_p to
report the p-value for Kendall's rank correlation test against zero.
8. collect has new style properties that specify whether to break (wrap) long notes at the table's
width. See collect style smcl and collect style txt.
9. table, dtable, and etable have new options wrapnotes and nowrapnotes that specify whether to
break (wrap) long notes at the table's width. The new default behavior is to break (wrap) long
notes at the table's width.
10. lcstats has new options wrapnotes and nowrapnotes that specify whether to break (wrap) long notes
at the table's width.
11. putdocx begin has new option compmode() that allows you to set the compatibility mode to be used
by Word when opening the generated document. You may choose to create a document that is
compatible with the current version of Word or with Word 2013, Word 2010, Word 2007, or Word
2003.
12. graph options for color now allow a noninteger value for opacity. Previously,
scatter y x, mcolor(red%20.1)
produced error code 198. Now it is the same as specifying the integer part of the noninteger
value for opacity,
scatter y x, mcolor(red%20)
13. label copy has new options fromframe() and toframe() that allow you to copy value labels between
frames.
14. New command label rename allows you to rename a value label and automatically assign the new name
to all variables associated with the old name.
15. New command frame putlabel copies a list of value labels from the current frame to other frames.
16. New Mata function moptimize_init_k_autoCns() allows you to record the number of base, empty, and
omitted constraints from command makecns, that is, r(k_autoCns). The effect of recording this
value is that moptimize_report() will not show these constraints above the coefficient table.
17. The Java Development Kit (OpenJDK) that is redistributed with Stata is now updated to version
21.0.8+9-LTS acquired from Azul Systems.
18. Online help and the search index have been brought up to date for Stata Journal 25(2).
19. didregress and xtdidregress with option aggregate(standard), when the time variable was specified
using an abbreviation, could return an uninformative error message. This has been fixed.
20. estat aggregation after hdidregress or xthdidregress has the following fixes:
a. estat aggregation after hdidregress with pweights or xthdidregress with pweights produced
incorrect point estimates and standard errors. This has been fixed.
b. estat aggregation after hdidregress with estimator twfe or xthdidregress with estimator twfe,
when weights were specified, did not take weights into account when displaying the sample
size. This has been fixed.
21. estat effectsplot after mediate, when variable abbreviation was set to off, incorrectly exited
with an uninformative error message. This has been fixed.
22. estat grangerplot after didregress or xtdidregress did not correctly parse the twoway_option
xlabel(). Suboption valuelabel was ignored. Also, manually specified axis labels within option
xlabel() caused estat grangerplot to incorrectly exit with error message "invalid label
specifier". This has been fixed.
23. estat summarize after hdidregress or xthdidregress, when weights were specified, did not take the
weights into account. This has been fixed.
24. gsem with option group(), when specified with ordinal outcomes where one or more of the ordinal
outcomes has observed predictor variables and there is a latent endogenous variable or an ordinal
outcome specified without observed predictor variables, exited with an unhelpful error message
even when the model specification was correct. This has been fixed.
25. graph twoway rbar with option colorvar() ignored suboption colorfillonly. This has been fixed.
26. hdidregress and xthdidregress with estimator twfe, when the dependent variable was specified
using a wildcard operator, could drop covariates mistakenly or return an uninformative error
message. This has been fixed.
27. ivregress 2sls has the following fixes:
a. ivregress 2sls with option absorb(varlist, cimmino) ignored suboption cimmino and implemented
method halperin. This has been fixed.
b. ivregress 2sls after some community-contributed commands exited with error message "last
estimates not found", r(111). This has been fixed.
28. power and ciwidth have the following fixes:
a. power and ciwidth, when a custom column label specified with option table() contained the "%"
character, exited with an uninformative error message. Now an informative error message is
produced.
b. power and ciwidth, when a custom column label specified with option table() contained
mismatched quotes, could exit with an uninformative error message. Now an informative error
message is produced.
c. power usermethod and ciwidth usermethod, when option graph(ydimension()) was used to specify a
parameter whose graph label contained a comma, could produce an error message. This has been
fixed.
29. regress has the following fixes:
a. regress with option vce(hc2, dfadjust), when specified with pweights or iweights, returned
adjusted degrees of freedom that did not use normalized weights as documented. This has been
fixed.
b. regress with option vce(hc2, dfadjust) or vce(hc2 clustvar), when specified with iweights,
could return a sample size and other stored values that were not computed using normalized
weights as documented. This has been fixed.
30. reshape long, when specified with numeric variable j() with values that vary in their number of
digits and when favor(speed) was in effect, such as reshape wide x, i(i) j(jvar 1 2 10)
favor(speed), incorrectly exited with error message "variable x2 not found". This has been
fixed.
31. The SEM Builder, when fitting a model with a node that identifies a range of observed variables
instead of a single observed variable, incorrectly exited with an unhelpful error message. The
correct behavior is to produce a stopbox dialog mentioning the variables that were not found in
the diagram. This has been fixed.
32. streg, stcox, stintcox, and stmgintcox with option strata(), in the rare case when the number of
distinct values of the strata variables was extremely large and hit the limits imposed by the
levelsof command, exited with error message "failed to compute". This has been fixed.
33. sts list has the following fixes:
a. sts list with condition in, when the data were not sorted by the time variable _t and the
sorted and unsorted data differed when condition in was applied, displayed incorrect observed
times. This has been fixed.
b. sts list with condition if, when the data were not sorted by the time variable _t, _n was
specified in condition if, and the sorted and unsorted data differed when condition if was
applied, displayed incorrect observed times. This has been fixed.
c. sts list with option by() or strata() did not display the observed times in each group that
were greater than the last observed time in the last group. This has been fixed.
34. use varlist using filename, when more than 40% of the variables in the dataset filename had
variable labels and the number of variables with variable labels was greater than 200, could
crash Stata. This has been fixed.
35. xtdidregress with option aggregate(standard) and either option vce(robust) or option vce(hc2)
failed to cluster standard errors at the group level as documented. This has been fixed.
-------- update 21may2025 ---------------------------------------------------------------------------------
1. (StataNow) Power analysis for logistic regression. New command power logistic calculates power,
sample size, and effect size for tests of one covariate in a logistic regression model. Logistic
regression is used to examine the effect of continuous or discrete covariates on a binary
outcome. When you are designing an experiment that will be analyzed using logistic regression
and you are interested in testing whether a particular covariate of interest affects the outcome,
look no further than power logistic. Up to 20 nuisance covariates, which are predictor variables
included in the logistic regression model but whose coefficients are not tested, are allowed, as
is correlation between the covariate of interest and nuisance covariates. Multiple values of
parameters may be specified to perform a sensitivity analysis, with the result presented as a
table or a graph.
Eleven covariate distributions are supported, with special syntaxes to facilitate use with one or
two binary predictors. Suppose your outcome Y is binary and you have two binary covariates:
covariate of interest X and nuisance covariate Z. To calculate the sample size needed to attain
80% power with type I error of 5%, type
. power logistic 1.5, px(0.3) pz(0.2) py(0.6) pycondx1z1(0.8)
To graph the power curve for a normally distributed covariate of interest and two nuisance
covariates following uniform and binomial distributions, type
. power logistic, x(distribution(normal 0 1) oratio(1.5)) z1(distribution(uniform 1 8)
oratio(1.2)) z2(distribution(binomial 8 0.3) oratio(1.4)) pycondxmzm(0.4) n(150(25)300) graph
Learn more at stata.com/statanow/power-analysis-logistic-regression/.
2. xthdidregress and hdidregress have new option usercohort() that allows you to provide a cohort
variable to be used during estimation. This is useful when there are gaps in the data but
researchers know treatment for a given group occurred during the missing time period. When
usercohort() is specified, xthdidregress and hdidregress will save the variable in usercohort()
as _did_cohort or the name provided in cohortname().
3. New command gencohort allows you to create a cohort variable that can be used in heterogeneous
difference-in-differences commands (xthdidregress and hdidregress).
4. ttest and ttesti have the following new stored results:
r(N_combined)
r(se_1)
r(se_2)
r(se_combined)
r(sd_diff)
r(mu_combined)
r(mu_diff)
r(lb_1)
r(ub_1)
r(lb_2)
r(ub_2)
r(lb_combined)
r(ub_combined)
r(lb_diff)
r(ub_diff)
5. table, when specified with an estimation command in option command() that contains option eform
or eform(string), reported the fitted coefficients instead of the specified exponentiated
coefficients. This has been fixed.
6. (Stata/SE and Stata/BE) sort with more than one billion observations could crash Stata. This has
been fixed.
7. (Mac and Unix) python set exec pyexecutable, when pyexecutable contained spaces, could issue
error message "failed to set the specified Python version", r(601). This has been fixed.
-------- update 07may2025 ---------------------------------------------------------------------------------
1. The Do-file Editor now populates the autocompletion list for macros using macro definitions in
the current do-file in addition to macros in memory.
2. icd10pcs has been updated for the 01apr2025 update. Type icd10pcs query to see information about
the changes.
3. The Java Development Kit (OpenJDK) that is redistributed with Stata is now updated to version
21.0.7+6-LTS acquired from Azul Systems.
4. collapse with weights and a stat of sum, when the entire group of the variable contained missing
values, generated NaN (not a number) instead of 0. This has been fixed.
5. graph bar and graph dot with stat meanci failed to save the confidence interval lines when the
graph was saved to a live .gph file. This has been fixed.
6. nl interactive version using free parameters grouped by a name ({group:param1}, {group:param2},
...) would drop the group name and only display the free parameter names (/:param1, /:param2,
...) in the coefficient table. This has been fixed.
7. Mata function fileexists() failed to check whether a URL was readable. This has been fixed.
8. pchi did not preserve the dataset sort order. This has been fixed.
9. pchi, pnorm, qchi, qnorm, qqplot, and symplot could mistakenly mark the dataset in memory as
changed. This has been fixed.
10. predict (newvar={param:}) or predict stub*, parameters after nl interactive version with param:
as a free parameter would produce a Mata conformability error. This has been fixed.
11. reshape has the following fixes:
a. reshape, when favor(speed) was in effect, failed to keep value labels for the xij variables in
the converted data. This has been fixed.
b. reshape wide, when favor(speed) was in effect, and for xij variables without a label in the
original data, did not label the corresponding xij variables in the converted data. The
correct behavior, like when favor(memory) is in effect, is to compose the variable label for
each xij variable using the i level and the stub from the original variable. This has been
fixed.
12. In Stata/SE, Stata/BE, and Stata/MP with set processors 1, when set sortmethod was set to fsort
(the default) and Ctrl+c or Break was pressed during a long-running sort, the variable being
sorted could mistakenly be marked as sorted. This has been fixed.
13. xtgls could fail to drop groups with only one observation in some cases, causing an error. This
has been fixed.
14. (Mac) Using frames either directly or indirectly while the Data Editor was open could cause Stata
to crash. This has been fixed.
-------- update 16apr2025 ---------------------------------------------------------------------------------
1. histogram, when specified with options addlabels, horizontal, and by(), failed to place the bar
height labels correctly. This has been fixed.
2. ml check now restores the starting values instead of keeping the alternative coefficient vector
that is randomly generated between tests 6 and 7. The old behavior, which could result in
randomly failed model fits, is not preserved under version control.
3. predict, when called after meglm successfully fit a model with multiple random slopes, sometimes
failed to compute the empirical Bayes means and their standard errors. This has been fixed.
4. After some estimation commands, such as regress, the dialog box for predict would not submit the
command to Stata when the Submit button was pressed. This has been fixed.
5. (Windows) The Project Manager would not be visible after opening a project until View > Show
Project Manager was selected. This has been fixed.
6. (Mac) The latest macOS update could cause Stata's windows that support tabbing to open as
individual windows. This has been fixed.
7. (Unix) The GUI version of Stata for Unix, when attempting to convert a string to numeric (for
instance, when using string function real()) and when the string contained a period for a decimal
separator and the language or locale for the operating system used a comma for a decimal
separator, incorrectly truncated the string after the decimal separator to an integer (for
example, converted the string "4.01" to the number 4). This has been fixed.
-------- previous updates ---------------------------------------------------------------------------------
See whatsnew18to19.
-----------------------------------------------------------------------------------------------------------
Explore the full Stata feature set, compare Stata editions, or see how organisations are applying these tools in our real-world case studies.
Want advice on whether StataNow is right for your team? Contact SDAS and we’ll help you choose.