pack_id: "extraction_professional_indemnity"
kind: "extraction"
version: "1.0"
origin: "imported"
languages: ["en", "it", "es"]
name:
  en: "Extraction — Professional Indemnity"
  it: "Estrazione — RC professionale"
  es: "Extracción — RC profesional"
summary:
  en: "Key limits, dates and scope values of a professional indemnity policy, aligned to the PI control matrix."
  it: "Massimali, date e ambito chiave di una polizza RC professionale, allineati alla matrice dei controlli."
  es: "Límites, fechas y ámbito clave de una póliza de RC profesional, alineados con la matriz de controles."
builtin:
  citations:
    enabled: true
    jurisdictions: ["eu", "it"]
  glossary:
    enabled: true
  timeline:
    enabled: true
  cross_refs:
    enabled: true
  anagrafica:
    party_roles:
      en: ["Insurer", "Insured"]
      it: ["Assicuratore", "Assicurato"]
      es: ["Asegurador", "Asegurado"]
    fields: ["parties", "durations", "amounts"]
extractors:
  - field_id: "limit_of_indemnity_per_claim"
    label:
      en: "Limit of indemnity per claim"
      it: "Massimale per sinistro"
      es: "Límite de indemnización por siniestro"
    severity: "HIGH"
    method: "pattern"
    lang:
      en:
        patterns: ["each and every claim", "per claim", "limit of indemnity", "EUR", "€"]
        fuzzy: true
      it:
        patterns: ["per ciascun sinistro", "per sinistro", "massimale", "EUR", "€"]
        fuzzy: true
      es:
        patterns: ["por cada siniestro", "por siniestro", "límite de indemnización", "EUR", "€"]
        fuzzy: true
  - field_id: "limit_of_indemnity_aggregate"
    label:
      en: "Limit of indemnity in the aggregate"
      it: "Massimale aggregato annuo"
      es: "Límite agregado anual"
    severity: "HIGH"
    method: "pattern"
    lang:
      en:
        patterns: ["in the aggregate", "aggregate limit", "annual aggregate", "EUR", "€"]
        fuzzy: true
      it:
        patterns: ["in aggregato", "massimale aggregato", "aggregato annuo", "EUR", "€"]
        fuzzy: true
      es:
        patterns: ["en el agregado", "límite agregado", "agregado anual", "EUR", "€"]
        fuzzy: true
  - field_id: "deductible_excess_amount"
    label:
      en: "Deductible / excess amount"
      it: "Importo della franchigia"
      es: "Importe de la franquicia"
    severity: "MEDIUM"
    method: "pattern"
    lang:
      en:
        patterns: ["deductible of", "excess of", "self-insured retention", "EUR", "€"]
        fuzzy: true
      it:
        patterns: ["franchigia di", "scoperto di", "ritenzione", "EUR", "€"]
        fuzzy: true
      es:
        patterns: ["franquicia de", "exceso de", "retención", "EUR", "€"]
        fuzzy: true
  - field_id: "retroactive_date"
    label:
      en: "Retroactive date"
      it: "Data di retroattività"
      es: "Fecha retroactiva"
    severity: "HIGH"
    method: "pattern"
    lang:
      en:
        patterns: ["retroactive date", "retroactive from", "prior to", "since"]
        fuzzy: true
      it:
        patterns: ["data di retroattività", "retroattiva dal", "anteriore al", "a partire dal"]
        fuzzy: true
      es:
        patterns: ["fecha retroactiva", "retroactiva desde", "anterior al", "a partir del"]
        fuzzy: true
  - field_id: "policy_inception_date"
    label:
      en: "Policy inception date"
      it: "Data di decorrenza della polizza"
      es: "Fecha de inicio de la póliza"
    severity: "MEDIUM"
    method: "pattern"
    lang:
      en:
        patterns: ["period of insurance from", "inception date", "effective from", "commencing"]
        fuzzy: true
      it:
        patterns: ["periodo di assicurazione dal", "data di decorrenza", "con effetto dal", "decorrenza"]
        fuzzy: true
      es:
        patterns: ["periodo de seguro desde", "fecha de inicio", "con efecto desde", "vigencia desde"]
        fuzzy: true
  - field_id: "policy_expiry_date"
    label:
      en: "Policy expiry date"
      it: "Data di scadenza della polizza"
      es: "Fecha de vencimiento de la póliza"
    severity: "MEDIUM"
    method: "pattern"
    lang:
      en:
        patterns: ["period of insurance to", "expiry date", "until", "renewal date"]
        fuzzy: true
      it:
        patterns: ["periodo di assicurazione al", "data di scadenza", "fino al", "data di rinnovo"]
        fuzzy: true
      es:
        patterns: ["periodo de seguro hasta", "fecha de vencimiento", "hasta el", "fecha de renovación"]
        fuzzy: true
  - field_id: "insured_business_description"
    label:
      en: "Insured business description"
      it: "Descrizione attività assicurata"
      es: "Descripción de la actividad asegurada"
    severity: "MEDIUM"
    method: "llm"
    lang:
      en:
        patterns: ["the business", "professional services", "description of activities", "the profession"]
        fuzzy: true
        prompt: "From the paragraph: {isolated}. Extract the description of the professional activity covered by the policy. Reply as {\"value\":\"short text|null\"}."
      it:
        patterns: ["l'attività", "servizi professionali", "descrizione dell'attività", "la professione"]
        fuzzy: true
        prompt: "Dal paragrafo: {isolated}. Estrai la descrizione dell'attività professionale coperta dalla polizza. Rispondi come {\"value\":\"testo breve|null\"}."
      es:
        patterns: ["la actividad", "servicios profesionales", "descripción de la actividad", "la profesión"]
        fuzzy: true
        prompt: "Del párrafo: {isolated}. Extrae la descripción de la actividad profesional cubierta por la póliza. Responde como {\"value\":\"texto breve|null\"}."
  - field_id: "named_insured_entities"
    label:
      en: "Named insured entities"
      it: "Entità assicurate"
      es: "Entidades aseguradas"
    severity: "MEDIUM"
    method: "llm"
    lang:
      en:
        patterns: ["named insured", "the insured", "and its subsidiaries", "insured entities"]
        fuzzy: true
        prompt: "From the paragraph: {isolated}. Extract the list of companies or legal entities covered as named insured. Reply as {\"value\":\"short list|null\"}."
      it:
        patterns: ["assicurato designato", "l'assicurato", "e le sue controllate", "entità assicurate"]
        fuzzy: true
        prompt: "Dal paragrafo: {isolated}. Estrai l'elenco delle società o entità legali coperte come assicurato designato. Rispondi come {\"value\":\"elenco breve|null\"}."
      es:
        patterns: ["asegurado designado", "el asegurado", "y sus filiales", "entidades aseguradas"]
        fuzzy: true
        prompt: "Del párrafo: {isolated}. Extrae la lista de sociedades o entidades legales cubiertas como asegurado designado. Responde como {\"value\":\"lista breve|null\"}."
  - field_id: "territorial_scope_definition"
    label:
      en: "Territorial scope"
      it: "Ambito territoriale"
      es: "Ámbito territorial"
    severity: "HIGH"
    method: "llm"
    lang:
      en:
        patterns: ["territorial limits", "worldwide", "EEA only", "excluding USA/Canada", "geographical scope"]
        fuzzy: true
        prompt: "From the paragraph: {isolated}. Extract the geographical scope of cover (e.g. Worldwide, EEA only, excluding USA/Canada). Reply as {\"value\":\"short text|null\"}."
      it:
        patterns: ["limiti territoriali", "mondo intero", "solo SEE", "esclusi USA/Canada", "estensione geografica"]
        fuzzy: true
        prompt: "Dal paragrafo: {isolated}. Estrai l'ambito geografico della copertura (es. mondo intero, solo SEE, esclusi USA/Canada). Rispondi come {\"value\":\"testo breve|null\"}."
      es:
        patterns: ["límites territoriales", "todo el mundo", "solo EEE", "excepto EE. UU./Canadá", "ámbito geográfico"]
        fuzzy: true
        prompt: "Del párrafo: {isolated}. Extrae el ámbito geográfico de la cobertura (p. ej. todo el mundo, solo EEE, excepto EE. UU./Canadá). Responde como {\"value\":\"texto breve|null\"}."
  - field_id: "annual_premium_amount"
    label:
      en: "Annual premium amount"
      it: "Premio annuo"
      es: "Prima anual"
    severity: "LOW"
    method: "pattern"
    lang:
      en:
        patterns: ["annual premium", "premium of", "total premium", "EUR", "€"]
        fuzzy: true
      it:
        patterns: ["premio annuo", "premio di", "premio totale", "EUR", "€"]
        fuzzy: true
      es:
        patterns: ["prima anual", "prima de", "prima total", "EUR", "€"]
        fuzzy: true
