Apartment List~9 min read

Six weeks to rebuild trust across 20% of at-risk ARR.

We built the company’s first billing product that didn’t need a salesperson.

  • Role: Research and product design
  • Timeline: 6 weeks
  • Team: 1 PM, 1 engineer, me
  • Impact: 20% of at-risk ARR recovered
  • Platform: Web
A billing task management dashboard displayed on a laptop beside a vault and gold bars.

Impact

0%

At-risk ARR recovered

0% ↓

Billing support tickets

45% of partners a month, down to 14%

0%

Upgrades without Sales

up from 1%

Measured against targets I set at the outset. I read them at three weeks, which is early: Apartment List normally took three months to report a number. So the three-week figures are a first read rather than a settled one, and what makes them durable is the reporting cycles afterwards — they were still at this level when I left in 2024. The 20% is a share of the $5m the company had already flagged. Against that base of roughly 1,000 partners, the move is about 450 companies a month raising a billing ticket down to about 140. Billing questions were a separately tagged category in the support tool, distinct from the access tickets in the roles and permissions study, two projects, two measures. Still outstanding: the ship date, which is what turns “still holding” into a duration, and the partner count behind the percentages.

The short version

Apartment List didn’t have a billing product. Invoices were scattered through email threads, support tickets, and whichever spreadsheet Finance had made that month. Partners only learned what they owed when an invoice arrived. Roughly $5m in ARR had already been flagged as at risk.

The company was measuring the problem in support hours, because that is the half of it with a queue attached. Research said the expensive half was somewhere else: partners who couldn’t predict a bill were spending less on purpose, and a partner who quietly reduces their budget never files a ticket. I argued the target should be suppressed spend rather than deflection, and that changed what was worth building.

With six weeks, one PM and one engineer, the obvious answer — full billing visibility — wasn’t buildable. I prototyped it anyway to find that out, and the prototype did two things: it set the boundary of the MVP, and it gave leadership the evidence to buy that scope instead of building it. Inside the boundary I went after three specific barriers.

Billing questions moved from 45% of partners a month to 14%. Self-serve upgrades moved from 1% to 8%. A fifth of the at-risk ARR, roughly $1m, was recorded as recovered.

What I owned

I owned

  • MVP scope: the three barriers worth attacking, and the decision to cut full billing visibility
  • The read that suppressed spend, not support volume, was the expensive half of the problem — and the argument to target it
  • The design brief: problem space, constraints, risks, milestones
  • Partner research, and the internal interviews with Sales, Marketing, and Finance
  • Both experiments end to end: the rates calculator and the upgrade paths
  • The success targets, and reporting against them after launch
  • Aligning the VP of Sales behind removing Sales from the upgrade path

Shared with the PM and the engineer

  • Sequencing six weeks of scope against what one engineer could build
  • Running the reviews with Sales, Marketing, and Engineering
  • The build-versus-buy assessment, and the prototype that moved leadership to procure

Problem

“Billing confusion” was the symptom. The missing billing product was the problem.

Charges arrived without warning, with nothing to check them against. Partners couldn’t predict a bill, see what drove it, or change a plan without calling an account executive.

That cost showed up three ways: support hours, slow collections, and suppressed spend. The last one was both the least visible and the most expensive.

Before

$0m

ARR flagged at risk

0%

Partners raising a billing ticket, monthly

0%

Upgrades without Sales

The $5m was the company’s own figure, set before this project started. The ticket rate is the share of partners raising at least one billing-tagged ticket in a month, not ticket volume. Apartment List had roughly 1,000 property management companies on the platform, so 45% is about 450 of them raising a billing ticket every month. Billing and access were tagged separately in the support tool, and are two separate projects.

What the ticket queue couldn’t see

Confusion wasn’t costing support hours. It was suppressing spend, and that never reaches a ticket queue.

“It made me want to spend less” is the sentence that moved the target. Everyone was counting the support cost, because support is the one surface with a queue attached and a number beside it. A partner who reduces their budget because they can’t predict a bill files no ticket, calls nobody, and appears in none of the figures the company was managing to.

That changed what success meant. Deflecting tickets was the easier outcome to optimise for and the cheaper one to prove; getting partners confident enough to spend was the larger one, and the two want different products. Working back from there, the confusion was doing its damage in three specific places.

Predictability

No way to know what a change would cost before committing to it. This is the barrier suppressing spend, and an unpredictable bill is a rational reason to underspend.

Transparency

No way to reconcile a charge against anything. This is the barrier generating tickets, and the one easiest to mistake for the whole problem.

Agency

No way to change a plan without an account executive on the phone. This is the barrier slowing collections and capping how much revenue could arrive without Sales.

Naming them separately is what let me argue for a scope that wasn’t a billing system. Three barriers can be attacked one at a time by one engineer. A billing system cannot, and every plan that started from the system rather than the barriers ran past six weeks before it reached anything a partner would notice.

Three levers, not a billing system

Could three levers do the job of a billing system?

For the six weeks I chose three narrow levers built in-house — predictable rates, itemized invoices, and self-service upgrades — over attempting full billing visibility or standing up a third-party billing platform in that window.

Build-versus-buy was genuinely open: leadership had no starting position and nobody was arguing either side, which meant it would be decided on whatever evidence turned up first. So the prototype became the argument. Once there was something to look at, the scale of work full visibility implied against one engineer and six weeks was legible without anyone taking my estimate on faith. Leadership procured that scope rather than building it, and the three levers went out in-house in parallel.

