Leasing Console for a Vilnius Build-to-Rent Operator
Designed and built a clickable leasing console for a build-to-rent operator with 11 buildings and about 2,600 homes in Vilnius: an application pipeline that refuses moves until checks pass, a review screen that shows each criterion as a fact against the policy with no overall score, decisions made by a named person with a second reviewer on every decline, and one hold per unit with a backup queue.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, application pipeline as board and table, application detail with 7 tabs, review and decision, and offers and holds. Every application in the demo opens its own detail and review pages.
Up to 6 versioned criteria per application: verified identity, rent up to 40% of household net income, 3 months of income evidence, landlord reference, open defaults up to EUR 500 and a guarantor at 3x the rent. Each shows the fact, the policy and the source.
A unit can carry only one active hold or offer. Holds run 72 hours with a EUR 250 holding deposit, show a live countdown, and a second household queues as backup with its position shown.
26 applications across every stage, 28 units in 11 buildings, 22 holds and offers, and 9 staff users across leasing, move-in and data protection roles.
Liepaupė Homes opened its buildings faster than its leasing process could keep up. Applicants emailed payslips and passport scans to a shared inbox, co-applicants were tracked in a spreadsheet, and each leasing agent applied the affordability rule slightly differently. Two units were promised to two households in the same week, declined applicants got a one-line email with no reason, and nobody could say how long rejected applicants' documents had been sitting in the inbox.
Slenkstis takes a household from viewing to keys. Every applicant is measured against the same versioned criteria, the leasing team sees rule results as an explanation rather than a verdict, a named leasing officer decides, every decline and override goes to a second reviewer, and each unit can be promised to only one household at a time.
Refusing someone a home is a decision with real weight. In Lithuania and the EU, how applicants are screened, how their data is handled and how leases are signed are all governed by law, while affordability, deposits and hold lengths are the operator's own policy.
Under GDPR Article 22, people have the right not to be subject to a significant decision based solely on automated processing, and the 2023 SCHUFA judgment suggests a score can itself count as a decision. Rules can inform the leasing team, but a person has to decide.
EU equal treatment rules and Lithuania's Law on Equal Treatment generally prohibit discrimination in access to housing. Each agent applying the affordability rule their own way made consistent, explainable decisions impossible.
One application can have a lead applicant, co-applicants and a guarantor, each with their own identity check, income through open banking or payslips, references and consents. Each co-applicant should see only their own data.
Units were promised twice because holds lived in agents' heads. Holds need a fixed length, a holding deposit with clear refund rules, a queue for backup households, and a record of who placed, extended or released each one.
Mapped 11 roles, from leasing agent and data protection officer to applicant, guarantor and referee, and 42 screens across the leasing console and the mobile-first applicant app. Defined the data model for households, identity and income checks, versioned criteria, decisions, holds, leases and retention rules. Wrote down the rules the design follows: GDPR and Lithuania's data protection law, Article 22 on automated decisions, equal treatment law, PSD2 open banking, eIDAS e-signatures, the Civil Code on leases and EU unfair terms rules.
Built 5 key screens of the leasing console on a production dashboard kit: the dashboard with KPIs, availability by building and pipeline by stage, the pipeline board with drag and stage entry checks plus a table with bulk actions, the application detail with household checklist and document viewer, the review screen with criteria results, logged income adjustments, decision options and the explanation preview, and offers and holds with countdowns and backups. Criteria results are derived from the data, so changing an income figure changes the result.
Integration with identity verification (such as Veriff), Smart-ID and Mobile-ID qualified e-signatures through Dokobit, open banking through a PSD2 account information provider such as Tink, payslip extraction, Creditinfo Lietuva debt data, Stripe or Paysera payments and the client's property management system. Staff auth by role, an append-only audit log, scheduled deletion of declined applicants' data, and the remaining screens: documents inbox, viewings, units, leases, move-ins, compliance, reports, settings and the applicant, guarantor and referee app.
Each criterion reads as a plain sentence, such as household verified net income EUR 1,960 per month and rent EUR 920 at 46.9% against a policy of up to 40%, marked meets, does not meet or needs review, with its data source. The suggested next step is worded as guidance only.
A decline can only use reasons tied to a criterion, and the applicant's explanation is previewed from those reasons. Approving with a criterion unmet or declining with all met is flagged as an override that needs a note, and both go to a different leasing manager before anything reaches the applicant.
An officer can correct an income figure, for example to the EUR 2,340 in a new pay rise letter, which moves rent-to-income from 46.9% to 39.3%. The reason is required, logged and shown to the second reviewer, so nothing changes quietly.
Offers and holds shows the rule at the top: one active hold or offer per unit. Each hold shows its deposit status, extensions and time left, turns red as it nears expiry, and lists the backup household that is promoted when it is released.

Designed and built a clickable property management platform for a Chicago manager of about 4,200 apartments: a dashboard of occupancy, collections and open repairs, arrears worked through the same steps for every resident, security deposits tracked under Chicago and Illinois rules, and work orders with SLA clocks, entry permission and owner approval limits.

Designed and built a clickable listings and agent CRM for a Cypriot sales and lettings agency with 22 branches and about 180 agents: listings with EPC and agency agreement checks, portal syndication, a lead pipeline with response timers, offers that wait for AML clearance, and a progression checklist from reservation to transfer of title.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab