diff --git a/src/users/user_replay.hpp b/src/users/user_replay.hpp
index 10ffd4f77fab7cc25ee58aa6025edc2a9e1885b0..4a9b447b0b4864ea6778de165f3804a60aed164f 100644
--- a/src/users/user_replay.hpp
+++ b/src/users/user_replay.hpp
@@ -19,6 +19,9 @@ struct DMWindow
     bool date_in_dm_window(double date);
 };
 
+/**
+ * @brief Virtual class for users using a trace as input for submission.
+ */
 class ReplayUser : public User
 {
 public:
@@ -46,7 +49,7 @@ protected:
 
 public:
     long dm_stat[14] = { 0 };
-    
+
 protected:
     std::string input_json;
     UserSubmitQueue *original_trace;
@@ -58,7 +61,7 @@ protected:
 };
 
 /**
- * @brief The user follows an input trace in a rigid fashion: she submits tasks
+ * @brief The user follows the input trace in a rigid fashion: she submits tasks
  * of same size and at the same submission time as in the original trace.
  */
 class ReplayUserRigid : public ReplayUser
@@ -79,8 +82,12 @@ protected:
  *********************** Users "demand response" ******************************
  *****************************************************************************/
 /**
- * @brief
- * @details
+ * @brief The user follows the input trace in a rigid fashion, except in the
+ * demand response window where she reconfigures the submitted jobs.
+ * @details The reconfiguration consists in dividing the number of cores
+ * requested by two (rounded up) and scale the execution time accordingly,
+ * following the speedup model. Note: if the original number of cores requested
+ * was 1, reconfig is equivalent to rigid, and will appear as such in the logs.
  */
 class DMUserReconfig : virtual public ReplayUser
 {
@@ -98,8 +105,12 @@ protected:
 };
 
 /**
- * @brief
- * @details
+ * @brief The user follows the input trace in a rigid fashion, except in the
+ * demand response window where she degrades the submitted jobs.
+ * @details The degradation consists in dividing the number of cores requested
+ * by two (rounded up), keeping the original submission time. Note: if the
+ * original number of cores requested was 1, degrad is equivalent to rigid, and
+ * will appear as such in the logs.
  */
 class DMUserDegrad : virtual public ReplayUser
 {
@@ -116,8 +127,10 @@ protected:
 };
 
 /**
- * @brief
- * @details
+ * @brief The user follows the input trace in a rigid fashion, except in the
+ * demand response window where she renounces the jobs.
+ * @details Renouncing consists in simply not submitting the job (and never
+ * submit it in the future).
  */
 class DMUserRenonce : virtual public ReplayUser
 {
@@ -134,8 +147,10 @@ protected:
 };
 
 /**
- * @brief
- * @details
+ * @brief The user follows the input trace in a rigid fashion, except in the
+ * demand response window where she delays the submitted jobs.
+ * @details Delaying consists in not submitting the job straight away but at the
+ * end of the demand response window.
  */
 class DMUserDelay : virtual public ReplayUser
 {