Three partial answers could feel unfinished and the cut scope might never be funded, so each lever had to stand on its own; even a partner using only the calculator got a working answer. That is the part of this project with the longest reach — a prototype built to fail a schedule test produced a purchasing decision, and the scope I cut is the scope the company went on to own.

The MVP billing prototype, showing invoice history and rate breakdowns.
The full-visibility prototype. Building it is what established it couldn’t ship in six weeks.

What will this change cost me?

I chose a real-time interactive calculator over a static invoice view or summary table so partners could see what a change would cost before committing. A calculator detailed enough to trust could overwhelm them and send them back to their account executive, so the default view answers the cost question and itemized cost drivers stay collapsed until requested. Billing questions fell from 45% of partners a month to 14%.

Billing view showing an itemized rate breakdown.
Shipped: itemized, with the breakdown available on demand.
Alternative billing view aggregating charges to a single price.
Rejected: a single aggregate price. Simpler to read, and property managers couldn’t reconcile it against anything.
The shipped Billing screen: a 2024 ZIP code rate calculator with a search field and an estimated base price of $0 before a code is entered, and beneath it a Rates table grouped by ZIP code, with one row expanded to show four communities, each with its 2024 estimated rate, 2023 rate, LIFT rate, and 2024 LIFT floor.
The calculator as it shipped. The default view answers one question, what will this cost, and the per-community breakdown underneath stays collapsed until somebody asks for it.

Why make a partner leave the plan view to upgrade?

I embedded self-service upgrades in the existing workflow instead of routing partners through Sales or a separate billing portal. Giving a pricing change to someone who had never made one risked misclicks, accidental upgrades, and disputes landing on Finance rather than Sales, so confirmation shows the new charge before anything is billed and the itemized invoice records it afterwards.

Sales was split. Some account executives wanted billing to stay a relationship touchpoint, because the quarterly statement call was how they kept a line into an account; Finance wanted to collect without waiting on Sales to have that conversation. I built for Finance. Self-serve upgrades rose from 1% to 8%, and Finance could forecast without manual reconciliation.

Plans dashboard with an embedded upgrade modal.
Shipped: the upgrade sits inside the plan view.
Standalone bulk upgrade flow.
Rejected: a standalone bulk flow. Faster to build, and harder to compare options in.
The Edit LIFT side panel over the Plans list: Ashbrook Village at $800 with a $650 floor, five price tiles reading Floor $650, Single price $629, Good $760, Better $740.79, and Best $1202.26, and a panel below estimating search position 22 and 1.84–1.93× impressions.
Shipped: five named tiers, and the projected search position and impressions for whichever one is selected.
The same Edit LIFT panel with the tiers as a continuous slider instead, running Floor $650, Single $680, Good $700, Better $800, Best $1,200, with the handle set to a lift price of $655.
Explored: the same tiers as a slider. The named tiles made the discrete pricing options easier to inspect, so that is what shipped.

Three mechanisms, one per barrier. A ZIP-code rates calculator with real-time totals, so a cost is knowable before it is committed to. Itemized invoices showing what drove each charge, so a bill can be reconciled against something. Self-service upgrade and premium-placement paths inside the existing workflow, so changing a plan doesn’t require a phone call.

I cut full billing visibility, auto-billing alerts, and the differentiating features from the original scope. The cut is the more informative half. None of it went because it was unimportant — full visibility was important enough that the company bought it.

The shipped Invoices screen: three summary cards reading all invoices $150k, paid invoices $109k, and pending invoices 37k at 20% of portfolio, above a table of communities each showing a status pill reading Overdue, Due in 14 days, Paid, or Overdue by 2 days, an $800 amount, and a Download action.
The record afterwards. Status, amount, and a download per community. Those were the three things every billing call had been asking for.

What the six weeks bought

Three things existed afterwards that hadn’t before. Finance could forecast without manually reconciling upgrades, because the upgrade and the invoice had become the same record. Upgrades arriving without an account executive went from a rounding error to 8%, which makes self-serve a revenue path rather than a support cost. And the company owned the scope this team couldn’t build, bought on the evidence of a prototype that was never going to ship.

The ticket reduction is the number that gets quoted and it is the least interesting of the three. Deflection saves hours. The other two changed what the business could do next.

The expensive half of a problem is usually the half with no queue attached.

Support was the only instrumented surface here, so support tickets were what the problem looked like from the inside. Every number in the room came from a system that can only count people who complained, and the partner quietly cutting their budget is invisible to all of it.

What I do differently since: before accepting the metric a problem arrives attached to, I ask which behaviour would leave no record at all. On this project that question was worth more than the research that followed it, because it moved the target from deflection to spend before any design existed — and two of the three mechanisms that shipped are aimed at a cost nobody was reporting. It doesn’t always change the answer. Here it changed which of two products was worth the six weeks.

The plan that shipped was not the plan I chose

I put full billing visibility in the MVP before proving we could build it. The early prototypes showed that one PM, one engineer, and six weeks couldn’t carry it, so we shipped predictable rates, itemized invoices, and self-service upgrades instead. Those three levers came out of a plan that had already failed. Nobody set out to build them. The prototypes established the schedule limit, not that the levers were the best long-term billing product. The smaller set shipped, and the company went and bought the rest. That is one answer to whether three levers were enough on their own, and it is not the flattering one.

The other thing I did not settle was Sales. Part of that team read the quarterly billing call as relationship work, and self-service took it away from them. Finance got what it wanted and they did not. That was my call, and I took it to the VP of Sales and got their backing. Buy-in at that level is what let it ship while part of the team still wanted the touchpoint.

Sam Cusano