Skip to main content

Send time, day, and channel optimization

MessageGears provides three ML models that each answer a distinct optimization question for your recipients:

ModelQuestion it answersOutput fieldValue
Send Time Optimization (STO)What hour of the day should I send?ML-OptHour0–23
Optimal DayWhat day of the week should I send?ML-OptDay0–6
Best ChannelWhich channel should I use?ML-OptChanemail, push, sms

Each model trains independently, scores independently, and produces its own output. You can activate any combination of them based on your use case.

Shared inputs and training​

All three models train on the same historical engagement data: messages sent, opens, clicks, and push interactions. Recipients are re-scored at a cadence that accounts for new engagement events and demand, so predictions stay current as customer behavior shifts.

The training process accounts for industry-specific signals such as Apple's Mail Privacy Protection, filtering out automated behaviors and keying on actual customer interactions where possible.

Requirements​

  • Email and channel engagement data, such as clicks, opens, sends, and push interactions

Send Time Optimization (STO)​

Predicts the best hour of day to send a message to each recipient.

How it works​

The model analyzes when each recipient has historically engaged (opened, clicked) with messages and produces a single optimal hour (0–23) per recipient. That hour is then used to populate channel-specific send time timestamps (EmailSendTime, PushSendTime, SmsSendTime) that control when the message is actually released for delivery.

tip

For details on how send time timestamps control message delivery, see Send Time Designation.

Output fields​

FieldTypeRangeDescription
ML-OptHourINT0–23Optimal hour of day to send.
EmailSendTimeTIMESTAMPe.g., 2019-06-20 16:00:00-04:00Scheduled release time for email, derived from ML-OptHour.
PushSendTimeTIMESTAMPe.g., 2019-06-20 16:00:00-04:00Scheduled release time for push, derived from ML-OptHour.
SmsSendTimeTIMESTAMPe.g., 2019-06-20 16:00:00-04:00Scheduled release time for SMS, derived from ML-OptHour.
ML-OptHourGroupCHAR(1)C, R, OC – Control group, R – Random/Training, O – Optimized

Optimal Day​

Predicts the best day of week to send a message to each recipient.

How it works​

The model identifies which day of the week (Sunday through Saturday) each recipient is most likely to engage. This can be used to build day-specific audience segments or schedule campaigns on per-recipient optimal days.

Output fields​

FieldTypeRangeDescription
MLOptDayINT0–6Optimal day of week to send (0 = Sunday, 6 = Saturday).
MLOptDayGroupCHAR(1)C, R, OC – Control group, R – Random/Training, O – Optimized

Best Channel​

Predicts the best channel to reach each recipient. This is also referred to as "next best channel" (NBC).

How it works​

The model compares each recipient's engagement across email, push, and SMS to determine which channel they are most likely to interact with. Use this to route recipients to their preferred channel or to prioritize channel selection in cross-channel campaigns.

Output fields​

FieldTypeRangeDescription
ML-OptChanVARCHARemail, push, smsThe channel the recipient is most likely to engage with.

Full schema reference​

All fields are keyed on RecipientId and can be joined back to your customer tables.

FieldTypeRangeModelDescription
RecipientIdVARCHARAllThe unique customer identifier.
MLOptHourINT0–23STOOptimal hour of day to send.
EmailSendTimeTIMESTAMPSTOScheduled release time for email.
PushSendTimeTIMESTAMPSTOScheduled release time for push.
SmsSendTimeTIMESTAMPSTOScheduled release time for SMS.
MLOptHourGroupCHAR(1)C, R, OSTOExperiment group assignment.
MLOptDayINT0–6Optimal DayOptimal day of week to send.
MLOptDayGroupCHAR(1)C, R, OOptimal DayExperiment group assignment.
MLOptChanVARCHARemail, push, smsBest ChannelOptimal channel to send.