Wiki source code of How-To: Issue Close

Last modified by Admin User on 2026/07/30 14:20

Hide last authors
Admin User 2.1 1 = How to use this guide =
2
3 This document walks a circulation manager end-to-end through the issue-close process and the audit-statement filing that happens at the end of every reporting period.
4
5 The flow is broken into phases. Phases 1–5 happen once per issue and are repeated until every issue in the reporting period is closed. Phases 6–9 happen once at period end. The annual USPS 3526 filing (covered separately at the end) is independent of the audit cadence.
6
7 The process starts in the Issue Builder, where you compose the audited universe from multiple audience sources — saved queries and saved lists — with per-source print/digital counts and adjustment controls. This replaces the older List Wizard → Save as List → Save as Issue workflow.
8
9 Each phase lists the screens you visit, the buttons you click, and the data you should verify before moving on. Screenshots show what the screen should look like when you get there.
10
11 = The process at a glance =
12
13 * Phase 1 — Issue Builder: compose the audited universe from multiple audience sources (queries + lists), review print/digital split, adjust quantities.
14 * Phase 2 — Review the issue on the Issues page before locking.
15 * Phase 3 — Run RPT-13 to close the issue (open → locked).
16 * Phase 4 — Run RPT-19 to write the canonical serve log (AccuZip CASS/NCOA/presort, label file generation).
17 * Phase 5 — Run RPT-09 and RPT-15 for per-issue audit support.
18 * Phase 6 — Repeat phases 1–5 for every issue in the reporting period.
19 * Phase 7 — Run the audit reports (RPT-12, 14, 02, 01, 03, 04, 06, 07, 08) at period end.
20 * Phase 8 — RPT-11 assembles the Publisher's Statement bundle.
21 * Phase 9 — File with AAM and record the confirmation ID.
22 * Annual — RPT-10 produces the USPS Form 3526.
23
24 = Phase 1 — Build the issue in the Issue Builder =
25
26 The Issue Builder is where you compose the audited universe for an issue. Instead of building a single query and promoting it, you work directly on the issue page — adding multiple audience sources (saved queries and saved lists), reviewing the print/digital split for each source, and adjusting quantities with +/- controls. The Issue Builder merges all sources into a single composite saved list when you save.
27
28 == Open the Issue Builder ==
29
30 From the left navigation, choose Fulfillment ▸ Reports ▸ any report that requires an issue, or go directly to Fulfillment ▸ Issues and click Create Issue. You can also reach it from a publication's detail page.
31
32 The Issue Builder page opens with a metadata form at the top (publication, issue date, mail date) and an empty Sources table below it.
33
34 [[image:fulfillment-issue-close-howto_ad2bfffa1a778495.png||height="366" width="586"]]
35
36 == Set the issue metadata ==
37
38 Pick the publication from the dropdown. The page shows the publication's type (paid/controlled/mixed), audit bureau, and frequency.
39
40 Set the issue date and planned mail date. The mail date drives the CASS/NCOA recency checks at RPT-19 Step 2.
41
42 If the publication has reporting periods configured, the period is auto-selected based on the issue date.
43
44 == Add audience sources ==
45
46 Click Add Source to add a row to the Sources table. Each source can be either a saved query (from List Wizard) or a saved list.
47
48 For a saved query source: pick the query from the dropdown, or click New Query to build one inline. The Issue Builder embeds the same filter grammar as the List Wizard — Demographics, Behavior, Engagement, Segment criteria. Hit Run Query to see the count.
49
50 For a saved list source: pick the list from the dropdown. The count appears immediately.
51
52 Each source row shows two columns: Print count and Digital count. These are auto-classified from the subscriber's term format (print, digital, or print_digital based on the site_products.format field). Dual-format subscribers appear in both columns.
53
54 [[image:fulfillment-issue-close-howto_fa61f51bdd8d6b29.png||height="366" width="586"]]
55
56 == Adjust quantities ==
57
58 Each source row has +/- buttons on both the Print and Digital columns. Use these to fine-tune the counts — for example, to add 500 records from the addbank to close a rate-base gap, or to exclude a batch of known-bad records.
59
60 The adjustment deltas are saved per-source and appear in the issue's audit trail so auditors can see exactly what was manually adjusted and why.
61
62 Click the play icon (Run Query) in the Actions column to re-fetch the print/digital counts for a source after editing its query.
63
64 == Preview and save ==
65
66 The totals row at the bottom shows the composite print + digital counts across all sources, including adjustments.
67
68 Click Preview 3B to open a modal with the live RPT-05 Para 3B cross-tab (business type x job function) computed from the current sources. This is a quick sanity check before committing the issue.
69
70 When satisfied, click Save Issue. The Issue Builder merges all sources into a single composite saved list and creates (or updates) the fulfillment issue record. The issue status is set to 'open'.
71
72 After saving, an Address Validation card appears below the sources table. See the next step.
73
74 [[image:fulfillment-issue-close-howto_f5ed7cf1a55116d8.png||height="366" width="586"]]
75
76 == Run address validation (recommended) ==
77
78 After the issue is saved, the Address Validation card appears at the bottom of the Issue Builder page. This sends the entire subscriber cohort through AccuZip's CASS/NCOA pipeline so you can see real deliverability metrics before locking.
79
80 Click Run Address Validation. The process takes 30–90 seconds depending on cohort size. A spinner appears while the batch runs.
81
82 When complete, a summary grid shows: cohort size, DPV Confirmed (valid delivery points), DPV Invalid (bad addresses), CASS Corrected (addresses that AccuZip standardized), NCOA Moves (subscribers who moved), and Vacant (flagged as unoccupied).
83
84 Use these metrics to decide whether to proceed. A high DPV Invalid or NCOA Moves count may indicate you need to run an ACS kills import or clean your subscriber file before closing the issue.
85
86 The validation timestamp is stored on the issue. When you reach RPT-19 Step 2, it will show the cached validation results instead of asking you to run a separate health check.
87
88 You can re-run validation at any time — for example, after editing sources or importing ACS returns.
89
90 = Phase 2 — Review the issue before locking =
91
92 After saving the issue in the Issue Builder, review it on the Issues page before proceeding to RPT-13. This is your last chance to edit the audience sources or adjust quantities.
93
94 == Review on the Issues page ==
95
96 Navigate to Fulfillment ▸ Issues. The issue you just created appears with status 'open'. The row shows the publication, issue date, mail date, and the total record count from the composite saved list.
97
98 Click the issue date to open the Issue detail page. Verify the publication, saved-list cohort, mail date, and source breakdown are correct.
99
100 To re-edit the sources, click Edit in Issue Builder on the detail page. This returns you to the Issue Builder with the existing sources loaded.
101
102 When the issue is ready to lock, click the red Lock (RPT-13) button. This launches the RPT-13 wizard with the issue pre-selected.
103
104 [[image:fulfillment-issue-close-howto_ad2bfffa1a778495.png||height="366" width="586"]]
105
106 = Phase 3 — Close the issue (RPT-13 Issue Close Preliminary) =
107
108 RPT-13 is the 5-step wizard that walks the issue from "open" to "locked". It surveys dedup status, address-hygiene results, and the preliminary counts the issue will carry. Once you sign off, the issue is locked and the label/mail file (RPT-19) becomes available.
109
110 == Run RPT-13 ==
111
112 RPT-13 has five steps: Scope, Options, Compute, Review, and Sign-off. Each step autosaves; you can leave and come back via My Reports ▸ Resume.
113
114 Step 1 (Scope) — confirms the publication and open issue. The wizard pre-selects them when launched from the Issue detail.
115
116 Step 2 (Options) — exclude flags (DNC, undeliverable, pre-cancelled), dedup tolerance, hygiene thresholds.
117
118 Step 3 (Compute) — synchronous compute. Produces the preliminary count of paid, controlled, qualified-by-source, and disqualified records.
119
120 Step 4 (Review) — preview the counts and the issue's hygiene warnings before signing off.
121
122 Step 5 (Sign-off) — check the confirmation box, add any operator notes, and click File lock. The issue transitions open → locked and is committed to the fulfillment_issue table. This step is irreversible without the Setup permission.
123
124 [[image:fulfillment-issue-close-howto_42eee61bb9ad84bb.png||height="366" width="586"]]
125
126 = Phase 4 — Generate the label/mail file (RPT-19) =
127
128 RPT-19 is the printer-ready label/mail file generated at close. As a side effect it writes the canonical issue serve log that every audit report reads back from. Until RPT-19 has run for an issue, downstream reports cannot reference that issue.
129
130 == Run RPT-19 ==
131
132 From My Reports ▸ + New Report ▸ Label / Mail File, or from the Issue detail's run-history. Pick the locked issue.
133
134 Step 2 (CASS / NCOA) — verifies your AccuZip connection is active. Click 'Check AccuZip Connection' to confirm credentials; the wizard shows account status and credits remaining. If you ran address validation from the Issue Builder (Phase 1), the cached results appear here — cohort size, DPV confirmed, DPV invalid, CASS corrected, NCOA moves. A green indicator means validation is within 7 days; amber means it is stale and you should re-validate from the Issue Builder before proceeding.
135
136 Step 3 (Lots) — pick the Lot Split Template configured under Setup ▸ Lot Templates. The template determines how the file is broken into lettershop lots (paid vs. controlled, full-service IMb vs. presort, by entry point).
137
138 Step 4 (Suppression) — toggle which records are excluded: ACS undeliverable, NCOA no-forward, DNC, addbank/reserve, null-address. The wizard shows live counts for each category.
139
140 Step 5 (Generate) — writes the per-recipient serve log to Cassandra, sends the file through AccuZip for CASS/NCOA/presort processing, stamps per-record cass_certified_at and ncoa_processed_at, and saves the USPS documentation PDF as an artifact.
141
142 Step 6 (Export) — CSV / XLSX / JSON / TXT / PDF artifacts ready for download and lettershop handoff.
143
144 [[image:fulfillment-issue-close-howto_b6ec42bac3033df9.png||height="366" width="586"]]
145
146 = Phase 5 — Per-issue audit supporting (RPT-09, RPT-15) =
147
148 Two more reports run per-issue as part of the close: RPT-09 captures the adds/removals delta vs. the prior comparable issue (auditor supporting documentation), and RPT-15 captures nonqualified counts the operator enters by hand (bulk, sponsored, single-copy returns).
149
150 == Run RPT-09 Additions & Removals ==
151
152 From My Reports ▸ + New Report ▸ Additions & Removals. Pick the publication and the just-closed issue.
153
154 Step 2 (Options) — comparison issue (defaults to the prior comparable). The wizard computes adds, kills, and transfers between the two issues, grouped by change_type and reason_code.
155
156 Step 3 (Review) — see the grouped totals.
157
158 Step 4 (Export) — CSV / PDF / JSON. RPT-11 reads this when it assembles the supporting documentation appendix on the Publisher's Statement.
159
160 [[image:fulfillment-issue-close-howto_6a6689944e73636c.png||height="366" width="586"]]
161
162 == Run RPT-15 Nonqualified Circulation ==
163
164 Open the RPT-15 wizard. Pick the publication and issue.
165
166 Step 2 (Counts) — enter the bulk, sponsored, single-copy returns, dealer/carrier, and any other nonqualified category totals for the issue.
167
168 Step 3 (Validate) — hygiene checks. If the nonqualified share exceeds the publication's configured house cap (Setup ▸ Publications ▸ nonqualified_cap_pct, default 0.50% — common publisher hygiene threshold, not a verbatim AAM rule), a warning fires. The warning is informational, not blocking.
169
170 Step 4 (Export) — CSV / PDF / JSON.
171
172 [[image:fulfillment-issue-close-howto_9494b98197e20e4.png||height="366" width="586"]]
173
174 = Phase 6 — Repeat for each issue in the reporting period =
175
176 Phases 1 through 5 happen once per issue. A monthly magazine running on AAM Consumer cycles produces 6 issues per semi-annual period; a quarterly produces 2; a bimonthly 3.
177
178 == Track progress on My Reports ==
179
180 Every issue close produces 4 runs (RPT-13, RPT-19, RPT-09, RPT-15). Filter My Reports by report ID to confirm coverage — e.g. 6 completed RPT-13 runs for a 6-issue H1 reporting period.
181
182 Use the Setup Health page (Setup ▸ Setup Health) if you suspect a wiring problem after applying a fulfillment migration to the silo.
183
184 [[image:fulfillment-issue-close-howto_4ced5972787c2321.png||height="366" width="586"]]
185
186 = Phase 7 — At period end: run the audit reports =
187
188 Once every issue in the reporting period has been closed, the audit reports roll up the per-issue figures into the paragraphs that go onto the Publisher's Statement. Most can be run in any order; RPT-14 must pass cleanly before RPT-11 will assemble.
189
190 == RPT-12 — Rate Base Compliance (paid publications) ==
191
192 RPT-12 confirms the running average lands on or above the declared rate base. Run it once at period close to lock the verdict into the period record. It is also the always-on dashboard you watch throughout the period.
193
194 [[image:fulfillment-issue-close-howto_5aa62676fdf4b165.png||height="366" width="586"]]
195
196 == RPT-14 — Qualification Age Risk (controlled / mixed) ==
197
198 RPT-14 is the hygiene gate. It identifies controlled records whose qualification will expire inside the next reporting window and surfaces warning / critical zones.
199
200 RPT-11 will refuse to assemble if RPT-14 has not passed cleanly for the current period. The disqualified rows feed into RPT-16 (Requalification Outreach) so they can be re-engaged before the next filing.
201
202 [[image:fulfillment-issue-close-howto_90bb6096e3410be6.png||height="366" width="586"]]
203
204 == RPT-02 — Average Circulation Summary ==
205
206 RPT-02 is the headline cover-sheet page of the Publisher's Statement. It averages the per-issue figures RPT-01 produces across the period.
207
208 [[image:fulfillment-issue-close-howto_b72c1e94afe364f.png||height="366" width="586"]]
209
210 == RPT-01 — Circulation by Issue ==
211
212 RPT-01 produces the issue-by-issue grid that anchors the statement. Paid, controlled, digital replica and non-replica counts for each issue, in the columns AAM expects for the publication's audit configuration.
213
214 [[image:fulfillment-issue-close-howto_fbfa9067f7c26dae.png||height="366" width="586"]]
215
216 == RPT-03 — Average Subscription Price (paid only) ==
217
218 RPT-03 reports the average price paid per subscription over the 12-month price window, and the comparison against the basic price. Required for AAM F 1.3 (consumer magazines); B2B has no equivalent disclosure.
219
220 [[image:fulfillment-issue-close-howto_9efe7d0df43bdf2c.png||height="366" width="586"]]
221
222 == RPT-04 — Geographic Distribution ==
223
224 RPT-04 produces the state / country breakdown of the Audit Issue — the single issue per period whose full recipient list is retained for the auditor. Publications above 500K circulation also produce the Nielsen A/B/C/D county-size appendix.
225
226 [[image:fulfillment-issue-close-howto_e71d08fd64ccdaba.png||height="366" width="586"]]
227
228 == RPT-06 — Qualification Source & Age (AAM Business) ==
229
230 RPT-06 produces the controlled-circulation source / age distribution required by AAM Chapter D Para 5. Run once per period on the Audit Issue's audited cohort.
231
232 [[image:fulfillment-issue-close-howto_508dfdbf71409598.png||height="366" width="586"]]
233
234 == RPT-07 — Subscription Channel Analysis (paid only) ==
235
236 RPT-07 breaks down new and renewal orders by acquisition channel (direct mail, agent, web, telemarketing, etc.). Produces the Para 8 source table on the statement.
237
238 [[image:fulfillment-issue-close-howto_fd6990441c75c8dd.png||height="366" width="586"]]
239
240 == RPT-08 — Renewal Rate (paid only) ==
241
242 RPT-08 measures what percent of paid subscriptions that expired during the AAM-defined window were renewed. The window is fixed by AAM (12 months ending 8 months before period end) and is read-only.
243
244 [[image:fulfillment-issue-close-howto_f44a161f202decb3.png||height="366" width="586"]]
245
246 = Phase 8 — Assemble the Publisher's Statement (RPT-11) =
247
248 RPT-11 is the master assembly. It stitches the completed component runs into a single immutable Publisher's Statement bundle. RPT-11 never recomputes — every number comes from the upstream runs' result blobs.
249
250 == Run RPT-11 ==
251
252 From My Reports ▸ + New Report ▸ Publisher's Statement Assembly. Pick the publication and the reporting period.
253
254 Step 2 (Bureau) — defaults to the publication's configured audit_bureau (AAM Consumer or AAM Business). Operators can override per-statement.
255
256 Step 3 (Issues) — pick the Audit Issue and the Analyzed Issue. The Audit Issue is the one whose full recipient list is retained; the Analyzed Issue drives Para 4 selection-of-issue logic.
257
258 Step 4 (Components) — RPT-11 lists every component report it expects and the status of its most recent completed run. Components that are missing, out of tolerance, or stale block the assembly. Click the resolve link on each blocker to fix before continuing.
259
260 Step 5 (Validation) — cross-component reconciliation. RPT-11 sanity-checks that RPT-02's averages match the rollup of RPT-01's per-issue figures, that RPT-04's geographic total equals the Analyzed Issue's RPT-01 row, and so on.
261
262 Step 6 (Review) — preview the assembled PDF + JSON bundle. Confirm and Save & Exit; the bundle is written to fulfillment-files/{silo}/{run_id}/ and the run is marked completed.
263
264 [[image:fulfillment-issue-close-howto_88768378d505f5c5.png||height="366" width="586"]]
265
266 = Phase 9 — File with AAM and record the confirmation =
267
268 Auto-submission to the AAM MediaIntelligence portal is not in v1 — the operator files manually using the artifact RPT-11 produced.
269
270 == Submit and record confirmation ==
271
272 From the My Reports row for the completed RPT-11 run, download the PDF and JSON artifacts.
273
274 Log into the AAM portal (mediaintelligence.auditedmedia.com), submit the PDF as the Publisher's Statement for the period, and attach the supporting documentation (RPT-09, RPT-15, etc.).
275
276 When AAM returns a confirmation ID, paste it into the confirmation_id field on the RPT-11 run (My Reports ▸ Resume the run ▸ confirmation field at the top of the Review step).
277
278 The reporting period's status now transitions closing → filed. Filed periods are read-only; re-opening requires both the Setup and Statement File permissions.
279
280 = Annual filing — USPS Form 3526 (RPT-10) =
281
282 RPT-10 is the annual USPS Statement of Ownership, Management, and Circulation. It is independent of the AAM Publisher's Statement and runs once per year per publication.
283
284 == Run RPT-10 ==
285
286 From My Reports ▸ + New Report ▸ USPS Form 3526. Pick the publication and the filing date.
287
288 Step 2 (Issue) — pick the nearest closed issue.
289
290 Step 3 (Header data) — verify the publisher, editor, managing editor names and addresses; the USPS permit number; the office of publication ZIP; and the owners / security holders. These come from the publication's setup record but can be overridden per-run.
291
292 Step 4 (Validate) — synchronous compute against the issue's serve log.
293
294 Step 5 (Review) — preview the 3526 fields.
295
296 Step 6 (Export) — produces the signed PDF (Form 3526 or 3526-R, auto-selected by publication_type and audit_bureau) and the in-magazine printed notice block.
297
298 [[image:fulfillment-issue-close-howto_4ac520267592a130.png||height="366" width="586"]]
299
300 = Troubleshooting =
301
302 Common failure modes and where to look. Most can be resolved without engineering help by reading the Setup Health page and the affected wizard's error banner.
303
304 == Setup Health first ==
305
306 If you just applied a fulfillment migration, open Setup ▸ Setup Health. It surfaces schema state, unlinked publications (missing package_id), per-Package Term-format coverage, and provides one-click bulk-apply for heuristic suggestions.
307
308 [[image:fulfillment-issue-close-howto_d30c335d3d1cabfe.png||height="366" width="586"]]
309
310 == RPT-13 sign-off failed ==
311
312 Check that the publication has a linked package_id (Setup ▸ Publications). RPT-13 cannot lock an issue whose publication is missing the link.
313
314 Check the wizard's error banner for an RPT13- error code; each maps to a specific data condition (see the RPT-13 design doc).
315
316 == RPT-19 didn't write the serve log ==
317
318 The serve log is written to Cassandra (fulfillment_issue_serve in <silo>_app keyspace) via an outbox writer. Check the outbox table (fulfillment_issue_summary_outbox) for the issue's row status. A failed write leaves status='failed' with the error message; the saga retries.
319
320 == RPT-08 says "degraded" ==
321
322 Means the Cassandra subscription_log_by_term table doesn't have the columns RPT-08 prefers (currency, term_length_months, gross/net amounts, is_renewal, cancellation_reason, source_code, premium_code). Until the schema lands, RPT-08 falls back to MySQL gcn_transactionlog — the renewal-rate compute is correct, the channel breakdown is less precise.
323
324 == RPT-11 says "component missing" or "out of tolerance" ==
325
326 Step 4 of RPT-11 lists every blocker individually. Click resolve on each to jump to the component's wizard, fix and re-run, then return to RPT-11 and click Re-check.
327
328 If a component's reconciliation tolerance is the blocker, check the run's result_summary blob — the envelope check at Step 5 produces a specific delta report.
329
330 = Where to go next =
331
332 For the per-report reference (what each report answers, what the audit hook is, what the wizard inputs are) see the End-User Guide at docs/fulfillment/user-guide/fulfillment-user-guide.docx.
333
334 For the rule citations and the post-merger AAM Chapter D details see docs/fulfillment/reference/.
335
336 For the per-report acceptance tests (the exact pass/fail conditions a QA engineer walks through), see docs/fulfillment/acceptance-tests/.