Ozgur Unlu
compliance rules into separate files. Small Gradio UI changes
0418a32
"""EU compliance rules for marketing materials"""
EU_RULES = {
"required_disclaimers": [
{
"type": "risk_warning",
"text": ["investment involves risk",
"you could lose your invested capital",
"past performance is not a reliable guide to future performance"],
"severity": "high",
"languages": ["en"] # expand for other EU languages
},
{
"type": "regulatory_information",
"text": ["regulated by", "authorized under EU regulations"],
"severity": "high",
"languages": ["en"]
},
{
"type": "costs_disclosure",
"text": ["fees and charges apply",
"view our fee schedule"],
"severity": "medium",
"languages": ["en"]
}
],
"prohibited_terms": [
{
"term": "assured returns",
"variations": ["guaranteed returns", "secure profit", "guaranteed profit"],
"severity": "high",
"context_check": True
},
{
"term": "no losses",
"variations": ["cannot lose", "risk free", "safe investment"],
"severity": "high",
"context_check": True
},
{
"term": "guaranteed performance",
"variations": ["assured performance", "secured returns"],
"severity": "high",
"context_check": True
}
],
"channel_specific_rules": {
"email": {
"required": ["unsubscribe option", "company information"],
"character_limit": None,
"gdpr_compliance": True
},
"social": {
"required": ["#ad", "#promotion"],
"risk_warning_placement": "visible without clicking"
},
"print": {
"required": ["full risk warning", "company details"],
"font_size_minimum": "9pt",
"prominence": "clearly legible"
}
},
"risk_scoring": {
"missing_disclaimer": 4,
"prohibited_term": 5,
"misleading_statement": 4,
"risk_thresholds": {
"low": 3,
"medium": 6,
"high": 9
}
},
"mifid_requirements": {
"fair_presentation": {
"required": ["balanced view", "prominent risk warnings"],
"prohibited": ["emphasize benefits without risks"]
},
"target_market": {
"required": ["clear target market identification"],
"prohibited": ["mass marketing of professional products"]
}
}
}