Compliance Guide Updated May 2026

AI disclosure laws for home services. State by state.

Here's the reality: if your home services company uses AI to answer customer calls, qualify leads, or book appointments, you must comply with ai disclosure laws home services regulators enforce across federal and state jurisdictions. Non-compliance carries fines ranging from $500 per violation under the TCPA to $50,000+ per violation under state AI transparency acts.

For informational purposes only — consult qualified counsel for advice specific to your business.

Abstract illustration showing scattered legal documents transforming into an organized compliance shield
The core principle

Customers must know when they're talking to AI, not humans.

The truth is: the FCC's Declaratory Ruling was unambiguous. Any technology that generates a human-sounding voice — real-time conversational AI, voice cloning, or LLM-driven agents — falls within existing TCPA restrictions and the broader ai disclosure laws home services teams now operate under. The legal standard depends on how the voice is produced, not how human it sounds.

Flat illustration of a service van surrounded by floating warning triangles representing compliance risks
The exposure

Every home services business using AI faces potential liability exposure.

Whether you're an HVAC contractor, a plumbing company, or an electrical service provider, the ai disclosure laws home services businesses must comply with apply the moment an AI voice answers a call. Federal and state regulators expect ai disclosure laws home services teams to be enforced consistently across every interaction.

TCPA statutory damages
$500 per call or text — up to $1,500 per violation if willful.
State-level penalties
California's AI Transparency Act: $5,000 per violation per day.
Class-action exposure
A single rogue AI agent can expose your business to millions in liability.
Penalty exposure calculator

AI disclosure laws home services penalty calculator.

Quantify how much regulatory risk your call volume carries under current ai disclosure laws home services operators are subject to.

10 100 1,000
0% 50% 100%
Estimated daily exposure
$0
California (SB 942) $0
TCPA violations $0

Illustrative estimates assuming worst-case non-compliance. Class-action and Texas TRAIGA exposure may exceed these figures by orders of magnitude.

Aggregate TCPA class-action filings have surged — up 95% year over year, with aggregate verdicts exceeding $925 million across the docket. The trend underscores why ai disclosure laws home services owners often dismiss as paperwork now drive material financial exposure.

Federal framework

Federal AI disclosure laws home services must follow.

Here's the reality: the FCC confirms that automated call disclosure laws under the TCPA encompass current AI technologies. Any AI that generates human voices requires prior express consent. That single ruling anchors the federal foundation for ai disclosure laws home services operators must follow. Bottom line: the legal status depends on how the voice is produced, not how human it sounds — a critical point for every home services business deploying voice AI.

TCPA consent requirements

Here's the practical breakdown of ai disclosure laws home services teams encounter daily: marketing AI calls require Prior Express Written Consent (PEWC) in 47 states. Informational calls require Prior Express Consent (PEC), which can be oral. In Texas, Louisiana, and Mississippi, oral consent satisfies marketing too after a February 2026 Fifth Circuit ruling.

  • Emergency calls: special TCPA provisions may apply, but explicit consent remains safer.
  • Appointment reminders: require prior express consent.
  • Sales / marketing: require prior express written consent in most states.
  • Follow-ups: consent scope determines requirements.

Federal penalties

Statutory damages stack quickly. Class actions amplify exposure dramatically.

$500
per call or text
$1,500
per willful violation
State by state

State AI disclosure laws home services must follow.

Ten states have enacted distinct rule sets that shape ai disclosure laws home services contractors must navigate. Click any state to expand its disclosure law, effective date, penalty structure, and key requirements.

Strictest penalty
$3M
New York RAISE Act — subsequent violations
Highest daily exposure
$5,000/day
California AI Transparency Act (SB 942)
Longest retention
10 yrs
Virginia SB 1339 opt-out honor period
Disclosure timing

When disclosure must occur.

Bottom line: timing varies dramatically — from immediate disclosure in California to reactive disclosure only when asked in Utah. The ai disclosure laws home services contractors face vary by jurisdiction, so apply the strictest standard nationwide to stay safe across the board. The truth is, most operators end up adopting California-style timing for ai disclosure laws home services compliance because it travels well across every state line.

California
Before AI interaction begins
"Manifest" and "latent" disclosures, per interaction.
Texas
Within first 30 seconds
Plain language AI disclosure, once per call.
Colorado
Point-of-interaction
May be satisfied via prominent posting, per decision point.
Washington
Every 3 hours (adults), 1 hour (minors)
Clear non-human disclosure, recurring throughout the interaction.
Utah
When asked by consumer
Reactive disclosure, upon request only.
Voice script templates

Ready-to-use disclosure scripts.

Here's the reality: three scenarios you can adapt today, each engineered for the ai disclosure laws home services teams face daily. Every script opens the call with a clear and conspicuous disclosure before any qualification or sales content — the simplest way to stay aligned with ai disclosure laws home services regulators audit against.

HVAC emergency call

"Thank you for calling [Company Name]. This call is being handled by our AI assistant to help diagnose your HVAC emergency and connect you with the right technician immediately. If you prefer to speak with a human agent right now, please say 'transfer me' at any time."

How Tradesly handles it

Disclosure compliance, automated by caller location.

Tradesly's platform automatically implements state-appropriate AI disclosure requirements based on caller location, removing the operational burden of ai disclosure laws home services owners typically carry. Our AI receptionist system includes configurable consent disclosures that play before AI engagement begins, with disclosure timing set per-state based on the caller's area code and real-time location verification.

The platform maintains comprehensive audit trails for every call, including disclosure timestamps, consent acknowledgments, and warm transfer protocols that meet the strictest state requirements. When handling emergency calls, the system immediately offers human escalation while maintaining the full compliance documentation that ai disclosure laws home services regulators expect.

All disclosure scripts are regularly updated to reflect changing state requirements, and the system automatically applies the highest applicable standard when caller location crosses multiple jurisdictions — keeping you aligned with ai disclosure laws home services obligations as they evolve.

Flat illustration showing a home services business icon surrounded by a protective network of compliance checkmarks and shields
30-day compliance roadmap

AI disclosure laws home services implementation checklist.

Bottom line: a 30-day roadmap to operationalize ai disclosure laws home services teams can follow week by week. Here's the reality — most operators get tripped up not by the rules themselves, but by the lack of a sequenced plan for adopting the ai disclosure laws home services owners must enforce. Track your progress and click each item to mark complete.

Progress 0 / 16
Documentation

What you must retain.

The truth is: failure to maintain these records when requested by a regulator is often treated as a separate violation under ai disclosure laws home services enforcement actions. Bottom line — your documentation is your defense. See our broader guide to AI call recording laws for related obligations under the wider ai disclosure laws home services framework.

Consent records
Timestamps and method of collection.
AI deployment logs
Decision audit trails for every system.
Call recordings
With disclosure timestamps.
Opt-out requests
Processing records and timestamps.
Compliance matrix
State-by-state for multi-state ops.
Incident logs
Response records for disclosure failures.
Training records
Regular compliance training completion.
Vendor certifications
Third-party AI compliance docs.
Questions

Frequently asked.

Do I need to disclose AI use for inbound customer service calls?
The TCPA's prohibition on artificial voice only applies to outbound calls, but many state ai disclosure laws home services contractors are subject to require disclosure regardless of call direction. Best practice is to disclose AI use on all calls to ensure compliance across all jurisdictions.
What happens if I don't comply with AI disclosure laws?
Penalties under the ai disclosure laws home services operators must follow range from $500 per violation under the TCPA to $50,000+ per violation under state transparency acts. Class action lawsuits are increasingly common, with potential million-dollar exposures for businesses using AI without proper disclosures.
Can I use the same disclosure script in all states?
Yes, using the most restrictive state requirements nationwide is the safest approach when navigating ai disclosure laws home services teams encounter across multiple markets. This "highest common denominator" strategy ensures compliance across all jurisdictions and simplifies operational management.
Do emergency home service calls have different disclosure requirements?
Emergency calls still require disclosure under ai disclosure laws home services teams must follow, but timing may be more flexible. Most states allow disclosure followed by immediate transfer options for true emergencies requiring human assessment of safety issues.
What constitutes "clear and conspicuous" AI disclosure?
Disclosure must be prominent and in plain language at the start of interaction, before collecting personal information. Burying "powered by AI" in terms of service or footers does not meet regulatory standards.
How long must I retain AI disclosure compliance records?
Most ai disclosure laws home services contractors are subject to require 3–5 years of documentation retention. Virginia requires 10-year opt-out honor periods. Maintain comprehensive records including consent timestamps, call recordings, and disclosure confirmations.
Does the B2B exemption apply to home services AI calls?
Calls to published business landlines are exempt under TCPA, but calls to decision-makers' personal cell phones are NOT exempt, even for business purposes. The FCC interprets "residential" broadly to include individual-owned mobile phones.
Get compliant

Manual compliance across 50+ state laws is unsustainable.

Here's the reality: the AI disclosure laws home services companies must navigate are complex and constantly changing. Bottom line — focus on serving customers instead of managing the regulatory risk that ai disclosure laws home services owners are now expected to track in real time.

See how Tradesly automates AI disclosure compliance

State-aware disclosures · Audit trails included · Updated automatically

+ Math.round(n).toLocaleString('en-US'); } function compute() { const calls = parseInt(callsInput.value); const mktPct = parseInt(marketingInput.value) / 100; const mktCalls = Math.round(calls * mktPct); callsDisplay.textContent = calls.toLocaleString(); marketingDisplay.textContent = (mktPct * 100).toFixed(0) + '%'; // California SB 942: up to $5,000 per violation per day. Worst case = every // undisclosed AI call counts as one violation accruing daily. const inCA = stateSelect.value === 'CA'; const ca = inCA ? calls * 5000 : 0; // TCPA: $500 per call (statutory) — only marketing calls without PEWC trigger. // Willful violations are up to $1,500/call; we use the $500 base. const tcpa = mktCalls * 500; caEl.textContent = fmt(ca); tcpaEl.textContent = fmt(tcpa); if (caLabelEl) { caLabelEl.textContent = inCA ? 'California (SB 942)' : 'State AI act (' + stateSelect.value + ')'; } totalEl.textContent = fmt(ca + tcpa); } callsInput.addEventListener('input', compute); marketingInput.addEventListener('input', compute); stateSelect.addEventListener('change', compute); compute(); // ============ State list ============ const states = [ { name: 'California', law: 'AI Transparency Act (SB 942)', date: 'August 2, 2026', penalty: '$5,000 per violation per day', req: 'AI detection tools, manifest disclosures' }, { name: 'Colorado', law: 'Colorado AI Act (SB 24-205)', date: 'June 30, 2026', penalty: 'Up to $20,000 per violation', req: 'Point-of-interaction disclosure' }, { name: 'New York', law: 'RAISE Act (S 6953-B)', date: 'January 1, 2027', penalty: 'Up to $3 million per violation', req: 'Transparency reporting, safety protocols' }, { name: 'Texas', law: 'TRAIGA (HB 149)', date: 'January 1, 2026', penalty: 'Up to $200,000 per violation', req: 'Consumer-facing AI disclosure' }, { name: 'Washington', law: 'Chatbot Disclosure Act (HB 2225)', date: 'January 1, 2027', penalty: 'AG enforcement authority', req: 'Non-human disclosures, safety protocols' }, { name: 'Utah', law: 'AI Policy Act (SB 149)', date: 'May 1, 2024', penalty: 'Up to $2,500 per violation', req: 'Reactive disclosure when asked' }, { name: 'Illinois', law: 'BIPA + AIVIA', date: 'Active', penalty: '$1,000–$5,000 per violation', req: 'Biometric consent, interview disclosure' }, { name: 'Florida', law: 'Mini-TCPA (FTSA)', date: 'Active', penalty: 'Up to $500 per call + fees', req: 'Written consent for all marketing' }, { name: 'Virginia', law: 'SB 1339', date: 'January 2026', penalty: '$500 per violation', req: '10-year opt-out honor period' }, { name: 'Maine', law: 'Chatbot Disclosure Act', date: 'September 24, 2025', penalty: 'Unfair Trade Practices Act', req: 'Human vs. AI distinction required' } ]; const list = document.getElementById('state-list'); states.forEach(s => { const row = document.createElement('div'); row.className = 'state-row bg-white rounded-2xl border border-[#E7EEEA] overflow-hidden'; row.dataset.open = 'false'; row.innerHTML = '' + '
' + '
Law
' + s.law + '
' + '
Effective
' + s.date + '
' + '
Penalty
' + s.penalty + '
' + '
Key requirements
' + s.req + '
' + '
'; list.appendChild(row); row.querySelector('.state-toggle').addEventListener('click', () => { const open = row.dataset.open === 'true'; row.dataset.open = open ? 'false' : 'true'; }); }); // ============ Script tabs ============ const tabs = document.querySelectorAll('.script-tab'); const contents = document.querySelectorAll('.script-content'); tabs.forEach(tab => { tab.addEventListener('click', () => { tabs.forEach(t => t.classList.remove('active')); tab.classList.add('active'); contents.forEach(c => { c.classList.toggle('hidden', c.dataset.content !== tab.dataset.tab); }); }); }); // ============ Checklist ============ const weeks = [ { title: 'Days 1–7', subtitle: 'Audit current AI usage', items: [ 'Inventory all AI systems handling customer calls', 'Document which states your customers call from', 'Review existing consent language and recording disclosures', 'Assess current disclosure practices across all channels' ] }, { title: 'Days 8–14', subtitle: 'Update legal framework', items: [ 'Review consent forms with legal counsel', 'Update privacy policies to include AI disclosure', 'Implement state-specific disclosure requirements', 'Create documentation retention policies' ] }, { title: 'Days 15–21', subtitle: 'Technical implementation', items: [ 'Program AI disclosure scripts into voice systems', 'Test disclosure timing and clarity', 'Implement consent tracking systems', 'Set up compliance monitoring and audit trails' ] }, { title: 'Days 22–30', subtitle: 'Training and testing', items: [ 'Train human agents on warm transfer protocols', 'Test emergency call escalation procedures', 'Conduct compliance spot-checks', 'Document training completion for all staff' ] } ]; const container = document.getElementById('checklist-container'); const progressBar = document.getElementById('progress-bar'); const progressCount = document.getElementById('progress-count'); let total = 0; weeks.forEach((w, wi) => { const card = document.createElement('div'); card.className = 'bg-white rounded-2xl border border-[#E7EEEA] p-6 md:p-8'; let itemsHtml = ''; w.items.forEach((item, ii) => { total++; itemsHtml += '
' + '
' + '' + '
' + '
' + item + '
' + '
'; }); card.innerHTML = '
' + '
' + w.title + '
' + '
' + '
' + w.subtitle + '
' + '
' + itemsHtml + '
'; container.appendChild(card); }); progressCount.textContent = '0 / ' + total; container.addEventListener('click', (e) => { const item = e.target.closest('.checklist-item'); if (!item) return; item.classList.toggle('done'); const done = container.querySelectorAll('.checklist-item.done').length; progressCount.textContent = done + ' / ' + total; progressBar.style.width = ((done / total) * 100) + '%'; }); })(); + Math.round(n).toLocaleString('en-US'); } function compute() { const calls = parseInt(callsInput.value); const mktPct = parseInt(marketingInput.value) / 100; const mktCalls = Math.round(calls * mktPct); callsDisplay.textContent = calls.toLocaleString(); marketingDisplay.textContent = (mktPct * 100).toFixed(0) + '%'; // California SB 942: up to $5,000 per violation per day. Worst case = every // undisclosed AI call counts as one violation accruing daily. const inCA = stateSelect.value === 'CA'; const ca = inCA ? calls * 5000 : 0; // TCPA: $500 per call (statutory) — only marketing calls without PEWC trigger. // Willful violations are up to $1,500/call; we use the $500 base. const tcpa = mktCalls * 500; caEl.textContent = fmt(ca); tcpaEl.textContent = fmt(tcpa); if (caLabelEl) { caLabelEl.textContent = inCA ? 'California (SB 942)' : 'State AI act (' + stateSelect.value + ')'; } totalEl.textContent = fmt(ca + tcpa); } callsInput.addEventListener('input', compute); marketingInput.addEventListener('input', compute); stateSelect.addEventListener('change', compute); compute(); // ============ State list ============ const states = [ { name: 'California', law: 'AI Transparency Act (SB 942)', date: 'August 2, 2026', penalty: '$5,000 per violation per day', req: 'AI detection tools, manifest disclosures' }, { name: 'Colorado', law: 'Colorado AI Act (SB 24-205)', date: 'June 30, 2026', penalty: 'Up to $20,000 per violation', req: 'Point-of-interaction disclosure' }, { name: 'New York', law: 'RAISE Act (S 6953-B)', date: 'January 1, 2027', penalty: 'Up to $3 million per violation', req: 'Transparency reporting, safety protocols' }, { name: 'Texas', law: 'TRAIGA (HB 149)', date: 'January 1, 2026', penalty: 'Up to $200,000 per violation', req: 'Consumer-facing AI disclosure' }, { name: 'Washington', law: 'Chatbot Disclosure Act (HB 2225)', date: 'January 1, 2027', penalty: 'AG enforcement authority', req: 'Non-human disclosures, safety protocols' }, { name: 'Utah', law: 'AI Policy Act (SB 149)', date: 'May 1, 2024', penalty: 'Up to $2,500 per violation', req: 'Reactive disclosure when asked' }, { name: 'Illinois', law: 'BIPA + AIVIA', date: 'Active', penalty: '$1,000–$5,000 per violation', req: 'Biometric consent, interview disclosure' }, { name: 'Florida', law: 'Mini-TCPA (FTSA)', date: 'Active', penalty: 'Up to $500 per call + fees', req: 'Written consent for all marketing' }, { name: 'Virginia', law: 'SB 1339', date: 'January 2026', penalty: '$500 per violation', req: '10-year opt-out honor period' }, { name: 'Maine', law: 'Chatbot Disclosure Act', date: 'September 24, 2025', penalty: 'Unfair Trade Practices Act', req: 'Human vs. AI distinction required' } ]; const list = document.getElementById('state-list'); states.forEach(s => { const row = document.createElement('div'); row.className = 'state-row bg-white rounded-2xl border border-[#E7EEEA] overflow-hidden'; row.dataset.open = 'false'; row.innerHTML = '' + '
' + '
Law
' + s.law + '
' + '
Effective
' + s.date + '
' + '
Penalty
' + s.penalty + '
' + '
Key requirements
' + s.req + '
' + '
'; list.appendChild(row); row.querySelector('.state-toggle').addEventListener('click', () => { const open = row.dataset.open === 'true'; row.dataset.open = open ? 'false' : 'true'; }); }); // ============ Script tabs ============ const tabs = document.querySelectorAll('.script-tab'); const contents = document.querySelectorAll('.script-content'); tabs.forEach(tab => { tab.addEventListener('click', () => { tabs.forEach(t => t.classList.remove('active')); tab.classList.add('active'); contents.forEach(c => { c.classList.toggle('hidden', c.dataset.content !== tab.dataset.tab); }); }); }); // ============ Checklist ============ const weeks = [ { title: 'Days 1–7', subtitle: 'Audit current AI usage', items: [ 'Inventory all AI systems handling customer calls', 'Document which states your customers call from', 'Review existing consent language and recording disclosures', 'Assess current disclosure practices across all channels' ] }, { title: 'Days 8–14', subtitle: 'Update legal framework', items: [ 'Review consent forms with legal counsel', 'Update privacy policies to include AI disclosure', 'Implement state-specific disclosure requirements', 'Create documentation retention policies' ] }, { title: 'Days 15–21', subtitle: 'Technical implementation', items: [ 'Program AI disclosure scripts into voice systems', 'Test disclosure timing and clarity', 'Implement consent tracking systems', 'Set up compliance monitoring and audit trails' ] }, { title: 'Days 22–30', subtitle: 'Training and testing', items: [ 'Train human agents on warm transfer protocols', 'Test emergency call escalation procedures', 'Conduct compliance spot-checks', 'Document training completion for all staff' ] } ]; const container = document.getElementById('checklist-container'); const progressBar = document.getElementById('progress-bar'); const progressCount = document.getElementById('progress-count'); let total = 0; weeks.forEach((w, wi) => { const card = document.createElement('div'); card.className = 'bg-white rounded-2xl border border-[#E7EEEA] p-6 md:p-8'; let itemsHtml = ''; w.items.forEach((item, ii) => { total++; itemsHtml += '
' + '
' + '' + '
' + '
' + item + '
' + '
'; }); card.innerHTML = '
' + '
' + w.title + '
' + '
' + '
' + w.subtitle + '
' + '
' + itemsHtml + '
'; container.appendChild(card); }); progressCount.textContent = '0 / ' + total; container.addEventListener('click', (e) => { const item = e.target.closest('.checklist-item'); if (!item) return; item.classList.toggle('done'); const done = container.querySelectorAll('.checklist-item.done').length; progressCount.textContent = done + ' / ' + total; progressBar.style.width = ((done / total) * 100) + '%'; }); })(); + Math.round(n).toLocaleString('en-US'); } function compute() { const calls = parseInt(callsInput.value); const mktPct = parseInt(marketingInput.value) / 100; const mktCalls = Math.round(calls * mktPct); callsDisplay.textContent = calls.toLocaleString(); marketingDisplay.textContent = (mktPct * 100).toFixed(0) + '%'; // California SB 942: up to $5,000 per violation per day. Worst case = every // undisclosed AI call counts as one violation accruing daily. const inCA = stateSelect.value === 'CA'; const ca = inCA ? calls * 5000 : 0; // TCPA: $500 per call (statutory) — only marketing calls without PEWC trigger. // Willful violations are up to $1,500/call; we use the $500 base. const tcpa = mktCalls * 500; caEl.textContent = fmt(ca); tcpaEl.textContent = fmt(tcpa); if (caLabelEl) { caLabelEl.textContent = inCA ? 'California (SB 942)' : 'State AI act (' + stateSelect.value + ')'; } totalEl.textContent = fmt(ca + tcpa); } callsInput.addEventListener('input', compute); marketingInput.addEventListener('input', compute); stateSelect.addEventListener('change', compute); compute(); // ============ State list ============ const states = [ { name: 'California', law: 'AI Transparency Act (SB 942)', date: 'August 2, 2026', penalty: '$5,000 per violation per day', req: 'AI detection tools, manifest disclosures' }, { name: 'Colorado', law: 'Colorado AI Act (SB 24-205)', date: 'June 30, 2026', penalty: 'Up to $20,000 per violation', req: 'Point-of-interaction disclosure' }, { name: 'New York', law: 'RAISE Act (S 6953-B)', date: 'January 1, 2027', penalty: 'Up to $3 million per violation', req: 'Transparency reporting, safety protocols' }, { name: 'Texas', law: 'TRAIGA (HB 149)', date: 'January 1, 2026', penalty: 'Up to $200,000 per violation', req: 'Consumer-facing AI disclosure' }, { name: 'Washington', law: 'Chatbot Disclosure Act (HB 2225)', date: 'January 1, 2027', penalty: 'AG enforcement authority', req: 'Non-human disclosures, safety protocols' }, { name: 'Utah', law: 'AI Policy Act (SB 149)', date: 'May 1, 2024', penalty: 'Up to $2,500 per violation', req: 'Reactive disclosure when asked' }, { name: 'Illinois', law: 'BIPA + AIVIA', date: 'Active', penalty: '$1,000–$5,000 per violation', req: 'Biometric consent, interview disclosure' }, { name: 'Florida', law: 'Mini-TCPA (FTSA)', date: 'Active', penalty: 'Up to $500 per call + fees', req: 'Written consent for all marketing' }, { name: 'Virginia', law: 'SB 1339', date: 'January 2026', penalty: '$500 per violation', req: '10-year opt-out honor period' }, { name: 'Maine', law: 'Chatbot Disclosure Act', date: 'September 24, 2025', penalty: 'Unfair Trade Practices Act', req: 'Human vs. AI distinction required' } ]; const list = document.getElementById('state-list'); states.forEach(s => { const row = document.createElement('div'); row.className = 'state-row bg-white rounded-2xl border border-[#E7EEEA] overflow-hidden'; row.dataset.open = 'false'; row.innerHTML = '' + '
' + '
Law
' + s.law + '
' + '
Effective
' + s.date + '
' + '
Penalty
' + s.penalty + '
' + '
Key requirements
' + s.req + '
' + '
'; list.appendChild(row); row.querySelector('.state-toggle').addEventListener('click', () => { const open = row.dataset.open === 'true'; row.dataset.open = open ? 'false' : 'true'; }); }); // ============ Script tabs ============ const tabs = document.querySelectorAll('.script-tab'); const contents = document.querySelectorAll('.script-content'); tabs.forEach(tab => { tab.addEventListener('click', () => { tabs.forEach(t => t.classList.remove('active')); tab.classList.add('active'); contents.forEach(c => { c.classList.toggle('hidden', c.dataset.content !== tab.dataset.tab); }); }); }); // ============ Checklist ============ const weeks = [ { title: 'Days 1–7', subtitle: 'Audit current AI usage', items: [ 'Inventory all AI systems handling customer calls', 'Document which states your customers call from', 'Review existing consent language and recording disclosures', 'Assess current disclosure practices across all channels' ] }, { title: 'Days 8–14', subtitle: 'Update legal framework', items: [ 'Review consent forms with legal counsel', 'Update privacy policies to include AI disclosure', 'Implement state-specific disclosure requirements', 'Create documentation retention policies' ] }, { title: 'Days 15–21', subtitle: 'Technical implementation', items: [ 'Program AI disclosure scripts into voice systems', 'Test disclosure timing and clarity', 'Implement consent tracking systems', 'Set up compliance monitoring and audit trails' ] }, { title: 'Days 22–30', subtitle: 'Training and testing', items: [ 'Train human agents on warm transfer protocols', 'Test emergency call escalation procedures', 'Conduct compliance spot-checks', 'Document training completion for all staff' ] } ]; const container = document.getElementById('checklist-container'); const progressBar = document.getElementById('progress-bar'); const progressCount = document.getElementById('progress-count'); let total = 0; weeks.forEach((w, wi) => { const card = document.createElement('div'); card.className = 'bg-white rounded-2xl border border-[#E7EEEA] p-6 md:p-8'; let itemsHtml = ''; w.items.forEach((item, ii) => { total++; itemsHtml += '
' + '
' + '' + '
' + '
' + item + '
' + '
'; }); card.innerHTML = '
' + '
' + w.title + '
' + '
' + '
' + w.subtitle + '
' + '
' + itemsHtml + '
'; container.appendChild(card); }); progressCount.textContent = '0 / ' + total; container.addEventListener('click', (e) => { const item = e.target.closest('.checklist-item'); if (!item) return; item.classList.toggle('done'); const done = container.querySelectorAll('.checklist-item.done').length; progressCount.textContent = done + ' / ' + total; progressBar.style.width = ((done / total) * 100) + '%'; }); })();