Policy Controls for Financial Services AI Traffic
Financial services teams often must control investment language and phrases that suggest non-public information in model answers. Verdictan has two output controls for these tasks. This article compares them and shows one chain that uses both.
These controls match phrases. They do not make you compliant with a regulation.
Compare the controls
| Control | Phase | What it does |
|---|---|---|
financial-compliance | Output | It blocks an answer that contains a phrase that you list, such as guaranteed return. It also puts a disclaimer before an answer that looks like investment advice. |
mnpi-filter | Output | It blocks an answer that contains a phrase that your team associates with material non-public information (MNPI). |
Neither control examines requests. Both controls run only with stream: false.
Use both controls in one chain
Your mnpi-filter list replaces the built-in phrases, so include each phrase that you need:
pack:
name: investment-banking-guardrail
version: "1.0.0"
enabled: true
policies:
chain:
- mnpi-filter
- financial-compliance
policy:
mnpi-filter:
detect_patterns:
- "earnings before announcement"
- "pending acquisition"
- "guidance revision not public"
- "board decision"
- "deal valuation confidential"Without a policy.financial-compliance section, the control adds the disclaimer This is not financial advice. to advice text. To block phrases, add blocked_patterns to that section.
A block returns HTTP 400 with the error code content_policy_violation. The reason code is mnpi.detected or financial.blocked.
Test with controlled answers
Model answers change. To test an output control, use controlled provider responses on a test agent:
| Provider response | Result |
|---|---|
This contains insider information. | mnpi-filter allows it, because the list above does not contain insider information. The built-in list blocks it with mnpi.detected. |
Buy a ticket. | financial-compliance adds a disclaimer with financial.disclaimer_injected. This result is a false match. |
Hello. | Both controls return it without a change. |
Know the limits
- Both controls match substrings.
buy a ticketgets a disclaimer, and the built-innot publicalso matchesnot publicly traded. mnpi-filtercannot tell whether information is material or non-public.financial-compliancedoes not examine whether a financial statement is correct or suitable for a person.
Ask your legal and compliance teams for the phrases. Then examine blocked events to find false matches and misses.
Next steps
- Financial Compliance: the advice check and the disclaimer rules.
- MNPI Filter: the built-in phrases and the context keywords.
- verdictan events: the decision for a request.