Multi-step
form with conditional field display
2
databases: MySQL + MS-SQL
Signed
online signature pad for authentication
Laravel
framework chosen for maintainability
Situation
A form that has to be both thorough and finishable
The client is a UK tax refund processing company. Their business begins with an application: a detailed one, because a refund claim has to capture circumstances precisely, and a legally authenticated one, because it is a claim made on the applicant's behalf.
Those two requirements pull against each other. Thoroughness makes a form longer. Length loses applicants. And an application that is abandoned three-quarters of the way through is worth exactly the same as one that was never started.
Problem
Four things standing between an applicant and a completed claim
- Irrelevant questions. An application form covering every possible circumstance asks every applicant about circumstances that are not theirs. Each one is a moment of confusion, and confusion in a form reads as risk.
- No way to sign without leaving the process. If authentication means printing, signing, scanning and emailing, a meaningful proportion of applicants stop there — not because they changed their mind, but because they no longer have a printer.
- The data had to reach an existing MS-SQL system. The business already ran on it. Any new application front end had to write into that world, not create a second one beside it.
- Validation could not be left to the browser. On a legal application, a malformed or incomplete record is not an inconvenience — it is a claim that will fail later, after the applicant has stopped paying attention.
Every unnecessary question on an application form is a place for the applicant to stop.
Implication
Why abandoned applications are the expensive kind
An application abandoned halfway has already consumed the full cost of acquiring that applicant. Whatever was spent to get them to the form has been spent; the only thing missing is the outcome. That makes completion rate one of the highest-leverage numbers in the business — it improves revenue without touching acquisition spend at all.
And incomplete or badly captured data costs a second time, later. A record that passes validation but is wrong generates manual follow-up, delays the claim, and erodes the applicant's confidence at precisely the point where they are being asked to trust a company with their tax affairs.
What we built
A form that shows each applicant only their own version of it
- Complex multi-step application form with conditional field display throughout
- Fields shown or hidden based on previous answers, so each applicant sees only what applies to them — which eliminates the confusion that drives abandonment
- Data submitted to the MS-SQL database with full validation, alongside the application's own MySQL layer
- Online signature pad for legal authentication, keeping the applicant inside the process from first field to signature
- Built on Laravel for a robust, maintainable codebase — because a form like this gets changed for years
The part that is harder than it looks
Conditional logic is easy to describe and difficult to keep correct. Every new rule interacts with the existing ones, and a combination that hides a mandatory field produces an application that cannot be submitted and gives no clue why. The structure matters more than the individual rules, which is precisely why the framework choice was not incidental.
Result
One session, start to signature
Applicants complete a single continuous process: answer only the questions relevant to them, sign on screen, and submit. The data lands validated in the client's existing MS-SQL system, and the codebase is structured to absorb the rule changes that a tax application form inevitably needs.
If you have a long form losing people
Before rebuilding it, instrument it. Field-level drop-off data will usually show that most of your losses come from two or three specific questions rather than from the overall length — and that is a much cheaper problem to fix than the one you assumed you had.
Tech stack: Laravel · MySQL · MS-SQL · Digital Signature