Deterministic verification middleware for banking and financial AI
Project description
QWED-Finance ๐ฆ
Deterministic verification middleware for banking and financial AI.
Part of the QWED Ecosystem - Verification Infrastructure for AI
๐ฏ What is QWED-Finance?
QWED-Finance is a middleware layer that applies QWED's deterministic verification to banking and financial calculations. It ensures AI-generated financial outputs are mathematically correct before they reach production.
Key Features
| Feature | Description |
|---|---|
| NPV/IRR Verification | Validate net present value and internal rate of return calculations |
| Loan Amortization | Verify payment schedules and interest calculations |
| Compound Interest | Check compound interest formulas with precision |
| Currency Safety | Prevent floating-point errors in money calculations |
| ISO 20022 Schemas | Built-in support for banking message standards |
๐ก๏ธ The Three Guards
1. Compliance Guard (Z3-Powered)
KYC/AML regulatory verification with formal boolean logic proofs.
from qwed_finance import ComplianceGuard
guard = ComplianceGuard()
# Verify AML flagging decision
result = guard.verify_aml_flag(
amount=15000, # Over $10k threshold
country_code="US",
llm_flagged=True # LLM flagged it
)
# result.compliant = True โ
Supports:
- AML/CTR threshold checks (BSA/FinCEN)
- KYC completion verification
- Transaction limit enforcement
- OFAC sanctions screening
2. Calendar Guard (Day Count Conventions)
Deterministic day counting for interest accrual - no date hallucinations.
from qwed_finance import CalendarGuard, DayCountConvention
from datetime import date
guard = CalendarGuard()
# Verify 30/360 day count
result = guard.verify_day_count(
start_date=date(2026, 1, 1),
end_date=date(2026, 7, 1),
llm_days=180,
convention=DayCountConvention.THIRTY_360
)
# result.verified = True โ
Supports:
- 30/360 (Corporate bonds)
- Actual/360 (T-Bills)
- Actual/365 (UK gilts)
- Business day verification
3. Derivatives Guard (Black-Scholes)
Options pricing and margin verification using pure calculus.
from qwed_finance import DerivativesGuard, OptionType
guard = DerivativesGuard()
# Verify Black-Scholes call price
result = guard.verify_black_scholes(
spot_price=100,
strike_price=105,
time_to_expiry=0.25, # 3 months
risk_free_rate=0.05,
volatility=0.20,
option_type=OptionType.CALL,
llm_price="$3.50"
)
# result.greeks = {"delta": 0.4502, "gamma": 0.0389, ...}
---
## ๐ Quick Start
### Installation
```bash
pip install qwed-finance
Usage
from qwed_finance import FinanceVerifier
verifier = FinanceVerifier()
# Verify NPV calculation
result = verifier.verify_npv(
cashflows=[-1000, 300, 400, 400, 300],
rate=0.10,
llm_output="$180.42"
)
if result.verified:
print(f"โ
Correct: {result.computed_value}")
else:
print(f"โ Wrong: LLM said {result.llm_value}, actual is {result.computed_value}")
๐ Supported Verifications
1. Time Value of Money
# Net Present Value
verifier.verify_npv(cashflows, rate, llm_output)
# Internal Rate of Return
verifier.verify_irr(cashflows, llm_output)
# Future Value
verifier.verify_fv(principal, rate, periods, llm_output)
# Present Value
verifier.verify_pv(future_value, rate, periods, llm_output)
2. Loan Calculations
# Monthly Payment
verifier.verify_monthly_payment(principal, annual_rate, months, llm_output)
# Amortization Schedule
verifier.verify_amortization_schedule(principal, rate, months, llm_schedule)
# Total Interest Paid
verifier.verify_total_interest(principal, rate, months, llm_output)
3. Interest Calculations
# Compound Interest
verifier.verify_compound_interest(
principal=10000,
rate=0.05,
periods=10,
compounding="annual", # "monthly", "quarterly", "daily"
llm_output="$16,288.95"
)
# Simple Interest
verifier.verify_simple_interest(principal, rate, time, llm_output)
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ YOUR APPLICATION โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ QWED-FINANCE โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โ โ Finance โ โ Banking โ โ
โ โ Verifier โ โ Schemas โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ QWED-VERIFICATION (Core) โ
โ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ โ
โ โ Math โ โ Logic โ โ Schema โ โ
โ โ (SymPy) โ โ (Z3) โ โ (JSON) โ โ
โ โโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Why Deterministic?
Financial calculations must be exact. AI hallucinations in banking can cause:
- ๐ธ Wrong loan payments
- ๐ Incorrect investment projections
- โ๏ธ Regulatory violations
- ๐ฆ Customer trust issues
QWED-Finance uses SymPy (symbolic math) instead of floating-point arithmetic, ensuring:
# Floating-point problem
>>> 0.1 + 0.2
0.30000000000000004
# QWED-Finance (SymPy)
>>> verifier.add_money("$0.10", "$0.20")
"$0.30" # Exact!
๐ฆ Related Packages
| Package | Description |
|---|---|
| qwed-verification | Core verification engine |
| qwed-ucp | E-commerce verification |
| qwed-mcp | Claude Desktop integration |
๐ License
Apache 2.0 - See LICENSE
๐ค Contributing
Contributions welcome! Please read CONTRIBUTING.md first.
Built with โค๏ธ by QWED-AI
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qwed_finance-1.1.1.tar.gz.
File metadata
- Download URL: qwed_finance-1.1.1.tar.gz
- Upload date:
- Size: 40.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a10ef2c4b73dde51dc618b39476a86cbcabc2972cf0829151b9b9dcfb8ffa5c6
|
|
| MD5 |
dd8626f6edb16a627cdfb2fa127f9722
|
|
| BLAKE2b-256 |
ee8d614b2ed0c7b14678185f9351dbe47619e62bc4f1bb1581471de9dc8dc0d2
|
Provenance
The following attestation bundles were made for qwed_finance-1.1.1.tar.gz:
Publisher:
publish.yml on QWED-AI/qwed-finance
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qwed_finance-1.1.1.tar.gz -
Subject digest:
a10ef2c4b73dde51dc618b39476a86cbcabc2972cf0829151b9b9dcfb8ffa5c6 - Sigstore transparency entry: 833788234
- Sigstore integration time:
-
Permalink:
QWED-AI/qwed-finance@86c6e3e97a6228832dd1a0bd73dca86f0082330e -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/QWED-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86c6e3e97a6228832dd1a0bd73dca86f0082330e -
Trigger Event:
release
-
Statement type:
File details
Details for the file qwed_finance-1.1.1-py3-none-any.whl.
File metadata
- Download URL: qwed_finance-1.1.1-py3-none-any.whl
- Upload date:
- Size: 43.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18490b4826278cf0bbb4ce0ceaaef66e313b70a08584e418a3c3ccb5cba170a6
|
|
| MD5 |
a1cb8f58146952db0f3a8737861d82fb
|
|
| BLAKE2b-256 |
74a5b80f55688f5d60b17938aa050fe354479532e90a203cae4f5fb2bfb94261
|
Provenance
The following attestation bundles were made for qwed_finance-1.1.1-py3-none-any.whl:
Publisher:
publish.yml on QWED-AI/qwed-finance
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
qwed_finance-1.1.1-py3-none-any.whl -
Subject digest:
18490b4826278cf0bbb4ce0ceaaef66e313b70a08584e418a3c3ccb5cba170a6 - Sigstore transparency entry: 833788235
- Sigstore integration time:
-
Permalink:
QWED-AI/qwed-finance@86c6e3e97a6228832dd1a0bd73dca86f0082330e -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/QWED-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@86c6e3e97a6228832dd1a0bd73dca86f0082330e -
Trigger Event:
release
-
Statement type: