Add zero-revenue 499-A filing at $179

New service slug fcc-499a-zero for carriers with no telecom revenue:
- $179 instead of $499 (no revenue analysis needed)
- Minimal intake: entity, officer, filer ID, filing type only
- Skips revenue schedules (blocks 3-4), USF calculations (block 5),
  traffic study upload, and revenue workbook generation
- Fills blocks 1-2 and 6 only, all revenue lines left as zero

Compliance checker: shows both options (mutually exclusive checkboxes)
Order page: maps form_499a_zero to fcc-499a-zero slug
Handler: detects slug and skips revenue pipeline
DC Agent shown when either 499-A variant is checked

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
justin 2026-05-03 02:04:18 -05:00
parent 5dabac856d
commit 3e04a8fc16
5 changed files with 98 additions and 37 deletions

View file

@ -144,6 +144,7 @@ window._existingOCN = "";
var CHECK_TO_SLUG = {
cpni:"cpni-certification", cpni_certification:"cpni-certification",
"499a":"fcc-499a", form_499a:"fcc-499a",
form_499a_zero:"fcc-499a-zero", "499a-zero":"fcc-499a-zero",
"499q":"fcc-499a-499q", form_499q:"fcc-499a-499q",
rmd:"rmd-filing", rmd_filing:"rmd-filing",
stir:"stir-shaken", stir_shaken:"stir-shaken",
@ -159,6 +160,7 @@ var CHECK_TO_SLUG = {
var SLUG_META = {
"cpni-certification": {label:"CPNI Annual Certification", price:14900, desc:"47 CFR § 64.2009 annual CPNI cert filed to FCC ECFS", order:"/order/cpni-certification"},
"fcc-499a": {label:"FCC Form 499-A Filing", price:49900, desc:"Annual USF contribution filing at USAC E-File", order:"/order/fcc-499a"},
"fcc-499a-zero": {label:"FCC Form 499-A (Zero Revenue)", price:17900, desc:"For carriers with no telecom revenue", order:"/order/fcc-499a"},
"fcc-499a-499q": {label:"FCC 499-A + 499-Q Bundle", price:59900, desc:"Annual + quarterly USF projections", order:"/order/fcc-499a-499q"},
"rmd-filing": {label:"RMD Registration / Recertification", price:21900, gov_fee:10000, gov_fee_label:"FCC RMD filing fee", desc:"Robocall Mitigation Database filing + $100 FCC filing fee", order:"/order/rmd-filing"},
"stir-shaken": {label:"STIR/SHAKEN Implementation", price:49900, desc:"STIR/SHAKEN certificate + attestation setup", order:"/order/stir-shaken"},
@ -180,6 +182,8 @@ var frn=params.get("frn")||"";
var slugs=[]; var seen={};
rawKeys.forEach(function(k){var s=CHECK_TO_SLUG[k]||k; if(SLUG_META[s]&&!seen[s]){slugs.push(s);seen[s]=1}});
if(slugs.indexOf("fcc-499a")>=0&&slugs.indexOf("fcc-499a-499q")>=0) slugs.splice(slugs.indexOf("fcc-499a"),1);
// Zero-revenue and full 499-A are mutually exclusive
if(slugs.indexOf("fcc-499a")>=0&&slugs.indexOf("fcc-499a-zero")>=0) slugs.splice(slugs.indexOf("fcc-499a-zero"),1);
var listEl=document.getElementById("pw-svc-list");
var entityBar=document.getElementById("pw-entity-bar");
@ -253,6 +257,9 @@ function renderServices() {
// Deduplicate 499a/499a-499q
if(s==="fcc-499a"&&e.target.checked&&selectedSlugs.indexOf("fcc-499a-499q")>=0) selectedSlugs=selectedSlugs.filter(function(x){return x!=="fcc-499a-499q"});
if(s==="fcc-499a-499q"&&e.target.checked&&selectedSlugs.indexOf("fcc-499a")>=0) selectedSlugs=selectedSlugs.filter(function(x){return x!=="fcc-499a"});
// Zero-revenue ↔ full 499-A mutual exclusion
if(s==="fcc-499a"&&e.target.checked) selectedSlugs=selectedSlugs.filter(function(x){return x!=="fcc-499a-zero"});
if(s==="fcc-499a-zero"&&e.target.checked) selectedSlugs=selectedSlugs.filter(function(x){return x!=="fcc-499a"&&x!=="fcc-499a-499q"});
// STIR/SHAKEN requires OCN — auto-add if not already present
if(s==="stir-shaken"&&e.target.checked&&selectedSlugs.indexOf("ocn-registration")<0&&!window._hasExistingOCN) {
selectedSlugs.push("ocn-registration");

View file

@ -777,7 +777,8 @@ import Base from "../../layouts/Base.astro";
services.push({ id: "stir_shaken", name: "STIR/SHAKEN Implementation", desc: "", price: 499 });
break;
case "form_499a":
services.push({ id: "form_499a", name: "Form 499-A Filing", desc: "", price: 499 });
services.push({ id: "form_499a", name: "Form 499-A Filing", desc: "with revenue", price: 499 });
services.push({ id: "form_499a_zero", name: "Form 499-A (Zero Revenue)", desc: "no telecom revenue", price: 179, altOf: "form_499a" });
if (s === "red") {
services.push({ id: "dc_agent", name: "D.C. Registered Agent", desc: "", price: 99, priceLabel: "$99/yr" });
}
@ -813,10 +814,11 @@ import Base from "../../layouts/Base.astro";
html += `<div class="space-y-2" id="service-list">`;
for (const svc of services) {
const checked = svc.price > 0 && svc.id !== "stir_shaken" ? "checked" : "";
// altOf items start unchecked (they're alternatives to the main item)
const checked = svc.price > 0 && svc.id !== "stir_shaken" && !svc.altOf ? "checked" : "";
const priceLabel = svc.priceLabel || (svc.price > 0 ? `$${svc.price}` : svc.desc || "included");
html += `<label class="flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition">
<input type="checkbox" class="svc-checkbox mt-1 accent-pw-600" data-id="${svc.id}" data-price="${svc.price}" ${checked} />
html += `<label class="flex items-start gap-3 p-3 rounded-lg hover:bg-gray-50 cursor-pointer transition" ${svc.altOf ? `data-alt-of="${svc.altOf}"` : ""}>
<input type="checkbox" class="svc-checkbox mt-1 accent-pw-600" data-id="${svc.id}" data-price="${svc.price}" ${svc.altOf ? `data-alt-of="${svc.altOf}"` : ""} ${checked} />
<div class="flex-1">
<span class="font-medium text-gray-900">${svc.name}</span>
${svc.desc && svc.price > 0 ? `<span class="text-xs text-gray-500 ml-1">${svc.desc}</span>` : ""}
@ -838,6 +840,27 @@ import Base from "../../layouts/Base.astro";
paymentIcons.classList.remove("hidden");
reminderCta.classList.add("hidden");
// Mutual exclusion for alt items (e.g. 499-A vs 499-A Zero Revenue)
ctaContent.querySelectorAll(".svc-checkbox[data-alt-of]").forEach((alt) => {
alt.addEventListener("change", () => {
if (alt.checked) {
const main = ctaContent.querySelector(`.svc-checkbox[data-id="${alt.dataset.altOf}"]`);
if (main) main.checked = false;
updateTotal();
}
});
});
ctaContent.querySelectorAll(".svc-checkbox:not([data-alt-of])").forEach((main) => {
main.addEventListener("change", () => {
if (main.checked) {
ctaContent.querySelectorAll(`.svc-checkbox[data-alt-of="${main.dataset.id}"]`).forEach((alt) => {
alt.checked = false;
});
}
updateTotal();
});
});
// Total calculation
function updateTotal() {
const boxes = ctaContent.querySelectorAll(".svc-checkbox");
@ -845,8 +868,8 @@ import Base from "../../layouts/Base.astro";
let pricedCount = 0;
const selectedIds = [];
// If 499-A is unchecked, hide and uncheck DC Agent
const f499Checked = Array.from(boxes).some((cb) => cb.dataset.id === "form_499a" && cb.checked);
// If neither 499-A variant is checked, hide and uncheck DC Agent
const f499Checked = Array.from(boxes).some((cb) => (cb.dataset.id === "form_499a" || cb.dataset.id === "form_499a_zero") && cb.checked);
boxes.forEach((cb) => {
if (cb.dataset.id === "dc_agent") {
const label = cb.closest("label");