Skip to content

Commit aed09d6

Browse files
authored
Merge branch 'main' into message-template-consistency-patch
2 parents 1757ceb + ef31f66 commit aed09d6

File tree

13 files changed

+419
-293
lines changed

13 files changed

+419
-293
lines changed

changelog.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,25 @@
1111
- Separated parts of the message text into text message and additional message text
1212
- Supporting this change with changes to pictoralist
1313

14+
**Patch:** Update vignettes with standard template for all software pipeline sections
15+
- Updated introductory texts on all software pipeline sections for:
16+
- Goal Approach
17+
- Goal Gain
18+
19+
- Updated Esteemer and Pictoralist sections for the following vignettes:
20+
- Goal Loss
21+
- Improving
22+
- Social Approach
23+
- Social Better
24+
- Social Worse
25+
- Worsening
26+
- NOTE: Need to calculate and enable example ranks for all personas
27+
28+
29+
- TODO: Annotations and other persona-specific details need to be updated to reflect the personas in use for the following:
30+
- Goal Approach
31+
- Goal Gain
32+
1433
## Version 0.1.0
1534
### 10/24/23
1635
**Improvement:** Added changelog

message_templates/congrats_improved_performance.json

Lines changed: 0 additions & 73 deletions
This file was deleted.

message_templates/in_top_25%.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,4 @@
8282
"Additional message text": {
8383
"@value": null
8484
}
85-
}
85+
}

vignettes/goal_approach_vignette/readme.md

Lines changed: 74 additions & 69 deletions
Large diffs are not rendered by default.

vignettes/goal_gain_vignette/readme.md

Lines changed: 112 additions & 37 deletions
Large diffs are not rendered by default.

vignettes/goal_loss_vignette/readme.md

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -184,22 +184,36 @@ For Fahad, **Candidate A** is acceptable by the causal pathway **goal loss**.
184184
For Gaile, **Candidate α** is acceptable by the causal pathway **goal loss**.
185185

186186
### Candidate Message Moderator Evaluation and Selection (Esteemer)
187-
The fourth stage of the pipeline ranks the candidate messages based on a number of moderators in order to determine the most appropriate message to provide to the feedback recipient. The script does this by evaluating message candidates against a number of factors: recency of the recipient having recieved a similar message, gap size, slope of the trend in the performance data, time since last loss or achievement, the recipient's feedback preferences, and the acceptability of the candidate message based on preconditions (ThinkPudding acceptability).
188-
189-
**For Fahad, Esteemer uses the following information:**
190-
- The acceptable candidate message is **Candidate A**
191-
- Fahad's preference for goal loss messages is *Todo*
192-
- Fahad has not recieved the **Candidate A** message recently.
193-
<!-- Todo - determine how long message cooldown is for repeat selection, change text above accordingly-->
194-
> ∴ Esteemer will select **Candidate A** as the most appropriate message to provide the recipient.
195-
196-
**For Gaile, Esteemer uses the following information:**
197-
- The acceptable candidate message is **Candidate α**
198-
- Gaile's preference for goal loss messages is *Todo*
199-
- Gaile has not recieved the **Candidate α** message recently.
200-
> ∴ Esteemer will select **Candidate α** as the most appropriate message to provide the recipient.
201-
202-
For each of the selected messages, Eseemer will return the template ID, message text, comparator type, acceptability relationship, measure name, title, and display type preferred by the recipient. This data is used in the next step of the pipeline to generate the precision feedback message.
187+
The fourth stage of the pipeline consists of an algorithm which ranks acceptable candidate messages. It ranks these candidates based on applying weights to and then summing a number of moderators, with the end goal to determine which message may be the most motivating to provide to the recipient. The moderators which influence the rank of a candidate message are:
188+
$$\text{Performance trend slope, } \Delta_{\text{performance}}$$
189+
$$\text{Performance gap size, } G_{\text{performance}}$$
190+
$$\text{Achievement or loss recency, } t_{\text{event}}$$
191+
$$\text{Feedback history, } t_{\text{message}} \text{ and } N_{\text{received}}$$
192+
$$\text{Individual feedack preferences, } F_{\text{pref}}$$
193+
194+
The overall algortihm can be represented as:
195+
$$F_{\text{pref}} \Biggl[ C_{\text{data}} \biggl( \Bigl( X_s \| \Delta_{\text{performance}} \| \Bigr) + \Bigl( X_{gs} \| G_{\text{performance}} \| \Bigr) \biggr) \\
196+
+ \\
197+
C_{\text{history}} \Bigl( \bigl(X_e \cdot t_{\text{event}}\bigr) + \bigl(X_m \cdot t_{\text{message}}\bigr) + \bigl(X_N \cdot N_{\text{received}}\bigr) \Bigr) \Biggr]$$
198+
199+
<!-- No changes need to be made below this line when propagating to new vignettes-->
200+
The Esteemer algorithm uses weighting coefficients, which vary based on the particularities of each causal pathway. For the social loss causal pathway, the weighting coefficients are:
201+
202+
| Moderator | G<sub>performance</sub> | Δ<sub>performance</sub> | t<sub>event</sub> | t<sub>message</sub> | N<sub>received</sub> | Data component | History component |
203+
|--------------------|-------------------------|-------------------------|-------------------|---------------------|----------------------|----------------|-------------------|
204+
| Coefficient Term | X<sub>gs</sub> | X<sub>s</sub> | X<sub>e</sub> | X<sub>m</sub> | X<sub>N</sub> |C<sub>data</sub>|C<sub>history</sub>|
205+
| Value | 0.5 | 0.8 | -0.5 | -0.1 | -0.5 | 1 | 1 |
206+
207+
<!-- Values above need to be changed for each causal pathway -->
208+
<!--
209+
210+
As an example, appropriate values based on this vignette are filled in for Eugene's **Candidate B** message, and evaluate like so:
211+
$$F_{\text{pref}} \biggl( 1 \Bigl( \Bigl( 0.5 \| 6 \| \Bigr) + \Bigl( 0.5 \| 5 \| \Bigr) \Bigr) + 1 \Bigl( (0.5 \cdot 12) + (0.5 \cdot 12) + (0.5 \cdot 0) \Bigr) \biggr) = (19.5)F_{\text{pref}}$$
212+
Gaile's acceptable social loss candidate evaluates similarly:
213+
$$F_{\text{pref}} \biggl( 1 \Bigl( 0.5 \| 7 \| \Bigr)\Bigl( 0.5 \| 1 \| \Bigr) + 1 \Bigl( (0.5 \cdot 12) + (0.5 \cdot 12) + (0.5 \cdot 0) \Bigr) \biggr) = (13.75)F_{\text{pref}}$$
214+
<!-- Equations above need to be re-evaluated for each causal pathway -->
215+
216+
Of note, each persona has more than one measure's worth of data, therefore for each persona there are potentially many acceptable candidates, utilizing different causal pathways regarding different measures. Esteemer evaluates each acceptable candidate measure with differing coefficient weights depending on the causal pathway.
203217

