Evidence-backed funding for measurable social impact.
ImpactLedger is a mobile-first marketplace prototype that helps social-project teams turn an application into an investor-ready, auditable funding case. It combines deterministic policy checks with an optional LLM narrative layer to benchmark budgets, evaluate impact evidence, surface governance risks, match suitable funders and gate milestone disbursements.
Portfolio MVP, not a live investment platform. All organizations, investors and market prices in the demo are fictional or explicitly synthetic. No real money is moved.
Social projects and funders often work through disconnected forms, spreadsheets and long email chains. Applicants repeat the same information; reviewers manually compare prices and documents; investors receive inconsistent proposals; and milestone evidence is difficult to audit.
ImpactLedger creates one structured decision packet from the first application through the final release recommendation:
flowchart LR
A["Project application"] --> B["Eligibility agent"]
B --> C["Budget verification agent"]
C --> D["Impact evidence agent"]
D --> E["Risk & safeguarding agent"]
E --> F["Human review gate"]
F --> G["Investor matching"]
G --> H["Conditional commitment"]
H --> I["Milestone evidence"]
I --> J["Licensed payment partner"]
- A two-sided marketplace model for project owners and impact funders.
- A typed, replayable multi-agent review pipeline with a trace for every conclusion.
- Line-item budget benchmarking, price variance detection and quote-control checks.
- Evidence-quality scoring for baselines, targets, sources and reporting cadence.
- Governance, document-completeness and safeguarding controls.
- Explainable investor matching across thesis, geography, ticket, instrument and risk appetite.
- An investor memo generated from policy outputs, without allowing an LLM to change scores.
- Milestone release checks that always end at a human approval boundary.
- A polished responsive interface and documented product strategy, metrics and regulatory scope.
- Evidence before eloquence. A well-written narrative cannot compensate for missing documents or unreconciled numbers.
- AI assists; people decide. Funding and payment instructions require an accountable human reviewer.
- Rules are visible. Thresholds and weights live in code and produce a readable decision trace.
- Data minimization by default. Review logic uses organization and project evidence, not unnecessary beneficiary PII.
- Regulated boundaries stay explicit. The MVP simulates escrow eligibility; custody and payment execution belong to authorized partners.
Python 3.11+ is required.
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -e ".[dev]"
uvicorn app.main:app --reloadOpen http://localhost:8000. Interactive API documentation is available at http://localhost:8000/docs.
Or use Docker:
docker compose up --build| Method | Endpoint | Purpose |
|---|---|---|
GET |
/api/demo |
Complete demo project, analysis, investors and matches |
POST |
/api/analyze |
Run the auditable review pipeline for a project |
POST |
/api/match |
Rank investor profiles against a project and review |
POST |
/api/escrow/evaluate |
Evaluate milestone evidence and return a release recommendation |
GET |
/api/market-data |
Inspect benchmark data and provenance labels |
GET |
/api/health |
Service health |
The system deliberately separates deterministic policy from generative language:
| Layer | Responsibility | Can decide funding? |
|---|---|---|
| Pydantic domain model | Validate project, budget, evidence and milestone contracts | No |
| Review agents | Score explicit rules and return findings with remediation | No |
| Orchestrator | Apply versioned weights and decision thresholds | Recommends only |
| Narrative provider | Turn the redacted score packet into readable memo text | No |
| Human reviewer | Validate context, approve or reject the recommendation | Yes |
| Regulated PSP / ECSP partner | Execute payment or regulated crowdfunding operations | Yes, within authorization |
The default narrative provider is deterministic and requires no API key. A production LLM adapter can be added behind NarrativeProvider; raw applicant or beneficiary data should never be sent without an approved data-processing basis and vendor review.
ruff check .
pytestThe test suite covers budget outliers, impact-evidence degradation, investor-fit ordering, blocked/eligible milestone states, API contracts and the non-bypassable human approval gate.
- Product strategy
- Product requirements
- Architecture
- Market and competitor analysis
- Business model
- AI system card
- GDPR and regulatory boundaries
- UX map
- Metrics and experiments
- AI build log: what AI did vs. what I did
- Portfolio case study
- Five-minute demo script
- Security policy
- Contributing
app/
agents.py explainable review, matching and escrow agents
models.py typed domain and API contracts
repository.py demo-data access
llm.py privacy-preserving narrative boundary
main.py FastAPI service
static/ responsive product interface
data/ synthetic benchmarks and fictional demo entities
docs/ product, market, safety and portfolio decisions
tests/ policy and API regression tests
- Benchmarks are static synthetic fixtures; production needs timestamped supplier, tender or procurement feeds with geography and specification normalization.
- Matching is an explainable weighted baseline, not a claim of investor intent.
- Identity, sanctions, AML/KYB, payment and escrow execution are represented as integration boundaries, not implemented substitutes for regulated providers.
- Scores are decision support and require calibration against reviewer outcomes before production use.
Built as an independent product case by Nazar Barchenko.