Time series foundation models (TSFMs) are pretrained on series from diverse domains, where demand series make up only a small fraction. Demand data has properties that such corpora rarely contain: Short histories, frequent zeros, censoring by stock-outs, and exogenous events that the series does not record. To this end, we propose EXAONE Demand, built on 1) a demand-specific corpus and 2) a demand-aware adapter. For the corpus, we assemble 11.3M series and 48.4B observations from 73 sources, and a synthetic generator supplies the behaviour that open demand data under-represents. For the adapter, we attach low-rank branches to a frozen general-domain backbone, one for each of the four demand classes (smooth, intermittent, erratic, and lumpy), and a router that reads eight scale-free statistics of the input series decides how much each branch contributes. We build EXAONE Demand in two versions, one trained on real-world and synthetic demand together and one trained on the synthetic corpus alone. On 22 held-out datasets, both versions outperform 36 TSFMs, and real-world demand adds a gain over synthetic data alone.
Figures & tables
Figure 1
Figure 3: Overview of EXAONE Demand.
Figure 4: Pipeline for demand dataset construction. 1) Collection: Real sources are grouped by their published role, and the synthetic corpus forms a group of its own below. 2) Preprocessing: The two corpora run on separate tracks. The real track filters, converts, and verifies each source before removing leaked series, while the synthetic track generates, validates, and labels its own. 3) Train-test split: Of the five roles, only the evaluation suites reach the test side, and the other four are used for training, together with every one of the synthetic series.
Domain
Sources
Representative content
Retail and e-commerce
24
Store and SKU sales, grocery baskets, fashion and online retail
Energy
23
Household and industrial electricity load, national demand
Transport
14
Taxi and ride-hailing pickups, bike share, transit ridership, port calls
Healthcare
6
Prescription dispensing at practice, pharmacy, and hospital level
Service and hospitality
4
Restaurant covers, hotel and booking demand
Telecommunications
3
Cell-grid traffic
Table 1: Collected sources by domain. The count is over the 93 collected sources, and the last two rows are source types rather than domains, since each of them holds many datasets under a single published name.
Table 2: Collected sources by published role. The role is a property of the release rather than a decision of ours, and what a source finally contributes is settled by the leakage check rather than by the role alone.
Figure 6
Figure 6: Corpus composition by series count. Every series carries one domain of the converted corpus.
Series
Time points
Value
Share
Value
Share
Train
10,049,114
88.88%
47,419,572,862
98.06%
Test
899,618
7.96%
810,403,280
1.68%
Removed
358,008
3.17%
125,461,105
0.26%
Table 4: Train and test separation. Removed is what the leakage check takes out of training, and the shares are over the whole corpus.
Family
Property
Generating mechanism
Counts
Discreteness
Negative-binomial sampling from a multiplicative intensity
Overdispersion
Dispersion parameter sampled per series
Intermittency
Bernoulli mask over the intensity, targeted to a demand class
Calendar
Day-of-week profile
Multiplicative weekday factors
Seasonality
Fourier components at annual and weekly periods
Moving holidays
Lunar New Year, Chuseok, Easter, and Thanksgiving as shifting dates
Table 5: Design of the synthetic generator by demand properties. Each property has a component of its own in the sampling process, and each component is turned on or off for every series with its strength drawn at random, so that the properties combine freely rather than in the fixed groups that a fixed recipe would give.
Figure 7: Representative synthetic demand series. One series per generator. Spare parts and B2B orders realise the intermittent and lumpy regimes that open data supplies only sparsely, new product realises a full launch-to-discontinuation life-cycle, and e-commerce carries explicit promotional responses of its own.
Figure 8: EXAONE Demand on the four demand classes. (1) Raw context : The window that the model receives, with no rescaling of its values. (2) 8 Statistics : The scale-free summary that the window is reduced to. (3) Router : One weight per routed branch, with the always-on shared branch added at a fixed weight.
Class
Source
8 Statistics
Zero
ADI
CV 2
Trend
AC(1)
Up
CV
Length
Smooth
Citi Bike
0.00
0.23
0.04
− 0.16
− 0.36
− 0.87
0.10
0.56
Intermittent
Port calls
0.98
1.26
0.00
− 0.09
− 0.02
− 0.95
0.67
0.70
Erratic
SKU orders
0.03
0.24
0.32
− 0.04
− 0.10
− 0.66
0.28
0.51
Lumpy
Retail sales
0.86
0.69
0.14
− 0.01
− 0.00
− 0.79
0.47
0.63
Table 6: Example router input for four demand series. Each row is the vector s of Equation 4 as the router receives it, and the four series are drawn from four different real-world sources and are of four different lengths.
CV2<0.49
CV2≥0.49
ADI<1.32
Smooth Frequency ↑ , Variability ↓
Erratic Frequency ↑ , Variability ↑
ADI≥1.32
Intermittent Frequency ↓ , Variability ↓
Lumpy Frequency ↓ , Variability ↑
Table 7: Classical demand classes. A low ADI means that demand arrives often, and a high CV 2 means that its size varies widely.
Figure 14
Figure 11: What the router produces on real demand series. Each panel holds a context window and the weight that the gate gives to each of the four routed branches, against the target that supervision asks for, where the four bars carry the smooth, intermittent, erratic, and lumpy branches of the mixture in that same order.
#
Model
Ranking
Error metrics
Avg. rank
Win rate
MASE
ND
WQL
MAPE
MAE
MSIS
1
EXAONE Demand
4.09
91.9%
1.0667
0.1409
0.1138
0.2565
60.24
10.70
2
EXAONE Demand (Synthetic)
5.55
88.0%
1.0742
0.1420
0.1147
0.2583
60.73
10.63
3
TiRex-1.1 [ 5 ]
7.64
82.5%
1.0818
0.1451
0.1161
0.2911
62.06
10.75
4
Chronos-2 [ 3 ]
8.59
80.0%
1.0885
0.1497
0.1406
0.3010
64.02
14.48
5
EXAONE Backbone (Zero-shot)
7.95
81.7%
1.1050
0.1445
0.1169
0.2609
61.82
11.41
Table 8: Comparison with TSFMs. Both of our models are shown against every baseline we ran and against the frozen backbone that we adapt, on the 22 evaluation datasets, with the rows ordered and numbered (#) by MASE.
Figure 12: Forecasts on six demand series. Each line is the median forecast of one model, and EXAONE Demand reaches the lowest MASE of the three on all six series. On Car parts (M) and Electricity (D), where demand falls to zero, TiRex-1.1 and Chronos-2 keep forecasting a positive level, while EXAONE Demand follows the zeros.
Figure 13: What the training data contributes. [Left] The share of synthetic series in the mixture, where each point is the median of three seeds except the synthetic-only point at 1.0 , which is the median of its own runs. [Right] The change in MASE from adding real-world demand to the synthetic corpus, on the 22 datasets in the evaluation suite.
Appendix figures & tables2 assets
Supplementary material from the paper’s appendix.
Appendix
Group
Setting
Value
Backbone (frozen)
Blocks
24
Model width
1,024
Embedding width
2,048
Attention heads
16
Context length
8,192
Input and output patch
16
Appendix
Table 10: Hyperparameters of EXAONE Demand. The backbone group describes the frozen model that we adapt, and the remaining three groups describe what we add to it and how it is trained on the demand corpus.
Domain
Series
Share
Observations
Share
Energy
4,507,842
39.87%
32,646,256,620
67.51%
Retail
1,942,682
17.18%
641,490,811
1.33%
Transport
1,578,373
13.96%
9,742,740,721
20.15%
Compute and cloud ops
1,133,431
10.02%
3,686,572,872
7.62%
Web traffic
880,755
7.79%
1,348,375,729
2.79%
Health
817,901
7.23%
32,301,783
0.07%
Appendix
Table 11: Corpus composition by domain. Shares are over the whole converted corpus, including the synthetic portion. Series that arrived inside the general-purpose corpora are counted under the domain of the dataset they came from, not under the corpus that delivered them, so that the shares reflect the data rather than its packaging.