Ozgur Unlu
compliance rules into separate files. Small Gradio UI changes
0418a32
"""UK FCA compliance rules for marketing materials"""
FCA_RULES = {
"required_disclaimers": [
{
"type": "capital_risk",
"text": ["capital at risk",
"you may lose some or all of your investment",
"your capital is at risk"],
"severity": "high"
},
{
"type": "regulatory_status",
"text": ["regulated by the Financial Conduct Authority",
"authorised and regulated by the FCA",
"FCA regulated"],
"severity": "high"
},
{
"type": "past_performance",
"text": ["past performance is not a reliable indicator of future results",
"past performance does not guarantee future returns"],
"severity": "high"
}
],
"prohibited_terms": [
{
"term": "guaranteed profit",
"variations": ["secure profit", "assured gains", "guaranteed returns"],
"severity": "high",
"context_check": True
},
{
"term": "no risk",
"variations": ["risk free", "zero risk", "safe investment"],
"severity": "high",
"context_check": True
},
{
"term": "secured returns",
"variations": ["protected returns", "guaranteed income"],
"severity": "high",
"context_check": True
}
],
"channel_specific_rules": {
"email": {
"required": ["opt-out mechanism", "firm details"],
"character_limit": None
},
"social": {
"required": ["#ad", "#financial promotion"],
"risk_warning_placement": "prominent"
},
"print": {
"required": ["risk warning", "firm details"],
"font_size_minimum": "10pt",
"risk_warning_prominence": "no less prominent than main message"
}
},
"risk_scoring": {
"missing_disclaimer": 4,
"prohibited_term": 5,
"misleading_statement": 4,
"risk_thresholds": {
"low": 3,
"medium": 6,
"high": 9
}
},
"specific_requirements": {
"retail_investment": {
"required_elements": ["past performance warning", "balanced message"],
"restricted_terms": ["tax-free", "guaranteed"]
},
"pension_products": {
"required_elements": ["tax treatment warning", "age restrictions"],
"restricted_terms": ["pension liberation", "pension loan"]
}
}
}