IP Library › Granted Patent US 12,524,231
Granted Patent B2
US 12,524,231 · App. 18/536,037 · Granted Jan 13, 2026

Software version control using forecasts as covariate for experiment variance reduction

Inventors: Qiyun Pan (Mountain View, CA); Ryan Scott Schork (San Francisco, CA); Yixin Tang (Milbrae, CA); Caixia Huang (Mountain View, CA); Swaroop Chitlur Haridas (San Ramon, CA)
Assignee: DOORDASH, INC.
G06F8/71G06F11/3466
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,524,231
App. No.
18/536,037
Granted
Jan 13, 2026
Kind
B2
Abstract

Various embodiments can reduce variance in a target metric (e.g., experiment outcome). Embodiments can use historical pre-experiment outcomes to predict a metric (forecasts) that is expected for a future measurement time. The forecasts can then be used as a covariate to reduce the variance of the target metric. When predicting forecasts, various embodiments can use an automation pipeline that can generate better and quicker forecasts. When there are multiple covariates that may be considered to reduce variance in the target metric, various embodiments can use a closed from solution for determining optimal coefficient of each covariate.

Claims (58)

1 . A method comprising:

providing a first version of a software application having a first option for a particular functionality of the software application, wherein clients of the software application belong to a plurality of categories, wherein the plurality of categories includes at least 100 categories;

for each category of the plurality of categories, measuring a set of first values of a performance metric of the clients using the first version of the software application, the set of first value measured over a first time period and includes at least 1000 values;

determining a predicted value of the performance metric for each of the plurality of categories of the clients during a second time period, the predicted value determined based on the set of first values of the performance metric during the first time period, and the predicted value accounting for a temporal behavior of the set of first values of the performance metric, wherein the second time period is a current or future time period;

providing a second version of the software application having a second option for the particular functionality of the software application;

measuring a second value of the performance metric for each of the plurality of categories of the clients during the second time period;

for each of the plurality of categories of the clients, determining an auxiliary metric using the second value of the performance metric and the predicted value; and

comparing the second version of the software application to the first version of the software application using the auxiliary metric for each of the plurality of categories of the clients.

2 . The method of claim 1 , wherein the predicted value is determined using a time series model.

3 . The method of claim 2 , wherein the time series model comprises a time series data slicer module, a data preprocessing module, a forecasting module, and a prediction processing module.

4 . The method of claim 3 , wherein the time series data slicer module transforms the set of first values of the performance metric during the first time period into different time units or frequencies to determine transformed historical data.

5 . The method of claim 3 , wherein the data preprocessing module performs adjustments to the set of first values to determine adjusted historical data, and wherein the forecasting module determines the predicted value using the adjusted and transformed historical data.

6 . The method of claim 3 , wherein the prediction processing module performs adjustments on the predicted value, wherein the adjustments include removing effects of outliers.

7 . The method of claim 1 , wherein the predicted value is determined using a regression that best fits the set of first values of the performance metric.

8 . The method of claim 1 , wherein the auxiliary metric is determined by subtracting the predicted value from the second value of the performance metric.

9 . The method of claim 1 , wherein the auxiliary metric is determined by subtracting a value from the second value of the performance metric, wherein the value is determined by subtracting an average of predicted values from the plurality of categories by the predicted value.

10 . The method of claim 1 , further comprising:

determining a control distribution using the auxiliary metric for the plurality of categories provided with the first version of the software application;

determining a treatment distribution using the auxiliary metric for the plurality of categories provided with the second version of the software application; and

comparing the control distribution and the treatment distribution to determine which version of the software application provides better performance.

11 . The method of claim 10 , further comprising:

determining the second version of the software application is better than the first version of the software application; and

deploying the second version of the software application to the clients of the software application.

12 . The method of claim 1 , wherein each category in the plurality of categories is a different service provider for a service within the software application.

13 . A computing device comprising:

one or more processors; and

a computer readable medium coupled to the one or more processors and containing instructions for causing the one or more processors to perform a method comprising:

providing a first version of a software application having a first option for a particular functionality of the software application, wherein clients of the software application belong to a plurality of categories, wherein the plurality of categories includes at least 100 categories;

for each category of the plurality of categories, measuring a set of first values of a performance metric of the clients using the first version of the software application, the set of first value measured over a first time period and includes at least 1000 values;

determining a predicted value of the performance metric for each of the plurality of categories of the clients during a second time period, the predicted value determined based on the set of first values of the performance metric during the first time period, and the predicted value accounting for a temporal behavior of the set of first values of the performance metric, wherein the second time period is a current or future time period;

providing a second version of the software application having a second option for the particular functionality of the software application;

measuring a second value of the performance metric for each of the plurality of categories of the clients during the second time period;

for each of the plurality of categories of the clients, determining an auxiliary metric using the second value of the performance metric and the predicted value; and

comparing the second version of the software application to the first version of the software application using the auxiliary metric for each of the plurality of categories of the clients.

14 . The computing device of claim 13 , wherein the method further comprises:

determining a control distribution using the auxiliary metric for categories provided with the first version of the software application;

