hc: consistent striped official-record card + wire past-due overdue variant
- Upgrade the plain teal record banner to the authoritative barber-pole 'Official
record' banner in the personal/turnover/overdue-personal templates (the switch
to personal templates had dropped the striped look from live revalidation sends).
- nppes_outdated: replace plain info table with the striped 'Official record -
NPPES NPI Registry' card (status honestly labeled as our compliance flag).
- Wire revalidation_overdue -> hc_revalidation_overdue_personal.html with a direct
past-due subject ('Your Medicare revalidation is past due - let's get it filed')
and PAST DUE status + days-overdue in the record card; due_soon stays warm.
- Striped card now on all 7 templates that show a real record; oig_screening and
compliance_bundle correctly omit it (no specific record to display).
This commit is contained in:
parent
7b69b5c314
commit
d1a9260854
5 changed files with 148 additions and 11 deletions
|
|
@ -21,13 +21,33 @@
|
|||
<div style="font-size:13px;color:#065f46;line-height:1.7;">Payers, clearinghouses, and CMS pull from NPPES. A stale address, taxonomy, or contact can cause <strong>claim denials, mail you never receive, and failed credentialing</strong>. CMS also requires you to attest your NPPES data periodically.</div>
|
||||
</td></tr></table>
|
||||
|
||||
<!-- Detail row -->
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:18px 0;font-size:13px;">
|
||||
<tr style="border-bottom:1px solid #e5e7eb;"><td style="padding:10px 0;color:#6b7280;">NPI</td><td style="padding:10px 0;font-weight:600;text-align:right;">{{ .Subscriber.Attribs.npi }}</td></tr>
|
||||
<tr style="border-bottom:1px solid #e5e7eb;"><td style="padding:10px 0;color:#6b7280;">Practice</td><td style="padding:10px 0;font-weight:600;text-align:right;">{{ .Subscriber.Attribs.practice }}</td></tr>
|
||||
<tr><td style="padding:10px 0;color:#6b7280;">Our service fee</td><td style="padding:10px 0;font-weight:700;text-align:right;color:#047857;">$349</td></tr>
|
||||
<!-- Official-record card: NPPES is fully public, so this mirrors the registry. -->
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:22px 0;">
|
||||
<tr><td style="border:1px solid #cbd5e1;border-radius:10px;overflow:hidden;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr><td style="background:#2563eb;background-image:repeating-linear-gradient(45deg,#ef4444 0,#ef4444 14px,#ffffff 14px,#ffffff 28px,#2563eb 28px,#2563eb 42px,#ffffff 42px,#ffffff 56px);padding:0;">
|
||||
<p style="margin:0;padding:11px 16px;background:rgba(15,23,42,0.58);font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#ffffff;font-weight:700;text-align:center;">Official record · NPPES NPI Registry</p>
|
||||
</td></tr>
|
||||
<tr><td style="background:#f8fafc;padding:6px 16px 14px;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="font-size:13px;">
|
||||
<tr style="border-bottom:1px solid #e5e7eb;"><td style="padding:9px 0;color:#64748b;">NPI</td><td style="padding:9px 0;font-weight:700;text-align:right;color:#0f172a;">{{ .Subscriber.Attribs.npi }}</td></tr>
|
||||
<tr style="border-bottom:1px solid #e5e7eb;"><td style="padding:9px 0;color:#64748b;">Registered to</td><td style="padding:9px 0;font-weight:600;text-align:right;color:#0f172a;">{{ .Subscriber.Attribs.practice }}</td></tr>
|
||||
<tr><td style="padding:9px 0;color:#64748b;">Record status</td><td style="padding:9px 0;font-weight:700;text-align:right;color:#b91c1c;">FLAGGED OUT OF DATE</td></tr>
|
||||
</table>
|
||||
<p style="margin:10px 0 0;font-size:11px;color:#94a3b8;line-height:1.5;">Source: NPPES NPI Registry (npiregistry.cms.hhs.gov). Staleness flagged by our compliance monitoring — confirm on the official registry below.</p>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<!-- Service fee -->
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:18px 0;"><tr><td style="background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:14px 18px;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0"><tr>
|
||||
<td style="font-size:13px;color:#6b7280;">Our service fee to update it for you</td>
|
||||
<td style="font-size:22px;font-weight:800;text-align:right;color:#047857;white-space:nowrap;">$349</td>
|
||||
</tr></table>
|
||||
</td></tr></table>
|
||||
|
||||
<!-- Verify-it-yourself: the NPPES registry is fully public, so the provider
|
||||
can confirm their own record (and its staleness) on the government site.
|
||||
Nothing is more convincing than the official source. -->
|
||||
|
|
|
|||
117
data/hc_campaigns/hc_revalidation_overdue_personal.html
Normal file
117
data/hc_campaigns/hc_revalidation_overdue_personal.html
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><style>@media only screen and (max-width:600px){.pw-wrap{width:100%!important;border-radius:0!important;}.pw-pad{padding:24px 16px!important;}}body,table,td,p,a{-webkit-text-size-adjust:100%;}table{border-collapse:collapse!important;}img{border:0;}</style></head><body style="margin:0;padding:0;background:#eef0f3;">
|
||||
<center>
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background:#eef0f3;"><tr><td style="padding:24px 10px;">
|
||||
<table role="presentation" class="pw-wrap" width="620" cellpadding="0" cellspacing="0" style="margin:0 auto;border-radius:10px;overflow:hidden;background:#fff;">
|
||||
|
||||
<!-- Header -->
|
||||
<tr><td style="background-color:#0f766e;background:linear-gradient(135deg,#0f766e 0%,#14b8a6 100%);padding:26px 28px;">
|
||||
<img src="https://performancewest.net/images/logo-white.png" alt="Performance West" style="height:44px;margin-bottom:10px;display:block" />
|
||||
<h1 style="color:#fff;margin:0;font-size:21px;font-weight:700;font-family:Inter,system-ui,sans-serif;">Your Medicare revalidation is past due</h1>
|
||||
<p style="color:#ccfbf1;margin:6px 0 0;font-size:13px;font-family:Inter,system-ui,sans-serif;">Let's get it filed before your billing privileges are affected</p>
|
||||
</td></tr>
|
||||
|
||||
<!-- Body -->
|
||||
<tr><td class="pw-pad" style="padding:28px;font-family:Inter,system-ui,sans-serif;color:#1f2937;">
|
||||
<p style="font-size:15px;margin:0 0 16px;line-height:1.6;">Hi {{ .Subscriber.Name }},</p>
|
||||
|
||||
<p style="font-size:14px;line-height:1.75;margin:0 0 16px;">Whoever last handled the Medicare enrollment for <strong>{{ .Subscriber.Attribs.practice }}</strong> may have moved on — front-office and billing staff turn over often, and revalidation deadlines are the kind of thing that quietly fall through the cracks when they do.</p>
|
||||
|
||||
<p style="font-size:14px;line-height:1.75;margin:0 0 18px;">That is exactly what we keep an eye on, so it does not become your problem. Here is where your enrollment stands right now:</p>
|
||||
|
||||
<!-- CMS record card: data straight from the CMS Revalidation Due Date List -->
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:6px 0 22px;">
|
||||
<tr><td style="border:1px solid #cbd5e1;border-radius:10px;overflow:hidden;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr><td style="background:#2563eb;background-image:repeating-linear-gradient(45deg,#ef4444 0,#ef4444 14px,#ffffff 14px,#ffffff 28px,#2563eb 28px,#2563eb 42px,#ffffff 42px,#ffffff 56px);padding:0;">
|
||||
<p style="margin:0;padding:11px 16px;background:rgba(15,23,42,0.58);font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#ffffff;font-weight:700;text-align:center;">Official record · CMS Medicare Revalidation Due Date List</p>
|
||||
</td></tr>
|
||||
<tr><td style="background:#f8fafc;padding:6px 16px 14px;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="font-size:13px;">
|
||||
<tr style="border-bottom:1px solid #e5e7eb;"><td style="padding:9px 0;color:#64748b;">Provider / NPI</td><td style="padding:9px 0;font-weight:700;text-align:right;color:#0f172a;">{{ .Subscriber.Attribs.npi }}</td></tr>
|
||||
<tr style="border-bottom:1px solid #e5e7eb;"><td style="padding:9px 0;color:#64748b;">Enrolled as</td><td style="padding:9px 0;font-weight:600;text-align:right;color:#0f172a;">{{ .Subscriber.Attribs.practice }}</td></tr>
|
||||
<tr style="border-bottom:1px solid #e5e7eb;"><td style="padding:9px 0;color:#64748b;">Revalidation due date</td><td style="padding:9px 0;font-weight:700;text-align:right;color:#b91c1c;">{{ .Subscriber.Attribs.reval_due_date }}</td></tr>
|
||||
<tr><td style="padding:9px 0;color:#64748b;">Status</td><td style="padding:9px 0;font-weight:700;text-align:right;color:#b91c1c;">PAST DUE · {{ .Subscriber.Attribs.days_overdue }} days overdue</td></tr>
|
||||
</table>
|
||||
<p style="margin:10px 0 0;font-size:11px;color:#94a3b8;line-height:1.5;">Source: CMS Revalidation Due Date List (data.cms.gov), refreshed monthly.</p>
|
||||
</td></tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<p style="font-size:14px;line-height:1.75;margin:0 0 18px;">Because the deadline has already passed, this is time-sensitive: when a revalidation stays unfiled, CMS deactivates Medicare billing privileges — claims stop paying and the provider has to re-enroll from scratch, losing the original effective date. <strong>The good news is it is still fixable, and the sooner we file, the better your chances of avoiding a gap.</strong> CMS can take several weeks to process, so the earlier we begin, the more room there is to get you current before any disruption.</p>
|
||||
|
||||
<!-- How it works -->
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:18px 0;"><tr><td style="background:#f0fdfa;border:1px solid #99f6e4;border-radius:10px;padding:18px;">
|
||||
<h3 style="margin:0 0 10px;font-size:15px;color:#0f766e;font-weight:700;">We do the work — you barely lift a finger</h3>
|
||||
<p style="font-size:13px;color:#134e4a;line-height:1.7;margin:0 0 10px;">We complete the full PECOS revalidation and track it through to confirmation. <strong>You never share a password and you never have to log in or chase a two-factor code.</strong> The only thing we may need is a one-minute e-signature on a secure link.</p>
|
||||
<p style="font-size:13px;color:#134e4a;line-height:1.7;margin:0;">No matter who handled it before, we will make sure it gets done right.</p>
|
||||
</td></tr></table>
|
||||
|
||||
<!-- Verify-it-yourself -->
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:14px 0 18px;"><tr><td style="background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:16px;">
|
||||
<p style="margin:0 0 6px;font-size:13px;color:#1e3a8a;font-weight:700;">Want to confirm the date yourself?</p>
|
||||
<p style="margin:0 0 12px;font-size:13px;color:#1e40af;line-height:1.6;">Look up NPI <strong>{{ .Subscriber.Attribs.npi }}</strong> on the public CMS Medicare Revalidation List and you will see the same due date shown above.</p>
|
||||
<a href="https://data.cms.gov/tools/medicare-revalidation-list" style="display:inline-block;padding:10px 22px;background:#fff;border:1px solid #1d4ed8;color:#1d4ed8;font-weight:700;border-radius:8px;text-decoration:none;font-size:13px;">Verify on CMS.gov ↗</a>
|
||||
</td></tr></table>
|
||||
|
||||
<!-- CTA -->
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:22px 0;"><tr><td style="background:#ecfdf5;border:2px solid #10b981;border-radius:10px;padding:18px;text-align:center;">
|
||||
<p style="font-size:14px;color:#065f46;margin:0 0 6px;font-weight:600;">Let us get your past-due revalidation filed right away.</p>
|
||||
<p style="font-size:12px;color:#047857;margin:0 0 14px;">We submit most filings within 1-2 business days, then track it through CMS processing to confirmation.</p>
|
||||
<a href="https://performancewest.net/order/npi-revalidation?npi={{ .Subscriber.Attribs.npi }}" style="display:inline-block;padding:14px 40px;background:#10b981;color:#fff;font-weight:700;border-radius:8px;text-decoration:none;font-size:15px;">Handle my revalidation →</a>
|
||||
</td></tr></table>
|
||||
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:18px 0;"><tr><td style="background:#f0f4f8;border-radius:8px;padding:16px;font-size:13px;color:#374151;line-height:1.6;">
|
||||
<strong>Questions, or want to hand off your filings going forward?</strong> Just reply to this email or call <strong>(888) 411-0383</strong>. We are a dedicated healthcare compliance firm and we are happy to be the people who keep track of this for you.
|
||||
</td></tr></table>
|
||||
|
||||
<!-- Personal guarantee from the founder: photo links to the About page so
|
||||
readers can confirm a real person stands behind the work. -->
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:22px 0;"><tr><td style="background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #0f766e;border-radius:10px;padding:20px;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="92" valign="top" style="padding-right:16px;">
|
||||
<a href="https://performancewest.net/about">
|
||||
<img src="https://performancewest.net/images/justin-hannah.jpg" alt="Justin Hannah, Founder of Performance West" width="76" height="76" style="width:76px;height:76px;border-radius:50%;display:block;border:2px solid #0f766e;" />
|
||||
</a>
|
||||
</td>
|
||||
<td valign="top">
|
||||
<p style="margin:0 0 10px;font-size:14px;color:#1f2937;line-height:1.7;font-style:italic;">“If we file your revalidation and you are not completely satisfied, I will personally make it right. You will not pay billable hours, and you will not be left chasing a government portal on your own. That is my promise.”</p>
|
||||
<p style="margin:0;">
|
||||
<a href="https://performancewest.net/about" style="text-decoration:none;">
|
||||
<img src="https://performancewest.net/images/justin-signature-v2.png" alt="Justin Hannah" width="150" style="width:150px;height:auto;display:block;margin:0 0 2px;" />
|
||||
</a>
|
||||
<span style="font-size:13px;font-weight:700;color:#0f172a;">Justin Hannah</span><br>
|
||||
<span style="font-size:12px;color:#64748b;">Founder & Principal Consultant, Performance West Inc.</span>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td></tr></table>
|
||||
|
||||
<!-- Trust signals + true social proof -->
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:20px 0 6px;border-top:1px solid #e5e7eb;padding-top:14px;">
|
||||
<tr>
|
||||
<td align="center" style="padding:10px 4px;font-family:Inter,system-ui,sans-serif;">
|
||||
<span style="display:inline-block;margin:0 8px;font-size:11px;font-weight:600;color:#0f766e;">🛡️ SOC 2 Type II hosting</span>
|
||||
<span style="display:inline-block;margin:0 8px;font-size:11px;font-weight:600;color:#0f766e;">✅ HIPAA & PCI compliant</span>
|
||||
<span style="display:inline-block;margin:0 8px;font-size:11px;font-weight:600;color:#0f766e;">🔒 256-bit TLS encrypted</span>
|
||||
<span style="display:inline-block;margin:0 8px;font-size:11px;font-weight:600;color:#0f766e;">💳 Secure payment by Stripe</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" style="padding:4px;font-family:Inter,system-ui,sans-serif;font-size:12px;color:#4b5563;">
|
||||
<strong style="color:#047857;">100% satisfaction guarantee</strong> · fixed pricing, no billable hours · trusted by providers nationwide
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td></tr>
|
||||
|
||||
<!-- Footer -->
|
||||
<tr><td style="padding:16px 28px;background:#f8fafc;border-top:1px solid #e5e7eb;font-size:11px;color:#9ca3af;text-align:center;">
|
||||
<p style="margin:0 0 8px;">Performance West is an independent compliance firm, not affiliated with CMS or Medicare.</p>
|
||||
<p style="margin:0;">Performance West Inc. · 525 Randall Ave Ste 100-1195, Cheyenne, WY 82001 · <a href="https://performancewest.net" style="color:#6b7280;">performancewest.net</a></p>
|
||||
<p style="margin:6px 0 0;"><a href="{{ UnsubscribeURL }}" style="color:#6b7280;">Unsubscribe</a></p>
|
||||
</td></tr>
|
||||
|
||||
</table></td></tr></table></center></body></html>
|
||||
|
|
@ -22,8 +22,8 @@
|
|||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:6px 0 22px;">
|
||||
<tr><td style="border:1px solid #cbd5e1;border-radius:10px;overflow:hidden;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr><td style="background:#0f766e;padding:0;">
|
||||
<p style="margin:0;padding:11px 16px;font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#ffffff;font-weight:700;text-align:center;">CMS Medicare Revalidation Due Date List</p>
|
||||
<tr><td style="background:#2563eb;background-image:repeating-linear-gradient(45deg,#ef4444 0,#ef4444 14px,#ffffff 14px,#ffffff 28px,#2563eb 28px,#2563eb 42px,#ffffff 42px,#ffffff 56px);padding:0;">
|
||||
<p style="margin:0;padding:11px 16px;background:rgba(15,23,42,0.58);font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#ffffff;font-weight:700;text-align:center;">Official record · CMS Medicare Revalidation Due Date List</p>
|
||||
</td></tr>
|
||||
<tr><td style="background:#f8fafc;padding:6px 16px 14px;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="font-size:13px;">
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@
|
|||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="margin:6px 0 22px;">
|
||||
<tr><td style="border:1px solid #cbd5e1;border-radius:10px;overflow:hidden;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0">
|
||||
<tr><td style="background:#0f766e;padding:0;">
|
||||
<p style="margin:0;padding:11px 16px;font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#ffffff;font-weight:700;text-align:center;">CMS Medicare Revalidation Due Date List</p>
|
||||
<tr><td style="background:#2563eb;background-image:repeating-linear-gradient(45deg,#ef4444 0,#ef4444 14px,#ffffff 14px,#ffffff 28px,#2563eb 28px,#2563eb 42px,#ffffff 42px,#ffffff 56px);padding:0;">
|
||||
<p style="margin:0;padding:11px 16px;background:rgba(15,23,42,0.58);font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:#ffffff;font-weight:700;text-align:center;">Official record · CMS Medicare Revalidation Due Date List</p>
|
||||
</td></tr>
|
||||
<tr><td style="background:#f8fafc;padding:6px 16px 14px;">
|
||||
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="font-size:13px;">
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@ OUT_DIR = os.path.join(os.path.dirname(__file__), "..", "data", "hc_campaigns")
|
|||
# selector which warmup-CSV rows belong to this segment (see cron)
|
||||
SEGMENTS = {
|
||||
"revalidation_overdue": {
|
||||
"subject": "Let's make sure your Medicare revalidation is handled in time",
|
||||
"template": "hc_revalidation_personal.html",
|
||||
"subject": "Your Medicare revalidation is past due - let's get it filed",
|
||||
"template": "hc_revalidation_overdue_personal.html",
|
||||
"cta_path": "/order/npi-revalidation",
|
||||
"price": "$599",
|
||||
"list_name": "HC Warmup - Revalidation Overdue",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue