Answers.Body: <blockquote>
  <p>I know that when the child jobs are created, the Mailing Event Queue table is populated from the Mailing Recipients table.</p>
  </blockquote>
  <p>This is true, but those emails from the mailing recipients table are filtered <em>again</em> when the child job populates the email tasks queue to rule out any</p>
  <ul>
  <li>that are on hold</li>
  <li>that no longer exist</li>
  <li>that belong to a deceased or deleted contact</li>
  <li>that belong to a contact with <code>do_not_email</code> or <code>is_opt_out</code></li>
  </ul>
  <p>So if you submit/schedule your mailing, <em>then</em> an email gets put on hold, <em>then</em> the mailer gets around to sending it, you can get a gap between intended (the original mailing recipients count) and delivered+bounces.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-03-23T14:27:12.020Z
Answers.LastActivityDate: 2022-03-23T14:27:12.020Z
Answers.UserDisplayName: artfulrobot
Body: <p>On a mailing report, there are, amongst other data:</p>
  <ul>
  <li>Intended recipients</li>
  <li>Successful deliveries</li>
  <li>Bounces</li>
  </ul>
  <p>I know (from scouring the code) that Intended recipients is a count from the mailing <em>recipients</em> table for that mailing; this is populated, I believe, at the point you submit the mailing to the queue (even if you schedule it for a future date). I think that means that the figure has already ruled out exclusions, including unsubscribes, emails-on-hold, bulk-opt-out.</p>
  <p>I know that the mailer process takes the recipients table and creates a parent 'job' with a set of child 'jobs' indicating batches (first 2000, next 2000...). I know that when the child jobs are created, the Mailing Event Queue table is populated from the Mailing Recipients table.</p>
  <p>I know that Successful deliveries is a count of mailing event queue items <em>minus</em> any of those records that have a bounce record.</p>
  <p>From this I would assume that</p>
  <p><em>Intended = Successful + Bounces</em></p>
  <p>However this is not what I'm seeing. I'm regularly seeing reports where the Intended figure is a significant amount <em>higher</em> than <em>successful + bounces</em> and I need to understand why.</p>
  <p>Can anyone explain this?</p>
  <p>(I've seen this at least on 5.36.1 and 5.47.2, with FlexMailer installed and using Mosaico for the mailings.)</p>
  
Tags: <civimail><reports><mailing>
Title: What is the meaning of Intended, bounce and delivered mailing report stats
ThreadText: # What is the meaning of Intended, bounce and delivered mailing report stats
  
  (Asked by: username_0 on 2022-03-23)
  
  On a mailing report, there are, amongst other data:
  
  * Intended recipients
  * Successful deliveries
  * Bounces
  
  I know (from scouring the code) that Intended recipients is a count from the mailing *recipients* table for that mailing; this is populated, I believe, at the point you submit the mailing to the queue (even if you schedule it for a future date). I think that means that the figure has already ruled out exclusions, including unsubscribes, emails-on-hold, bulk-opt-out.
  
  I know that the mailer process takes the recipients table and creates a parent 'job' with a set of child 'jobs' indicating batches (first 2000, next 2000...). I know that when the child jobs are created, the Mailing Event Queue table is populated from the Mailing Recipients table.
  
  I know that Successful deliveries is a count of mailing event queue items *minus* any of those records that have a bounce record.
  
  From this I would assume that
  
  *Intended = Successful + Bounces*
  
  However this is not what I'm seeing. I'm regularly seeing reports where the Intended figure is a significant amount *higher* than *successful + bounces* and I need to understand why.
  
  Can anyone explain this?
  
  (I've seen this at least on 5.36.1 and 5.47.2, with FlexMailer installed and using Mosaico for the mailings.)
  
  **Tags:** civimail, reports, mailing
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2022-03-23. Score: 4
  
  > I know that when the child jobs are created, the Mailing Event Queue table is populated from the Mailing Recipients table.
  
  This is true, but those emails from the mailing recipients table are filtered *again* when the child job populates the email tasks queue to rule out any
  
  * that are on hold
  * that no longer exist
  * that belong to a deceased or deleted contact
  * that belong to a contact with `do_not_email` or `is_opt_out`
  
  So if you submit/schedule your mailing, *then* an email gets put on hold, *then* the mailer gets around to sending it, you can get a gap between intended (the original mailing recipients count) and delivered+bounces.
  
  
  ---
  
  