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,000false—denyNAICOM 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