The brief
MyHomeversity had listings and traffic. What it did not have was a way for a student who found a place to refer the next student cleanly, with the referral tracked end to end so the reward actually paid out.
The brief asked for a full referral loop: a shareable link per user, attribution that survives a signup gap of days, a dashboard, and a payout ledger. Fixed price, 14 days.
The constraint
Referral attribution is where most of these systems quietly leak. A student shares a link in September, the friend signs a lease in November. The link click and the conversion are two months and three devices apart. If attribution drops, the reward does not pay, and the loop dies.
The approach
We attached the referral code at three layers: the cookie, the account record at signup, and the lease record at conversion. Attribution is resolved at the last honest moment, when a lease is confirmed, by walking back through whichever layer still holds the code.
The payout ledger is append-only. A referral earns a pending credit on conversion and a confirmed credit when the lease clears its cancellation window. Nothing is ever edited in place, so the history is always auditable.
The build
Days 1 to 3: spec, schema, and the attribution model on paper before any code. Days 4 to 11: the link service, the dashboard, the ledger, and the cancellation-window job. Days 12 to 14: production deploy, README, handoff video, and a deliberate buffer.
This sprint is the one we point to when founders ask what happens if a sprint runs tight. It did run tight. It still shipped on day 14, because the buffer was planned, not hoped for.
The outcome
The referral flow shipped on day 14, exactly on the contract date. In the first leasing cycle, referred signups converted to leases at a noticeably higher rate than cold traffic, because a friend vouching for a place is the strongest signal a renter gets.
“This one ran tight and still landed on day 14. The buffer was in the plan from day 1. That is the difference between a deadline and a hope.”