NEWS.md
update_forecast() now excludes predecessor time series that are absent from the current input before global or local update routing. Removed series no longer produce empty-schema or missing-artifact fallback errors, while current-only series continue to receive default local forecasts.bottoms_up with the exact standard or grouped hierarchy detected by EDA after reconciliation to bottom-level series. Runs whose input was already expanded to hierarchy-level ID series use bottoms_up for every inner global and local iteration before one final outer reconciliation.iterate_forecast() now skips repeated global optimization when any current-run best result was already finalized at the requested iteration target, then resumes only unfinished local series. Incomplete metadata and higher iteration targets retain the existing global retry behavior.NULL defaults and equivalent explicit values compare as the same settings. Order-insensitive multipart settings such as 3---6---9 and 9---6---3 are also treated as equivalent, preventing redundant forecast iterations.Combo identifiers are created. This keeps input, EDA, global-model, and local-model artifact hashes aligned in both agentic and standard forecasts; normalization collisions and whitespace-only identifiers fail early with actionable errors.None observed and omit regressor-lag groups without finite distance correlations instead of emitting Inf, -Inf, or NaN warnings into LLM context.subscript out of bounds.seasonal_period values supplied to prep_models() now flow into stlm-arima, stlm-ets, and tbats after early validation. Default NULL values continue to be stored as NA in run logs.NULL values; invalid legacy seasonal periods emit one actionable warning containing the original value and replay cadence defaults. Forecast updates retain the same invalid-period fallback.New AI Agent Capabilities
iterate_forecast() can use LLM’s to find the optimal combination of data and inputs to create the most accurate forecast.update_forecast() can take previously trained models from iterate_forecast() to create forecasts on new data fast.ask_agent() can be used to ask questions about the forecast, data, or models to get insights.set_project_info() and set_agent_info to assist in iterating and updating forecasts.get_agent_forecast() to retrieve the final forecast output from an agent run.get_best_agent_run() to retrieve the run metadata information from an agent run.get_summarized_models() to retrieve model summary information from an agent run.get_eda_data() to retrieve the exploratory data analysis results from an agent run.New Chronos2 Model Integration
jsonlite and httr
chronos-bolt-base foundation model. Uses the same Chronos API as chronos2 but does not support external regressors. Passes model_type = "chronos-bolt-base" to the API.chronos-bolt-tiny foundation model. Lightweight Chronos model variant using the same API as chronos2 and chronos-bolt-base. Does not support external regressors. Passes model_type = "chronos-bolt-tiny" to the API.New TimesFM Integration
TIMESFM_API_URL and TIMESFM_API_TOKEN environment variablesNew TimeGPT Integration
nixtlar as an optional dependency. TimeGPT requires R 4.1 or newer, while core FinnTS workflows remain available on R 4.0.Updated Train Model function
Updated how outliers are handled in prep_data(). Outliers are removed from the training data, but still kept in the testing splits during time series cross validation.
Adaptive daily ARIMA to reduce runtime
"arima"; daily workflows now use the bounded arima_fast engine while non-daily workflows retain classic auto_arima behavior.forecast as a direct Imports dependency. It was already transitively required by modeltime; using its mature ARIMA implementation avoids reimplementing numerical estimation. This adds no new runtime service, credential, or network surface and retains the package’s existing open-source dependency chain.Updated optional variable-importance support for vip 0.5.0. vip remains in Suggests and is resolved from its maintainer’s r-universe repository. ranger is now declared directly in Suggests, and Boruta feature selection uses Boruta’s ranger adapter to preserve behavior after Boruta 10.0 changed its default importance provider. FinnTS continues to install and run without these optional packages: feature selection now fails early with installation guidance, while model summaries retain all sections except variable importance.
prune_method = "cv" was selected without the required folds. Automatic grids now use the five non-CV pruning methods, while explicit multistep CV pruning supplies a bounded fold count.subscript out of bounds failures for time series combos containing non-ASCII characters. File name hashes are now stable regardless of how the text was read in (e.g. read.csv vs vroom), so input data, EDA, and forecast outputs resolve to the same file.null_converter() crash in agent workflow when input is NA.lag_periods now propagate consistently through feature engineering, feature selection, model training, and forecast updates. Lag lists that do not cover the forecast horizon automatically include the horizon as a final boundary.experiment_name within set_run_info() has been changed to project_name to comply with new AI agent capabilities.qs package to qs2 for fast object serialization. The qs2 package is actively maintained and CRAN-ready with improved compression. Files previously saved with qs format cannot be read by qs2; any cached .qs files from prior runs will need to be regenerated.seasonal_period within prep_models() for more control over multiple seasonal periods in models like tbatstarget_log_transformation within prep_data(), since box_cox has now replaced it for automated power transformationsmultistep_horizon within prep_data()
prep_data() to FALSEarimax, which uses engineered features in addition to any external regressors supplied.list_models(), that lists available models in the packageforecast_time_series(), added new sub components of the finnts forecast process that can be called separately or in a production pipeline. Allows for more control of the forecast process
get_trained_models(), get specific run information thorough get_run_info(), and even retrieve the initial feature engineered data through get_prepped_data().run_model_parallel has been replaced with inner_parallel within forecast_time_series()
forecast_time_series(). Instead please use get_forecast_data() to retrieve Finn forecast outputs.set_run_info(). Please refer to the vignettes for more details.