StataNowTM

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         14oct2026
      
                  StataNow 19.5      08apr2025
                  updated to         14oct2026
      
      
          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 14oct2026 --------------------------------------------------------------------------------------------------------------------------------------
      
           1. bayes: qreg has substantive changes and improvements:
      
              a. By default, the multivariate normal distribution is now used to approximate the posterior of the quantile coefficients labeled as {depvar_q#:...}
                 instead of using the posterior based on the asymmetric Laplace likelihood.  The results based on the asymmetric Laplace likelihood are available
                 via asymmetric Laplace quantile coefficients {depvar_q#_al:...} and asymmetric Laplace scaling factor {sigma_al}.  These were previously labeled as
                 {depvar_q#:...} and {sigma}.  The assumption of asymmetric Laplace likelihood is too restrictive for many practical settings of quantile
                 regression, which may lead to anticonservative posterior standard deviations and credible intervals.
      
              b. New options normapprox and nonormapprox specify whether the normal approximation should be used for quantile coefficients.  The default is
                 normapprox.  When nonormapprox is specified, the normal approximation is not computed, and the results correspond to the asymmetric Laplace
                 quantile coefficients and scaling factor, now labeled as {depvar_q#:...} and {sigma}, respectively.
      
              c. New option nowarnings suppresses the warning messages that appear in the outputs of bayes: qreg and Bayesian postestimation commands about possible
                 misspecification of the asymmetric Laplace model.
      
              d. New option asymlapok specifies that the asymmetric Laplace model be used for analysis.  It implies options nonormapprox and nowarnings.
      
              e. Command bayes: qreg does not provide version control for the old behavior, to ensure that more proper results are provided by default.  But you can
                 specify option asymlapok to be able to run your old analyses.
      
              f. By default, Bayesian postestimation commands bayespredict and bayesstats ppvalues are not available.  However, when option asymlapok is specified
                 with bayes: qreg, these commands are available and are based on the results from the asymmetric Laplace model.
      
              g. By default, bayes: qreg now stores additional results in parameter matrices in e(), such as e(mean) and e(Cov).  The results associated with the
                 asymmetric Laplace model are stored first, and the results based on the approximating normal model are stored last.  If you referred to parameters
                 by position previously and now want to access the adjusted results, you will need to update your code with new position indexes.  Notice that
                 e(Cov) is now a block diagonal matrix with the top-left block containing the asymmetric Laplace parameters and the bottom-right block containing
                 the variance-covariance matrix for the adjusted coefficients.
      
           2. use now displays a progress indicator in the output when loading a dataset that takes more than 3 seconds.  The progress will be displayed in
              increments of 10%.  New command set use_progress will enable or disable the progress display.  This feature is enabled by default.
      
           3. Online help and the search index have been brought up to date for Stata Journal 26(3).
      
           4. estat aggregation after hdidregress and xthdidregress, when the group() variable was abbreviated, incorrectly exited with an uninformative error
              message.  This has been fixed.
      
           5. meta esize in the presence of zero cells in the data, when options esize(lnratio) and zerocells(none) were specified, incorrectly applied a continuity
              correction equivalent to zerocells(0.5, only0) instead of zerocells(0).  This has been fixed.
      
           6. mi estimate, cmdok did not work with commands xthdidregress and hdidregress.  This has been fixed.  Notice that xthdidregress and hdidregress are
              still not officially supported by mi estimate without option cmdok.
      
           7. mi impute pmm with more than one nearest neighbors specified in option knn(), in the presence of ties in the linear predictions for complete
              observations, used all possible tied observations to select the pool of donors and hence used more nearest neighbors for imputation than was specified
              in knn().  This has been fixed.
      
           8. mlogit, when specified with depvar containing value labels that were nonname characters, like # or -, would exit with unhelpful error message "initial
              vector: duplicate entries for _cons found" for all but the first level of depvar.  In the unhelpful error case, the offending label was translated to
              underscore "_" (that is, no equation) instead of the default equation specification _eq_#.  This has been fixed.
      
           9. predict and margins after cfregress and cfprobit with a fractional probit first-stage model used the scores of the probit model instead of the
              fractional probit model, leading to incorrect postestimation results when outcomes were not 0 or 1.  This has been fixed.
      
          10. reshape long, when specified with option favor(speed) or when set reshape_favor speed was in effect and when the resulting long data would have one
              million or more observations, incorrectly exited with error message "observation number out of range".  This has been fixed.
      
          11. save, when used after a Mata view was created with a variable that was subsequently dropped, would sometimes crash Stata.  This has been fixed.
      
          12. set lapack_mkl_cnr correctly set the specified conditional numerical reproducibility mode but would often return an incorrect value in
              c(lapack_mkl_cnr) (having no real impact).  This has been fixed.
      
      
      -------- update 12aug2026 --------------------------------------------------------------------------------------------------------------------------------------
      
           1. The Java Development Kit (OpenJDK) that is redistributed with Stata is now updated to version 21.0.12+8-LTS acquired from Azul Systems.
      
           2. (StataNow) hdidregress twfe and xthdidregress twfe now allow option over(cohort), the default, to be specified explicitly with hettype(cohort).
      
           3. churdle and fracreg, when weights used an expression instead of a variable within the dataset, exited with an uninformative error message.  This has
              been fixed.
      
           4. xtdpd with option div() or iv(), when the instruments specified used longer lags than all other model variables when differenced, incorrectly exited
              with an error message.  This has been fixed.
      
           5. (StataNow) xtswitchdid, when the number of panels or the number of groups exceeded the allowed number of rows in tabulate oneway (12,000 in Stata/SE
              and Stata/MP and 3,000 in Stata/BE), exited with error message "too many values".  This has been fixed.
      
      
      -------- update 29jul2026 --------------------------------------------------------------------------------------------------------------------------------------
      
           1. (StataNow) DID with switching treatments for panel data.  New command xtswitchdid estimates event-study treatment effects for panel data using the
              heterogeneous difference-in-differences (DID) estimator of de Chaisemartin and D’Haultfœuille (2026).  Treatments can be binary or multivalued.
              Switching (nonabsorbing) treatments are also allowed -- subjects may switch in and out of treatment or to different levels of treatment.
      
              After estimating effects using xtswitchdid, you can request a test of the parallel-trends and no-anticipation assumptions with estat ptrends, which
              reports the set of placebo estimates used to perform the test.  You can also plot the estimated event-study treatment effects using estat eventplot,
              or you can estimate the average total effect across all exposures using estat total.
      
              xtswitchdid also allows you to estimate effects for specific sequences of treatment values, known as treatment paths.  For example, you might be
              interested in the effect for groups with the treatment path (1 1 2 0), where the group experiences a treatment value of 1 for 2 periods and then a
              treatment value of 2 for 1 period.  Postestimation command estat paths tabulates the treatment paths observed in the data.
      
              Learn more at stata.com/statanow/DID-with-switching-treatments-for-panel-data/.
      
           2. (StataNow) Spatial error covariance structures for multilevel models.  mixed has been extended to support spatial error covariance structures.  The
              new spatial structures allow you to model correlation between within-group errors as a function of geographic or physical distance.
      
              mixed with option residuals() now supports four new spatial error structures: spexponential specifies a spatial exponential structure, spgaussian
              specifies a spatial Gaussian structure, spspherical specifies a spatial spherical structure, and sppower specifies a spatial power structure.  These
              structures are useful for data collected at specific spatial locations, such as agricultural field trials environmental monitoring studies, ecological
              surveys, and other geostatistical applications.  They can also be used for irregularly spaced longitudinal data by treating time as a one-dimensional
              spatial domain.
      
              Spatial information to compute the within-group distances must be specified using the coordinates() suboption.  All four spatial structures support a
              nugget effect, which allows for a discontinuity at zero distance.  This feature accounts for measurement error and microscale spatial variation and
              permits the correlation between observations at the same location to be less than one.
      
              Consider a fictional dataset in which log_zinc records the log zinc concentration measured at irregularly spaced locations along a river floodplain.
              Variables dist and om contain distance to the river and percentage of organic matter, respectively.  The spatial coordinates of each sampling location
              are stored in x and y.  Variable soil identifies the soil type.  The goal is to model zinc concentration while accounting for spatial correlation
              within soil types.
      
                  . mixed log_zinc dist om || soil:, residuals(spexponential, coordinates(x y)) reml
      
              To improve numerical stability and help avoid convergence to suboptimal local maxima, mixed supports new suboptions within residuals() for specifying
              initial values of the spatial parameters.  These suboptions are phi0() for the spexponential and spgaussian structures, range0() for spspherical,
              rho0() for sppower, and nugget0() for all four structures.
      
              Alternatively, you may specify initial values indirectly using the distptile0() option, which bases the starting value on a chosen percentile of
              within-group pairwise distances.  For example,
      
                  . mixed log_zinc dist om || soil:, residuals(spexponential, coordinates(x y) distptile0(25)) reml
      
              Learn more at stata.com/statanow/spatial-error-covariance-structures/.
      
           3. (StataNow) Frames in the Data Editor.  When you have multiple datasets in memory, the Data Editor now allows you to view and manage data in each
              frame.  In addition, with the Data Editor, you can copy and paste from one frame to another, save a snapshot in one frame and restore it in another,
              manage existing frames, and create new frames.
      
              Learn more at stata.com/statanow/multiple-frames-in-data-editor/.
      
           4. (StataNow) New priors for Bayesian analysis.  bayesmh and bayes have the following new priors:
      
              a. bayesmh and bayes now support two new half-distribution priors.  halfnormal(mu,var) specifies a half-normal distribution with mean mu and variance
                 var.  halft(mu,sigma2,df) specifies a location-scale half-t distribution with mean mu, squared scale sigma2, and degrees of freedom df.  These
                 priors are useful for positive-valued parameters such as the scale parameters of the Laplace and Cauchy distributions or the standard deviation of
                 the normal distribution.
      
              b. bayesmh and bayes now support four square-root parameter prior distributions.  sqrtuniform(a,b) specifies a uniform distribution on (a, b) for the
                 square root of the parameter.  sqrthalfnormal(mu,var) specifies a half-normal distribution with mean mu and variance var for the square root of the
                 parameter.  sqrthalft(mu,sigma2,df) specifies a location-scale half-t distribution with mean mu, squared scale sigma2, and degrees of freedom df
                 for the square root of the parameter.  sqrthalfcauchy(loc,beta) specifies a half-Cauchy distribution with location loc and scale beta for the
                 square root of the parameter.  These priors are useful for positive-valued model parameters such as variances.
      
           5. (StataNow) Append PDFs.  putpdf has new subcommand append that appends multiple PDFs into one file.
      
           6. (StataNow) areg with option vce(hac kernel), when some regressors were specified with time-series operators, could exit with error message "not
              sorted".  This has been fixed.
      
           7. (StataNow) The Do-file Editor's bracket pair colorizer could cause typing in the Do-file Editor to be sluggish when editing large files.  This has
              been fixed.
      
           8. (StataNow) xtreg, fe with option vce(dkraay kernel), when some regressors were specified with time-series operators, could exit with error message
              "not sorted".  This has been fixed.
      
           9. New command collect fromframe allows you to put data values from the current frame into a collection.
      
          10. collect style cell has new option missing() that specifies how to handle missing-valued items.  You can now replace missing values with a custom label
              or hide them.
      
          11. collect style row split has the following new options:
      
              a. titles() specifies where to place dimension titles and factor-variable labels in the row header.  This option allows you to keep the titles and
                 labels to the left of their levels or put them in the column above their levels.
      
              b. extraspace() specifies the number of extra spaces between row header columns for SMCL and plain text documents.
      
          12. collect has support for new style-only dimension header_cell_contents that allows you to apply style edits to dimension titles, factor-variable
              titles, and levels directly.
      
              For example, underline dimension titles by typing
      
                  . collect style cell header_cell_contents[dimension], font(, underline(single))
      
              Also, make factor-variable titles bold by typing
      
                  . collect style cell header_cell_contents[factor], font(, bold)
      
              You can even target levels of a specific dimension or factor variable, for example, make the levels of factor variable hlthstat in dimension colname
              italic by typing
      
                  . collect style cell header_cell_contents[level]#colname[i.hlthstat], font(, italic)
      
          13. collect query layout has new macro results.  s(table#rows) is the total number of rows in the #th table; this includes the column headers.
              s(table#cols) is the total number of columns in the #th table; this includes the row headers.
      
          14. collect query cell will now exit with an error message if the given tag is incorrectly specified.  The old behavior, which was to ignore the bad tag
              and report the default cell styles from the empty style, is not preserved under version control.
      
          15. esize twosample has new option reverse that reverses the order of the groups when computing differences in means.  When specified with option pbcorr,
              this provides the same estimate of point-biserial correlation that you obtain by using correlate.
      
          16. ereturn display, when specified with options eform(label) and neq(#), where # was larger than the actual number of equations in the current estimation
              results, exited with an unhelpful error message.  This has been fixed so that ereturn display assumes all equations when # is too large, with or
              without option eform().
      
          17. estat summarize, when specified with option labels and working with estimation results containing interactions, incorrectly exited with error message
              "invalid name".  This has been fixed.
      
          18. export delimited, when the path contained \t (for example, \temp), displayed an incorrect path in the error message for error return code r(602).
              This has been fixed.
      
          19. Factor-variables interactions, when specified with parentheses around factor variables and with set fvtrack term in effect, would sometimes ignore the
              specified factor levels, resulting in an interaction with more levels than were specified.  For example,
      
                  . sysuse auto
                  . summarize c.turn#(1.foreign#3.rep78)
      
              was incorrectly interpreted as
      
                  . summarize c.turn#foreign#rep78
      
              instead of
      
                  . summarize c.turn#1.foreign#3.rep78
      
              This has been fixed.
      
          20. Mata functions st_varformat(), st_varvaluelabel(), st_varrename(), and st_varname(), when called more than 65532 times, produced error message "3998
              stack overflow".  This has been fixed.
      
          21. nl would not find variables with a capital letter in the first position of the name.  This has been fixed.
      
          22. stset, in the rare situation when the variable specified in option origin() contained negative values and option enter(time 0) was also specified,
              ignored option enter(), producing incorrect values in the system (“underscore”) variables for those individuals with negative origin and therefore
              affecting any further results obtained from commands relying on stset.  This has been fixed.
      
          23. (Windows) Exporting graphs to a bitmap format leaked memory and graphics resources and after a few thousand graphs were exported could lead to a
              crash.  This has been fixed.
      
      
      -------- 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.
      
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------

Ready to use the latest Stata features?

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.