What information should we collect from the customer?At first glance, this appears straightforward. A customer wants to transfer money. The system needs information. The system asks questions. The process seems simple. But this question hides a deeper problem. Who decides which questions should be asked? And more importantly:
Why are those questions being asked in the first place?The answer reveals an important distinction between information and evidence. As autonomous systems become capable of executing actions, that distinction becomes critical.
The Temptation To Start With Inputs
Most systems begin by defining inputs. For example:- Transfer amount
- Beneficiary name
- Beneficiary account
- Source account
Inputs Are Claims
Consider a beneficiary transfer. A customer provides:- Beneficiary name
- Beneficiary account
beneficiary_verified = trueOnly the banking system can determine that. Likewise, a customer cannot provide:
identity_verified = trueor
available_balance = trueor
fraud_score = 12These are not inputs. These are verified facts. This distinction is fundamental. Claims enter the system. Facts are established by the system. Policy enforcement should operate on facts. Not claims.
Signals Versus Verified Signals
Signals are claims entering the system. Examples:- beneficiary_account
- beneficiary_name
- transfer_amount
- beneficiary_verified
- identity_verified
- available_balance
- fraud_score
- beneficiary_verified
- identity_verified
- available_balance
- fraud_score
The Mistake Of Putting Inputs In Policies
A common idea is:Why not define customer inputs directly inside the policy?At first, this seems reasonable. A policy requires beneficiary verification. Why not specify exactly which customer information is required? The problem is that verification is organization-specific. Consider the verified signal:
beneficiary_verifiedDifferent organizations may establish this fact differently. Bank A may require:
- beneficiary account
- beneficiary account
- beneficiary name
- beneficiary account
- beneficiary name
- OTP confirmation
beneficiary_verified = trueThe policy should not care how the fact was established. The policy should care only that the fact exists. This leads to a critical principle:
Policies should define evidence, not inputs.
Policies Define Evidence
A policy should answer one question:What verified facts must exist before this action can be evaluated?For example:
- identity_verified
- beneficiary_verified
- available_balance
- fraud_score
- transfer_amount
The Task → Policy → Schema Model
Organizations do not think in policies. Customers certainly do not think in policies. They think in tasks. Examples include:- Transfer Money
- Add Beneficiary
- Issue Refund
- Approve Vendor Payment