Product architecture · Technical guide
How to build financial software for complex asset finance.
Calculators are the easy part. The real product is the layer that turns borrower data, asset context, rules and case history into decisions people can understand and act on.
Real implementation reference
Waaza's current implementation was designed and built by Wall & Fifth. It combines calculators with persistent client and vessel records, versioned assessment logic, risk flags, readiness outputs, audit history and report-oriented workflows.
1. Start with the decision, not the dashboard
The first mistake in financial-software projects is often designing screens before defining the decision the software is supposed to improve. In asset finance, a user rarely needs a prettier form for its own sake. They need to know whether a case looks plausible, what makes it stronger or weaker, what structure may fit and what should happen next.
Waaza therefore models the case itself. The current data layer includes clients, vessels and assessments rather than treating every calculation as an anonymous one-off submission. A client record can carry residency, available liquidity, net-worth band, income type and ownership intent. A vessel record can carry purchase price, build year, usage type and intended flag. That creates a usable product foundation before any score is calculated.
2. Keep calculator maths separate from qualification logic
A repayment calculator answers a mathematical question: given a purchase price, deposit, term and rate assumption, what does the repayment picture look like? That is useful, but it is not the same as answering whether a transaction is financeable or how a broker should frame it.
Waaza keeps those ideas distinct. Its public yacht finance calculator helps users explore price, deposit, term and indicative-rate scenarios, while the wider platform introduces readiness scoring, risk factors and recommended paths. This separation prevents a clean monthly-payment number from being mistaken for a lending decision.
3. Build the rule layer so it can be versioned
When qualification depends on repeatable conditions, burying all of that logic inside UI components becomes difficult to maintain and almost impossible to audit. Waaza's schema separates rule sets and individual rules from the assessment record itself.
Each assessment can record a rule-set version, and each assessment run stores both the rule-set version and engine version that produced the result. The run also preserves an input snapshot, rule hits and an output snapshot. That architecture matters because a result from six months ago should still be understandable even after the underlying logic evolves.
4. Store outputs that are useful to a human
Financial decision software should not end with a hidden boolean such as pass or fail. The output has to help a broker, buyer or adviser understand the case.
Waaza's assessment model can store a readiness score, financing tier, indicative loan-to-value range, risk flags and a recommended path. Those fields are deliberately closer to the language of the workflow. They allow the product to surface both a high-level view and the specific issues underneath it.
This is also why the readiness scoring layer is separate from a calculator. One explains a financing position; the other models arithmetic.
5. Treat reports as product output, not an afterthought
Complex financial cases often leave the application. A buyer may need to speak to a bank, accountant, lawyer, broker or finance adviser. That makes document output part of the product experience.
Waaza's report workflow is structured around six recurring sections: executive summary, readiness score, indicative financing structure, LTV and cost projection, risk considerations and next steps. The codebase also includes PDF tooling, so structured application data can be turned into a shareable document rather than manually copied into a separate template.
The important product principle is consistency: the report should be another view of the same case data, not a second version of the truth.
6. Design broker UX around progression
Good broker software should reduce the amount of interpretation required between steps. A strong flow usually moves from basic case facts, to structured assessment, to an intelligible result, to a clear next action. The interface should make that progression obvious without pretending the underlying finance decision is simpler than it is.
In Waaza, the public calculator is an early-intent entry point, the readiness intake adds context, and platform pages such as scenario modelling, broker dashboard and case tracking describe the deeper workflow. That product architecture is more useful than trying to force every job into one giant calculator screen.
7. Use a data model that can survive the product getting smarter
Finance software almost always becomes more complex after launch. New asset rules appear, underwriting assumptions change, workflows split by user type and reporting requirements expand. A disposable form architecture becomes painful very quickly.
Waaza's PostgreSQL model gives users, clients, vessels, assessments, assessment runs, rule sets, rules and audit logs explicit relationships. Prisma provides the application data layer. That gives the product room to add logic without losing the history of the cases already processed.
8. The current Waaza stack
The application is built as custom production software rather than a no-code workflow. The current repository uses Next.js 16, React 19 and TypeScript, with Tailwind CSS 4 for the interface. Prisma 6 connects the application to PostgreSQL. The codebase also includes Stripe libraries and pdf-lib.
| Layer | Implementation | Why it matters |
|---|---|---|
| Application | Next.js 16 + React 19 | Public content and product routes in one application |
| Language | TypeScript | Typed product and decision logic |
| Data | PostgreSQL + Prisma 6 | Persistent cases, relationships and versioned assessment records |
| Financial logic | RuleSet / Rule / AssessmentRun models | Separates repeatable logic from interface code |
| Documents | pdf-lib | Supports generated document workflows |
| Payments | Stripe libraries | Payment and account infrastructure in the wider codebase |
What this means for financial-software development
The broader lesson from Waaza is that custom financial software is rarely about reproducing an Excel calculation in a nicer interface. The valuable software layer is the system around the calculation: persistent case data, rules, traceability, scenarios, structured outputs and the UX that moves a user from uncertainty toward a decision.
That is the part of the Waaza build handled by Wall & Fifth: product architecture, interface design and the custom software system that connects those pieces into a usable platform.
For a product-specific breakdown, read How Waaza Was Built: Yacht Financing Software by Wall & Fifth.
FAQ
Building financial software: common questions
What makes asset-finance software different from a normal loan calculator?
A calculator only models arithmetic. Asset-finance software also needs to capture borrower and asset context, apply versioned decision logic, preserve case history, surface risk factors and generate outputs that a broker or adviser can actually use.
Should a finance platform use a rule engine?
When qualification depends on multiple repeatable conditions, a versioned rule layer is useful because it separates decision logic from interface code and makes it possible to record which rules produced a result at a specific point in time.
Why store assessment snapshots?
Snapshots preserve the inputs and outputs used for a decision. That is valuable when financial logic changes, because a previous result can still be understood in the context of the rule-set and engine version that produced it.
How should reports fit into financial software?
Reports should be generated from structured assessment data rather than manually recreated. In Waaza, report-oriented workflows are tied to assessment outputs so the same underlying case can be communicated consistently in web and document formats.
What technology is Waaza built with?
The current Waaza codebase uses Next.js 16, React 19, TypeScript, Tailwind CSS 4, Prisma 6 and PostgreSQL. The repository also includes Stripe integrations and PDF tooling.
Who designed and built Waaza?
Waaza was designed and built by Wall & Fifth as custom production software for yacht-financing readiness, scenario modelling, assessment logic and broker-facing workflows.