204218
### Message Generation and Delivery (Pictoralist)
205219
The fifth and final stage of the pipeline generates visual representations of the selected message based on the recipient's performance data, and sends this output off for delivery to the recipient.

vignettes/improving_vignette/readme.md

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -171,22 +171,36 @@ For Deepa, **Candidate B** is acceptable by the causal pathway **improving**.
171171
For Gaile, **Candidate α** is acceptable by the causal pathway **improving**.
172172

173173
### Candidate Message Moderator Evaluation and Selection (Esteemer)
174-
The fourth stage of the pipeline ranks the candidate messages based on a number of moderators in order to determine the most appropriate message to provide to the feedback recipient. The script does this by evaluating message candidates against a number of factors: recency of the recipient having recieved a similar message, gap size, slope of the trend in the performance data, time since last loss or achievement, the recipient's feedback preferences, and the acceptability of the candidate message based on preconditions (ThinkPudding acceptability).
175-
176-
**For Deepa, Esteemer uses the following information:** - WIP
177-
- The acceptable candidate message is **Candidate B**
178-
- Deepa's preference for improving messages is *Todo*
179-
- Deepa has not recieved the **Candidate B** message recently.
180-
<!-- Todo - determine how long message cooldown is for repeat selection, change text above accordingly-->
181-
> ∴ Esteemer will select **Candidate B** as the most appropriate message to provide the recipient.
182-
183-
**For Gaile, Esteemer uses the following information:**
184-
- The acceptable candidate message is **Candidate α**
185-
- Gaile's preference for improving messages is *Todo*
186-
- Gaile has not recieved the **Candidate α** message recently.
187-
> ∴ Esteemer will select **Candidate α** as the most appropriate message to provide the recipient.
188-
189-
For each of the selected messages, Eseemer will return the template ID, message text, comparator type, acceptability relationship, measure name, title, and display type preferred by the recipient. This data is used in the next step of the pipeline to generate the precision feedback message.
174+
The fourth stage of the pipeline consists of an algorithm which ranks acceptable candidate messages. It ranks these candidates based on applying weights to and then summing a number of moderators, with the end goal to determine which message may be the most motivating to provide to the recipient. The moderators which influence the rank of a candidate message are:
175+
$$\text{Performance trend slope, } \Delta_{\text{performance}}$$
176+
$$\text{Performance gap size, } G_{\text{performance}}$$
177+
$$\text{Achievement or loss recency, } t_{\text{event}}$$
178+
$$\text{Feedback history, } t_{\text{message}} \text{ and } N_{\text{received}}$$
179+
$$\text{Individual feedack preferences, } F_{\text{pref}}$$
180+
181+
The overall algortihm can be represented as:
182+
$$F_{\text{pref}} \Biggl[ C_{\text{data}} \biggl( \Bigl( X_s \| \Delta_{\text{performance}} \| \Bigr) + \Bigl( X_{gs} \| G_{\text{performance}} \| \Bigr) \biggr) \\
183+
+ \\
184+
C_{\text{history}} \Bigl( \bigl(X_e \cdot t_{\text{event}}\bigr) + \bigl(X_m \cdot t_{\text{message}}\bigr) + \bigl(X_N \cdot N_{\text{received}}\bigr) \Bigr) \Biggr]$$
185+
186+
<!-- No changes need to be made below this line when propagating to new vignettes-->
187+
The Esteemer algorithm uses weighting coefficients, which vary based on the particularities of each causal pathway. For the social loss causal pathway, the weighting coefficients are:
188+
189+
| Moderator | G<sub>performance</sub> | Δ<sub>performance</sub> | t<sub>event</sub> | t<sub>message</sub> | N<sub>received</sub> | Data component | History component |
190+
|--------------------|-------------------------|-------------------------|-------------------|---------------------|----------------------|----------------|-------------------|
191+
| Coefficient Term | X<sub>gs</sub> | X<sub>s</sub> | X<sub>e</sub> | X<sub>m</sub> | X<sub>N</sub> |C<sub>data</sub>|C<sub>history</sub>|
192+
| Value | 0 | 0.8 | 0 | -0.1 | -0.1 | 1 | 1 |
193+
194+
<!-- Values above need to be changed for each causal pathway -->
195+
<!--
196+
197+
As an example, appropriate values based on this vignette are filled in for Eugene's **Candidate B** message, and evaluate like so:
198+
$$F_{\text{pref}} \biggl( 1 \Bigl( \Bigl( 0.5 \| 6 \| \Bigr) + \Bigl( 0.5 \| 5 \| \Bigr) \Bigr) + 1 \Bigl( (0.5 \cdot 12) + (0.5 \cdot 12) + (0.5 \cdot 0) \Bigr) \biggr) = (19.5)F_{\text{pref}}$$
199+
Gaile's acceptable social loss candidate evaluates similarly:
200+
$$F_{\text{pref}} \biggl( 1 \Bigl( 0.5 \| 7 \| \Bigr)\Bigl( 0.5 \| 1 \| \Bigr) + 1 \Bigl( (0.5 \cdot 12) + (0.5 \cdot 12) + (0.5 \cdot 0) \Bigr) \biggr) = (13.75)F_{\text{pref}}$$
201+
<!-- Equations above need to be re-evaluated for each causal pathway -->
202+
203+
Of note, each persona has more than one measure's worth of data, therefore for each persona there are potentially many acceptable candidates, utilizing different causal pathways regarding different measures. Esteemer evaluates each acceptable candidate measure with differing coefficient weights depending on the causal pathway.
190204

191205
### Message Generation and Delivery (Pictoralist)
192206
The fifth and final stage of the pipeline generates visual representations of the selected message based on the recipient's performance data, and sends this output off for delivery to the recipient.

vignettes/social_approach_vignette/readme.md

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -203,21 +203,36 @@ For Bob, **Candidate B** is acceptable by the causal pathway **social approach**
203203
For Deepa, **Candidate α** is acceptable by the causal pathway **social approach**.
204204

205205
### Candidate Message Moderator Evaluation and Selection (Esteemer)
206-
The fourth stage of the pipeline ranks the candidate messages based on a number of moderators in order to determine the most appropriate message to provide to the feedback recipient. The script does this by evaluating message candidates against a number of factors: recency of the recipient having recieved a similar message, gap size, slope of the trend in the performance data, time since last loss or achievement, the recipient's feedback preferences, and the acceptability of the candidate message based on preconditions (ThinkPudding acceptability).
207-
208-
**For Bob, Esteemer uses the following information:**
209-
- The acceptable candidate message is **Candidate B**
210-
- Bob's preference for social approach messages is *Todo*
211-
- Bob has not recieved the **Candidate B** message recently.
212-
> ∴ Esteemer will select **Candidate B** as the most appropriate message to provide the recipient.
213-
214-
**For Deepa, Esteemer uses the following information:**
215-
- The acceptable candidate message is **Candidate α**
216-
- Deepa's preference for social approach messages is *Todo*
217-
- Deepa has not recieved the **Candidate α** message recently.
218-
> ∴ Esteemer will select **Candidate α** as the most appropriate message to provide the recipient.
219-
220-
For each of the selected messages, Eseemer will return the template ID, message text, comparator type, acceptability relationship, measure name, title, and display type preferred by the recipient. This data is used in the next step of the pipeline to generate the precision feedback message.
206+
The fourth stage of the pipeline consists of an algorithm which ranks acceptable candidate messages. It ranks these candidates based on applying weights to and then summing a number of moderators, with the end goal to determine which message may be the most motivating to provide to the recipient. The moderators which influence the rank of a candidate message are:
207+
$$\text{Performance trend slope, } \Delta_{\text{performance}}$$
208+
$$\text{Performance gap size, } G_{\text{performance}}$$
209+
$$\text{Achievement or loss recency, } t_{\text{event}}$$
210+
$$\text{Feedback history, } t_{\text{message}} \text{ and } N_{\text{received}}$$
211+
$$\text{Individual feedack preferences, } F_{\text{pref}}$$
212+
213+
The overall algortihm can be represented as:
214+
$$F_{\text{pref}} \Biggl[ C_{\text{data}} \biggl( \Bigl( X_s \| \Delta_{\text{performance}} \| \Bigr) + \Bigl( X_{gs} \| G_{\text{performance}} \| \Bigr) \biggr) \\
215+
+ \\
216+
C_{\text{history}} \Bigl( \bigl(X_e \cdot t_{\text{event}}\bigr) + \bigl(X_m \cdot t_{\text{message}}\bigr) + \bigl(X_N \cdot N_{\text{received}}\bigr) \Bigr) \Biggr]$$
217+
218+
<!-- No changes need to be made below this line when propagating to new vignettes-->
219+
The Esteemer algorithm uses weighting coefficients, which vary based on the particularities of each causal pathway. For the social loss causal pathway, the weighting coefficients are:
220+
221+
| Moderator | G<sub>performance</sub> | Δ<sub>performance</sub> | t<sub>event</sub> | t<sub>message</sub> | N<sub>received</sub> | Data component | History component |
222+
|--------------------|-------------------------|-------------------------|-------------------|---------------------|----------------------|----------------|-------------------|
223+
| Coefficient Term | X<sub>gs</sub> | X<sub>s</sub> | X<sub>e</sub> | X<sub>m</sub> | X<sub>N</sub> |C<sub>data</sub>|C<sub>history</sub>|
224+
| Value | 0.5 | 0.8 | -0.5 | -0.1 | -0.1 | 1 | 1 |
225+
226+
<!-- Values above need to be changed for each causal pathway -->
227+
<!--
228+
229+
As an example, appropriate values based on this vignette are filled in for Eugene's **Candidate B** message, and evaluate like so:
230+
$$F_{\text{pref}} \biggl( 1 \Bigl( \Bigl( 0.5 \| 6 \| \Bigr) + \Bigl( 0.5 \| 5 \| \Bigr) \Bigr) + 1 \Bigl( (0.5 \cdot 12) + (0.5 \cdot 12) + (0.5 \cdot 0) \Bigr) \biggr) = (19.5)F_{\text{pref}}$$
231+
Gaile's acceptable social loss candidate evaluates similarly:
232+
$$F_{\text{pref}} \biggl( 1 \Bigl( 0.5 \| 7 \| \Bigr)\Bigl( 0.5 \| 1 \| \Bigr) + 1 \Bigl( (0.5 \cdot 12) + (0.5 \cdot 12) + (0.5 \cdot 0) \Bigr) \biggr) = (13.75)F_{\text{pref}}$$
233+
<!-- Equations above need to be re-evaluated for each causal pathway -->
234+
235+
Of note, each persona has more than one measure's worth of data, therefore for each persona there are potentially many acceptable candidates, utilizing different causal pathways regarding different measures. Esteemer evaluates each acceptable candidate measure with differing coefficient weights depending on the causal pathway.
221236

222237
### Message Generation and Delivery (Pictoralist)
223238
The fifth and final stage of the pipeline generates visual representations of the selected message based on the recipient's performance data, and sends this output off for delivery to the recipient.

0 commit comments

Comments
 (0)