Skip to main content

Nigeria Insurance Pack

Overview

NigeriaInsuranceCompliance enforces Nigerian insurance regulations simultaneously, covering claims adjudication thresholds, underwriting prohibitions, fraud investigation requirements, and AML reporting obligations.

from comply54.sectors import NigeriaInsuranceCompliance

compliance = NigeriaInsuranceCompliance()
result = compliance.check(
action="approve_claim",
params={"claim_amount": 3_000_000, "claim_type": "property"},
context={"human_adjuster_assigned": True, "senior_approval": False},
)

Included packs

Pack IDRegulationAuthorityKey controls
nigeria/naicomInsurance Act 2003, NAICOM Guidelines 2021/2023NAICOMClaim thresholds, underwriting limits, anti-discrimination, fraud investigation
nigeria/ndpaNDPA 2023NITDACustomer PII in insurance workflows
nigeria/nfiu-amlNFIU/MLPPA 2022NFIUAML reporting at ₦5M+ premiums/payouts
universal/pii-leakageOWASP LLM01OWASPPolicy holder PII, medical info in outputs
universal/prompt-injectionOWASP LLM01OWASPJailbreak and indirect injection patterns
universal/tool-permissionsOWASP LLM08OWASPUnauthorised access to policy records
universal/human-approvalOWASP LLM08OWASPHigh-value or irreversible decisions require human sign-off

Decision matrix by action type

Claims approval

Claim AmountHuman AdjusterSenior ApprovalDecisionReason
≤ ₦500,000EitherEitherallowNAICOM Guideline 15: within auto-approval cap
₦500,001 – ₦2,000,000trueNot requiredallowNAICOM Guideline 12: human adjuster sufficient
₦500,001 – ₦2,000,000falsedenyNAICOM Guideline 15: exceeds auto-denial cap
₦2,000,001 – ₦5,000,000truetrueallowNAICOM Guideline 12: senior review cleared
₦2,000,001 – ₦5,000,000truefalseescalateNAICOM Guideline 12: senior adjuster required
> ₦5,000,000truetrueescalateNFIU AML reporting required
AnyfalsefalsedenyNo human adjuster for significant claim

Underwriting

ConditionDecisionReason
Uses prohibited characteristic (religion, ethnicity, disability, etc.)denyInsurance Act 2003 §67 + NAICOM Market Conduct Rule 6
Life policy > ₦5,000,000 without human underwriterdenyNAICOM Guideline 18: manual underwriting required
Life policy > ₦5,000,000 with human underwriterescalateNAICOM Guideline 18: human sign-off required

Fraud investigation

ConditionDecisionReason
Fraud score ≥ 0.65 without human investigatordenyNAICOM Market Conduct Rule 11: human investigation required
Fraud score ≥ 0.65 with human investigatorescalateNAICOM Rule 11: investigation in progress, escalate for oversight

Policy modification

ConditionDecisionReason
Modification without customer notificationdenyInsurance Act 2003 §50: customer must be notified
Modification with notificationallow§50 met

Usage

Standalone check

from comply54.sectors import NigeriaInsuranceCompliance

compliance = NigeriaInsuranceCompliance()

# Claims adjudication
result = compliance.check(
action="approve_claim",
params={"claim_amount": 2_500_000, "claim_type": "motor"},
context={"human_adjuster_assigned": True, "senior_approval": False},
)

if result.blocked:
print(result.primary_violation.messages[0])
elif result.overall == "escalate":
print(f"Senior review required — audit ID: {result.audit_id}")

With LangGraph (ReAct agent)

from comply54.sectors import NigeriaInsuranceCompliance
from comply54.langchain import Comply54Guard, comply54_route
from langgraph.graph import StateGraph, MessagesState
from langgraph.prebuilt import ToolNode

compliance = NigeriaInsuranceCompliance()
tools = [approve_claim_tool, deny_claim_tool, generate_quote_tool, flag_fraud_tool]
guard = Comply54Guard(compliance, tools)

def build_graph():
graph = StateGraph(MessagesState)
graph.add_node("agent", agent_node)
graph.add_node("guard", guard)
graph.add_node("tools", ToolNode(tools))

graph.set_entry_point("agent")
graph.add_conditional_edges("agent", comply54_route, {"guard": "guard", "__end__": "__end__"})
graph.add_edge("guard", "tools")
graph.add_edge("tools", "agent")
return graph.compile()

# Pass adjudication context via compliance_context state key
result = build_graph().invoke({
"messages": [("user", "Approve the ₦3,000,000 motor claim for policy POL-001")],
"compliance_context": {
"human_adjuster_assigned": True,
"senior_approval": False, # will escalate — senior review required at ₦2M+
},
})

Strict mode

In strict mode, escalate decisions are upgraded to deny:

compliance = NigeriaInsuranceCompliance(strict_mode=True)

Prohibited underwriting characteristics

The following characteristics are prohibited under Insurance Act 2003 §67 and NAICOM Market Conduct Rule 6. Passing any of them in underwriting_factors will result in deny:

  • religion
  • ethnicity
  • tribe
  • political_affiliation
  • gender
  • disability
  • hiv_status
result = compliance.check(
action="generate_quote",
params={
"policy_type": "life",
"coverage_amount": 1_000_000,
"underwriting_factors": ["age", "smoking_status", "religion"], # religion → deny
},
context={"human_underwriter": True},
)
# decision: deny — Insurance Act §67: religion is a prohibited underwriting characteristic

Properties

compliance = NigeriaInsuranceCompliance()
compliance.name # "Nigeria Insurance Compliance"
compliance.jurisdictions # ["NG"]
len(compliance.packs) # 7