Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ImpactLedger

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.

The product problem

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"]
Loading

What the MVP demonstrates

  • 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.

Product principles

  1. Evidence before eloquence. A well-written narrative cannot compensate for missing documents or unreconciled numbers.
  2. AI assists; people decide. Funding and payment instructions require an accountable human reviewer.
  3. Rules are visible. Thresholds and weights live in code and produce a readable decision trace.
  4. Data minimization by default. Review logic uses organization and project evidence, not unnecessary beneficiary PII.
  5. Regulated boundaries stay explicit. The MVP simulates escrow eligibility; custody and payment execution belong to authorized partners.

Run locally

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 --reload

Open http://localhost:8000. Interactive API documentation is available at http://localhost:8000/docs.

Or use Docker:

docker compose up --build

API surface

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

Decision architecture

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.

Quality checks

ruff check .
pytest

The test suite covers budget outliers, impact-evidence degradation, investor-fit ordering, blocked/eligible milestone states, API contracts and the non-bypassable human approval gate.

Documentation

Repository map

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

Scope and limitations

  • 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.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages