#2758·darts

[FEAT] RIN for covariates

Author: turbotimonCreated Apr 3, 2025Updated Jul 29, 2026
Labelsfeature requestpr_welcome

Is your feature request related to a current problem? Please describe.

Currently, the RIN (RevIn) is only done for the target series (n_targets). However, it would also be beneficial to past and future covariates in most cases (e.g. if they are leading indicators). An exception are maybe temporal or positional features (e.g. day/month/year) as added by add_encoders / datetime_attribute_timeseries()

Describe proposed solution

To give the user the most choice, I propose allowing the following for the use_reversible_instance_norm attribute:

  • A single Bool e.g. True: Target(s) only. As it is now (ensuring backwards compatibility)
  • A tuple of Bools e.g. (True, True, False) which is interpreted as (target, past, future) therefore apply RIN for target(s) and past covariates, but not future covariats in the example.
  • Optionally, allowing also tuple of Boosl in the tuple e.g. (True, (True, False), False) which gives even more fine control over which component will be normalized. The example would mean:
    • True for all targets
    • True for the first past covariate and False for the second (Tuple length must match number of components)
    • False for all future covariates

Describe potential alternatives

The logic could also be added as use_reversible_instance_norm kwargs proposed in https://github.com/unit8co/darts/issues/2748

python
use_reversible_instance_norm = {
   "series" = True # Enable for all series components 
   "past_covariates" =  (True, True, False) # Enable for the first two, but not the third. Tuple length must match number of components
   "future_covariats" = False # Disable for all past cov
}

Additional context

None