Inspiration

Banks score borrowers with explainable credit models that the borrower never gets to see. Freelancers are the people this hurts most: their income is irregular, it comes from a handful of clients, and it lives in payment platforms rather than on a payslip. They often get a "no" with no reason attached.

SolvAI gives them the report a lender would build, before they apply.

What it does

A freelancer connects PayPal or Stripe, or uploads a bank statement, and gets a solvency report in about a minute.

  • Verified metrics. Income volatility, revenue trend, weak months, client concentration and payment integrity are computed by deterministic code, not by a model.
  • An explained score. Each factor shows its value, the threshold a lender would use, and the real PayPal and Stripe transaction IDs behind it.
  • A live pipeline. The agents' work streams to the browser as it happens, including when the auditor sends a draft back.
  • A lender-ready PDF. It includes charts, an appendix of cited payments and a QR code that opens the copy SolvAI holds, so a lender can compare the two.
  • A what-if simulator. It recomputes the same metrics from the user's own data as they move sliders. It is pure arithmetic and never invents a score.
  • PayPal Subscriptions. Pro and Business plans are paid through PayPal.

The rule behind everything is no made-up numbers. If there is no data, the report fails with a clear reason instead of guessing.

How we built it

SolvAI started before this hackathon as a prototype of the idea. During the submission period I rebuilt it around PayPal and real data.

  • PayPal data: the Transaction Search API, read in 31-day windows, net of refunds and chargebacks.
  • PayPal billing: PayPal Subscriptions with signed webhooks.
  • AI pipeline: a LangGraph graph with three steps. A deterministic quant step computes the facts, a Gemini underwriter writes three parallel drafts and keeps the median one, and a temperature-0 Gemini auditor checks the figures and can send the draft back.
  • Stack: FastAPI, Celery, Redis, PostgreSQL, React and WeasyPrint.

Challenges we ran into

  • Keeping the AI honest. The prototype had a fallback score, a simulator where the model invented results, and hardcoded lenders. I removed all of them. A feature that could not be backed by data was deleted, not polished.
  • Identifying clients in PayPal. Guest card payers have no stable payer ID, so each payment looked like a new client, which distorted client concentration. I had to build a stable pseudonymous identity from the payer data.
  • Sandbox history. The PayPal sandbox cannot backdate transactions, so the demo history is built from real sandbox payments, day by day. Short histories are labelled as such and never extrapolated.
  • Model output. Gemini occasionally answered in several parts, which failed reports until they retried. Parsing is now robust, and the terminal says when a retry is coming instead of reporting a failure.

What I learned

An AI product earns trust through what it refuses to do. Separating the deterministic facts from the model's reasoning made the system easier to test, and it gives the auditor something concrete to check against.

What's next

  • Historical comparison between a user's reports
  • Expense data from bank outflows for a full cash-flow view
  • Validating the thresholds with real lenders

Built With

Share this project:

Updates

Submission history