From 3d36d20148b4f3abdab2c73eba935251390ecf06 Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 27 Apr 2026 20:41:29 -0500 Subject: [PATCH] Add 499-A qualifying questions and USAC cancellation option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When 499-A shows as past due, asks: - "Yes — I need to file" → keeps red, notes each year priced separately - "No — I had no telecom revenue" → yellow, explains zero-revenue filings still required for each year with active filer ID - "I want to cancel my 499 registration" → yellow, explains catch-up filings must be completed first, offers to handle cancellation All options have "Change answer" undo buttons. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../pages/tools/fcc-compliance-check.astro | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/site/src/pages/tools/fcc-compliance-check.astro b/site/src/pages/tools/fcc-compliance-check.astro index 928db84..65c6c1e 100644 --- a/site/src/pages/tools/fcc-compliance-check.astro +++ b/site/src/pages/tools/fcc-compliance-check.astro @@ -501,6 +501,18 @@ import Base from "../../layouts/Base.astro"; `; } + // 499-A special — ask qualifying questions when past due + if (check.id === "form_499a" && (status === "red" || status === "yellow")) { + inner += `
+

Did you bill customers for voice or data telecom services during the overdue filing period(s)?

+
+ + + +
+
`; + } + // BDC special if (check.id === "bdc_filing" && status === "unknown") { inner += `
@@ -589,6 +601,62 @@ import Base from "../../layouts/Base.astro"; card.querySelector(".rmd-no")?.addEventListener("click", () => setRmdStatus("green")); } + // 499-A button handlers + if (check.id === "form_499a" && (status === "red" || status === "yellow")) { + function setF499Status(action) { + const c = action === "file" ? colorMap.red : (action === "zero" ? colorMap.yellow : colorMap.yellow); + card.className = `${c.bg} ${c.border} border rounded-xl p-4 flex items-start gap-3`; + + if (action === "file") { + // Keep red — they need to file + card.innerHTML = `
${icons.red}
+
+

${check.label}

+

${check.detail}

+

You had telecom revenue — filing is required for each missed year.

+ +
`; + } else if (action === "zero") { + // Had no revenue — still need to file a zero-revenue 499-A + check.status = "yellow"; + const cy = colorMap.yellow; + card.className = `${cy.bg} ${cy.border} border rounded-xl p-4 flex items-start gap-3`; + card.innerHTML = `
${icons.yellow}
+
+

${check.label}

+

Even with zero telecom revenue, a 499-A must be filed for each year you held an active filer ID. We can file zero-revenue returns for you.

+ +
`; + } else if (action === "cancel") { + // Wants to cancel registration + check.status = "yellow"; + const cy = colorMap.yellow; + card.className = `${cy.bg} ${cy.border} border rounded-xl p-4 flex items-start gap-3`; + card.innerHTML = `
${icons.yellow}
+
+

${check.label}

+

To cancel your USAC filer registration, all outstanding 499-A filings must be current first (including zero-revenue returns). We can handle the catch-up filings and submit the cancellation request to USAC on your behalf.

+ +
`; + } + + card.querySelector(".f499-undo")?.addEventListener("click", () => { + check.status = status; // restore original + const cr = colorMap[status]; + card.className = `${cr.bg} ${cr.border} border rounded-xl p-4 flex items-start gap-3`; + card.innerHTML = inner; + card.querySelector(".f499-yes")?.addEventListener("click", () => setF499Status("file")); + card.querySelector(".f499-no")?.addEventListener("click", () => setF499Status("zero")); + card.querySelector(".f499-cancel")?.addEventListener("click", () => setF499Status("cancel")); + renderCta(lastData); + }); + renderCta(lastData); + } + card.querySelector(".f499-yes")?.addEventListener("click", () => setF499Status("file")); + card.querySelector(".f499-no")?.addEventListener("click", () => setF499Status("zero")); + card.querySelector(".f499-cancel")?.addEventListener("click", () => setF499Status("cancel")); + } + checksContainer.appendChild(card); });