Files
doczyai-pipelines/src/prompts.py
T
2024-09-30 15:20:14 +01:00

392 lines
27 KiB
Python

def GENERATE_PROMPT(bu_dict, td_dicts, page, field_name=None, values=None):
if field_name and values:
return f"""### PAGE START ### {page} ### PAGE END
Field: {field_name}
Values: {values}
Listed above is a page of a contract, as well as the potential values for the {field_name} field.
Your job is to identify which of these values is the most appropriate based on the page content.
Write ONLY the value that is most appropriate. Do not return any additional text beyond the value itself.
"""
else:
return f"""### PAGE START ### {page} ### PAGE END
Service: {bu_dict['SERVICE']}
Methodology: {bu_dict['FULL_METHODOLOGY']}
Listed above is a page of a contract, as well as a Service and Methodology found on this page.
Your job is to identify which of the following entities this specific Service is associated with.
----Change Below----
Here are the entities, represented as dictionary objects:
{td_dicts}
Write ONLY the number of the dictionary that is most associated with the Service and Methodology of interest. Do not return any additional text beyond the digit itself.
"""
def BOTTOM_UP_PRIMARY(page, payer):
return f"""
### PAGE START ### {page} ### PAGE END
The preceding text is one page of a contract between Payer {payer} and a provider in their network. Your job is to extract attributes related to the reimbursement of different services and specialties.
The reimbursement values will be identified with >>> <<< indicators (e.g. >>>105%<<<). Make sure there is at least one dictionary object for EVERY reimbursement value seen (either % or $).
Some values are found in sections explicitly identified as examples - these must be omitted from output. Other values might be related to liability - these must also be excluded.
If any of the attributes are not found, return N/A. For all attributes, only write what is written on the page. Do not make up new phrases or words.
Return at least one json object for each combination of attributes seen. It is possible that a page will not have any attributes. When this is the case, return an empty list.
Here are the attributes to be included in each dictionary, and instructions on how to correctly answer:
'SERVICE' : What is the Service that is being reimbursed? Use your best judgement and knowledge of the healthcare industry to answer. Use only exact text from the document. Do not leave this field N/A.
'REIMBURSEMENT_FLAT_FEE' : If the listed reimbursement is dollar value, return only that dollar value. There can only be one answer for each object. If more than one rate is found, create additional objects for them.
'REIMBURSEMENT_RATE' : If the listed reimbursement is a percent of something, return only that percent. There can only be one answer for each object. If more than one rate is found, create additional objects for them. Do NOT include multiple percentages in this value.
'FULL_METHODOLOGY' : If the listed reimbursement is a percent of something, what is it the percent of? If the listed reimbursement is a direct dollar value, how is that dollar value paid (per diem, per unit, etc)? Write the full sentence in text describing the payment methodology.
Note that only one of REIMBURSEMENT_FLAT_FEE or REIMBURSEMENT_RATE should be populated in each dictionary. Ensure all 4 keys are in the dictionary.
Only return the list, with no other commentary or explanation. Ensure you abide by proper JSON formatting.
"""
def BOTTOM_UP_LESSER(d, page):
return f"""
### PAGE START ### {page} ### PAGE END
The above text contains a number of reimbursement terms. For the rest of this request, focus only on the specific term listed below:
Service: {d['SERVICE']}
Original_Methodology: {d['FULL_METHODOLOGY']}
Your job is to identify if there is any 'lesser of' language or 'greater of' language that pertains to the specific service and methodology above.
Note that a 'lesser of'/'greater of' statement may not be directly written for a given Service, but that does not necessarily mean that it doesn't apply.
Read and analyze the page, then populate a JSON dictionary with the following fields (descriptions provided):
'LESSER_OF_LANGUAGE_IND' : Write 'Y' if there is 'lesser of' language somewhere on the page that applies to the Service and Original_Methodology. Write 'N' if not.
'GREATER_OF_LANGUAGE_IND' : Write 'Y' if there is 'greater of' language somewhere on the page that applies to the Service and Original_Methodology. Write 'N' if not.
'FULL_METHODOLOGY' : If either of the above are 'Y', what is the reimbursement the lesser or greater of? Do not write the full sentence - only include the half of the lesser/greater of statement that is NOT Original_Methodology. For example, if the reimbursement is the lesser of X or Original_Methodology, return only X.
'REIMBURSEMENT_RATE' : If the Lesser/Greater Of Methodology is a percent of something, write just the numeric percent value here. Only include percentages. If not, write N/A.
'REIMBURSEMENT_FLAT_FEE' : If the Lesser/Greater Of Methodology is a dollar value, write just the numeric value here. Only include dollar values. If not, write N/A.
For REIMBURSEMENT_RATE and REIMBURSEMENT_FLAT_FEE, do NOT include the Rate or Flat Fee from Original_Methodology.
Note that in some cases, the REIMBURSEMENT_RATE will not be explicitly written. It may say something like "Provider's billed charges", which is essentially equivalent to "100% of Provider's billed charges". In these cases, assign REIMBURSEMENT_RATE a value of 100%.
Only return the dictionary, with no other commentary or explanation. Ensure you abide by proper JSON formatting.
"""
def BOTTOM_UP_EXCEPT_ESC(d, page):
return f"""### PAGE START ### {page} ### PAGE END
The above text contains a number of reimbursement terms. For the rest of this request, focus only on the specific term listed below:
Service: {d['SERVICE']}
Methodology: {d['FULL_METHODOLOGY']}
Your job is to identify if the listed reimbursement contains some sort of exception (like for certain codes, hospitals, or other situations) or an escalation
Read and analyze the page, then populate a JSON dictionary with the following fields (descriptions provided):
REIMBURSEMENT_EXCEPTION_IND: If the listed reimbursement contains some sort of exception (like for certain codes, hospitals, or other situations), return 'Y'. Otherwise, 'N'
REIMBURSEMENT_DESCRIBE_EXCEPTION: If the listed reimbursement contains some sort of exception, describe it here. Try to use exact words from the text only. If there is none, just write 'N/A'
RATE_ESCALATOR_IND: Does the listed reimbursement include annual rate escalators for year-over-year rate increases? If yes, return 'Y'. Otherwise, 'N'.
RATE_ESCALATOR_BASIS: If contract does include annual rate escalators, on what are they based? Do not be overly verbose in your answer.
RATE_ESCALATOR_YEARLY_PERCENT_INCREASE: What is the percent value of increase or decrease year-over-year? If a decrease, return a negative percentage.
Only return the dictionary, with no other commentary or explanation. Ensure you abide by proper JSON formatting.
"""
def BOTTOM_UP_FS(d):
return f"""Analyze the reimbursement terms listed below:
Service: {d['SERVICE']}
Methodology: {d['FULL_METHODOLOGY']}
Your job is to identify if the reimbursement is based on a Fee Schedule.
Read and analyze the Methodology, then populate a JSON dictionary with the following fields (descriptions provided):
REIMBURSEMENT_FEE_SCHEDULE : If the Methodology is based on a Fee Schedule, what is the name of the fee schedule on which it is based? It could be something like Medicaid, Medicare, CMS, DRG, AWP, ASP, or similar. Do not answer with a complete sentence. If the Methodology is not based on a Fee Schedule, just return 'N/A'
REIMBURSEMENT_FEE_SCHEDULE_VERSION : If the Methodology is based on a Fee Schedule, what specific version of the Fee Schedule is it based on. It could be something like 'Current', 'Prevailing', 'at the date of service', a specific year, or similar. If there is no answer, return 'N/A'
Only return the dictionary, with no other commentary or explanation. Ensure you abide by proper JSON formatting.
"""
def BOTTOM_UP_METHODOLOGY(d):
return f"""Analyze the full methodology text listed below:
{d['FULL_METHODOLOGY']}
Your job is to identify what the concise methodology is based on the full methodology.
Choose the closest option from the following:
Allowed Amount, Allowable Charges, Fee Schedule, Medicare Fee Schedule, Medicare Allowed Amount, Medicaid Fee Schedule, Medicaid Allowed Amount, Provider's Charges, Billed Charges, Normal fee for such service, IME/DME Amount, Cost to Charge Ratio, Cost plus %, MSRP, Per Unit, Per Diem, Per Visit, Per Member, Per Member Per Month, Per Hour, Case Rate, Contracted Rate
For 'Allowed Amount' and 'Fee Schedule', use the more specific answer (Medicare/Medicaid) if applicable.
For the 'Per ___' values, note that this list is not necessarily exhaustive. It could be anything like 'Per ___'.
Return only the answer, without using complete sentences. If there is nothing close to the above options in the full methodology text, simply return 'N/A'
"""
def BOTTOM_UP_CODES(d, page):
return f"""### PAGE START ### {page} ### PAGE END
The above text contains a number of reimbursement terms. For the rest of this request, focus only on the specific term listed below:
Service: {d['SERVICE']}
Methodology: {d['FULL_METHODOLOGY']}
Your job is to identify codes associated with this specific term.
Read and analyze the page, then populate a JSON dictionary with the following code types if they are associated with the given Service and Methodology (descriptions provided):
'REIMBURSEMENT_ADMITTYPE_CODES' : Single-digit codes that indicate the type of admission to a facility.
'REIMBURSEMENT_DIAG_CODES' : Multi-digit alphanumeric codes related to diagnosis. They may contain a '.' after the first 3 characters. These may be labelled as ICD-10 or ICD-10-CM codes.
'REIMBURSEMENT_GROUPER_CODES' : 3- or 4-digit codes that may be labelled DRG or or similar.
'REIMBURSEMENT_GROUPER' : If there are grouper codes, what type are they? They could be MSDRG, APDRG, APRDRG, APC, APG, or EAPG. Choose only from these options.
'REIMBURSEMENT_PLACEOFSERVICE_CODES' : 2-digit codes related to the place of service.
'REIMBURSEMENT_PROC_CODES' : 5-digit numeric or alphanumeric codes. They may be labelled as CPT or HCPCS codes. These are related to specific procedures.
'REIMBURSEMENT_REVENUE_CODES' : 3- or 4-digit numeric or alphanumeric codes related to revenue. They may be labelled as 'Rev' codes.
'REIMBURSEMENT_STATUS_INDICATOR_CODES' : 1- or 2-digit alphanumeric codes indicating the payment status.
Return a value for each type of code - return N/A for any values not found. Multiple codes for each type may be found. In this case, return them all. They may also present as a range. If so, return the range.
Note that some PROC_CODES may have 'Modifiers' listed as well. These are 2-character strings. If Modifiers are present, include them.
Ensure you ONLY return codes if they are associated directly with the Service listed. Codes referring to other services should not be included.
Only return the dictionary, with no other commentary or explanation. Ensure you abide by proper JSON formatting.
"""
def TOP_DOWN_PRIMARY(page):
return f"""### PAGE START ### {page} ### PAGE END
The preceding text is one page of a contract between a Payer and a provider in their network. Your job is to extract the names of certain entities listed in the contract and return a single dictionary with the values below:
Here are the attributes to be included in each dictionary, and instructions on how to correctly answer:
'CONTRACT_LOB' : List any Line of Business mentioned on the page. Choose ONLY from the following: Commercial, Group, Marketplace, Marketplace/Exchange, Medicaid, Medicaid-Medicare, Medicare, Medicare Advantage, Medicare Supplemental, Veterans Affairs. If none of these are found on the page, simply write 'N/A' for this answer.
'CONTRACT_PROGRAM' : List any Programs mentioned on the page. Some examples of Programs are: CHIP, CHIP-P, CHIP-Perinate, STAR, STAR+PLUS. Do your best to infer the program from this page.
'CONTRACT_NETWORK' : List any Networks mentioned on the page. Networks are types of managed care organizations involved in the delivery of healthcare services. Some examples of Networks are: HMO, PPO, EMO, POS, FFS. Do your best to infer the network from this page. If it says anywhere that they are out of network then only return "OUT OF NETWORK" as your answer.
'PRODUCT' : List any Products listed on the page. These are typically the brand name of a health plan. You may also use this field as a catch-all for entities that you are unsure of.
If any of the attributes are not found, return N/A. If there are multiple answers for a given attribute, return the answers in a comma-separated list.
For all attributes, only write what is written on the page. Do not make up new phrases or words.
Only return the dictionary, with no other commentary or explanation. Ensure you abide by proper JSON formatting.
"""
def LOB_CHECK(bu_dict, td_dicts, page):
return f"""### PAGE START ### {page} ### PAGE END
Service: {bu_dict['SERVICE']}
Methodology: {bu_dict['FULL_METHODOLOGY']}
Listed above is page of a contract, as well as a Service and Methodology found on this page.
Your job is to identify which of the following entities this specific Service is associated with.
----Change Below----
Here are the entities, represented as dictionary objects:
{td_dicts}
Write ONLY the number of the dictionary that is most associated with the Service and Methodology of interest. Do not return any additional text beyond the digit itself.
"""
def TOP_DOWN_METAL_LEVEL(LOB, page):
return f"""### PAGE START ### {page} ### PAGE END
The above page was identified as applying to a Commercial or Marketplace Line of Business.
What is the metal level(s) of the line of business. It might be Bronze, Silver, Gold, or Platinum. If multiple are found, return them all in a comma-separated list. If no metal level is found, return 'N/A'.
Only write what is written on the page. Do not make up new phrases or words.
ONLY return the metal level, with no other commentary or explanation.
"""
def TOP_DOWN_DATE(type_, d, page):
return f"""### PAGE START ### {page} ### PAGE END
Above is a page of a contract. Identify the {type_} Date associated with the information below:
{d}
Only write what is written on the page. Do not make up new phrases or words. If no {type_} date is listed, return 'N/A'.
Ensure that you do not mistake EFFECTIVE date for TERMINATION date, or vice versa. They are not the same thing.
The TERMINATION date will NOT be labelled as the EFFECTIVE date, and the EFFECTIVE date will NOT be labelled as the TERMINATION date. This is very important, so pay extra close attention.
ONLY return the answer, with no other commentary or explanation.
"""
def get_carveout_list():
return ['Emergency Department/Emergency Room', 'Emergency Department', 'Emergency Room', 'Observation', 'Surgery', 'General Surgery',
'Ambulatory Surgery', 'Intensive Care', 'Trauma', 'HIV', 'Human Immunodeficiency Virus', 'Major Joint Replacement', 'Transplant', 'OBGYN',
'Obstetrician/Gynecologist', 'Obstetrician', 'Gynecologist', 'Opthalmology & Vision', 'Opthalmology', 'Vision', 'Never Events',
'Medically Unnecessary', 'Medically Unnecessary Procedures', 'Not Medically Necessary', 'Not Medically Necessary Procedures',
'Experimental', 'Investigational', 'Unlisted Codes', 'Durable Medical Equipment', 'DME', 'Prosthetics & Orthotics', 'Prosthetics',
'Orthotics', 'Implants', 'Hearing Aids', 'Hearing', 'Anesthesia', 'Anesthesiology', 'Medical Pharmacy', 'Physician Administered Drugs',
'Global', 'Bundled or Unbundled Codes', 'Bundled Codes', 'Unbundled Codes', 'Multiple Procedure Reductions', 'Second Surgery', 'Subsequent Surgeries',
'Non-Behavioral Health Mid-Level Professionals', 'Physician Assistant', 'PA', 'Nurse Practicioner', 'NP', 'Non-Physician',
'Non-Physician Health Professionals', 'Technical Component', 'Professional Component', 'Laboratory', 'Pathology', 'Lab', 'Path', 'Lab/Path',
'Laboratory/Pathology', 'Radiology', 'Imaging', 'Radiology/Imaging', 'Mammography', 'Diagnostic', 'Pre-Admission Procedures',
'Post-Discharge Procedures', 'Readmission', 'Status Indicators', 'Stop Loss', 'Emergency Medical', 'EMS', 'NICU', 'Neonatal Intensive Care Unit',
'Vaccine for Children', 'VFC', 'Surgical Assistant', 'Physicians/Clinical Psychologists', 'Doctor of Nursing Practice', 'Osteopathic Medicine',
'Clinical Psychology', 'Audiologist', 'Chiropractors', 'Registered Dietician', 'AUD', 'DC', 'RD', 'Board Certified Behavioral Analysis', 'Behavioral Analysis',
'BCBA', 'Independent Licensures', 'Licensed Professional Counselor', 'Marriage and Family Therapist', 'Substance Abuse Counselor', 'Clinical Social Worker',
'Behavioral Health Outpatient Clinic', 'Physical Therapist', 'Occupational Therapist', 'Speech Therapist', 'PT', 'OT', 'ST', 'Transportation',
'Primary Care', 'Primary Care Behavioral Health', 'Behavioral Physician', 'Clinical Psychologist', 'Mid-Level Practicioner', 'Dentist', 'Dental',
'Supplies and Devices', 'Supplies', 'Devices', 'Immunizations', 'Obstetrical Epidural', 'Pediatric Subspecialties', 'Orthopedic Surgery', 'All Other Specialists',
'Specialty Care Physician', 'Pediatric Primary Care', 'Nurse Anesthetist', 'Early Periodic Screening, Diagnostic, and Treatment', 'EPSDT',
'Ancillary', 'Oncology', 'Cancer', 'Inpatient Physical Rehabilitation', 'Inpatient Rehabilitation', 'Outpatient Rehabilitation', 'Rehabilitation', 'Non-Behavioral Health Rehabilitation',
'Extracorporeal Shock Wave Lithotripsy', 'Cardiac', 'Special Care Unit', 'Skilled Nursing', 'Infusion', 'Specialty Care',
'Specialty Care Physician', 'Organ Acquisition', 'Blood Products', 'Blood Products Outpatient', 'Blood Products Inpatient', 'High Cost Drugs', 'Sleep Studies',
'NICU', 'Newborn Intensive Care Unit', 'Extracorporeal Membrane Oxygenation', 'Burns', 'Kyphoplasty', 'Cryosurgical Ablation of the Prostate',
'Transurethral Thermal Ablation', 'TUMT', 'Transurethral Needle Ablation', 'TUNA', 'Hyperbaric Treatment', 'Clinic Visit', 'Boarder Baby',
'Pediatric Intensive Care Unit', 'PICU', 'Psychiatric', 'Mental Health', 'Behavioral Health', 'Substance Abuse',
'Behavioral Health and Substance Abuse', 'Sub-Acute Facility Care', 'Unrouped Inpatient', 'All Other Acute',
'Neurology', 'Neurology Subspecialties', 'Automatic Implantable Cardioverter Defibrillator', 'Percutaneous Transluminal Coronary Angioplasty',
'Non-Coronary Angioplasty', 'Cardiac Catheters', 'Cardiovascular Surgery', 'Cardiac Surgery', 'Cesarean Birth', 'Cesarean Section', 'C-Section',
'Gamma-Knife Radio-Surgery Outpatient', 'DaVinci Robotic Assisted Surgery', 'Outpatient Electrophysiology with Ablation', 'Outpatient Electrophysiology',
'Magnetic Resonance Image', 'MRI', 'Computed Tomography Scan', 'CT Scan', 'Radiation Therapy', 'Dialysis', 'Gastric Bypass', 'Lap Band',
'Obesity', 'Laparoscopic Cholecystectomy', 'Lap Chole', 'Laparoscopic Hysterectomy', 'Laparoscopic Prostatectomy', 'Laparoscopic Hysteroscopy',
'Treatment Room', 'Wound Care', 'Cardiac Computed Tomograpy & Angiography', 'Positron Emission Tomography Scan', 'PET Scan', 'Hematology']
def prompt_contract_lob(page):
return f"""### PAGE START ### {page} ### PAGE END
Extract all instances of the Line of Business (LOB) mentioned on the page.
Identify each distinct LOB and return them as separate objects. Possible values include:
- Commercial
- Commercial/Group
- MARKETPLACE
- MEDICAID
- MEDICARE
- Marketplace/Exchange
- Medicaid/Medicare
- Medicare Advantage
- Medicare Supplemental
- Veterans Affairs (VA)
- Civilian Health and Medical Program of the Department of Veterans Affairs (CHAMPVA)
- Tricare (health care program for uniformed service members, retirees, and their families around the world)
If no LOB is found, return 'N/A'.
IT IS NOT GOING TO BE THINGS LIKE HMO, PPO, CHIP, STAR, ETC
It will not be anything related to a 'Plan', so do not return anything like that.
Return the results. If there are multiple identified then return seperated by commas. Only return the extracted information and no other text or sentences or explanations. Only the final values. """
def prompt_product(page):
return f"""### PAGE START ### {page} ### PAGE END
Identify and list all instances of the Plan or Product names mentioned on the page. In the context of health insurance, 'Plan' or 'Product' names are typically brand names of health plans provided by insurers. These names often reflect the type of coverage offered, its scope, or the insurer's branding. Examples of the types of coverage include 'Medical', 'Prescription Drug', 'Mental/Behavioral Health (MH/BH)', 'Substance Abuse (SA)', 'Hearing', 'Dental', and 'Vision'.
To recognize these names, look for capitalized terms or phrases often preceded by words like 'plan', 'coverage', 'program', or directly followed by 'network'. These names can be unique to the insurer or widely recognized in the industry. For instance, names like 'HealthPlus Medical Plan', 'VisionCare Network', or 'DentalSelect Coverage' are typical examples.
Extract and list all identified plan or product names. If multiple names are found, return them separated by commas. If no specific plan name is found, return 'N/A'. Only return the extracted information and no other text or sentences or explanations. Only the final values.
"""
def prompt_network_name(page):
#MODIFY TO DICTS FOR MAPPING
return f"""### PAGE START ### {page} ### PAGE END
Extract all network names mentioned on the page. A 'network name' in the context of health insurance refers to the type of managed care organization involved in the delivery of healthcare services. These names often indicate the structure or model of care delivery, which may define the relationships between insurers, healthcare providers, and insured individuals.
Key identifiers of network types include terms that suggest managed care arrangements such as 'Health Maintenance Organization (HMO)', 'Preferred Provider Organization (PPO)', 'Exclusive Provider Organization (EPO)', 'Point of Service (POS)', and 'Indemnity or Fee for Service (FFS)'. Other descriptors might include 'Open Access', 'Exclusive Provider', 'Integrated Delivery Network', and 'Tiered Network'.
Methodically scan the text for any terms that align with these descriptions. Return all found network names separated by commas if multiple. If no network names are found in the text, return 'N/A'. Only return the extracted information and no other text or sentences or explanations. Only the final values.
"""
def prompt_service_area(page):
return f"""### PAGE START ### {page} ### PAGE END
Extract the type of service area mentioned on the page. A 'Service Area' refers to the specific geographic or demographic region type where the health plan provides coverage or services. This could include specific states, counties, cities, or distinctions between urban and rural areas.
Select from the following options: Urban, Rural, State, County, City, ZIP, Address
Extract and return all found attributes separated by commas in a single string. If no specific service areas are mentioned in the text, return 'N/A'. only return the extracted information and no other text or sentences or explanations. Only the final values.
"""
def prompt_effective_date(page):
return f"""### PAGE START ### {page} ### PAGE END
Identify all instances of Effective Dates mentioned within the context of specific compensation exhibits or contracts.
The date format should be MM/DD/YYYY.
Return all dates seperated by commas. If no effective dates are found, return 'N/A'. only return the extracted information and no other text or sentences or explanations. Only the final values.'
DO NOT REPEAT THE SAME DATE MULTIPLE TIMES.
"""
def prompt_termination_date(page):
return f"""### PAGE START ### {page} ### PAGE END
Extract all termination dates mentioned in the text, specifically those related to the end of a compensation period or agreement. Termination dates specify when a contract or policy provision ceases to be effective.
To identify termination dates, look for dates associated with terms like 'end', 'expiration', 'termination', or similar phrases that indicate the conclusion of an agreement. These dates are typically formatted in MM/DD/YYYY.
Carefully scan the text for these indications and extract any dates that conform to this format. List each date and return them separated by commas if multiple are found. If no termination dates are found, return 'N/A'. only return the extracted information and no other text or sentences or explanations. Only the final values.
DO NOT REPEAT THE SAME DATE MULTIPLE TIMES.
"""
def prompt_metal_level(page):
return f"""### PAGE START ### {page} ### PAGE END
If the Line of Business is identified as Marketplace, extract all instances of metal levels such as Platinum, Gold, Silver, or Bronze.
List each metal level. If no metal levels are found or if the LOB is not Marketplace, return 'N/A'. only return the extracted information and no other text or sentences or explanations. Only the final values seperated by commas."""
def prompt_claim_discount_ind(lob):
return f"For this line of business: {lob}, return with a 'Y' or 'NO' only whether the claim for this LOB is discounted. Only return as 'Y' or 'NO'."
def prompt_claim_discount_percent_rate(lob):
return f"For this LOB only: {lob}, extract the claim discount percent rate."
def prompt_claim_discount_start_date(lob):
return f"For this LOB only: {lob}, extract the claim discount start date."
def prompt_claim_discount_termination_date(lob):
return f"For this LOB only: {lob}, extract the claim discount termination date."
def prompt_premium_ind(lob):
return f"""For this Line of Business{lob}, indicate with a 'Y' or 'N' only whether the premium for this LOB is subject to any adjustments. Return only 'Y' or 'N'."""
def prompt_premium_percent(lob):
return f"""For this Line of Business{lob}, extract the percentage rate of premium adjustment if applicable. Provide the percentage as a numerical value only."""
def prompt_premium_start_date(lob):
return f"""For this Line of Business{lob}, identify the start date of the premium adjustments. Return the date in MM/DD/YYYY format only."""
def prompt_premium_termination_date():
return """For this Line of Business, determine the termination date of the premium adjustments. Provide the date in MM/DD/YYYY format only."""
def prompt_sequestration_ind():
return """For this Line of Business, indicate with a 'Y' or 'N' whether there is any sequestration applied. Return only 'Y' or 'N'."""
def prompt_sequestration_rate():
return """For this Line of Business, extract the rate of sequestration as a percentage. Return the rate as a numerical value only."""
def prompt_sequestration_start_date():
return """For this Line of Business, determine the start date for sequestration. Return the date in MM/DD/YYYY format only."""
def prompt_sequestration_termination_date():
return """For this Line of Business, identify the termination date for sequestration. Provide the date in MM/DD/YYYY format only."""
def prompt_penalties_ind():
return """For this Line of Business, indicate with a 'Y' or 'N' only whether there are any penalties applied. Return only 'Y' or 'N'."""
def prompt_penalties_rate():
return """For this Line of Business, extract the rate of any penalties applied as a percentage. Provide the rate as a numerical value only."""