determining a treatment distribution using the auxiliary metric for categories provided with the second version of the software application; and

comparing the control distribution and the treatment distribution to determine which version of the software application provides better performance.

15 . The computing device of claim 14 , further comprising:

determining the second version of the software application is better than the first version of the software application; and

deploying the second version of the software application to the clients of the software application.

16 . The computing device of claim 13 , wherein each category in the plurality of categories is a different service provider for a service within the software application.

17 . A non-transitory computer readable medium containing instructions, that when executed, cause one or more processors to perform operations comprising:

providing a first version of a software application having a first option for a particular functionality of the software application, wherein clients of the software application belong to a plurality of categories, wherein the plurality of categories includes at least 100 categories;

for each category of the plurality of categories, measuring a set of first values of a performance metric of the clients using the first version of the software application, the set of first value measured over a first time period and includes at least 1000 values;

determining a predicted value of the performance metric for each of the plurality of categories of the clients during a second time period, the predicted value determined based on the set of first values of the performance metric during the first time period, and the predicted value accounting for a temporal behavior of the set of first values of the performance metric, wherein the second time period is a current or future time period;

providing a second version of the software application having a second option for the particular functionality of the software application;

measuring a second value of the performance metric for each of the plurality of categories of the clients during the second time period;

for each of the plurality of categories of the clients, determining an auxiliary metric using the second value of the performance metric and the predicted value; and

comparing the second version of the software application to the first version of the software application using the auxiliary metric for each of the plurality of categories of the clients.

18 . The computer readable medium of claim 17 , further comprising:

determining a control distribution using the auxiliary metric for the plurality of categories provided with the first version of the software application;

determining a treatment distribution using the auxiliary metric for the plurality of categories provided with the second version of the software application; and

comparing the control distribution and the treatment distribution to determine which version of the software application provides better performance.

19 . The computer readable medium of claim 18 , further comprising:

determining the second version of the software application is better than the first version of the software application; and

deploying the second version of the software application to the clients of the software application.

20 . The computer readable medium of claim 17 , wherein each category in the plurality of categories is a different service provider for a service within the software application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2023
From: PAN, QIYUN; SCHORK, RYAN SCOTT; TANG, YIXIN; HUANG, CAIXIA; HARIDAS, SWAROOP CHITLUR
To: DOORDASH, INC.
Reel/Frame 065849/0499 →
Continuity (2)
Provisional Application 63433387 · Dec 16, 2022
Related Publication 20240211250A1 · Jun 27, 2024
References Cited (23)
US 6384850B1 · McNally et al. · 2002 [cited by applicant]
US 6871325B1 · McNally et al. · 2005 [cited by applicant]
US 6982733B1 · McNally et al. · 2006 [cited by applicant]
US 8146077B2 · McNally et al. · 2012 [cited by applicant]
US 9009060B2 · McNally · 2015 [cited by applicant]
US 9747651B2 · McNally · 2017 [cited by applicant]
US 10970797B2 · McNally · 2021 [cited by applicant]
US 11276130B2 · McNally · 2022 [cited by applicant]
US 11842415B2 · McNally · 2023 [cited by applicant]
US 11847587B1 · McNally · 2023 [cited by applicant]
US 12190156B2 · Mathew · 2025 [cited by examiner]
US 20140249937A1 · McNally · 2014 [cited by applicant]
US 20230069406A1 · Chklovski · 2023 [cited by examiner]
US 20240346389A1 · Pan · 2024 [cited by examiner]
WO 0122289A1 · 2001 [cited by applicant]
Deng, “Improving the Sensitivity of Online Controlled Experiments by Utilizing Pre-Experiment Data”, 2013, ACM (Year: 2013). [cited by examiner]
Drutsa, “Future User Engagement Prediction and Its Application to Improve the Sensitivity of Online Experiments”, 2015, ACM (Year: 2015). [cited by examiner]
Li, Jeff et al., “Improving Experimental Power through Control Using Predictions as Covariate (CUPAC)”, (Jun. 8, 2020), retrieved from the Internet on Dec. 11, 2023, https://doordash.engineering/2020/06/08/improving-exp… [cited by applicant]
Zhang, Jessica et al., “Improving Online Experiment Capacity by 4X with Parallelization and Increased Sensitivity”, (Oct. 7, 2020), retrieved from the Internet on Dec. 11, 2023, https://doordash.engineering/2020/10/07/i… [cited by applicant]
Glynn, P.W., Szechtman, R., “Some New Perspectives on the Method of Control Variates”, In: Fang, KT., Niederreiter, H., Hickernell, F.J. (eds.), [cited by applicant]
Seltman, Howard, “Approximations for Mean and Variance of a Ratio”, (Aug. 28, 2017), retrieved from the Internet on Dec. 11, 2023, https://www.stat.cmu.edu/˜hseltman/files/ratio.pdf. [cited by applicant]
Civil Action No. 2:23-CV-2165-WSH, Amended Complaint for Patent Infringement— [cited by applicant]
Unpublished U.S. Appl. No. 18/145,942, filed Dec. 23, 2022. [cited by applicant]