Find your medical, dental or vision plan. See who to appeal to, how long you have, and which
regulator licenses them. Then build the letter, right here on this page.
—Companies
—Named clinicians
—With appeal contacts
—Letter templates
51States & DC
Any state
Loading the directory…
Loading 969 companies
Pick a company on the left
You will get its parent company, where it operates, member services, the appeal
address and deadline, published emails, and any licensed doctors it names publicly.
Appeal deadlines and addresses change and vary by plan and state. The controlling documents are
your certificate of coverage, your explanation of benefits, and the provider agreement.
Confirm what you find here against your own denial letter before you file.
Loading appeal records…
Loading appeal records
Choose a company to see its appeal process
Who may appeal, how many internal levels, the filing deadline, decision turnaround,
where to send it, what to include, peer to peer review, expedited review, and
external review.
Loading…
Pick your state
You will get the medical, dental and optometry licensing boards, the license lookup and
complaint links, the Department of Insurance, the external review path, the Medicaid
dental program and the state dental association.
Your details
Nothing you type here is saved or sent anywhere; it disappears when you close the page.
A quick note before you type: this website is not HIPAA compliant, and privacy and
security cannot be guaranteed, so only share what you are comfortable with. You are
welcome to leave every field blank and fill in the printed letter on your own device.
The full disclaimer is at the bottom of every page.
This letter is yours to change.
Fill in the boxes on the left, use Add your own notes for anything it misses or gets wrong,
and after you copy or print it you can edit every word in your own document before sending.
Your own notes
If something about your situation is missing from this letter, or said in a way that
does not fit, write it here in your own words and it will be added above the signature.
Nothing you write here is stored; it disappears when you leave, so keep your own copy
and fill in any remaining blanks on your own device. The note above about what to share
applies here too.
Can't find what you are looking for?
Have any constructive criticism? Do the letter templates need some attention, or do you have
other ideas to make this the most powerful appeal, complaint and pushback tool it can be?
Tell Stephanie directly.
This resource was produced with the assistance of artificial intelligence and compiled by
Stephanie Wright (stephaniewright.com) from publicly available sources for informational and
market research purposes only. It is not an official statement of any company's staffing, pay, or
claims procedures, is not employment, legal, medical, dental, insurance or financial advice, and may
contain errors, omissions or out of date information. It is a resource, not an absolute. Using it does
not create any attorney and client, clinician and patient, or consultant and client relationship with
Stephanie Wright or Stephanie Wright Practice Management. It is the responsibility
of the reader and user of this content to know their own state and national laws and their
insurance contract obligations, and to confirm every detail independently before relying on it.
Compensation figures labeled estimate are third party ranges, not the individual's actual pay.
Appeal deadlines and addresses change and vary by plan and state; the controlling documents are
the member's certificate of coverage, the explanation of benefits, and the provider agreement.
Stephanie Wright accepts no liability for decisions made or actions taken based on this resource.
This website is not HIPAA compliant and is not a HIPAA covered entity. Do not enter protected
health information anywhere on this site. Export or copy your letter and add identifying information on
your own device, outside this website; anything you choose to type here is your own decision and your own
responsibility. Stephanie Wright and Stephanie Wright Practice Management are not responsible for, and
will not be held liable for, any work performed on or through this site, any guidance, suggested next
steps or content it provides, or any decision made, action taken or outcome that results from its use.
You use this toolkit entirely at your own risk. By signing in, every user also agrees to indemnify,
defend and hold harmless Stephanie Wright and Stephanie Wright Practice Management from any claim,
loss or expense arising out of their use or misuse of this toolkit or of anything created with it.
Terms of use. This toolkit is provided as is and as available, without warranties of any
kind, express or implied, including accuracy, completeness, fitness for a particular purpose and
non infringement. To the fullest extent permitted by law, Stephanie Wright and Stephanie Wright
Practice Management will not be liable for any damages of any kind arising out of or related to
this toolkit, including direct, indirect, incidental, special, consequential, exemplary or punitive
damages, lost profits, lost data or reputational harm, even if advised of the possibility. Each
user releases and forever discharges Stephanie Wright and Stephanie Wright Practice Management
from any claim arising out of their use of this toolkit or of anything created with it. This
toolkit is for personal, non commercial use only; scraping, bulk downloading, republishing,
reselling or redistributing its content is prohibited. The toolkit may be changed, suspended or
discontinued at any time without notice and without liability. No guarantee is made that any
letter, appeal, complaint or negotiation prepared with this toolkit will succeed. If any part of
these terms or of the sign in acknowledgments is found unenforceable, the remainder stays in full
effect. These terms are governed by the laws of the State of Michigan.
Replace every highlighted field in a letter with your own details before you send it.
';
}
/* Everything about one carrier on one screen. Sections fill in as their
tabs load. Every value comes from the sheet; where the sheet has
nothing, the section says so instead of guessing. */
function apRecordRows(rr){
var g=function(n){ return AP.get(rr,n); };
var rows='';
rows+=kv('Who may appeal', g('Who May Appeal'));
rows+=kv('Internal levels', g('Internal Levels'));
if(g('Filing Deadline')) rows+='
Filing deadline
'+esc(g('Filing Deadline'))+'
';
rows+=kv('Decision turnaround', g('Decision Turnaround'));
rows+=kv('Timely filing (original claim)', g('Timely Filing (original claim)'));
rows+=kv('How to file', g('How to File'));
rows+=kv('Portal or appeals page', g('Portal / Appeals URL'));
rows+=kv('Mail to', g('Mail Address'));
rows+=kv('Fax', g('Fax'));
rows+=kv('Phone', g('Phone'));
rows+=kv('Email', multi(g('Email')), true);
rows+=kv('Form required', g('Form'));
rows+=kv('What to include', g('What to Include'));
rows+=kv('Peer to peer review', g('Peer to Peer / Dentist to Dentist'));
rows+=kv('Expedited or urgent', g('Expedited / Urgent'));
rows+=kv('External review', g('External Review'));
rows+=kv('Medicaid or Medicare Advantage notes', g('Medicaid / Medicare Advantage Notes'));
rows+=kv('Tips', g('Tips'));
rows+=kv('Information as of', g('As Of'));
return rows;
}
function clinBlocks(T, hits){
var h='';
hits.forEach(function(r){
h+='
This carrier does not publish these details. Check your denial letter, your EOB, or the provider manual.
')+
'
Appeal process
'+
'
Loading
'+
'
Doctors publicly listed
'+
'
Loading
'+
''+
'
';
/* appeal record, in full */
load('appeals','Company').then(function(T){
if(!AP) AP=T;
var hit=null;
for(var i=0;i<T.rows.length;i++){
if((T.get(T.rows[i],'Company')||'').toLowerCase()===name.toLowerCase()){ hit=T.rows[i]; break; }
}
var sec=el('switApSec'); if(!sec) return;
var inner = hit ? apRecordRows(hit) : '';
sec.innerHTML='
Appeal process
'+
(inner?'
'+inner+'
'
:'
This carrier does not publish its appeal process, so there is nothing to show here that would be real. The controlling documents are your denial letter, your explanation of benefits and the provider manual. Call member services and ask for the appeal instructions in writing.
');
}, function(){
var sec=el('switApSec');
if(sec) sec.innerHTML='
Appeal process
The appeal records could not load right now. Try again in a moment.
';
});
/* every clinician the sheet lists for this company */
var cat=(CO.get(r,'Category')||'').toLowerCase();
var key = cat.indexOf('den')===0?'dental':cat.indexOf('vis')===0?'vision':'medical';
load(key,'Company').then(function(T){
var hits=T.rows.filter(function(rr){ return T.get(rr,'Company')===name && T.get(rr,'Name'); });
var sec=el('switDocSec'); if(!sec) return;
if(!hits.length){
sec.innerHTML='
Doctors publicly listed
'+
'
No clinician is named publicly for '+esc(name)+'. '+
'Most regional plans and Medicaid managed care organizations do not publish who signs their clinical '+
'denials. Ask for the reviewing doctor\'s name and credentials in writing as part of your appeal.
';
return;
}
sec.innerHTML='
Doctors publicly listed ('+hits.length+')
'+
'
These names come from the company\'s own public pages, SEC filings, Form 990s and '+
'state filings, exactly as recorded in the directory. Use business channels only.
'+
clinBlocks(T, hits);
}, function(){
var sec=el('switDocSec');
if(sec) sec.innerHTML='
Doctors publicly listed
That list could not be loaded right now. Try again in a moment.
';
});
/* the saved state's regulators, if the visitor has set one */
var stSec=el('switStSec');
if(!HOMESTATE){
stSec.innerHTML='
Set your state on the Start here tab and your state regulator and licensing board details will appear here automatically.
';
} else {
stSec.innerHTML='
Your state: '+esc(HOMESTATE)+'
'+
'
Loading
';
load('states','State').then(function(T){
if(!ST) ST=T;
var row=null;
for(var i=0;i<T.rows.length;i++){ if((T.get(T.rows[i],'State')||'')===HOMESTATE){ row=T.rows[i]; break; } }
var sec=el('switStSec'); if(!sec) return;
if(!row){ sec.innerHTML='
Your state: '+esc(HOMESTATE)+'
No directory row was found for that state.
'; return; }
var sg=function(n,occ){
var c=0;
for(var j=0;j<T.head.length;j++){ if(T.head[j]===n){ if(c===(occ||0)) return (row[j]||'').trim(); c++; } }
return '';
};
var rows2='';
rows2+=kv('Department of Insurance', sg('Dept of Insurance'));
rows2+=kv('Consumer complaint', sg('Consumer Complaint'));
rows2+=kv('External review', sg('External Review'));
rows2+=kv('DOI phone', sg('Phone',3));
var bd = key==='dental'?['Dental board',sg('Dental Board'),sg('Complaint',1)]
: key==='vision'?['Optometry board',sg('Optometry Board'),sg('Complaint',2)]
: ['Medical board',sg('Medical Board'),sg('Complaint',0)];
rows2+=kv(bd[0], bd[1]);
rows2+=kv(bd[0]+' complaint', bd[2]);
sec.innerHTML='
Your state: '+esc(HOMESTATE)+'
'+
(rows2?'
'+rows2+'
':'
The directory has no regulator details recorded for this state.
');
}, function(){
var sec=el('switStSec');
if(sec) sec.innerHTML='
Your state: '+esc(HOMESTATE)+'
The state directory could not load right now.
';
});
}
}
/* Serialise exactly what is on the screen, nothing more. */
function companyCopyText(){
var parts=[], nodes=el('switDetail').querySelectorAll('h2,h3,h4,dt,dd,.swit-bd div,.swit-warn,.swit-note');
for(var i=0;i<nodes.length;i++){
var n=nodes[i], t=(n.textContent||'').replace(/\s+/g,' ').trim();
if(!t) continue;
if(n.tagName==='H2'){ parts.push(t.toUpperCase()); parts.push(''); }
else if(n.tagName==='H3'){ parts.push(''); parts.push('--- '+t.toUpperCase()+' ---'); }
else if(n.tagName==='H4'){ parts.push(''); parts.push('* '+t); }
else if(n.tagName==='DT'){ parts.push(t+':'); }
else if(n.tagName==='DD'){ if(parts.length) parts[parts.length-1]+=' '+t; }
else if(n.className && String(n.className).indexOf('swit-')===-1 && n.parentNode && n.parentNode.className==='swit-bd'){
var em=n.querySelector('em');
if(em){ var lb=(em.textContent||'').trim(); parts.push(' '+lb+': '+t.slice(lb.length).trim()); }
else parts.push(' '+t);
}
else if(/swit-(warn|note)/.test(String(n.className))){ parts.push(''); parts.push(t); }
}
parts.push('');
parts.push('Copied from the Insurance Pushback Toolkit, stephaniewright.com, on '+todayLong()+'.');
parts.push('This information may be incomplete or out of date. Verify every detail against your own plan documents and notices before relying on it.');
return parts.join('\n');
}
el('switDetail').addEventListener('click',function(e){
var b=e.target.closest('[data-act]'); if(!b || !coSel) return;
var name=CO.get(coSel,'Company');
if(b.dataset.act==='letter'){ gotoTab('let'); setTimeout(function(){ el('switLCo').value=name; renderLetter(); },60); }
if(b.dataset.act==='copy'){
window.switAccPop&&window.switAccPop();
var txt=companyCopyText();
var done=function(){ toast('Copied'); };
if(navigator.clipboard && navigator.clipboard.writeText){
navigator.clipboard.writeText(txt).then(done, function(){ toast('Press Ctrl+C to copy'); });
} else toast('Press Ctrl+C to copy');
}
});
/* boot the directory */
load('companies','Company').then(function(T){
CO=T;
var med=0,den=0,vis=0,clin=0,appealCt=0;
T.rows.forEach(function(r){
var c=(T.get(r,'Category')||'').toLowerCase();
if(c.indexOf('med')===0) med++; else if(c.indexOf('den')===0) den++; else if(c.indexOf('vis')===0) vis++;
var n=parseInt(T.get(r,'Clinicians Named'),10); if(n>0) clin+=n;
if(T.get(r,'Appeals URL')||T.get(r,'Appeals Mail Address')||T.get(r,'Appeals Phone')) appealCt++;
});
var s=el('switStats').children;
s[0].innerHTML=''+T.rows.length+'Companies';
s[1].innerHTML=''+clin+'Named clinicians';
s[2].innerHTML=''+appealCt+'With appeal contacts';
var dl=el('switCoList');
dl.innerHTML=T.rows.map(function(r){ return ''; }).join('');
renderList();
}).catch(function(err){
el('switList').innerHTML='
The directory could not load. '+
'Refresh the page, and if it keeps happening the source sheet may have been unpublished.
';
el('switCount').textContent='Unavailable';
});
/* ==================== APPEALS ==================== */
var AP=null, apFiltered=[], apLv='';
var apReady=false;
function initAppeals(){
if(apReady) return; apReady=true;
load('appeals','Company').then(function(T){
AP=T; renderAList(el('switAQ').value||'');
}).catch(function(){
el('switAList').innerHTML='
Appeal records could not load right now.
';
el('switACount').textContent='Unavailable';
});
}
var aqT;
el('switAQ').addEventListener('input',function(){ var v=this.value; clearTimeout(aqT); aqT=setTimeout(function(){renderAList(v);},140); });
el('switALv').addEventListener('click',function(e){
var b=e.target.closest('.swit-chip'); if(!b) return;
apLv=b.dataset.lv;
this.querySelectorAll('.swit-chip').forEach(function(x){ x.setAttribute('aria-pressed', x===b?'true':'false'); });
renderAList(el('switAQ').value||'');
});
function renderAList(q){
if(!AP) return;
q=(q||'').trim().toLowerCase();
apFiltered=AP.rows.filter(function(r){
if(!AP.get(r,'Company')) return false;
if(apLv==='full' && (AP.get(r,'Detail Level')||'').toLowerCase().indexOf('full')!==0) return false;
if(q && (AP.get(r,'Company')+' '+AP.get(r,'Parent')).toLowerCase().indexOf(q)===-1) return false;
return true;
});
el('switACount').textContent=apFiltered.length+' of '+AP.rows.length+' appeal records';
var cap=Math.min(apFiltered.length,400), h=[];
for(var i=0;i<cap;i++){
var r=apFiltered[i];
h.push('');
}
if(!cap) h.push('
No appeal record matches that search.
');
else if(apFiltered.length>cap) h.push('
'+(apFiltered.length-cap)+' more match. Keep typing.
');
el('switAList').innerHTML=h.join('');
if(cap===1) el('switAList').querySelector('.swit-item').click();
}
el('switAList').addEventListener('click',function(e){
var b=e.target.closest('.swit-item'); if(!b) return;
this.querySelectorAll('.swit-item').forEach(function(x){ x.removeAttribute('aria-current'); });
b.setAttribute('aria-current','true');
showAppeal(apFiltered[+b.dataset.i]);
});
function showAppeal(r){
var g=function(n){ return AP.get(r,n); };
var rows='';
rows+=kv('Who may appeal', g('Who May Appeal'));
rows+=kv('Internal levels', g('Internal Levels'));
if(g('Filing Deadline')) rows+='
Filing deadline
'+esc(g('Filing Deadline'))+'
';
rows+=kv('Decision turnaround', g('Decision Turnaround'));
rows+=kv('Timely filing (original claim)', g('Timely Filing (original claim)'));
rows+=kv('How to file', g('How to File'));
rows+=kv('Portal or appeals page', g('Portal / Appeals URL'));
rows+=kv('Mail to', g('Mail Address'));
rows+=kv('Fax', g('Fax'));
rows+=kv('Phone', g('Phone'));
rows+=kv('Email', multi(g('Email')), true);
rows+=kv('Form required', g('Form'));
rows+=kv('What to include', g('What to Include'));
rows+=kv('Peer to peer review', g('Peer to Peer / Dentist to Dentist'));
rows+=kv('Expedited or urgent', g('Expedited / Urgent'));
rows+=kv('External review', g('External Review'));
rows+=kv('Medicaid or Medicare Advantage notes', g('Medicaid / Medicare Advantage Notes'));
rows+=kv('Tips', g('Tips'));
rows+=kv('Information as of', g('As Of'));
el('switADetail').innerHTML=
'
';
h+='';
el('switStOut').innerHTML=h;
}
el('switStOut').addEventListener('click',function(e){
var b=e.target.closest('[data-st-letter]'); if(!b) return;
var s=b.getAttribute('data-st-letter');
gotoTab('let');
setTimeout(function(){
el('switLSel').value='doi1'; renderLetter();
setTimeout(function(){
var f=ROOT.querySelector('[data-fkey="[State]"]'); if(f){ f.value=s; renderLetter(); }
},40);
},60);
});
/* ==================== LETTER LIBRARY ====================
Text below is Stephanie Wright's own letter library from the
Insurance Toolkit page, reproduced word for word.
======================================================== */
var LETTERS=[
{id:'doi1',group:'Department of Insurance',name:'DOI: Complaint regarding company policies',
subject:'Complaint Regarding [Dental Benefit Company’s Name] Policies',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
To the [State] Department of Insurance:
I am writing to file a formal complaint regarding the practices of [Dental Benefit Company’s Name].
These practices have restricted my ability to continue care with my trusted clinician, [Clinician or Practice/Organization Name], who is no longer directly contracted with [Dental Benefit Company’s Name].
Specifically, [Dental Benefit Company’s Name] has created barriers through:
• Arbitrary plan rules, downgrades, and denials
• Administrative hurdles that delay or deny necessary treatment
• Restrictive policies that interfere with care recommended by my clinician
• Payment rules that may require members to pay in full at the time of service
• Communications that pressure patients to leave a trusted dental provider rather than clearly explaining their options
As a patient, I value my relationship with my clinician, who has provided exceptional care. These practices are forcing me to choose between paying the full fee up front, delaying care, or seeking care elsewhere. This disrupts continuity of care and puts my oral health at risk.
I urge the Department of Insurance to investigate [Dental Benefit Company’s Name] for unfair practices and to take action to protect patients like myself and the dental professionals who care for us.
Thank you for your attention to this matter. For additional information, please feel free to contact me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]`},
{id:'doi2',group:'Department of Insurance',name:'DOI: Urgent complaint, unfair practices',
subject:'Urgent Complaint: Unfair Practices by [Dental Benefit Company’s Name]',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
To the [State] Department of Insurance:
I am writing to formally request action regarding the unfair practices of [Dental Benefit Company’s Name].
As a patient of [Clinician or Practice/Organization Name], I have seen firsthand how restrictive plan rules can interfere with my ability to continue care with a clinician I trust.
These practices have gone unchecked for too long. They include:
• Arbitrary denials, downgrades, and restrictive plan rules
• Administrative roadblocks that delay or deny claims
• Payment rules that place the financial burden on members at the time of service
• Confusing communications that pressure patients to choose a clinician directly contracted with the plan without fully explaining their rights or options
This is not just about paperwork. It is about my ability to receive the care I pay for through my premiums. Dental benefit companies should not create barriers that interfere with patient health or disrupt long-standing doctor-patient relationships.
It is time for the [State] Department of Insurance to hold [Dental Benefit Company’s Name] accountable. I ask that you investigate these practices immediately and take action to ensure that dental benefit companies fulfill their obligation to patients.
As a patient, I am being forced to choose between continuing care with my trusted clinician under more burdensome plan rules or finding an entirely new provider, disrupting years of consistent care. This is unfair, unethical, and preventable if [Dental Benefit Company’s Name] is held accountable.
I expect a prompt response to this complaint and am prepared to escalate my concerns to elected officials and advocacy groups if necessary.
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]`},
{id:'co1',group:'The insurance company',name:'Company: Protect patient choice and fair administration',
subject:'Request to Protect Patient Choice and Fair Plan Administration',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
To [Dental Benefit Company’s Name]:
I am writing to express my disappointment regarding your company’s practices, which have caused my clinician, [Clinician or Practice/Organization Name], to no longer be directly contracted with your plan.
I have been a patient at this practice for [X years] and have always received high-quality care. I value the relationship I have built with this dental team.
Your policies directly harm members by creating arbitrary rules, downgrades, denials, administrative burdens, and payment requirements that interfere with patient choice.
I am requesting the following actions from your company:
• Remove arbitrary denials, downgrades, and restrictive plan rules.
• Reduce unnecessary administrative hurdles that prevent timely approvals and claims processing.
• Stop requiring members to pay in full at the time of service when the plan may still send payment later under its own rules.
• Provide clear, honest written explanations of how members can continue care with clinicians who are not directly contracted with your company.
• Protect the patient’s right to choose the clinician they trust.
As a patient, I deserve access to the clinician of my choice without being forced to choose between paying the full fee up front, delaying care, or receiving care from someone unfamiliar with my history.
Please respond to this letter with a resolution plan.
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]`},
{id:'co2',group:'The insurance company',name:'Company: Protect patient-clinician relationships',
subject:'Protect Patient-Clinician Relationships',
body:`To [Recipient]:
I am writing with concern about recent changes affecting my dental care with [Dental Benefit Company’s Name].
My clinician, [Clinician or Practice/Organization Name], has cared for my family for years. Their decision to no longer be directly contracted with [Dental Benefit Company’s Name] is deeply troubling because it directly impacts my ability to continue care with a provider I trust.
These changes are the result of policies that create unnecessary barriers for both patients and dental providers. Arbitrary rules, downgrades, denials, delays, and payment requirements should not interfere with my access to quality care.
As a result, I am being forced to either find a new provider or pay the full fee up front at the time of service. Both options place an unnecessary burden on me as a loyal policyholder.
I urge you to reconsider your policies and ensure fair treatment for patients and providers. Maintaining access to trusted dental professionals is critical to our health and well-being.
Sincerely,
[Your Name]`},
{id:'co3',group:'The insurance company',name:'Company: Enough is enough, restore fair practices',
subject:'Enough Is Enough: Restore Fair Practices for Patients and Providers',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
To [Dental Benefit Company’s Name]:
I am writing as a loyal policyholder to express my frustration with your company’s treatment of patients and dental providers.
My clinician, [Clinician or Practice/Organization Name], is no longer directly contracted with your company because of restrictive plan rules, excessive administrative demands, arbitrary downgrades, and claim denials that interfere with patient care.
This is not just a financial inconvenience. It is a betrayal of the trust I placed in your company when I chose this policy. I pay my premiums in good faith, and in return, I expect access to the clinician of my choice.
Your actions are making that harder.
It is time for [Dental Benefit Company’s Name] to stop placing restrictive plan rules ahead of patient care.
Specifically, I am asking that you:
• Remove arbitrary denials, downgrades, and restrictive plan rules for care my clinician has determined is necessary for my health.
• Eliminate unnecessary administrative delays that interfere with approvals and claims processing.
• Stop requiring members to pay in full at the time of service when the plan may still send payment later under its own rules.
• Commit to transparency in your dealings with patients and providers.
• Clearly explain how members can continue care with clinicians who are not directly contracted with your company.
Your policies are disrupting doctor-patient relationships and forcing patients to either pay the full fee up front, delay care, or leave the clinician they trust.
Enough is enough.
I expect a detailed response outlining how you plan to address these issues. If no action is taken, I will escalate my concerns to the Department of Insurance, elected officials, and consumer advocacy organizations.
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]`},
{id:'co4',group:'The insurance company',name:'Company: Patients deserve better',
subject:'Patients Deserve Better: Enough Is Enough',
body:`To [Recipient’s Name or Department]:
I am writing out of frustration and concern.
My clinician, [Clinician or Practice/Organization Name], is no longer directly contracted with [Dental Benefit Company’s Name] because of the company’s burdensome policies, arbitrary downgrades, denials, and restrictive plan rules.
I have been with this practice for [X years]. Now, because of your company’s policies, I am being asked to disrupt my care or pay the full fee up front at the time of service.
This needs to be corrected.
Patients and providers deserve better. Your company’s actions are not just inconvenient; they are harmful. They create financial stress for patients like me and interfere with the doctor-patient relationship.
Your responsibility as a dental benefit company is to support access to care, not hinder it. Yet your actions make it harder for patients to continue care with providers they know and trust.
I am asking that you change course immediately:
• Remove arbitrary denials, downgrades, and restrictive plan rules for care my clinician has deemed necessary for my health.
• End administrative delays that frustrate both patients and providers.
• Stop requiring members to pay in full at the time of service when the plan may still send payment later under its own rules.
• Restore trust with the people who pay premiums and rely on your plan.
• Respect the patient’s right to choose their clinician.
I refuse to stand by while your company damages the doctor-patient relationship I have worked hard to maintain.
You need to do better, for me, for your other policyholders, and for the dental professionals who deserve respect.
I expect a response outlining how you will address these issues. Failure to act will result in complaints to the Department of Insurance, media outlets, and advocacy groups.
Enough is enough.
Sincerely,
[Your Name]`},
{id:'hr1',group:'Human Resources',name:'HR: Request for review of dental benefits',
subject:'Request for Review of [Dental Benefit Company’s Name] Dental Benefits',
body:`Dear [HR Representative’s Name],
I am writing to express my concern about the dental benefits provided through our company’s plan with [Dental Benefit Company’s Name].
Recently, I learned that my long-time clinician, [Clinician or Practice/Organization Name], will no longer be directly contracted with [Dental Benefit Company’s Name] due to unreasonably burdensome policies and restrictive plan rules.
This change directly impacts my ability to receive high-quality care and reflects poorly on the dental benefits offered by our company.
As an employee, I rely on my benefits package to support my health and well-being. This recent development demonstrates that [Dental Benefit Company’s Name] may not be meeting those needs.
I am asking the company to:
• Review alternative dental benefit providers that prioritize patient choice and access to quality care.
• Require the current dental benefit company to remove arbitrary denials, downgrades, and restrictive plan rules for care my clinician has deemed necessary for my health.
• Require the plan to pay the dental office directly when applicable instead of forcing members to pay in full on the day of service.
• Review whether the current plan is creating unnecessary financial and administrative burdens for employees.
• Consider employee feedback before renewing or continuing this dental benefit plan.
Providing access to trusted healthcare providers is a vital component of an effective benefits package. I urge you to take action to ensure our dental benefits truly support the health and satisfaction of employees.
Thank you for your attention to this matter. I am happy to provide additional information or resources if needed.
Sincerely,
[Your Name]`},
{id:'hr2',group:'Human Resources',name:'HR: Supporting employees’ access to care',
subject:'Dental Benefit Concern: Supporting Employees’ Access to Care',
body:`Dear [HR Representative’s Name],
As an employee of [Company Name], I am proud of the organization’s commitment to our health and well-being.
However, I must share my growing concern about the dental benefits provided through [Dental Benefit Company’s Name].
Recently, my trusted clinician, [Clinician or Practice/Organization Name], became no longer directly contracted with [Dental Benefit Company’s Name] due to restrictive plan rules, arbitrary downgrades and denials, and administrative burdens imposed by the dental benefit company.
This change leaves me in a difficult position:
• Either I continue care with my trusted clinician and pay the full fee up front at the time of service.
• Or I switch providers, disrupting years of care and risking a decline in continuity and quality.
Neither option reflects the type of support I believe [Company Name] strives to provide to its employees.
Dental health is essential, and the current plan undermines access to the care employees need and deserve.
I kindly request that you:
• Engage with employees to better understand the impact of current dental benefits.
• Advocate for fairer plan rules or consider switching to a dental benefit company with better practices.
• Require the removal of arbitrary denials, downgrades, and restrictive policies for care my clinician has deemed necessary for my health.
• Provide flexible benefits that allow employees to choose trusted providers without unnecessary financial or logistical barriers.
• Review whether employees are being required to pay in full at the time of service because of plan rules.
Employees who feel supported by their benefits are more likely to stay loyal and perform at their best.
I trust [Company Name] will take this matter seriously and explore solutions to address these concerns.
Thank you for your time and attention. I am happy to discuss this further.
Sincerely,
[Your Name]`},
{id:'hr3',group:'Human Resources',name:'HR: Urgent request to address dental benefit issues',
subject:'Urgent Request to Address Dental Benefit Issues',
body:`Dear [HR Representative’s Name],
I am writing to express a significant concern about the dental benefits offered by [Company Name].
Recently, my clinician, [Clinician or Practice/Organization Name], became no longer directly contracted with [Dental Benefit Company’s Name] due to restrictive plan rules, arbitrary downgrades, denials, administrative burdens, and payment requirements imposed by the dental benefit company.
This change negatively impacts my ability to access timely, high-quality dental care and highlights the limitations of our current plan.
The implications of this issue go beyond individual inconvenience. Dental care affects employee health, productivity, morale, and long-term well-being.
When employees lose easy access to trusted dental providers, they may delay care, miss work, experience unnecessary stress, or face more significant dental problems later.
Limited access to care due to restrictive benefit policies can increase long-term healthcare costs for both employees and employers.
By failing to provide benefits that support access to trusted providers, [Company Name] risks employee dissatisfaction and avoidable disruption in care.
To better support employee health and morale, I urge [Company Name] to:
• Reevaluate the partnership with [Dental Benefit Company’s Name] and consider alternative dental plans that prioritize access, patient choice, and continuity of care.
• Explore creative solutions, such as direct payment arrangements or employer-funded dental stipends, which would give employees greater flexibility in choosing their providers.
• Survey employees to assess satisfaction with current dental benefits and gather feedback on potential changes.
• Review whether the current plan requires members to pay in full at the time of service due to plan rules.
• Require the plan to remove arbitrary denials, downgrades, and restrictive rules that interfere with care recommended by licensed dental professionals.
Investing in better dental benefits will improve employee well-being and demonstrate that [Company Name] values its workforce.
Employees who feel supported in their healthcare needs are more engaged, productive, and loyal to their employer.
I appreciate your time and attention to this important issue. I am happy to provide further information or participate in discussions to improve our benefits.
Sincerely,
[Your Name]`},
{id:'cfo1',group:'CFO',name:'CFO: Dental benefits need improvement',
subject:'Dental Benefits Need Improvement',
body:`Dear [HR Representative’s Name / CFO’s Name],
I am seriously concerned about the dental benefits provided through [Company Name].
[Dental Benefit Company’s Name] has created a situation where trusted, high-quality providers are no longer directly contracted because of restrictive plan rules, arbitrary downgrades, denials, administrative burdens, and payment requirements.
This means I, and likely many other employees, may either have to pay in full at the time of service or lose access to the care we have relied on for years.
As an employer, [Company Name] prides itself on offering competitive benefits to attract and retain talent. However, the current dental plan fails to meet this standard.
It is frustrating and disappointing to know that our benefits align with a dental benefit company that places unnecessary barriers between patients and providers.
I urge the company to:
• Reevaluate its partnership with [Dental Benefit Company’s Name], focusing on plans that support patient choice, continuity of care, and less restrictive plan rules.
• Survey employees to understand their satisfaction with dental benefits.
• Explore alternatives such as plans that pay dental offices directly when applicable or employer-funded dental stipends.
• Review whether current plan rules are forcing employees to pay in full at the time of service.
• Prioritize dental benefits that reduce administrative frustration and support employee access to trusted providers.
When employees feel supported in their healthcare needs, productivity, morale, and loyalty increase.
Please take action to ensure our benefits align with these values.
Sincerely,
[Your Name]`},
{id:'cfo2',group:'CFO',name:'CFO: Improving employee satisfaction through dental benefits',
subject:'Improving Employee Satisfaction Through Dental Benefits',
body:`Dear [CFO’s Name],
As an employee invested in the success of [Company Name], I wanted to bring to your attention an issue affecting not only my access to dental care but also potentially the satisfaction and retention of our workforce.
The dental benefits provided through [Dental Benefit Company’s Name] have caused my provider, [Clinician or Practice/Organization Name], to no longer be directly contracted with the plan due to restrictive rules, arbitrary downgrades, denials, administrative demands, and payment requirements.
This is not just my issue. It may affect many employees, especially those who have built long-term relationships with trusted healthcare providers.
Here is why this matters from a business perspective:
• Employee dissatisfaction: A benefits package that disrupts trusted care can negatively impact morale and retention.
• Increased absenteeism: Disruptions in dental care can lead to greater health issues and time away from work.
• Perceived value of benefits: Employees may view this as a sign that [Company Name] does not prioritize their well-being.
• Financial stress: Being required to pay in full at the time of service can place unnecessary strain on employees and their families.
I urge [Company Name] to take the following steps:
• Reevaluate our dental benefit provider to ensure we align with a company that prioritizes patient access and continuity of care.
• Explore creative solutions, such as direct payment arrangements with dental offices or healthcare stipends.
• Survey employees to assess satisfaction with our current dental benefits.
• Review whether the current plan’s rules are creating barriers to timely care.
• Require the plan to address arbitrary denials, downgrades, and restrictive policies that interfere with care recommended by licensed dental professionals.
By investing in a benefits package that truly supports employee health and provider access, [Company Name] can strengthen loyalty, improve productivity, and demonstrate that employee well-being matters.
Thank you for your attention to this matter. I look forward to hearing about the steps [Company Name] can take to address this concern.
Sincerely,
[Your Name]`},
{id:'mi1',group:'Michigan Medicaid',name:'Medicaid: Patient letter and fair hearing notice',
subject:'Notice of Complaint and Fair Hearing Request: Medicaid Dental Rule',
body:`Dear [Recipient],
I am a Medicaid dental patient in Michigan. I am filing this complaint and notifying you that I intend to request a Medicaid Fair Hearing regarding the new rule that requires documents to be submitted before treatment can begin.
The only reason patients are told a procedure is “non-covered” is because Medicaid has not expanded its dental benefit plan to reflect modern, reasonable standards of care. This artificial gap is not clinically justified and forces patients to go without treatment.
Across the country, only about 40 to 44 percent of clinicians participate in Medicaid due to low reimbursement and heavy administrative burdens. More than 70 million Americans live in federally designated dental shortage areas, and roughly 1 in 4 children on Medicaid have untreated tooth decay. Michigan cannot afford to impose new barriers to care.
This rule forces patients to make multiple trips: one to provide documents, and another to receive treatment. This results in lost wages, missed school, additional transportation costs, and painful delays. These are not minor inconveniences. They are real barriers to accessing care.
At my Fair Hearing, I will state:
“This documentation requirement that Delta Dental has imposed denies me timely access to necessary dental care. It forces multiple visits before treatment, causing excessive delays, lost income, and hardship. This violates Medicaid’s guarantee of reasonable and equal access to care.”
We demand full transparency and immediate release of Delta Dental’s Medical Loss Ratio (MLR) reports under its Medicaid contracts. Taxpayer dollars must be shown to flow primarily to patient care, not administrative overhead or executive bonuses.
I request that this requirement be suspended immediately, and I demand clarity on whether it originated from MDHHS, Delta Dental, or CMS.
Sincerely,
[Your Full Name]`},
{id:'mi2',group:'Michigan Medicaid',name:'Medicaid: Clinician letter and fair hearing notice',
subject:'Formal Complaint and Fair Hearing Notice: Medicaid Dental Rule',
body:`Dear [Recipient],
As a Michigan clinician serving Medicaid patients, I am submitting this complaint and notifying you that I, along with affected patients, intend to request Medicaid Fair Hearings in response to the new rule requiring documentation before treatment begins.
The only reason patients are told a procedure is “non-covered” is because Medicaid has not expanded its dental benefit plan to reflect modern, reasonable standards of care. This artificial gap is not clinically justified and forces patients to go without treatment.
Nationally, Medicaid dental reimbursement typically falls below 50 percent of clinician charges, and under 60 percent of commercial reimbursement, with adult rates lower still. Only about 40 to 44 percent of clinicians participate, leaving millions without access. Michigan already faces severe shortages, and this rule will worsen them.
This requirement forces patients, many of whom live paycheck to paycheck, to take two separate days away from work: once for paperwork and again for treatment. Families in this situation cannot sustain repeated absences without serious financial harm. This policy undermines access, discourages provider participation, and deepens the dental crisis.
In a Fair Hearing, the argument will be:
“This policy is unreasonable because it requires working Medicaid families, many living paycheck to paycheck, to take two separate days away from work. This denies patients care and adds unsustainable administrative burdens for providers, violating Medicaid’s equal access standards.”
I urge immediate suspension of this requirement and full transparency on its source, whether MDHHS, Delta Dental, or CMS.
Sincerely,
[Your Full Name, DDS/DMD]`},
{id:'mi3',group:'Michigan Medicaid',name:'Medicaid: Clinician letter to the MDA and ADA',
subject:'Re: Urgent Need for Advocacy Against New Medicaid Administrative Barriers',
body:`As a practicing clinician in Michigan serving Medicaid patients, I am compelled to raise urgent concerns about the growing administrative and coverage barriers that are undermining access to care.
The only reason patients are being told a service is “non-covered” is because Medicaid has failed to expand its dental benefit plan to reflect modern, reasonable standards of care. These arbitrary gaps are not clinically justified and force patients, many living paycheck to paycheck, to go without essential treatment.
This requirement creates unnecessary administrative burdens for providers and, more importantly, directly harms patients by delaying essential care. For many of my patients, especially those facing transportation barriers or working hourly jobs, this means lost wages, missed school, increased risk of untreated pain and infection, and in some cases forgoing care altogether.
National data makes the consequences clear:
• Only about 40 to 44 percent of U.S. clinicians participate in Medicaid due to low reimbursement and administrative barriers.
• Roughly 1 in 4 Medicaid-enrolled children already suffer from untreated tooth decay.
• More than 70 million Americans live in dental shortage areas, where access is already critically limited.
• Medicaid reimbursement typically remains below 50 percent of clinician charges, making it unsustainable to absorb added bureaucracy.
This new Delta Dental policy will only worsen provider shortages and further restrict access in Michigan, directly contradicting Medicaid’s mission of equal access to necessary care.
I urge both the MDA and ADA to:
• Advocate for immediate suspension of these prior authorization and documentation-before-care requirements.
• Demand transparency from MDHHS and Delta Dental regarding the origin of this rule, whether it was mandated by MDHHS, Delta Dental’s contract terms, or CMS.
• Require release of Delta Dental’s Medical Loss Ratio (MLR) reports to ensure Medicaid funds are being used for patient care rather than administrative overhead.
• Support clinicians and patients in pursuing Fair Hearings, where these policies can be formally challenged as barriers to access.
This is not an isolated issue but part of a national Medicaid dental crisis, and both state and national associations must take immediate action to protect providers and patients.
Clinicians in Michigan, and across the nation, cannot carry the weight of inadequate coverage and unnecessary bureaucracy alone. We are asking for your leadership to ensure that Medicaid patients receive timely, comprehensive, and just dental care.
Thank you for your leadership and for standing with us in defense of access to dental care for Michigan’s most vulnerable residents.
Sincerely,
[Doctor’s Name, DDS/DMD]
[Practice Name]`},
{id:'mi4',group:'Michigan Medicaid',name:'Medicaid: Advocate letter',
subject:'Complaint and Fair Hearing Notification: Medicaid Dental Rule',
body:`Dear [Recipient],
I write as an advocate for Medicaid patients and providers to file this complaint and to notify you that Fair Hearing requests will be submitted regarding the new rule requiring documentation before treatment.
The only reason patients are told a procedure is “non-covered” is because Medicaid has not expanded its dental benefit plan to reflect modern, reasonable standards of care. This artificial gap is not clinically justified and forces patients to go without treatment.
The national context is dire: only about 40 to 44 percent of clinicians participate in Medicaid, reimbursement is far below private rates, and more than 70 million Americans already live in dental shortage areas. This rule adds unnecessary obstacles.
By forcing multiple visits before treatment, the policy causes missed work, missed school, added travel costs, and prolonged pain for patients. These hardships deny reasonable and equal access to care.
At a Fair Hearing, the argument will be:
“This rule creates an unlawful barrier by requiring patients to make multiple visits before receiving treatment. It causes delays, lost wages, and extra costs that prevent timely care.”
We demand immediate suspension of this requirement and full transparency on whether it originated with MDHHS, Delta Dental, or CMS, including the immediate release of Delta Dental’s Medical Loss Ratio (MLR) reports under its Medicaid contracts. Taxpayer dollars must be shown to flow primarily to patient care, not administrative overhead or executive bonuses.
Sincerely,
[Your Full Name]`},
{id:'tp1',group:'Talking points',name:'Talking points: in person or by email with HR',
subject:'Additional talking points for in-person conversations or emails',
body:`Impact on Productivity: Dental problems can lead to missed work, reduced focus, and avoidable disruptions in an employee’s day.
Financial Burden: When employees are required to pay in full at the time of service, it creates unnecessary financial stress and may cause patients to delay needed care.
Workplace Stress: Unresolved dental issues can lead to pain, poor sleep, stress, and difficulty concentrating at work.
Long-Term Health Risks: Delaying dental care can allow small issues to become more serious, more expensive, and more disruptive over time.
Continuity of Care: Patients often build long-term relationships with their dental providers. Losing access to a trusted provider can disrupt years of preventive care and treatment planning.
Employee Satisfaction: A dental benefit plan that limits choice, creates payment burdens, or interferes with trusted care can negatively affect how employees view their overall benefits package.`},
{id:'tp2',group:'Talking points',name:'Talking points: a conversation with HR or the CFO',
subject:'Talking points for a conversation with HR or the CFO',
body:`Introduction: “I wanted to share my concerns about our dental benefit plan with [Dental Benefit Company’s Name]. It is directly affecting my access to quality care.”
Issue: “My clinician is no longer directly contracted with the plan because of restrictive rules, arbitrary downgrades, denials, administrative burdens, and payment requirements. Now I either have to pay in full at the time of service or switch to a new provider.”
Impact: “This disrupts continuity of care, which is essential for maintaining oral health. It also affects how valuable our benefits feel as employees.”
Patient Concern: “I am especially concerned that the plan may require members to pay in full on the day of service, even when the plan may still send payment later under its own rules. That creates an unnecessary financial burden for employees.”
Request: “I am asking the company to reconsider its relationship with [Dental Benefit Company’s Name] and explore alternative plans or options that better serve employees and protect access to trusted dental providers.”
Closing: “I value our company’s commitment to employee well-being, and I hope our dental benefits can better reflect that commitment.”`},
{id:'app1',group:'Appeal the denial',name:'Appeal: first level, any plan',
subject:'Appeal of Denied Claim – Member [Member ID], Claim [Claim Number]',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
Appeals Department
[Insurance Company’s Name]
Re: Appeal of denied claim
Member name: [Patient Name]
Member ID: [Member ID]
Group number: [Group Number]
Claim number: [Claim Number]
Date of service: [Date of Service]
Service denied: [Procedure or Service]
Date of denial notice: [Denial Date]
To the Appeals Department:
I am appealing your denial of the claim identified above. I am asking you to overturn that decision and pay the claim.
The reason you gave for the denial was: [Reason Given on the Denial]
That reason does not fit the facts of this case. Here is what actually happened:
[Describe what happened in your own words. Say what was wrong, what your provider found, what was done, and why it could not wait or could not be done a cheaper way. Keep it factual and short.]
My treating provider, [Provider Name], determined this service was necessary. Their supporting documentation is enclosed.
I am requesting the following:
• A full review of this claim by a clinician licensed in the same specialty as the treatment at issue.
• The name, credentials, state of licensure and specialty of the clinician who reviewed and denied this claim, and of the clinician who reviews this appeal.
• The specific provision of my plan documents that you relied on, quoted in full, with the page or section number.
• The clinical criteria or coverage policy applied to this decision, provided to me in writing.
• Written notice of your decision on this appeal.
Enclosed with this letter:
• A copy of the denial notice
• A copy of the explanation of benefits
• Supporting documentation from my provider
• [List anything else you are including]
I am filing this appeal within the timeframe stated in the denial notice I received. If you contend that this appeal is untimely, please state that in writing, cite the provision you are relying on, and identify the date you contend the deadline fell.
If this appeal is denied, please send me written instructions for the next level of review available to me under this plan, including any external or independent review, and the deadline for requesting it.
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]
cc: [Provider Name]`},
{id:'doi3',group:'Department of Insurance',name:'DOI: Complaint about a medical plan',
subject:'Consumer Complaint Regarding [Insurance Company’s Name]',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
Consumer Services Division
[State] Department of Insurance
Re: Complaint against [Insurance Company’s Name]
Member ID: [Member ID]
Group number: [Group Number]
Claim number: [Claim Number]
Date of service: [Date of Service]
To the Consumer Services Division:
I am filing a complaint against [Insurance Company’s Name] regarding its handling of the claim identified above.
What was denied or delayed: [Procedure or Service]
What the company told me: [Reason Given on the Denial]
What actually happened:
[Describe the sequence in plain order. When you sought care, what your provider recommended, what the plan said, what you did next, and where it stands now. Include dates wherever you have them.]
What I have already done:
• I filed an internal appeal with the company on [Date Appeal Filed].
• The company responded on [Date of Company Response], or has not responded at all.
• [Add anything else you have tried, including phone calls, with dates and the names of anyone you spoke to.]
Why I am bringing this to the Department:
• The decision does not appear consistent with the coverage described in my plan documents.
• I have not been given the clinical basis for the denial in writing, despite requesting it.
• I have not been told the credentials of the person who made the clinical decision.
• [Add anything else, such as delays, conflicting answers, or a failure to respond within the company’s own stated timeframes.]
I am asking the Department to review this company’s handling of my claim, to determine whether its conduct is consistent with the obligations that apply to it, and to advise me whether an independent external review is available in my situation.
Enclosed:
• A copy of the denial notice
• A copy of the explanation of benefits
• A copy of my appeal and any response
• Supporting documentation from my provider
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]`},
{id:'doi4',group:'Department of Insurance',name:'Complaint about a vision plan',
subject:'Complaint Regarding [Insurance Company’s Name] Vision Benefits',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
Re: Complaint against [Insurance Company’s Name]
Member ID: [Member ID]
Date of service: [Date of Service]
To whom it may concern:
I am filing a complaint about how [Insurance Company’s Name] handled my vision benefit.
Before anything else, one question I am asking to have answered in writing: is the plan I hold an insurance product, or is it a discount programme? I ask because it changes who has authority over this dispute, and I have not been able to determine it from my plan materials.
What happened:
[Describe it plainly. What you needed, what you were told, what you were charged or refused. Include dates.]
What the plan told me: [Reason Given on the Denial]
Why I am disputing it:
• The benefit described in my plan materials does not match what was applied to my claim.
• [If an allowance is in dispute: state the allowance you were told you had, and what was actually applied.]
• [If contact lenses or a service were called routine rather than medically necessary: state what your eye doctor determined and why.]
• [If the plan and a medical plan each say the other is responsible: say so here, and name both.]
I am requesting the following in writing:
• A statement of whether this plan is insurance or a discount programme, and the name of the entity that underwrites or administers it.
• The specific provision of my plan documents relied on for this decision, quoted in full.
• The full benefit and allowance that applied on my date of service.
• An explanation of the appeal rights available to me and the deadline for using them.
If this plan is not insurance and the Department of Insurance has no authority over it, please tell me that directly so I can take the complaint to the office that does.
Enclosed:
• A copy of the denial or explanation of benefits
• My prescription and provider documentation
• The plan materials describing the benefit I am relying on
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]`},
{id:'sb1',group:'Billing disputes',name:'Dispute a surprise or balance bill',
subject:'Disputed Bill – Account [Account or Invoice Number], Date of Service [Date of Service]',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
Billing Department
[Provider or Facility Name]
Re: Disputed bill
Patient name: [Patient Name]
Account or invoice number: [Account or Invoice Number]
Date of service: [Date of Service]
Amount billed: [Amount Billed]
To the Billing Department:
I am disputing the bill identified above and I am requesting that you place this account on hold while the dispute is reviewed. Please do not send it to collections or report it to any credit bureau while it is under dispute.
Here is why I am disputing it:
[Choose the ones that apply and delete the rest.]
• I received this care at a facility that is in my plan’s network, and I did not choose, and was not given a meaningful opportunity to choose, the provider who is now billing me separately.
• This was emergency care. I was not in a position to check network status before receiving treatment.
• I was not given advance written notice that this provider was out of network, and I did not give written consent to be billed at out of network rates.
• This appears to be a balance bill for the difference between your charge and what my plan allowed.
• I believe the bill contains an error in the codes, the dates, or the services listed.
Before I pay anything, I am requesting the following in writing:
• An itemised bill showing every charge, with the procedure codes and dates of service.
• A copy of any notice and consent form you contend I signed regarding out of network billing, with the date and my signature.
• The network status of every provider who treated me on that date, and of the facility itself.
• A statement of whether this amount has been submitted to my plan, and the outcome.
I understand there are federal and state protections that limit balance billing in certain circumstances, including emergency care and care delivered by out of network providers at in network facilities. I am asking you to confirm in writing whether you contend those protections do not apply here, and on what basis.
I am sending a copy of this letter to my plan and asking them to review the claim as well.
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]
cc: [Insurance Company’s Name], Member Services`},
{id:'mca1',group:'Medicare',name:'Medicare Advantage: request a reconsideration',
subject:'Request for Reconsideration – Member [Member ID]',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
Appeals and Grievances Department
[Insurance Company’s Name]
Re: Request for reconsideration
Member name: [Patient Name]
Member ID: [Member ID]
Claim or authorisation number: [Claim Number]
Date of service or request: [Date of Service]
Service at issue: [Procedure or Service]
Date of the notice I received: [Denial Date]
To the Appeals and Grievances Department:
I am requesting a reconsideration of the decision described in the notice identified above. I am asking the plan to reverse that decision and to authorise or pay for the service.
The reason given was: [Reason Given on the Denial]
Why the decision is wrong:
[Explain in your own words. Say what your condition is, what your doctor recommended, and why the service is needed. If you have already tried something else that did not work, say what and when.]
My treating provider, [Provider Name], supports this request, and their documentation is enclosed.
I am requesting the following:
• Reconsideration of this decision by a reviewer who was not involved in the original determination.
• Review by a physician with expertise in the field of medicine appropriate to my condition.
• The name, credentials and specialty of every clinician who has reviewed or will review this matter.
• The specific coverage rule, national or local coverage determination, or plan provision relied on, identified by name and number, and provided to me in writing.
• If the plan upholds its denial, that the case be forwarded automatically to the independent review entity as described in the notice I received, and that I be told in writing when that has been done.
[If this is urgent, keep the following paragraph. If it is not, delete it.]
I am requesting that this be handled as an expedited reconsideration. Waiting the standard timeframe could seriously jeopardise my health or my ability to regain maximum function. My provider supports this request and their statement is enclosed.
Enclosed:
• A copy of the notice I received
• Supporting documentation and clinical notes from my provider
• [List anything else you are including]
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]
cc: [Provider Name]`},
{id:'mcd1',group:'Medicaid',name:'Medicaid: request a fair hearing',
subject:'Request for a Fair Hearing – [Patient Name], ID [Member ID]',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
[State] Medicaid Fair Hearing Office
Re: Request for a fair hearing
Name: [Patient Name]
Medicaid ID: [Member ID]
Health plan: [Insurance Company’s Name]
Service at issue: [Procedure or Service]
Date of the notice I received: [Denial Date]
To the Fair Hearing Office:
I am requesting a fair hearing regarding the decision described in the notice identified above.
What was decided: [Reason Given on the Denial]
Why I disagree:
[Say it plainly. What you need, what your provider says, and what happens to you if you do not get it. Do not worry about legal wording. Say what is true.]
What I am asking the hearing to decide: that the service be approved and provided.
[If your benefits are currently in place and you want them to continue during the hearing, keep the following paragraph and file this quickly. The notice you received states the deadline for continued benefits, and it is usually much shorter than the deadline for the hearing itself.]
I am requesting that my benefits continue unchanged while this hearing is pending. I am making this request within the timeframe stated in the notice I received.
I am also requesting, in advance of the hearing:
• A complete copy of the case file and every document the plan or the agency will rely on.
• The specific policy, rule or manual provision relied on, quoted in full.
• The name, credentials and specialty of the clinician who made this decision.
• Reasonable notice of the hearing date, and an interpreter if one is needed.
[Keep this line if it applies.] I have already appealed to my health plan. The date of that appeal was [Date Appeal Filed], and the plan’s response was [Date of Company Response].
I understand I may bring a representative, a family member, my provider, or a legal aid advocate with me, and that I may present documents and witnesses.
Enclosed:
• A copy of the notice I received
• Supporting documentation from my provider
• [List anything else you are including]
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]
cc: [Insurance Company’s Name], Appeals Department
[Provider Name]`},
{id:'app2',group:'Appeal the denial',name:'Outline: what a strong appeal includes',
body:`WHAT A STRONG APPEAL INCLUDES
A working outline. Print it, check things off, and build your appeal from it. Your own denial notice controls where the appeal goes and the deadline for filing it, so read that notice first and believe it over anything else, including this page.
Before you write anything:
• Read the denial notice from start to finish. It states the reason for the denial, where the appeal goes, and the deadline. The deadline in your notice is the one that counts.
• If the notice is vague, call member services and ask them to send the actual denial reason in writing.
• Pull your plan documents: the summary of benefits and the full policy or member handbook. Find the section the plan says it relied on and read it yourself.
The appeal itself, in order:
1. An identification block at the top: your name, member ID, group number, claim number, date of service, and the date of the denial notice, so nothing gets misfiled.
2. One sentence saying exactly what you want: the denial overturned and the claim paid, or the service authorized.
3. The reason the plan gave, quoted from the notice.
4. Why that reason does not fit the facts. This is the heart of the appeal. Keep it short, factual and in order: what was wrong, what your provider found, what was done, and why it could not wait or could not be done another way.
5. Your provider's support. A letter of medical necessity from the treating provider usually carries more weight than anything you write yourself. Ask for one.
6. The requests that protect you, in writing: the name, credentials, state of licensure and specialty of the clinician who reviewed the claim; the exact plan provision relied on, quoted in full with a page or section number; the clinical criteria or coverage policy applied; and written notice of the decision with instructions for the next level of review.
7. Your contact information, and a line stating that the appeal is filed within the timeframe stated on your notice.
Enclose copies, never originals:
• The denial notice
• The explanation of benefits
• The provider's letter of medical necessity and the relevant records
• Anything the plan sent you that contradicts itself
How to send it and what to keep:
• Send it in writing, in a way you can prove: certified mail, a fax with a confirmation page, or the plan's own portal with a screenshot of the submission.
• Keep a copy of everything you send, and a log of every call: the date, the time, the name of the person, and what was said.
• If the appeal is denied, ask in writing what review comes next, including any external or independent review, and the deadline for requesting it.`},
{id:'doi5',group:'Department of Insurance',name:'DOI: Plan refused to identify its reviewing clinician',
subject:'Complaint Against [Insurance Company’s Name] – Refusal to Identify the Clinician Who Decided Medical Necessity',
body:`[Your Full Name]
[Your Address]
[City, State, ZIP Code]
[Date]
Consumer Services Division
[State] Department of Insurance
Re: Complaint against [Insurance Company’s Name]
Refusal to identify the clinician who determined medical necessity
Member name: [Patient Name]
Member ID: [Member ID]
Claim number: [Claim Number]
Date of service: [Date of Service]
To the Consumer Services Division:
I am filing a complaint against [Insurance Company’s Name]. The company has made a clinical judgment about my care, deciding that treatment my own provider determined I need is not medically necessary, and it is refusing to tell me who made that judgment.
What was denied: [Procedure or Service]
The reason given: [Reason Given on the Denial]
What I asked the company for: the name, credentials, state of licensure, license number and specialty of the clinician who reviewed my case and determined that this treatment is not medically necessary.
What happened when I asked:
[Describe it plainly, with dates. Who you asked, how you asked, and what they said. If they refused outright, say so. If they gave a job title with no name, or a name with no license number, or simply never answered, say that.]
Why this matters:
• A determination of medical necessity is a clinical judgment about my health. I cannot evaluate or challenge that judgment without knowing whether the person who made it is licensed and qualified in the relevant field.
• Without a name and license number, I cannot verify the reviewer's license, check for disciplinary history, or direct a complaint to the appropriate licensing board.
• My treating provider, [Provider Name], is identified on every document in this claim. The person overruling that provider is anonymous.
I am asking the Department to:
• Require the company to identify, in writing, the name, credentials, state of licensure, license number and specialty of every clinician who reviewed this claim.
• Review whether the company's refusal to identify its reviewer is consistent with the obligations that apply to it in this state.
• Advise me what recourse I have if the company continues to refuse.
Enclosed:
• A copy of the denial notice
• A copy of my written request to the company, and any response I received
• A copy of the explanation of benefits
You can reach me at [Your Phone Number] or [Your Email Address].
Sincerely,
[Your Name]
cc: [Insurance Company’s Name]`}
];
/* ==================== LETTER BUILDER ==================== */
var LVals={}, lReady=false;
/* The letter count is known the moment this script runs, so the
masthead number never waits on the spreadsheet. */
try{
var lsEl=el('switStats');
if(lsEl && lsEl.children[3]) lsEl.children[3].innerHTML=''+LETTERS.length+'Letter templates';
}catch(e){}
var TOKEN=/\[[^\]\n]{1,70}\]/g;
/* Tokens that mean the same thing share one box, so nobody types
their own name four times. First entry in each row is the label. */
var ALIAS={};
[['[Your Full Name]','[Your Name]'],
['[Clinician or Practice/Organization Name]','[Dentist\u2019s Name or Practice Name]','[Dentist\u2019s Name]'],
['[HR Representative\u2019s Name]','[HR Representative\u2019s Name / CFO\u2019s Name]'],
['[Recipient]','[Recipient\u2019s Name or Department]']
].forEach(function(g){ g.forEach(function(t){ ALIAS[t]=g[0]; }); });
function canon(t){ return ALIAS[t]||t; }
function todayLong(){
var d=new Date(), m=['January','February','March','April','May','June','July',
'August','September','October','November','December'];
return m[d.getMonth()]+' '+d.getDate()+', '+d.getFullYear();
}
function isCompanyToken(t){ return /dental benefit company|insurance company.?s name/i.test(t); }
function autoVal(t){
if(isCompanyToken(t)) return (el('switLCo').value||'').trim();
if(t==='[Date]') return todayLong();
return '';
}
function valFor(t){
if(isCompanyToken(t)) return (el('switLCo').value||'').trim();
return LVals[canon(t)]||'';
}
function tokensOf(L){
var seen={}, out=[];
((L.subject||'')+'\n'+L.body).replace(TOKEN,function(m){
var c=canon(m); if(!seen[c]){seen[c]=1; out.push(c);} return m; });
return out;
}
function current(){
var id=el('switLSel').value;
for(var i=0;i<LETTERS.length;i++) if(LETTERS[i].id===id) return LETTERS[i];
return LETTERS[0];
}
/* The visitor's own notes. Injected AFTER token substitution so that
square brackets in their notes are never mistaken for fill-in tokens.
They land just above the signature, or at the end when there is none. */
function lNotes(){
var n=el('switLNotes');
return n ? (n.value||'').trim() : '';
}
function injectNotes(txt, notes){
if(!notes) return txt;
var i=txt.lastIndexOf('Sincerely,');
if(i<0) return txt+'\n\n'+notes;
return txt.slice(0,i)+notes+'\n\n'+txt.slice(i);
}
function initLetters(){
if(lReady) return; lReady=true;
var sel=el('switLSel'), groups=[], byGroup={};
LETTERS.forEach(function(L){
if(!byGroup[L.group]){ byGroup[L.group]=[]; groups.push(L.group); }
byGroup[L.group].push(L);
});
sel.innerHTML=groups.map(function(g){
return ''+byGroup[g].map(function(L){
return ''+esc(L.name)+''; }).join('')+'';
}).join('');
sel.addEventListener('change',renderLetter);
el('switLCo').addEventListener('input',renderLetter);
renderLetter();
}
function renderLetter(){
var L=current(), toks=tokensOf(L);
/* fields */
var f=el('switLFields'), html='';
toks.forEach(function(t){
if(isCompanyToken(t)) return; /* handled by the company box above */
var v = (t in LVals) ? LVals[t] : autoVal(t);
LVals[t]=v;
var label=t.replace(/^\[|\]$/g,'');
if(t==='[State]'){
html+='
'+
'Choose your state…'+
STATES.map(function(s){
return ''+esc(s[1])+'';
}).join('')+'
';
} else {
html+='
'+
'
';
}
});
if(!html) html='
This one has no blanks to fill in.
';
if(f.dataset.sig!==toks.join('|')){ f.innerHTML=html; f.dataset.sig=toks.join('|'); }
/* preview */
var co=(el('switLCo').value||'').trim();
function sub(txt){
var out='', last=0, m;
TOKEN.lastIndex=0;
while((m=TOKEN.exec(txt))!==null){
out+=esc(txt.slice(last,m.index));
var v=valFor(m[0]);
out += v ? ''+esc(v)+''
: ''+esc(m[0])+'';
last=m.index+m[0].length;
}
out+=esc(txt.slice(last));
return out;
}
var out='';
if(L.subject) out+='Subject: '+sub(L.subject)+'\n\n';
var bodyHtml=sub(L.body), notes=lNotes();
if(notes) bodyHtml=injectNotes(bodyHtml,''+esc(notes)+'');
out+=bodyHtml;
el('switLOut').innerHTML=out;
}
function onFieldChange(e){
var i=e.target.closest('[data-fkey]'); if(!i) return;
LVals[i.getAttribute('data-fkey')]=i.value;
renderLetter();
}
el('switLFields').addEventListener('input',onFieldChange);
el('switLFields').addEventListener('change',onFieldChange);
el('switClear').addEventListener('click',function(){
LVals={}; el('switLFields').dataset.sig='';
var nb=el('switLNotes'); if(nb) nb.value='';
renderLetter(); toast('Fields cleared');
});
el('switLNoteBtn').addEventListener('click',function(){
var b=el('switLNoteBox');
var open=b.style.getPropertyValue('display')!=='none';
b.style.setProperty('display', open?'none':'block','important');
el('switLNoteBtn').textContent=open?'Add your own notes':'Hide the notes box';
if(!open) el('switLNotes').focus();
});
el('switLNotes').addEventListener('input',renderLetter);
el('switPrint').addEventListener('click',function(){ window.print(); window.switAccPop&&window.switAccPop(); });
el('switCopy').addEventListener('click',function(){
window.switAccPop&&window.switAccPop();
var L=current(), co=(el('switLCo').value||'').trim();
function sub(txt){
return txt.replace(TOKEN,function(m){
return valFor(m) || m;
});
}
var txt=(L.subject?'Subject: '+sub(L.subject)+'\n\n':'')+injectNotes(sub(L.body), lNotes());
var done=function(){ toast('Letter copied'); };
if(navigator.clipboard && navigator.clipboard.writeText){
navigator.clipboard.writeText(txt).then(done, fallback);
} else fallback();
function fallback(){
var ta=document.createElement('textarea');
ta.value=txt; ta.style.position='fixed'; ta.style.opacity='0';
document.body.appendChild(ta); ta.select();
try{ document.execCommand('copy'); done(); }catch(err){ toast('Press Ctrl+C to copy'); }
document.body.removeChild(ta);
}
});
/* ==================== GUIDED INTERVIEW ====================
A fixed question path. No AI, no server, no running cost.
It narrows to the right carrier, ladder, regulator and letter,
then hands the letter builder a pre-filled draft.
Two rules this file must keep:
1. No deadline in days is ever written here. Every number comes
from the sheet or from the visitor's own notice.
2. Off-ramps are suggested, never asserted. The tool raises a
possibility to check; it does not tell anyone what their
situation is.
============================================================ */
var G = {}; /* answers so far */
var GPEND = null; /* letter waiting to be opened after the gate */
/* The state the visitor tells us is theirs. Remembered in this browser
only, and used to pre-fill the Your state tab, the guide, and the
state section of every company screen. */
var HOMESTATE='';
try{ HOMESTATE=localStorage.getItem('switHomeState')||''; }catch(e){}
function setHomeState(v){
HOMESTATE=v||'';
try{ if(v) localStorage.setItem('switHomeState',v); else localStorage.removeItem('switHomeState'); }catch(e){}
if(typeof stApplyHome==='function') stApplyHome();
}
function gOnly(o){
if(!o.only) return true;
return [].concat(o.only).indexOf(G.plan)>-1;
}
var GQ = {
who:{
q:'Who is filling this out?',
h:'This changes whose voice the letter is written in.',
opts:[
{v:'patient', t:'I am the patient, or a family member'},
{v:'provider', t:'I work at a dental, medical or eye care office', d:'Dentist, physician, optometrist, office manager or billing staff'}
]
},
plan:{
q:'Which kind of plan is involved?',
h:'If you are not sure which one should have paid, pick the one that sent the denial. There is a question about that later.',
opts:[
{v:'dental', t:'Dental'},
{v:'medical', t:'Medical'},
{v:'vision', t:'Vision'}
]
},
coverage:{
q:'Where does the coverage come from?',
h:'This matters more than most people expect. It decides which appeal ladder applies and who has authority over the plan.',
opts:[
{v:'employer', t:'Commercial plan', d:'Your employer offers this to employees'},
{v:'union', t:'Union plan', d:'Coverage through a union or a union benefit fund'},
{v:'marketplace', t:'Health insurance marketplace', d:'Healthcare.gov or a state exchange'},
{v:'medicare', t:'Medicare or a Medicare Advantage plan'},
{v:'medicaid', t:'Medicaid, or a Medicaid managed care plan'},
{v:'military', t:'TRICARE, VA or other military coverage'},
{v:'unsure', t:'I am not sure'}
]
},
funding:{
q:'Do you know how the plan is funded?',
h:'This single question decides who has authority over the plan. Your summary plan description, your benefits or HR office, or the fine print on the card can tell you. Wording like "administered by" or "ASO" usually signals a self funded plan.',
opts:[
{v:'insured', t:'The employer or fund buys insurance', d:'The insurance company takes the risk and pays the claims'},
{v:'selffunded', t:'The plan is self funded', d:'The employer or fund pays claims with its own money and the insurance company only administers them'},
{v:'fundnotsure',t:'I am not sure', d:'Very common. The plan looks identical from the outside either way'}
]
},
what:{
q:'What happened?',
h:'Pick the closest one. You can go back and change it.',
opts:[
{v:'denied', t:'A claim was denied after treatment'},
{v:'preauth', t:'Treatment was turned down before it happened', d:'A prior authorization or predetermination was denied'},
{v:'paid_less', t:'They paid less than expected', d:'Or paid for something cheaper than what was actually done'},
{v:'bill', t:'I got a bill I did not expect'},
{v:'network', t:'My provider is not in the network, or has left it'},
{v:'silence', t:'They have not responded at all'},
{v:'wrongplan', t:'They say a different plan should cover it', d:'For example the medical plan pointing at the dental or vision plan, or the reverse'},
{v:'mcd', t:'I am on Medicaid and was told to bring documents before treatment', only:'dental'}
]
},
reason:{
q:'What reason did they give?',
h:'It is usually printed on the denial letter or the explanation of benefits.',
opts:[
/* every line */
{v:'notmed', t:'Not medically or dentally necessary'},
{v:'excluded', t:'Not a covered benefit'},
{v:'oon', t:'Out of network'},
{v:'info', t:'Missing information or paperwork'},
{v:'late', t:'The claim was filed too late'},
/* dental */
{v:'alt', t:'A cheaper alternative is available', d:'Sometimes called least expensive alternative treatment', only:'dental'},
{v:'mtc', t:'Missing tooth clause', only:'dental'},
{v:'freq', t:'Too soon since the last one', d:'A frequency limitation', only:['dental','vision']},
{v:'waiting', t:'The waiting period has not been met', only:['dental','vision']},
{v:'annmax', t:'The annual maximum has been used up', only:['dental','vision']},
/* medical */
{v:'drug', t:'The drug is denied or not on the formulary', only:'medical'},
{v:'step', t:'I have to try a different treatment first', d:'Step therapy, sometimes called fail first', only:'medical'},
{v:'dme', t:'Equipment or a device was denied', d:'Durable medical equipment, supplies, a brace or a pump', only:'medical'},
{v:'mh', t:'A mental health or substance use service was denied', only:'medical'},
{v:'referral', t:'A referral to a specialist was denied', only:'medical'},
{v:'emergency', t:'Emergency care was denied or downgraded', only:'medical'},
/* vision */
{v:'contacts', t:'Medically necessary contact lenses were denied', only:'vision'},
{v:'allowance', t:'The frame or lens allowance is disputed', only:'vision'},
{v:'vtherapy', t:'Vision therapy was denied', only:'vision'},
{v:'exam', t:'They disagree about whether the exam was routine or medical', only:'vision'},
/* fallback */
{v:'unsaid', t:'They did not really explain'}
]
},
firstno:{
q:'Is this the first time they have said no for this care?',
h:'Appeals work in levels. Where you are in that ladder decides how firmly this letter escalates and what it warns comes next.',
opts:[
{v:'first', t:'Yes, this is the first denial'},
{v:'again', t:'No, I have appealed at least once already'},
{v:'nosure', t:'I am not sure'}
]
},
proof:{
q:'What can you include to show this was needed?',
h:'Pick everything you have or could get. These become the enclosures list in your letter. You attach the actual copies on your own device, never here.',
multi:true,
opts:[
{v:'notes', t:'Chart or clinical notes'},
{v:'imaging', t:'Imaging or test results'},
{v:'lmn', t:'A letter of medical necessity from the treating clinician'},
{v:'tried', t:'Records of what was already tried first'},
{v:'referral', t:'A referral, order or prescription'},
{v:'none', t:'Nothing yet'}
]
},
billkind:{
q:'What kind of bill is it?',
opts:[
{v:'surprise', t:'The provider was out of network at an in-network place, or it was an emergency', d:'This is often called a surprise bill or balance bill'},
{v:'balance', t:'They billed me the difference after insurance paid'},
{v:'nocover', t:'Insurance said it was not covered, so the office billed me'},
{v:'error', t:'I think the bill is simply wrong'}
]
},
when:{
q:'What is the date on the denial letter or the bill?',
h:'This is the one thing that cannot be fixed later, so it decides the order of everything else.',
opts:[
{v:'d0', t:'Less than 30 days ago'},
{v:'d30', t:'Between 30 and 60 days ago'},
{v:'d60', t:'Between 60 and 180 days ago'},
{v:'d180', t:'More than 180 days ago'},
{v:'none', t:'There is no letter, or I do not know'}
]
}
};
var GLABEL = {
patient:'Patient or family', provider:'Provider or staff',
dental:'Dental', medical:'Medical', vision:'Vision',
employer:'Commercial plan', union:'Union plan', marketplace:'Marketplace plan', medicare:'Medicare',
medicaid:'Medicaid', individual:'Individual plan', military:'Military or VA', unsure:'Coverage unknown',
denied:'Claim denied', preauth:'Prior authorization denied', paid_less:'Underpaid',
bill:'Unexpected bill', network:'Network problem', silence:'No response',
wrongplan:'Wrong plan billed', mcd:'Medicaid documents rule',
notmed:'Not necessary', excluded:'Not covered', oon:'Out of network',
info:'Missing information', late:'Filed too late', alt:'Cheaper alternative',
mtc:'Missing tooth clause', freq:'Frequency limit', waiting:'Waiting period',
annmax:'Annual maximum', drug:'Drug or formulary', step:'Step therapy',
dme:'Equipment denied', mh:'Mental health', referral:'Referral denied',
emergency:'Emergency care', contacts:'Medical contacts', allowance:'Allowance dispute',
vtherapy:'Vision therapy', exam:'Routine or medical exam', unsaid:'No clear reason',
surprise:'Surprise bill', balance:'Balance bill', nocover:'Billed as not covered', error:'Possible billing error',
d0:'Under 30 days', d30:'30 to 60 days', d60:'60 to 180 days',
d180:'Over 180 days', none:'Date unknown'
};
/* Appeal ladders by where the coverage comes from. These describe the
steps and name the bodies. They never state a number of days: that
comes from the sheet and from the visitor's own notice. */
var LADDER = {
employer:{
t:'Commercial employer plan',
s:'Appeal to the plan in writing first. Once that internal appeal is finished, an independent external review is generally available. Many employer plans are governed by federal law rather than only state law, which can change who has authority over them.',
o:'If the plan simply will not respond, the United States Department of Labor might be another route worth asking about. Which body applies depends on how your employer funds the plan, so it is worth confirming before you spend time on it.'
},
union:{
t:'Union plan',
s:'Appeal to the plan in writing first. Union coverage is often run through a benefit fund or trust rather than a regular insurance company, and those funds are usually governed by federal law rather than state insurance law, which changes who has authority over them. The fund office and your summary plan description are where the appeal process is spelled out.',
o:'Your union representative or the fund office can tell you how the plan is set up. If the fund simply will not respond, the United States Department of Labor might be another route worth asking about.'
},
marketplace:{
t:'Marketplace plan',
s:'Appeal to the plan in writing first. Marketplace plans carry a right to an independent external review once the internal appeal is done, and the denial notice has to tell you how to ask for it.',
o:'The marketplace that sold you the plan may also have a casework team that can chase it for you.'
},
medicare:{
t:'Medicare',
s:'Medicare has its own ladder and it is not the same as a commercial appeal. In broad terms it runs: a reconsideration with the plan, then a review by an independent entity outside the plan, then an administrative law judge, then the Medicare Appeals Council. Each level states its own deadline on the notice you receive at the level before it.',
o:'Medicare runs a helpline, and every state has a free State Health Insurance Assistance Program whose whole job is walking people through these levels at no cost.'
},
medicaid:{
t:'Medicaid',
s:'Medicaid appeals usually go to the managed care plan first, then to a state fair hearing, which is heard by a state official rather than by the insurance company. Filing quickly matters more here than almost anywhere else, because in many states benefits only continue while the appeal is pending if you file within a short window stated on your notice.',
o:'Your state Medicaid office and local legal aid organisations often help with fair hearings at no charge.'
},
individual:{
t:'Individual plan bought directly',
s:'Appeal to the plan in writing first, then ask about independent external review. Your state insurance department normally has authority over plans bought directly.',
o:''
},
military:{
t:'Military or veteran coverage',
s:'Military and veteran coverage runs its own appeal process, outside the state insurance system. The notice you received should name that process and its deadline.',
o:'Your installation beneficiary counsellor or a veterans service organisation can usually help at no cost.'
},
unsure:{
t:'Coverage type not known',
s:'Look at your insurance card and your denial notice. Whether the plan came from an employer, from the marketplace, from Medicare or from Medicaid decides which appeal ladder applies, and the ladders are genuinely different.',
o:'Member services has to tell you which kind of plan you have if you ask them directly.'
}
};
function guideFlow(){
var f=['who','plan','coverage'];
if(G.coverage==='employer'||G.coverage==='union') f.push('funding');
f.push('what');
if(['denied','preauth','paid_less'].indexOf(G.what)>-1) f.push('reason','firstno');
if(['denied','preauth'].indexOf(G.what)>-1) f.push('proof');
if(G.what==='bill') f.push('billkind');
f.push('carrier','state');
if(['denied','preauth','paid_less','silence','bill'].indexOf(G.what)>-1) f.push('when');
return f;
}
function guideAt(){
var f=guideFlow();
for(var i=0;i<f.length;i++){ if(G[f[i]]===undefined || G[f[i]]==='') return i; }
return f.length;
}
/* The path branches, so the number of remaining questions is not known
up front. Show the question reached rather than promising a total
that would change under the visitor mid-way. */
function guideBar(i,n){
var h='
This work is published to support transparency and accountability. Patients and providers deserve to know who is making the clinical decisions behind a denial and how to challenge one, and the licensed doctors who make those calls at insurance companies should be accountable for them. This directory does not promote and must not be used for harassment, threats, intimidation, personal contact at anyone\'s home, or any attempt to frighten or endanger a person or their family. Any such use is expressly prohibited and is contrary to the purpose of this work. Use the published business channels, the formal appeal processes, the state licensing boards and the departments of insurance listed here.
';
/* The one short notice shown wherever a visitor is about to type their
own information. The single full disclaimer lives in the footer, which
is visible at the bottom of every page. */
var SWIT_QUICK =
'
'+
'Before you type anything of your own'+
'
This website is not HIPAA compliant, '+
'and privacy and security cannot be guaranteed. Do not enter protected health information, and only '+
'share what you are comfortable sharing. The full disclaimer is at the bottom of every page.
'+
'
';
/* Orientation comes first, then the questions, on one tab. Nobody
reads a "how to use this" tab sitting after the thing they are
trying to use. */
function guideIntro(){
return '
'+
'Set it once and your state regulator and licensing boards appear automatically on the '+
'Your state tab and inside every company you look up.
'+
'
'+
'
Answer a few questions and this will tell you what to send, who to send it to, '+
'and by when. It reads the same directory as the rest of this page, so the addresses and deadlines '+
'come from live data rather than from memory.
'+
'
'+
'
1. Tell it what happened
'+
'
Who you are, which plan, where the coverage comes from, and what they did. A few taps, '+
'and you can go back and change any answer.
'+
'
2. Get your deadline first
'+
'
It is the one thing that cannot be fixed later, so it comes before everything else. '+
'Your own notice always overrides what you see here.
'+
'
3. Work the steps in order
'+
'
Internal appeal, who made the decision, peer to peer, external review, the regulator, '+
'the licensing board. Each with the real contact details.
'+
'
4. Open the letter
'+
'
It arrives with your plan and state filled in. Name the problem, attach the paper, ask for '+
'a specific action. Never send anger without a request.
'+
'
'+
'
'+
'
'+
'
';
}
function guideRender(){
var box=el('switGo'); if(!box) return;
if(!GSTARTED){ box.innerHTML=guideIntro(); return; }
var f=guideFlow(), i=guideAt(), n=f.length;
if(i>=n){ guidePlan(); return; }
var key=f[i], h=guideBar(i,n);
if(key==='carrier'){
h+='
Who is the plan?
'+
'
Use the name printed on the card. If the plan is run by a parent company, either will do.
'+
'
'+
'
'+
'
'+
''+
'
';
} else if(key==='state'){
h+='
Which state?
'+
'
This decides which regulator and which licensing boards apply.
'+
Q.opts.filter(gOnly).map(function(o){
var on=Q.multi && GMSEL.indexOf(o.v)>-1;
return '';
}).join('')+'
'+
(Q.multi?'
'+
'
':'');
}
h+='
'+
(i>0?'':'')+
'
';
box.innerHTML=h;
}
var GMSEL=[], GMKEY=''; /* in-progress picks on a pick-all-that-apply question */
function guideSet(k,v){ G[k]=v; guideRender(); }
function guideBack(){
var f=guideFlow(), i=guideAt();
if(i>0) delete G[f[i-1]]; else GSTARTED=false;
guideRender();
}
function guideReset(){ G={}; GSTARTED=false; guideRender(); }
el('switP-go').addEventListener('click',function(e){
var o=e.target.closest('.swit-opt');
if(o && o.getAttribute('data-multi')){
var mv=o.getAttribute('data-v'), mi=GMSEL.indexOf(mv);
if(mi>-1) GMSEL.splice(mi,1); else GMSEL.push(mv);
o.classList.toggle('on', mi===-1);
return;
}
if(o){ guideSet(o.getAttribute('data-k'), o.getAttribute('data-v')); return; }
if(e.target.id==='gMultiGo'){
if(!GMSEL.length){ toast('Pick at least one, or Nothing yet'); return; }
var mk=GMKEY; GMKEY='';
guideSet(mk, GMSEL.slice());
return;
}
if(e.target.id==='gBack'){ guideBack(); return; }
if(e.target.id==='gStart'){ GSTARTED=true; guideRender(); return; }
if(e.target.id==='gReset'){ guideReset(); return; }
if(e.target.id==='gCarGo'){ guideSet('carrier',(el('gCar').value||'').trim()||'unknown'); return; }
if(e.target.id==='gCarSkip'){ guideSet('carrier','unknown'); return; }
if(e.target.id==='gStGo'){
var v=el('gSt').value;
if(!v){ el('gSt').focus(); return; }
guideSet('state',v); return;
}
var re=e.target.closest('[data-redo]');
if(re){ e.preventDefault(); guideReset(); return; }
var jp=e.target.closest('[data-jump]');
if(jp){ gotoTab(jp.getAttribute('data-jump')); return; }
var go=e.target.closest('[data-letter]');
if(go){ guideHandoff(go.getAttribute('data-letter')); return; }
});
el('switP-go').addEventListener('change',function(e){
if(e.target.id==='gHomeState'){ setHomeState(e.target.value); toast(e.target.value?'State saved':'State cleared'); }
});
el('switP-go').addEventListener('keydown',function(e){
if(e.key!=='Enter') return;
if(e.target.id==='gCar'){ e.preventDefault(); guideSet('carrier',(e.target.value||'').trim()||'unknown'); }
});
/* ---- which of the existing letters fits ----
The library is dental plan conduct and Medicaid dental. Paths that
need a letter which does not exist yet are listed in GWANTED so the
plan can say so honestly rather than hand over the wrong document. */
var GWANTED = {
firstlevel:'a first level appeal letter',
medicaldoi:'a medical complaint letter',
visiondoi:'a vision complaint letter',
surprise:'a surprise bill dispute letter',
medicare:'a Medicare reconsideration request',
fairhearing:'a Medicaid fair hearing request'
};
function guideLetter(){
if(G.what==='mcd') return G.who==='provider'?'mi2':'mi1';
if(G.what==='network' && G.plan==='dental') return G.who==='provider'?'co1':'co2';
if(G.coverage==='medicaid') return 'mcd1';
if(G.coverage==='medicare') return 'mca1';
if(G.what==='bill' && (G.billkind==='surprise'||G.billkind==='balance')) return 'sb1';
if(['denied','preauth','paid_less'].indexOf(G.what)>-1) return 'app1';
if(G.plan==='vision') return 'doi4';
if(G.plan==='medical') return 'doi3';
return 'doi1';
}
/* Every path now reaches a letter. Kept as a hook so a future path
that has no matching document still says so rather than handing
over one written for a different problem. */
function guideMissing(){ return null; }
/* ---- suggestions, never assertions ---- */
function guideMaybe(){
var out=[];
if(G.what==='bill' && G.billkind==='error'){
out.push('This might not be an insurance problem at all. Bills do get coded or entered wrongly at the office, and a phone call to the billing department sometimes settles it in a few minutes. It could be worth trying that before you spend time on an appeal.');
}
if(G.what==='bill' && (G.billkind==='surprise'||G.billkind==='balance')){
out.push('There are federal protections against some surprise and balance bills, particularly for emergency care and for out of network providers working at in network facilities. Whether they cover your situation depends on the details, so it may be worth checking before you agree to pay anything.');
}
if(G.reason==='mh'){
out.push('If it feels like the mental health side of your plan is being treated worse than the physical health side, there are federal rules about that. It might be worth raising with a regulator as a separate point rather than only arguing the single denial.');
}
if(G.coverage==='employer' && G.funding!=='insured' && G.funding!=='selffunded'){
out.push('Employer plans are not all regulated the same way. Depending on how your employer funds the plan, the state insurance department may or may not have authority, and the federal Department of Labor might be the better route. Your benefits administrator can tell you which kind of plan it is.');
}
if(G.firstno==='again'){
out.push('Since this is not the first no, it may be worth asking in writing for the next level of review and for the external or independent review described on your notice, and saying plainly that a regulator complaint is your next step if this level is denied. Plans tend to move differently once that is on the record.');
}
if(G.coverage==='union'){
out.push('Union benefit funds are often outside the state insurance department’s authority entirely, because they are governed by federal law. Before you spend time on a state complaint, it may be worth asking the fund office how the plan is set up, so the appeal goes to a body that actually has authority over it.');
}
if(G.plan==='vision'){
out.push('Not every vision plan is insurance. Some are discount programmes, and if yours is one of those the insurance department may have no authority over it. In that case the state Attorney General or the Federal Trade Commission could be the more useful place to complain. Your plan documents should say which kind you have.');
}
if(G.what==='wrongplan'){
out.push('When two plans point at each other, the question is usually which one the service belongs to rather than whether it is covered at all. Asking each plan to put its reason in writing, naming the specific policy language, tends to move it faster than arguing on the phone.');
}
return out;
}
/* Who has authority over this plan and why, with the grey areas named.
Structural jurisdiction only: no day counts, no statute citations. The
visitor's own notice and plan documents control every deadline. */
function guideGov(){
var c=G.coverage, f=G.funding;
var grey=' When a plan rule and a state law seem to say two different things, which one wins usually depends on how the plan is funded and which body has authority over it. Your own plan documents and your denial notice control your deadlines either way.';
if(c==='employer'){
if(f==='selffunded') return 'An insurance company\u2019s name may be on the card, but a self funded plan is the employer paying claims with its own money, and that changes who is in charge. Federal law, ERISA, governs the plan. The state insurance department generally has no authority over it, and the federal Department of Labor, through its Employee Benefits Security Administration (EBSA), is where complaints about the plan go. Your appeal rights, including any external review, come from the plan documents and federal rules rather than from state insurance law.'+grey;
if(f==='insured') return 'Two sets of rules apply at once here. Because the employer buys real insurance, your state insurance department has authority over how the insurer behaves and state insurance law applies to the policy. At the same time federal law, ERISA, sets the ground rules for how job based plans must handle claims and appeals, and once the internal appeal is finished an independent external review is generally available.'+grey;
return 'Employer plans split into two very different worlds and the paperwork often looks identical. If the employer buys insurance, state insurance law and your state insurance department apply, with ERISA setting the federal ground rules for appeals. If the plan is self funded, ERISA governs almost everything, the state insurance department generally has no authority, and the federal Department of Labor (EBSA) is the regulator. Your summary plan description, your benefits office, or wording on the card like "administered by" can tell you which world you are in.'+grey;
}
if(c==='union') return 'Union benefit funds are usually governed by federal law, ERISA, rather than by state insurance law, so the state insurance department often has no authority over them. The fund office and the summary plan description spell out the appeal process, and the federal Department of Labor, through its Employee Benefits Security Administration (EBSA), is the regulator that hears complaints about how a fund handles claims.'+grey;
if(c==='marketplace') return 'Marketplace plans are state regulated insurance, so your state insurance department has authority over the insurer, and federal law adds a guaranteed right to an independent external review once the internal appeal is finished. The marketplace itself is overseen federally by CMS, the Centers for Medicare and Medicaid Services, which is a separate track from your appeal against the plan.'+grey;
if(c==='medicare') return 'Medicare, including Medicare Advantage, runs on a federal ladder overseen by CMS, the Centers for Medicare and Medicaid Services, and the state insurance department generally cannot overturn a Medicare denial. The levels above, the independent reviewer, the administrative law judge and the Appeals Council, are that federal process. The state still has a role at the edges, for example over how Medicare Advantage plans are sold and marketed, which is why the state regulator is still listed below.'+grey;
if(c==='medicaid') return 'Medicaid is a state and federal partnership. Your state Medicaid agency, not the insurance department, is the primary authority, and federal rules are what guarantee your right to a state fair hearing in front of a state official once the plan\u2019s own appeal is done. If your care runs through a managed care plan, the plan hears the first appeal, but the fair hearing is the lever that sits above it.'+grey;
if(c==='military') return 'TRICARE and VA coverage run on their own federal appeal systems, outside state insurance law entirely, so the state insurance department is unlikely to have authority here. The process and its deadlines come from the notice you received and the program\u2019s own rules.'+grey;
return 'Which body has authority over your plan, the state insurance department, the federal Department of Labor under ERISA, CMS for Medicare, or the state Medicaid agency, depends entirely on where the coverage comes from and how it is funded. That is exactly why it is worth pinning down before you spend time on a complaint that lands on the wrong desk.'+grey;
}
function regCaveat(){
if(G.coverage==='medicare') return ' One honest caution: the state regulator generally cannot overturn a Medicare denial. The Medicare ladder above is the lever for the denial itself; the state complaint still matters for how the plan behaves and how it is sold.';
if(G.coverage==='medicaid') return ' One honest caution: for Medicaid the fair hearing above is the lever with real teeth, and your state Medicaid agency is the primary regulator. The insurance department complaint still puts the plan\u2019s conduct on the record.';
if(G.coverage==='military') return ' One honest caution: military and veteran coverage sits outside state insurance law, so this regulator may simply refer you to the federal process. Filing still documents the problem.';
if((G.coverage==='employer'&&G.funding==='selffunded')||G.coverage==='union') return ' One honest caution: if this plan is self funded or a union benefit fund, the state regulator may have no authority over it, and the federal Department of Labor (EBSA, reachable through dol.gov) is the regulator that does. The state can still tell you quickly whether the plan is inside or outside its authority.';
if(G.coverage==='employer'&&G.funding==='fundnotsure') return ' If the plan turns out to be self funded, this state route may not apply and the federal Department of Labor (EBSA) would be the regulator instead. Asking your benefits office how the plan is funded settles it.';
return '';
}
function guidePlan(){
var box=el('switGo');
box.innerHTML='
Building your plan
';
/* AP and ST are normally set when their own tabs are first opened.
The guide can reach the plan without either tab ever being clicked,
so adopt the loaded tables here too, or every lookup silently falls
back to generic text. */
Promise.all([
load('appeals','Company').then(function(T){ if(!AP) AP=T; }, function(){}),
load('states','State').then(function(T){ if(!ST) ST=T; }, function(){})
]).then(function(){ guidePlanDraw(); }, function(){ guidePlanDraw(); });
}
function guidePlanDraw(){
var box=el('switGo');
var name=G.carrier==='unknown'?'':G.carrier;
var coRow=null, apRow=null, stRow=null, i;
if(CO && name) for(i=0;i<CO.rows.length;i++){
if((CO.get(CO.rows[i],'Company')||'').toLowerCase()===name.toLowerCase()){ coRow=CO.rows[i]; break; }
}
if(AP && name) for(i=0;i<AP.rows.length;i++){
if((AP.get(AP.rows[i],'Company')||'').toLowerCase()===name.toLowerCase()){ apRow=AP.rows[i]; break; }
}
if(ST && G.state) for(i=0;i<ST.rows.length;i++){
if((ST.get(ST.rows[i],'State')||'')===G.state){ stRow=ST.rows[i]; break; }
}
var sg=function(n,occ){
if(!stRow||!ST) return '';
var c=0;
for(var j=0;j<ST.head.length;j++){
if(ST.head[j]===n){ if(c===(occ||0)) return (stRow[j]||'').trim(); c++; }
}
return '';
};
var kvp=function(l,v){ return v?('
'+esc(l)+'
'+linkify(v)+'
'):''; };
/* recap */
var h='
'+guideFlow().map(function(k){
var v=G[k];
var lab = k==='carrier' ? (v==='unknown'?'Company not known':v)
: k==='state' ? v : (GLABEL[v]||v);
return ''+esc(lab)+'';
}).join(' · ')+' · start over
';
/* deadline */
if(G.when){
var dtxt = (apRow&&AP?AP.get(apRow,'Filing Deadline'):'') ||
(coRow&&CO?CO.get(coRow,'Appeal Deadline (days)'):'');
var msg='', urgent=false;
if(G.when==='d180'){
urgent=true;
msg='More than 180 days have passed, and most internal appeal windows have closed by then. Your realistic routes are the ones further down this page. Check the notice anyway, because some plans allow longer.';
} else if(G.when==='d60'){
urgent=true;
msg='Between 60 and 180 days. Some plans allow 180 days and some allow far less. Treat this as urgent until you have read the deadline off your own notice.';
} else if(G.when==='d30'){
msg='Between 30 and 60 days. If your plan uses a short window you may be close to it. File this week.';
} else if(G.when==='d0'){
msg='Under 30 days. You are inside every common appeal window. This is the best time to file.';
} else {
msg='Without the date the clock cannot be checked. Find the denial letter or the explanation of benefits before doing anything else.';
}
if(dtxt) msg+=' The record for this carrier says: '+dtxt+'.';
h+='
'+
''+
(urgent?'Check your deadline first':'Your deadline')+''+
''+esc(msg)+' Your own notice and your certificate of coverage override anything shown here.
';
}
/* the ladder for this coverage type */
var L=LADDER[G.coverage]||LADDER.unsure;
h+='
'+
esc(L.t)+''+esc(L.s)+'
';
h+='
'+
'Who has authority here, and why'+esc(guideGov())+'
';
h+='
What to do, in order
';
var n=0;
/* 1. internal appeal */
if(G.when!=='d180'){
n++;
var body='';
if(apRow && AP){
var rows='';
rows+=kvp('Send it to', AP.get(apRow,'Mail Address'));
rows+=kvp('Or use', AP.get(apRow,'Portal / Appeals URL'));
rows+=kvp('Fax', AP.get(apRow,'Fax'));
rows+=kvp('Phone', AP.get(apRow,'Phone'));
rows+=kvp('Deadline', AP.get(apRow,'Filing Deadline'));
rows+=kvp('Must include', AP.get(apRow,'What to Include'));
rows+=kvp('Form required', AP.get(apRow,'Form'));
if(rows) body='
'+rows+'
';
}
if(!body) body='
This carrier does not publish its appeal process, so the address and deadline have to come from your own notice, your explanation of benefits, or the provider manual. Ask member services to send the appeal instructions to you in writing.
';
h+='
'+n+'
'+
'
'+esc(G.coverage==='medicaid'?'Appeal to the plan first':'File the internal appeal with '+(name||'the plan'))+'
'+
'
Almost every route below depends on having done this first. Do it in writing and keep a copy of everything you send.
'+
body+'
';
}
/* 2. who decided */
if(['denied','preauth','paid_less'].indexOf(G.what)>-1){
n++;
h+='
'+n+'
'+
'
Ask who made the decision
'+
'
Put this line in your appeal: Please provide the name, credentials, state of licensure and specialty of the clinician who reviewed this claim. '+
'You are entitled to know whether someone qualified in the relevant field made the call. The answer also tells you which licensing board is the right one if it comes to that.
'+
(coRow && CO && parseInt(CO.get(coRow,'Clinicians Named'),10)>0
? '
This carrier does name clinicians publicly. Open the Find a company tab and search '+esc(name)+' to see them.
' : '')+
'
If the plan refuses to tell you who made the decision, that refusal is itself worth a complaint. The letter library has one built for exactly this.
'+
''+
'
';
}
/* 3. peer to peer */
if(apRow && AP && AP.get(apRow,'Peer to Peer / Dentist to Dentist')){
n++;
h+='
'+n+'
'+
'
Ask for a peer to peer review
'+
'
'+esc(AP.get(apRow,'Peer to Peer / Dentist to Dentist'))+'
'+
'
Your treating clinician requests this, not you. It is often faster than a written appeal and it puts a clinician on both sides of the conversation.
'+
'
';
}
/* 4. the next rung, which depends on coverage */
n++;
var ext = (apRow && AP && AP.get(apRow,'External Review')) || sg('External Review');
h+='
'+n+'
'+
'
'+esc(G.coverage==='medicaid'?'Request a state fair hearing'
:G.coverage==='medicare'?'Move up the Medicare ladder'
:'External review, if the appeal fails')+'
';
/* 5. regulator */
n++;
var doi='';
doi+=kvp('Department', sg('Dept of Insurance'));
doi+=kvp('File a complaint', sg('Consumer Complaint'));
doi+=kvp('Website', sg('Website',3));
doi+=kvp('Phone', sg('Phone',3));
h+='
'+n+'
'+
'
Complain to the '+esc(G.state)+' regulator
'+
'
You can do this alongside the appeal, not only after it. Regulators track complaint volume by company, so filing counts even when your own case has already been resolved.'+esc(regCaveat())+'
'+
(doi?'
'+doi+'
'
:'
Open the Your state tab and choose '+esc(G.state)+' for the contact details.
If a licensed clinician reviewed and denied treatment, that person answers to a state board like any other licensee. This is a separate track from the insurance complaint.
'+
'
'+
kvp('Board', bd[1])+kvp('File a complaint', bd[2])+
'
';
}
}
/* things worth checking, phrased as possibilities */
var maybe=guideMaybe();
if(maybe.length){
h+='
Worth checking
'+
'
'+
'These may or may not apply to you. They are here because they often turn out to matter, not because we know they do in your case.
';
maybe.forEach(function(m){ h+='
'+esc(m)+'
'; });
}
/* the letter */
var lid=guideLetter(), want=guideMissing(), Lt=null;
for(i=0;i<LETTERS.length;i++) if(LETTERS[i].id===lid) Lt=LETTERS[i];
h+='
Your letter
';
if(want){
h+='
Being written. The letter library on this site was built for dental plan conduct and Medicaid dental. '+
'It does not yet include '+esc(GWANTED[want])+', which is what this situation calls for. Rather than hand you a document written for a different problem, '+
'the steps above give you what to send and where. Follow them and write the appeal in your own words.
';
}
if(Lt){
h+='
✎
'+
'
'+esc(Lt.name)+'
'+
'
Opens in the letter builder with '+(name?esc(name)+' and ':'')+esc(G.state)+' already filled in. You add your own details there, and nothing you type is sent anywhere.
'+
''+
'
';
} else if(!want){
h+='
No letter in the library matches this exactly. Use the steps above and write it in your own words.
You said you have, or can get: '+
esc(G.proof.filter(function(v){return GPROOF[v];}).map(function(v){return GPROOF[v].replace(/^my |^the /,'');}).join('; '))+
'. Those go in this envelope, and the letter lists them as enclosures.
'
: (G.proof && G.proof.indexOf('none')>-1
? '
You said you have nothing yet. The strongest single thing to get is a letter of medical necessity from the treating clinician; ask the office for one before you send the appeal.
' : ''))+
'
'+
'
The denial letter, the explanation of benefits, or the bill
'+
'
The claim number and the date of service
'+
(G.who==='provider'
? '
Chart notes, radiographs or images supporting the treatment
The narrative of medical or dental necessity
'
: '
Anything your clinician wrote about why the treatment was needed
')+
(G.what==='paid_less'?'
The procedure code actually performed and the code they paid
':'')+
(G.reason==='late'?'
Proof of the original submission date
':'')+
(G.reason==='drug'||G.reason==='step'?'
The prescribing note, and a record of anything you have already tried
':'')+
(G.reason==='dme'?'
The prescription or order for the equipment, and the supplier invoice
':'')+
(G.plan==='vision'?'
The prescription, and the plan document showing the allowance
A copy of the notice, which carries the appeal rights on the back
':'')+
'
A short timeline of what happened and when
'+
'
'+
'
Keep a copy of everything you send, and send anything important by a method that gives you proof of delivery.
'+
'';
box.innerHTML=h;
}
/* A starter note built from the answers. It lands in the letter's own
notes box, fully editable, and is injected above the signature. It
names the enclosures, says where the appeal stands, and states the
next step the writer plans to take. */
var GPROOF={notes:'chart and clinical notes', imaging:'imaging and test results',
lmn:'a letter of medical necessity from my treating clinician',
tried:'records of the treatment already tried', referral:'the referral, order or prescription'};
function guideNote(){
var lines=[];
if(G.proof && G.proof.length){
var have=G.proof.filter(function(v){ return GPROOF[v]; }).map(function(v){ return GPROOF[v]; });
if(have.length) lines.push('Enclosed in support of the medical necessity of this care: '+have.join('; ')+'.');
}
if(G.firstno==='again') lines.push('This is not my first request. I have appealed this decision before, and this letter is my next level of appeal.');
if(['denied','preauth','paid_less'].indexOf(G.what)>-1){
if(G.coverage==='medicaid') lines.push('If this appeal is not granted in full, my next step will be to request a state fair hearing.');
else if(G.coverage==='medicare') lines.push('If this appeal is not granted in full, my next step will be escalation to the independent review entity described in my notice.');
else if(G.funding==='selffunded' || G.coverage==='union') lines.push('If this appeal is not granted in full, my next step will be a complaint to the United States Department of Labor, since this plan is governed by federal law.');
else if(G.coverage==='employer' && G.funding==='fundnotsure' && G.state) lines.push('If this appeal is not granted in full, my next step will be a formal complaint to the '+G.state+' Department of Insurance or, if this plan proves to be self funded, to the United States Department of Labor.');
else if(G.state) lines.push('If this appeal is not granted in full, my next step will be a formal complaint to the '+G.state+' Department of Insurance.');
}
return lines.join('\n\n');
}
function guideHandoff(id){
GPEND={id:id, co:(G.carrier==='unknown'?'':G.carrier), st:G.state, note:guideNote()};
gotoTab('let');
}
function guideApplyPending(){
if(!GPEND) return;
var p=GPEND; GPEND=null;
var sel=el('switLSel');
if(sel && p.id) sel.value=p.id;
var co=el('switLCo');
if(co) co.value=p.co||'';
if(p.st) LVals['[State]']=p.st;
if(p.note){
var nb=el('switLNotes'), bx=el('switLNoteBox'), bt=el('switLNoteBtn');
if(nb){ nb.value=p.note; }
if(bx){ bx.style.setProperty('display','block','important'); }
if(bt){ bt.textContent='Hide the notes box'; }
}
var ff=el('switLFields'); if(ff) ff.dataset.sig='';
renderLetter();
toast(p.note?'Letter ready. Your answers were added as notes above the signature, and you can edit them.':'Letter ready');
}
guideRender();
/* ==================== CONTRACT CHECK ====================
A provider drops in a participation agreement. Everything happens
in this browser: the file is read locally, matched against the
clause list below, and never sent anywhere. That is not only a
privacy choice. Most participation agreements carry a
confidentiality clause covering their own terms, so a provider who
uploads one to a website may be breaching the very contract they
are trying to understand. Reading it locally means no disclosure.
CX is the clause list. Each entry:
id, g group: 'money' or 'control'
n name
s severity 3 walk away, 2 negotiate hard, 1 know it is there
w what it does to a practice
f what to look for, shown as quoted fragments
a what to ask for instead
p regex patterns used by the local scan
======================================================== */
var CX = [
/* ---------------- money ---------------- */
{id:'feeamend', g:'money', s:3,
n:'Fee schedule changed on notice, and not attached',
w:'The carrier can lower what it pays you by giving notice, and treating the next patient counts as agreeing. Worse, the fee schedule is often incorporated by reference rather than attached, which means you can sign the contract without ever having seen the numbers it pays.',
f:['may amend the Fee Schedule upon','incorporated herein by reference','continued participation shall constitute acceptance','thirty (30) days written notice'],
a:'A fee schedule attached as a numbered exhibit, no change without your signature, and if that fails, at minimum a right to terminate without penalty inside the notice window.',
p:[/fee schedule[^.]{0,120}(amend|modif|chang|adjust)/i,
/(amend|modif|chang)[^.]{0,80}fee schedule/i,
/fee schedule[^.]{0,80}incorporated[^.]{0,40}reference/i]},
{id:'mfn', g:'money', s:3,
n:'Most favoured nation pricing',
w:'You must give this carrier the lowest rate you give anyone. It sounds fair and it is not: it means you cannot cut a better deal with a small local plan, cannot run a membership plan below that rate, and every future negotiation is capped by this one. Several states restrict these clauses outright.',
f:['no less favorable than','most favored','lowest rate','any other payor','rates offered to any other'],
a:'This clause is often removed entirely, or narrowed with carve-outs for cash patients, in-house membership plans and plans under a stated size.',
p:[/most favou?red nation/i,
/no less favou?rable than[^.]{0,100}(any other|other payor|other third)/i,
/lowest (rate|fee)[^.]{0,80}(any other|other payor)/i]},
{id:'downcode', g:'money', s:2,
n:'Downcoding, bundling and alternate benefit rights',
w:'The carrier reserves the right to decide that what you did was really a different, cheaper procedure, and pay that instead. This is the contract-level source of the least expensive alternative treatment fight you have downstream on every claim.',
f:['least expensive','professionally acceptable alternative','alternate benefit','may bundle','reassign the procedure code'],
a:'Written criteria for any recoding, notice before it is applied, and an appeal route that reaches a clinician of your own discipline.',
p:[/least expensive[^.]{0,60}(alternative|treatment|professionally)/i,
/alternate benefit/i,
/(bundl|downcod|down-cod|re-?assign)[^.]{0,60}(code|procedure|claim)/i]},
{id:'recoup', g:'money', s:3,
n:'Recoupment and offset against future payments',
w:'They can decide you were overpaid and simply take it out of money owed to you later, without asking. Look hard at the lookback window. Two years is common, some contracts state none at all, and a carrier with an unlimited lookback and offset rights holds an open line of credit against your practice.',
f:['offset against future payments','recoup','overpayment','without further notice','within twenty-four (24) months'],
a:'A lookback no longer than twelve months, written notice with the claim detail before any money moves, and a real appeal window before offset.',
p:[/(offset|recoup|recover)[^.]{0,80}(future payment|subsequent payment|amounts otherwise)/i,
/overpayment[^.]{0,100}(offset|deduct|withhold|recoup)/i]},
{id:'extrap', g:'money', s:3,
n:'Audit with extrapolation',
w:'They audit a sample of charts, find a defect rate, and then apply that rate to every claim you have ever filed. A handful of documentation errors in twenty charts becomes a six figure demand across five years. Extrapolation is the single most financially dangerous word in a provider agreement.',
f:['extrapolat','statistically valid random sample','projected overpayment'],
a:'Extrapolation is often removed entirely. Where it stays, providers commonly negotiate a defect rate threshold before it can be used, an independent review of the sampling method, and a right to a full audit instead.',
p:[/extrapolat/i, /statistically valid random sample/i, /projected overpayment/i]},
{id:'nocover', g:'money', s:3,
n:'They set your fee for services they do not even cover',
w:'A clause capping what you may charge for non-covered services means the carrier is pricing work it pays nothing toward. Many states have banned this specifically. If your contract still contains it, that is worth knowing, because an unenforceable clause is often still being enforced in practice.',
f:['non-covered services','services not covered','shall not charge more than','discounted fee for'],
a:'Often removed entirely. It is also worth checking whether your state has already outlawed this kind of clause, because that changes the conversation.',
p:[/non-?covered service[^.]{0,140}(charge|fee|rate|exceed|amount)/i,
/services not covered[^.]{0,140}(charge|fee|rate|exceed)/i]},
{id:'holdharm', g:'money', s:2,
n:'Hold harmless stretched past covered services',
w:'You cannot bill the patient the balance. For covered services that is normal and expected. Read the sentence twice for whether it also reaches services the plan denied, downgraded, or never covered, because that version quietly makes you the insurer of last resort.',
f:['shall not bill, charge, collect a deposit from','hold harmless','seek compensation from the member','under any circumstances'],
a:'A clear carve-out: the member remains responsible for non-covered services, services beyond plan limits, and anything denied for eligibility.',
p:[/(hold harmless|shall not bill|not seek (payment|compensation))[^.]{0,160}(member|subscriber|enrollee|patient)/i]},
{id:'timely', g:'money', s:2,
n:'Short timely filing window',
w:'The clock on submitting a claim. Ninety days is aggressive and turns ordinary staffing gaps into written-off revenue. One hundred and eighty days is common. Also check the separate, usually shorter, window for appealing a denial.',
f:['within ninety (90) days of the date of service','timely filing','shall be denied'],
a:'A minimum of one hundred and eighty days, and an exception where another payor was billed first.',
p:[/timely filing/i,
/within (ninety|90|sixty|60)[^.]{0,40}days[^.]{0,60}(date of service|service was rendered)/i]},
/* ---------------- control ---------------- */
{id:'silent', g:'control', s:3,
n:'Silent PPO, network leasing and third party access',
w:'This is the one that catches the most practices. Your discounted rate is rented out to plans you never agreed to see. A patient walks in with a card you do not recognise, and you are held to a fee you agreed to for somebody else entirely. You get the discount without the patient volume that was supposed to justify it.',
f:['third party access','other payors','affiliates','network rental','leased network','designated agents','shared savings'],
a:'A named, written list of every entity that gets your rate, updated in writing, plus the right to opt out of third party access without leaving the primary network.',
p:[/third[- ]party access/i,
/(lease|rent|licens)[^.]{0,60}(network|fee schedule|rate)/i,
/(affiliate|other payor|other third part)[^.]{0,120}(access|use|obtain)[^.]{0,60}(rate|fee schedule|discount)/i]},
{id:'allprod', g:'control', s:3,
n:'All products, including ones that do not exist yet',
w:'Signing up for one plan signs you up for every product the carrier offers now and every product it invents later. That is how a practice ends up participating in a Medicaid or Medicare Advantage line at rates it never reviewed, discovered only when the first remittance arrives.',
f:['all products','any and all plans','existing and future','all lines of business'],
a:'Often negotiated to product-by-product election, with written notice and an opt-in rather than an opt-out for anything new.',
p:[/all (products|plans|lines of business)/i,
/(existing and future|now or hereafter)[^.]{0,60}(product|plan|program)/i]},
{id:'manual', g:'control', s:3,
n:'The provider manual is part of the contract and they can rewrite it',
w:'The sleeper clause. Even where the amendment language looks fair, incorporating a manual that the carrier may revise at will means every rule in that manual is a term of your contract that they can change without you. Read this one before you read the amendment clause, because it usually swallows it.',
f:['Provider Manual','Policies and Procedures','incorporated by reference','as amended from time to time'],
a:'Manual changes that materially affect payment or obligations require notice and give you a right to terminate without penalty.',
p:[/(provider|office reference|administrative) manual[^.]{0,120}incorporated/i,
/incorporated[^.]{0,60}reference[^.]{0,120}(manual|policies and procedures)/i,
/manual[^.]{0,80}amended from time to time/i]},
{id:'unilateral', g:'control', s:3,
n:'Unilateral amendment with silence as consent',
w:'They may change any term, not only fees, by sending notice. Saying nothing is treated as agreement, and so is simply continuing to see patients. A contract that can be rewritten by one side is a standing invitation rather than an agreement.',
f:['may amend this Agreement','shall be deemed accepted','continued participation','failure to object'],
a:'Material changes require your signature. Short of that, a clean right to terminate inside the notice period with no continuation obligation.',
p:[/may (amend|modify)[^.]{0,80}(this )?agreement/i,
/(deemed (to have )?accept|deemed to have agreed|failure to object)/i]},
{id:'termcause', g:'control', s:2,
n:'Termination without cause, and the notice is not symmetrical',
w:'Check both directions and both numbers. They can often exit on sixty days while you owe ninety or one hundred and eighty, or you may only leave on a single anniversary date, which can strand you for most of a year.',
f:['without cause upon','anniversary date','ninety (90) days prior written notice'],
a:'Equal notice periods in both directions, and the right to terminate at any time rather than only on an anniversary.',
p:[/without cause[^.]{0,80}(notice|days)/i,
/anniversary date[^.]{0,80}(terminat|notice|renew)/i]},
{id:'evergreen', g:'control', s:2,
n:'Evergreen renewal with a narrow escape window',
w:'It renews itself unless you give notice inside a specific window, sometimes as tight as thirty days, a set number of days before an anniversary you are not tracking. Miss it and you are in for another full year.',
f:['automatically renew for successive','unless either party gives notice','one (1) year terms'],
a:'A calendar reminder for the window at minimum. Providers often ask for notice that can be given at any time.',
p:[/automatically (renew|be renewed)[^.]{0,80}(successive|additional|one|1)/i,
/shall renew[^.]{0,60}unless/i]},
{id:'contcare', g:'control', s:2,
n:'You keep working at their rates after you leave',
w:'Continuation of care obligations can require you to treat existing patients at contract rates for months after termination, and occasionally through the end of an active treatment plan with no outer limit at all. Look for the outer limit. If there is not one, that is the finding.',
f:['shall continue to provide services','transition of care','through the end of the then-current','completion of treatment'],
a:'A hard outer limit, ninety days is reasonable, and an exception where the carrier terminated you.',
p:[/(continu\w*|transition)[^.]{0,60}(of )?care[^.]{0,100}(terminat|expir)/i,
/after (the )?(termination|expiration)[^.]{0,120}continue to (provide|render|treat)/i]},
{id:'gag', g:'control', s:3,
n:'Anti-disparagement and what you may tell your own patients',
w:'You agree not to criticise the plan publicly. Read carefully for whether it also limits what you may say to your own patients about why you left the network or why a claim was denied. A clause that sits between a clinician and a patient is a different animal from ordinary reputational protection, and it is the one that should stop you.',
f:['shall not disparage','refrain from any statement','derogatory','shall not encourage','solicit or induce'],
a:'Often narrowed to knowingly false statements only, with an explicit carve-out for anything a clinician tells a patient about their own care and coverage.',
p:[/disparag/i,
/(shall not|agrees not to)[^.]{0,80}(derogatory|negative|critical)[^.]{0,60}statement/i,
/(solicit|induce|encourage)[^.]{0,80}(member|enrollee|patient)[^.]{0,80}(terminate|disenroll|leave)/i]},
{id:'arb', g:'control', s:2,
n:'Arbitration, class waiver and whose home town',
w:'You give up court. Then check three details that decide whether that matters: who pays the arbitrator, where it is held, and whether you have waived the right to join with other providers. A carrier facing one dentist alone in its own state is in a very different position from one facing four hundred at once.',
f:['binding arbitration','waives any right to participate in a class','venue shall be','American Arbitration Association'],
a:'Commonly negotiated: venue in the provider\u2019s own state, costs shared or borne by the carrier, and removal of the class waiver.',
p:[/binding arbitration/i,
/waiv\w*[^.]{0,100}class (action|arbitration|basis)/i,
/venue[^.]{0,80}(shall be|exclusive)/i]},
{id:'assign', g:'control', s:2,
n:'They can hand the contract to someone else, you cannot',
w:'The carrier may assign the agreement, often including to an acquirer, while you may not assign without their written consent. That means the party you diligenced can be replaced by one you have never heard of, at the same rates, and you have no say.',
f:['may assign this Agreement','shall not assign','without prior written consent','successors and assigns'],
a:'Either mutual consent, or your right to terminate on assignment to a party you did not choose.',
p:[/may assign[^.]{0,80}(agreement|rights)/i,
/(shall|may) not assign[^.]{0,80}without[^.]{0,40}consent/i]},
{id:'indem', g:'control', s:2,
n:'One-way indemnification',
w:'You defend and pay for them if something goes wrong. Look for whether the same sentence runs the other way. Very often it does not, and a one-sided indemnity can reach beyond what your malpractice carrier will cover.',
f:['shall indemnify, defend and hold harmless','arising out of or related to'],
a:'Often made mutual, and capped at each party’s own negligence.',
p:[/(shall )?indemnif\w*[^.]{0,60}defend[^.]{0,60}hold harmless/i]},
{id:'credential', g:'control', s:1,
n:'Credentialing at your cost, and delegated credentialing',
w:'Usually ordinary, occasionally not. Watch for costs pushed onto you, re-credentialing that can suspend payment while it is pending, and delegated credentialing where a third party you never contracted with decides whether you stay in.',
f:['re-credentialing','at Provider’s expense','may suspend'],
a:'No payment suspension for administrative delay that is not your fault.',
p:[/re-?credential/i, /credentialing[^.]{0,80}(expense|cost|fee)/i]},
{id:'steer', g:'control', s:1,
n:'Tiering and steerage on their own metrics',
w:'The carrier may place you in a tier, or steer patients toward other providers, using cost or quality scores it calculates itself. Ask to see the methodology and whether you can dispute a score, because in most contracts you cannot.',
f:['tier','steer','performance program','efficiency','quality designation'],
a:'Disclosure of the methodology, advance notice of a tier change, and a real appeal.',
p:[/(tier|tiering)[^.]{0,80}(program|designation|assign)/i,
/(steer|direct|channel)[^.]{0,60}(member|enrollee|patient)/i]}
];
/* No verdicts. Every clause is presented the same way: an area to
review, what it might mean, and what is often negotiated. The s
value only orders the list; it is never shown as a judgment. */
var CXSEV = {3:'Area to review', 2:'Area to review', 1:'Area to review'};
var CXGRP = {
money:{t:'Money terms', d:'These decide what you actually get paid and how much of it they can take back later. Most practices are hurt here.'},
control:{t:'Control terms', d:'These decide who you have to see, what you may say, and how hard it is to leave. Most practices are trapped here.'}
};
var CXFOUND = {}; /* id -> matched sentence */
var CXTEXT = ''; /* the contract text, held in this page only */
function cxSentence(text, idx){
var s=text.lastIndexOf('.', idx); s = s<0?0:s+1;
var e=text.indexOf('.', idx+1); e = e<0?Math.min(text.length, idx+320):e+1;
var out=text.slice(s,e).replace(/\s+/g,' ').trim();
if(out.length>320) out=out.slice(0,317)+'…';
return out;
}
/* When the text came from a PDF we know where each page started, so a
match can be pinned to a page. Pasted text has no pages, so no page
is claimed for it. */
var CXOFFS=null;
function cxPageAt(idx){
if(!CXOFFS) return null;
var p=null;
for(var i=0;i<CXOFFS.length;i++){ if(CXOFFS[i].start<=idx) p=CXOFFS[i].page; else break; }
return p;
}
function cxScan(text, pageOffs){
CXFOUND={}; CXTEXT=text; CXOFFS=pageOffs||null;
for(var i=0;i<CX.length;i++){
var c=CX[i];
for(var j=0;j<c.p.length;j++){
var m=c.p[j].exec(text);
if(m){ CXFOUND[c.id]={q:cxSentence(text, m.index), page:cxPageAt(m.index)}; break; }
}
}
cxRender();
}
function cxRender(){
var box=el('switCx'); if(!box) return;
var scanned=!!CXTEXT, ids=Object.keys(CXFOUND);
var h='
'+
'Read this before you use it. AI makes mistakes.'+
'
This is an automated pattern check written with the assistance of artificial intelligence, and '+
'AI makes mistakes. It will miss things. It will flag wording '+
'that turns out to be harmless in context. It only highlights areas that are obvious to an automated '+
'check, and a contract can contain serious problems that are not obvious to one. Nothing here says what '+
'a clause means in your contract or what you should do about it.
'+
'
You must thoroughly review the entire contract yourself. '+
'A clean result here does not mean the contract is safe. It means these particular patterns were not '+
'found by this particular check, and nothing more.
'+
'
Nothing here is legal advice, and Stephanie Wright is not your attorney. Use this to arrive at a conversation with a healthcare attorney already knowing what to ask about, not instead of having that conversation.
'+
'
Your contract never leaves this computer. It is read in your browser and is not uploaded, stored or transmitted. '+
'That matters for a reason beyond privacy: most participation agreements contain a confidentiality clause covering their own terms, '+
'so uploading one to a website could itself breach the contract you are trying to understand. Close this tab and it is gone. '+
'Even so, this website is not HIPAA compliant and privacy and security cannot be guaranteed, so only work with what you are comfortable sharing. '+
'The full disclaimer is at the bottom of every page.
'+
'
';
if(scanned){
h+='
'+ids.length+' of '+CX.length+' clause types matched
'+
'
Matched means wording resembling that clause appeared somewhere in the document, and nothing more. '+
'It does not mean the clause is present, enforceable, or a problem in your situation, and an unmatched '+
'clause can still be in your contract in wording this check does not know. AI makes mistakes: read the '+
'sentence it pulled, then read the whole contract yourself.
'+
'
'+
'
'+ids.length+'Areas to review with your own eyes
'+
'
'+
'
'+
''+
''+
'
';
} else {
h+='
'+
'
Check a contract, or just read the list below
'+
'
Drop a participation agreement here, or paste the text. PDF, Word text, plain text or HTML. It stays on this computer.
'+
'
'+
''+
''+
'
'+
''+
'
'+
''+
'
'+
'
'+
''+
'
';
}
['money','control'].forEach(function(g){
var list=CX.filter(function(c){ return c.g===g; })
.sort(function(a,b){
var af=CXFOUND[a.id]?1:0, bf=CXFOUND[b.id]?1:0;
if(af!==bf) return bf-af;
return b.s-a.s;
});
h+='
'+esc(CXGRP[g].t)+'
'+esc(CXGRP[g].d)+'
';
list.forEach(function(c){
var found=CXFOUND[c.id];
h+=''+
''+esc(c.n)+''+
(found?'Found'+(found.page?' on page '+found.page:'')+'':'')+
'Area to review'+
'
'+
(found?'
The exact wording it pulled out of your document'+(found.page?', on page '+found.page+' of the PDF':'')+'
'+
'
'+esc(found.q)+'
'+
(found.page?'
Page numbers count from the first page of the file, which can differ from the numbers printed on the pages. Go to that page and read the full clause in context.
Take the whole list to your attorney, not only what was flagged. The clauses that were not found are still the ones to ask about, because wording varies and this check only knows the patterns it was given.
';
box.innerHTML=h;
}
function cxReadFile(f){
var st=el('cxStatus');
var setSt=function(m){ if(st) st.textContent=m; };
var name=(f.name||'').toLowerCase();
setSt('Reading ' + (f.name||'file') + ' on this computer…');
if(/\.pdf$/.test(name)){
cxPdf(f, setSt);
return;
}
var r=new FileReader();
r.onload=function(){
var t=String(r.result||'');
if(/\.html?$/.test(name)){
var d=document.createElement('div'); d.innerHTML=t; t=d.textContent||'';
}
if(t.replace(/\s/g,'').length<200){
setSt('That file has almost no readable text in it. If it is a scan, paste the text instead.');
return;
}
cxScan(t);
};
r.onerror=function(){ setSt('That file could not be read. Try pasting the text instead.'); };
r.readAsText(f);
}
/* PDF text is only reachable with a parser. Load one on demand, and if
it will not load, say so plainly and fall back to pasting. */
function cxPdf(f, setSt){
var go=function(){
var fr=new FileReader();
fr.onload=function(){
try{
var task=window.pdfjsLib.getDocument({data:new Uint8Array(fr.result)});
task.promise.then(function(pdf){
var pages=[], n=Math.min(pdf.numPages, 80);
var next=function(i){
if(i>n){
var t='', offs=[];
for(var k=0;k<pages.length;k++){ offs.push({start:t.length, page:k+1}); t+=pages[k]+'\n'; }
if(t.replace(/\s/g,'').length<200){
setSt('No selectable text found. This looks like a scanned document, so paste the text instead.');
} else cxScan(t, offs);
return;
}
setSt('Reading page '+i+' of '+n+' on this computer…');
pdf.getPage(i).then(function(pg){ return pg.getTextContent(); })
.then(function(tc){
pages.push(tc.items.map(function(it){return it.str;}).join(' '));
next(i+1);
}, function(){ next(i+1); });
};
next(1);
}, function(){ setSt('That PDF could not be opened. Paste the text instead.'); });
}catch(e){ setSt('That PDF could not be opened. Paste the text instead.'); }
};
fr.readAsArrayBuffer(f);
};
if(window.pdfjsLib){ go(); return; }
setSt('Loading the PDF reader…');
var s=document.createElement('script');
s.src='https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.min.js';
s.onload=function(){
try{ window.pdfjsLib.GlobalWorkerOptions.workerSrc='https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.worker.min.js'; }catch(e){}
go();
};
s.onerror=function(){ setSt('The PDF reader could not load. Paste the text instead and it will work exactly the same.'); };
document.head.appendChild(s);
}
el('switP-cx').addEventListener('click',function(e){
var t=e.target;
if(t.id==='cxPick'){ el('cxFile').click(); return; }
if(t.id==='cxPaste'){
var b=el('cxPasteBox');
b.style.setProperty('display','block','important');
el('cxText').focus(); return;
}
if(t.id==='cxRun'){
var v=(el('cxText').value||'').trim();
if(v.replace(/\s/g,'').length<200){ el('cxStatus').textContent='Paste a bit more of the contract, at least a paragraph or two.'; return; }
cxScan(v); return;
}
if(t.id==='cxClear'){ CXTEXT=''; CXFOUND={}; CXOFFS=null; cxRender(); toast('Document cleared'); return; }
if(t.id==='cxCopy'){
window.switAccPop&&window.switAccPop();
var lines=['Contract review notes','Generated by an automated pattern check written with AI. AI makes mistakes: this may be incomplete or wrong, and it only highlights what is obvious to an automated check. Not legal advice. Review the entire contract yourself.',''];
[3,2,1].forEach(function(sev){
CX.filter(function(c){ return CXFOUND[c.id] && c.s===sev; }).forEach(function(c){
lines.push('[AREA TO REVIEW] '+c.n);
lines.push(' Found'+(CXFOUND[c.id].page?' on page '+CXFOUND[c.id].page+' of the PDF':'')+': "'+CXFOUND[c.id].q+'"');
lines.push(' Often negotiated: '+c.a.replace(/]+>/g,''));
lines.push('');
});
});
lines.push('Not matched, still worth asking about:');
CX.filter(function(c){ return !CXFOUND[c.id]; }).forEach(function(c){ lines.push(' '+c.n); });
var txt=lines.join('\n');
if(navigator.clipboard&&navigator.clipboard.writeText){
navigator.clipboard.writeText(txt).then(function(){ toast('Findings copied'); },function(){ toast('Press Ctrl+C to copy'); });
} else toast('Press Ctrl+C to copy');
return;
}
});
el('switP-cx').addEventListener('change',function(e){
if(e.target.id==='cxFile' && e.target.files && e.target.files[0]) cxReadFile(e.target.files[0]);
});
['dragenter','dragover'].forEach(function(ev){
el('switP-cx').addEventListener(ev,function(e){
var d=el('cxDrop'); if(!d) return;
e.preventDefault(); d.classList.add('over');
});
});
['dragleave','drop'].forEach(function(ev){
el('switP-cx').addEventListener(ev,function(e){
var d=el('cxDrop'); if(!d) return;
e.preventDefault(); d.classList.remove('over');
if(ev==='drop' && e.dataTransfer && e.dataTransfer.files && e.dataTransfer.files[0]) cxReadFile(e.dataTransfer.files[0]);
});
});
cxRender();
/* ==================== ACCESS GATE ====================
The directory, appeal details and state lookup stay open to everyone.
The letter builder requires a signed acknowledgment, which is recorded
to a private Google Sheet. Change GATE_URL if the receiver is redeployed. */
var GATE_URL = 'https://script.google.com/macros/s/AKfycbzNcZP7yKR9LShYLqzGo800YbVuXBrL7gN6CeNb2-8yoEKqHxL20YUPcJkjQ_1fNOt1TA/exec';
var GATE_VER = '2026-09-02';
var GATE_KEY = 'switAccessV1';
var GATE_ROLES = ['Patient or family member','Patient advocate',
'Licensed healthcare provider','Provider staff or billing',
'Researcher or journalist','Other'];
/* What the visitor came to do. Picked on the sign-in page, recorded with
the sign-in, and used to land them on the right tool with the right
letter already chosen. */
var GATE_PURPOSE = [
'Appeal a denied claim or prior authorization',
'Dispute a bill I did not expect',
'My clinician is leaving or has left my plan’s network',
'I am a provider leaving or renegotiating a network',
'File a complaint about an insurance company',
'Check a participation contract',
'Research companies and appeal contacts',
'Just exploring',
'Other'];
var GATE_TERMS = [
['a1','I understand what this is.','I understand that this toolkit was compiled from publicly available sources and was produced with the assistance of artificial intelligence. It is a resource, not an absolute. It is not legal, medical, dental, insurance, employment or financial advice, and Stephanie Wright is not my attorney, my physician, my dentist, or my insurance advisor.'],
['a2','I am responsible for verifying what I use.','I understand that appeal deadlines, addresses, procedures and personnel change without notice, and that the controlling documents in any dispute are my own certificate of coverage, my explanation of benefits, and my provider agreement. It is my responsibility to know the laws of my own state and any federal law that applies to my situation, and to confirm every detail independently before I rely on it.'],
['a3','I do not work for an insurance company.','I attest that I am not employed by, contracted to, retained by, or acting on behalf of any insurance company, dental benefit company, vision benefit company, third-party administrator, pharmacy benefit manager, benefits consultant, or any agent, vendor or law firm engaged by one, and that I am not requesting access on behalf of any such organization or for its benefit.'],
['a4','I will not use this to harm anyone.','I understand that this toolkit names licensed clinicians who make clinical decisions at insurance companies, and that it is published so that those decisions can be challenged through legitimate channels. I will not use it for harassment, threats, intimidation, contact at anyone’s home, or any attempt to frighten or endanger a person or their family. I will use the published business channels, the formal appeal processes, the state licensing boards and the departments of insurance listed here.'],
['a5','I will not redistribute it.','I agree that I will not copy, scrape, extract, republish, resell or incorporate this toolkit or its data into any other product, database, service or model, by any manual or automated means, and that I will not share my access with anyone who has not signed this acknowledgment.'],
['a6','I will hold Stephanie Wright harmless.','I agree to indemnify, defend and hold harmless Stephanie Wright and Stephanie Wright Practice Management from and against any claim, demand, loss, liability, damage, cost or expense, including reasonable attorney fees, arising out of or related to my use or misuse of this toolkit, anything I create or send using it, my violation of these acknowledgments, or my violation of any law or of any contract I am party to. I use this toolkit entirely at my own risk.']
];
(function injectGateCss(){
var s=document.createElement('style');
s.textContent=
'.swit-root .swit-gate{max-width:760px !important; margin:0 auto !important;}'+
'.swit-root .swit-gate h2{margin-bottom:.3em !important;}'+
'.swit-root .swit-lead{font-size:1.02rem !important; color:var(--muted) !important;}'+
'.swit-root .swit-terms{border:1px solid var(--line) !important; border-radius:5px !important;'+
'padding:4px 16px !important; background:var(--bg-alt) !important; margin:0 0 16px !important;}'+
'.swit-root .swit-term{display:flex !important; gap:12px !important; align-items:flex-start !important;'+
'text-transform:none !important; letter-spacing:normal !important; font-size:1rem !important;'+
'font-family:var(--body) !important; color:var(--ink) !important; font-weight:400 !important;'+
'padding:14px 0 !important; border-bottom:1px solid var(--line) !important;}'+
'.swit-root .swit-term:last-child{border-bottom:0 !important;}'+
'.swit-root .swit-term input{width:20px !important; height:20px !important; min-width:20px !important;'+
'margin:2px 0 0 !important; accent-color:#25364E !important; cursor:pointer !important;}'+
'.swit-root .swit-term b{display:block !important; font-family:var(--head) !important;'+
'font-weight:600 !important; color:var(--navy) !important; font-size:.95rem !important; margin-bottom:3px !important;'+
'text-transform:none !important; letter-spacing:.01em !important;}'+
'.swit-root .swit-term span{font-size:.88rem !important; line-height:1.5 !important; color:var(--ink) !important;'+
'text-transform:none !important; letter-spacing:normal !important; font-family:var(--body) !important;}'+
'.swit-root .swit-term.miss{background:var(--rose-xl) !important; margin:0 -10px !important; padding-left:10px !important; padding-right:10px !important;}'+
'.swit-root .swit-two{display:grid !important; grid-template-columns:1fr 1fr !important; gap:0 14px !important;}'+
'.swit-root .swit-err{color:#8A4E74 !important; font-size:.85rem !important; margin:4px 0 0 !important; font-weight:600 !important;}'+
'.swit-root .swit-sigbox{border:2px solid var(--slate) !important; border-radius:5px !important;'+
'padding:16px 18px !important; background:#fff !important; margin:0 0 16px !important;}'+
'.swit-root .swit-who{font-size:.82rem !important; color:var(--muted) !important;'+
'border-top:1px solid var(--line) !important; margin-top:18px !important; padding-top:10px !important;}'+
'@media (max-width:640px){.swit-root .swit-two{grid-template-columns:1fr !important;}}';
document.head.appendChild(s);
})();
/* Access lasts one visit only: every visitor signs in again next time they
come to the site, and a signed-in visitor is signed out after 10 minutes
of inactivity. The saved profile only prefills the form to save typing. */
var SESS_KEY = 'switSessV1';
var GATE_IDLE_MS = 10*60*1000;
function gateStored(){
try{
var v=sessionStorage.getItem(SESS_KEY); if(!v) return null;
v=JSON.parse(v);
if(!v.lastActive || (Date.now()-v.lastActive) > GATE_IDLE_MS){
sessionStorage.removeItem(SESS_KEY); return null;
}
return v;
}catch(e){ return null; }
}
function gateProfile(){
try{ var v=localStorage.getItem(GATE_KEY); return v?JSON.parse(v):null; }catch(e){ return null; }
}
function gateTouch(){
try{
var v=sessionStorage.getItem(SESS_KEY); if(!v) return;
v=JSON.parse(v); v.lastActive=Date.now();
sessionStorage.setItem(SESS_KEY, JSON.stringify(v));
}catch(e){}
}
function gateRecord(d){
var body=JSON.stringify(d);
try{
if(navigator.sendBeacon){
navigator.sendBeacon(GATE_URL, new Blob([body],{type:'text/plain;charset=UTF-8'}));
return;
}
}catch(e){}
try{ fetch(GATE_URL,{method:'POST',mode:'no-cors',body:body}); }catch(e){}
}
function gateBuild(){
var h='
'+
SWIT_PURPOSE+
'
'+
'
Sign in to use this toolkit
'+
'
This toolkit is free to use. It is provided to patients, their families and '+
'advocates, and to licensed providers and their staff. Access is granted individually and is recorded.
'+
'
What we record. When you sign below we record your first and last name, '+
'your email address, the role you select, your state, your organization or practice, what you tell us '+
'brings you to the toolkit, your answer to '+
'question 7, the acknowledgment you sign, your browser and device '+
'information, and the date and time. If you answer yes to question 7, we will also use that email to send '+
'you updates and resources from Stephanie Wright Practice Management, and you can opt out at any time. These records are retained indefinitely. They are used to understand who '+
'this resource serves, to communicate with you about it, and to document access if these terms are violated. '+
'We do not sell this information. We do not share it with insurance companies, dental benefit companies, '+
'or third-party administrators.
'+
'7. Would you like to hear from Stephanie Wright Practice Management?'+
'Updates, public resources and other content, sent to the email you provide above. '+
'An answer is required, and either answer gives you the same access.'+
'
'+
''+
''+
'
'+
'
'+
'
'+
'
'+
''+
''+
'
'+
'By typing my full legal name I sign this acknowledgment electronically, confirm that every statement '+
'above is true, and agree to the full disclaimer and Terms of use at the bottom of this page. '+
'Signed on '+esc(todayLong())+'.
'+
'
'+
'
'+
''+
'
'+
''+
'
'+
'
';
return h;
}
/* The gate covers the whole toolkit, not only the letters. The masthead,
the headline counts and the footer disclaimer stay visible above it, so a
visitor can see what this is before deciding whether to sign. */
function gateParts(){
return {tabs:ROOT.querySelector('.swit-tabs'), wrap:ROOT.querySelector('.swit-wrap')};
}
function gateShow(scroll){
var p=gateParts();
var box=el('switGateBox');
if(!box){
box=document.createElement('div');
box.id='switGateBox';
box.style.setProperty('padding','24px 22px 8px','important');
p.tabs.parentNode.insertBefore(box, p.tabs);
}
box.innerHTML=gateBuild();
var prof=gateProfile();
if(prof){
if(el('gFirst')) el('gFirst').value=prof.first||'';
if(el('gLast')) el('gLast').value=prof.last||'';
if(el('gEmail')) el('gEmail').value=prof.email||'';
if(el('gOrg')) el('gOrg').value=prof.org||'';
if(prof.role && el('gRole')){
if(prof.role.indexOf('Other: ')===0){
el('gRole').value='Other';
var rw=el('gRoleOtherWrap');
if(rw) rw.style.setProperty('display','block','important');
if(el('gRoleOther')) el('gRoleOther').value=prof.role.slice(7);
} else el('gRole').value=prof.role;
}
}
if(window.__switIdleOut){
window.__switIdleOut=false;
var ge=el('gErr');
if(ge) ge.innerHTML='
For your privacy you were signed out after 10 minutes of inactivity. Please sign in again.
';
}
p.tabs.style.setProperty('display','none','important');
p.wrap.style.setProperty('display','none','important');
box.style.setProperty('display','block','important');
var wl=el('switWho'); if(wl) wl.style.setProperty('display','none','important');
var fb=el('switFeedback'); if(fb) fb.style.setProperty('display','none','important');
if(scroll) box.scrollIntoView({behavior:'smooth', block:'start'});
var gp=el('gPurpose');
if(gp) gp.addEventListener('change',function(){
var w=el('gPurposeOtherWrap');
if(w) w.style.setProperty('display', gp.value==='Other'?'block':'none','important');
if(gp.value==='Other' && el('gPurposeOther')) el('gPurposeOther').focus();
});
var gr=el('gRole');
if(gr) gr.addEventListener('change',function(){
var w=el('gRoleOtherWrap');
if(w) w.style.setProperty('display', gr.value==='Other'?'block':'none','important');
if(gr.value==='Other' && el('gRoleOther')) el('gRoleOther').focus();
});
el('gGo').addEventListener('click',function(){
var v={
first:(el('gFirst').value||'').trim(),
last:(el('gLast').value||'').trim(),
email:(el('gEmail').value||'').trim(),
role:el('gRole').value, state:el('gState').value,
purpose:el('gPurpose')?el('gPurpose').value:'',
org:(el('gOrg').value||'').trim(),
signature:(el('gSig').value||'').trim()
};
var miss=[];
if(!v.first) miss.push('your first name');
if(!v.last) miss.push('your last name');
if(!/^[^@\s]+@[^@\s]+\.[^@\s]{2,}$/.test(v.email)) miss.push('a valid email address');
if(!v.role) miss.push('your role');
if(v.role==='Other'){
var ro=((el('gRoleOther')&&el('gRoleOther').value)||'').trim();
if(!ro) miss.push('a few words about your role, since you chose Other');
else v.role='Other: '+ro;
}
if(!v.state) miss.push('your state');
if(!v.purpose) miss.push('what brings you to the toolkit today');
if(v.purpose==='Other'){
var po=((el('gPurposeOther')&&el('gPurposeOther').value)||'').trim();
if(!po) miss.push('a few words about what brings you here, since you chose Other');
else v.purpose='Other: '+po;
}
if(!v.org) miss.push('your organization or practice, or the word Patient if you are one');
var upd = el('gUpdY')&&el('gUpdY').checked ? 'yes' : (el('gUpdN')&&el('gUpdN').checked ? 'no' : '');
if(!upd) miss.push('a yes or no on question 7, about updates by email');
v.updates = upd;
var allTicked=true;
GATE_TERMS.forEach(function(t){
var c=el('g_'+t[0]);
var row=ROOT.querySelector('.swit-term[data-t="'+t[0]+'"]');
if(!c.checked){ allTicked=false; row.classList.add('miss'); } else { row.classList.remove('miss'); }
v[t[0]]=c.checked;
});
var nameMatch=v.signature.toLowerCase().replace(/\s+/g,' ')===
(v.first+' '+v.last).toLowerCase().replace(/\s+/g,' ');
if(!v.signature) miss.push('your signature');
else if(!nameMatch && v.first && v.last) miss.push('a signature that matches the name you entered above');
if(miss.length || !allTicked){
var msg=[];
if(miss.length) msg.push('Please add '+miss.join(', ')+'.');
if(!allTicked) msg.push('Every acknowledgment has to be checked before you can continue.');
el('gErr').innerHTML='
'+esc(msg.join(' '))+'
';
return;
}
v.version=GATE_VER;
v.page=location.href.split('#')[0].split('?')[0];
v.ua=navigator.userAgent;
v.lang=navigator.language||'';
v.screen=(screen.width||'')+'x'+(screen.height||'');
v.signedAt=new Date().toISOString();
gateRecord(v);
try{ localStorage.setItem(GATE_KEY, JSON.stringify({
first:v.first,last:v.last,email:v.email,org:v.org,role:v.role,updates:v.updates,at:v.signedAt,version:GATE_VER})); }catch(e){}
try{ sessionStorage.setItem(SESS_KEY, JSON.stringify({
first:v.first,last:v.last,email:v.email,role:v.role,updates:v.updates,purpose:v.purpose,at:v.signedAt,lastActive:Date.now()})); }catch(e){}
gateOpen();
toast('Access recorded');
gateRoute(v.purpose, v.role);
ROOT.scrollIntoView({behavior:'smooth', block:'start'});
});
}
/* Land a fresh sign-in on the tool that matches what they said they
came to do, with the matching letter already chosen where one exists. */
function gateRoute(purpose, role){
if(!purpose) return;
var prov=/provider|staff|billing/i.test(role||'');
if(purpose.indexOf('provider leaving')>-1 || purpose.indexOf('renegotiating')>-1){ guideHandoff('co1'); return; }
if(purpose.indexOf('clinician is leaving')>-1 || purpose.indexOf('has left')>-1){ guideHandoff(prov?'co1':'co2'); return; }
if(purpose.indexOf('participation contract')>-1){ gotoTab('cx'); return; }
if(purpose.indexOf('Research companies')===0){ gotoTab('co'); return; }
if(purpose.indexOf('Appeal')===0 || purpose.indexOf('Dispute')===0 || purpose.indexOf('complaint')>-1){
GSTARTED=true; guideRender(); gotoTab('go'); return;
}
/* Just exploring: stay on the Start here orientation */
}
function gateOpen(){
var p=gateParts();
var box=el('switGateBox');
if(box) box.style.setProperty('display','none','important');
p.tabs.style.removeProperty('display');
p.wrap.style.removeProperty('display');
var who=gateStored();
var line=el('switWho');
if(!line){
line=document.createElement('div');
line.id='switWho'; line.className='swit-who';
line.style.setProperty('padding','12px 22px 0','important');
line.style.setProperty('margin','0','important');
line.style.setProperty('border','0','important');
p.tabs.parentNode.insertBefore(line, p.tabs);
}
line.style.removeProperty('display');
var fb=el('switFeedback'); if(fb) fb.style.removeProperty('display');
if(who){
line.innerHTML='Signed in as '+esc(who.first+' '+who.last)+' ('+esc(who.email)+'). '+
'Your acknowledgment of '+esc(new Date(who.at).toLocaleDateString())+' is on file. '+
'Not you?';
var so=el('switSignOut');
if(so) so.addEventListener('click',function(e){
e.preventDefault();
try{ sessionStorage.removeItem(SESS_KEY); }catch(err){}
gateShow(true);
});
}
initLetters();
guideApplyPending();
}
function gateCheck(){ if(gateStored()) gateOpen(); else gateShow(false); }
/* The letter tab no longer gates; the whole toolkit does. It only needs to
pick up a draft the guide handed over. */
tabs.forEach(function(b){
if(b.dataset.panel==='let') b.addEventListener('click', guideApplyPending);
});
gateCheck();
/* A reminder whenever content leaves the toolkit: accuracy is the user's job. */
var accLast=0;
function accPop(){
var now=Date.now();
if(now-accLast<4000) return;
accLast=now;
var ov=document.getElementById('switAccPop');
if(!ov){
ov=document.createElement('div');
ov.id='switAccPop';
ov.style.cssText='position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(37,54,78,.55);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;';
ov.innerHTML='
'+
'
Before you use this anywhere else
'+
'
You are responsible for ensuring the accuracy of anything you copy, download, export or print from this toolkit. Confirm every detail against your own plan documents, contracts, denial notices and state rules before you rely on it or send it. This resource can contain errors and is not advice.
'+
'
';
document.body.appendChild(ov);
ov.addEventListener('click',function(e){ if(e.target.id==='switAccOk'||e.target===ov) ov.style.display='none'; });
}
ov.style.display='flex';
}
window.switAccPop=accPop;
document.addEventListener('copy',function(){ accPop(); });
/* Sign the visitor out after 10 minutes without a click, key press or scroll. */
['click','keydown','scroll','touchstart'].forEach(function(evt){
document.addEventListener(evt, gateTouch, {passive:true});
});
setInterval(function(){
var box=el('switGateBox');
if(box && box.style.display!=='none') return;
if(!gateStored()){
window.__switIdleOut=true;
gateShow(true);
}
}, 30000);
})();