Cutting a portfolio down to the names worth renewing
A renewal triage in four buckets, the arithmetic that decides which bucket a name lands in, and a worked pass over 500 domains.
By Greg Priday · Published · Updated · 9 min read
The arithmetic that forces the decision
A domain that never sells is not free to hold. At roughly $10 a year, a name you keep for a decade has cost $100 before you have earned anything from it. The decision to keep it gets made silently, every year, by not acting.
The question at renewal is not "is this name any good?" It is: what is the probability this sells, and at what price, before I spend more on renewals than it will ever return?
Which is two lines of arithmetic:
- Expected annual return = probability of a sale this year × expected net proceeds after fees.
- Annual carrying cost = renewal + marketplace and operational cost + your time.
Everything below is a way of estimating the first line well enough to act on it.
Sale probability, as a range not a fact
The number nobody can give you honestly is the sell-through rate. It depends on what is in the portfolio, where it is listed, and how much outbound work you do, and any figure quoted as a market rate is somebody's portfolio being generalised into a law.
So run it as a scenario instead. Take a name with a $1,000 expected net sale price and a $12 renewal, and see what different probabilities do to it:
| Annual sale probability | Net sale proceeds | Expected annual return | Renewal | Before risk and time |
|---|---|---|---|---|
| 1% | $1,000 | $10 | $12 | -$2 |
| 3% | $1,000 | $30 | $12 | $18 |
| 5% | $1,000 | $50 | $12 | $38 |
Illustrative figures, not a claim about market sell-through. Use your own observed rate where you have one, and treat the gap between 1% and 5% as the reason to measure it.
The useful part is the shape rather than the numbers. At the low end a name has to be worth multiples of its renewal before it earns its place; at the high end far less. If you have never sold anything from the portfolio, you are at the low end, and the honest response is to hold fewer names and list the ones you keep.
Four buckets, not two
Keep-or-drop is too coarse. Two of the most useful decisions live in between, and forcing them into a binary is where portfolios go wrong.
| Bucket | Meaning | Action this cycle | What history changes |
|---|---|---|---|
| Keep | Comfortably clears its own renewal on expected value. | Renew and leave alone. | Check it if the name was acquired expired, or if links and traffic are part of why you are keeping it. |
| List | Worth real money, but only if a buyer can find it. | Renew and put it on a marketplace. | Record whether the value is in the name or in an inherited website, so the listing says the right thing. |
| Investigate | Model estimate looks wrong in either direction. | Ten minutes of research each. | Archive and backlink review are the whole job here. This is where they belong. |
| Drop | Expected return below carrying cost, no story to save it. | Let it expire. | Do not drop purely because the model missed verified traffic or a real inherited asset. Do drop for a liability you would rather not own. |
The List bucket is the one most portfolios neglect. A name held for six years and never listed anywhere has not been tested. It has just been paid for.
A worked triage on 500 names
Take a 500-domain portfolio at $10 a name: $5,000 a year to hold everything. Run it through the bulk estimate tool and sort by marketplace estimate. A shape like this is common:
| Bucket | Names | Renewal cost |
|---|---|---|
| Keep | 62 | $620 |
| List | 88 | $880 |
| Investigate | 45 | $450 |
| Drop | 305 | $3,050 |
Dropping that tail takes the annual carry from $5,000 to $1,950, a 61% cut, while keeping every name with a plausible path to a sale. The figures are invented. The shape is what to take from it: in a portfolio bought speculatively and never pruned, a large share of the names will sit below the renewal-cost line, and until you run the pass you do not know which ones.
Drawing your own lines
Thresholds should be explicit rather than intuitive, and they should be yours. Here is a set that works for a $12 renewal and a 3% assumed sale probability, which is to say: here is a worked example, not a standard.
| Under $250 | Drop, unless it has traffic, a live site, or a genuine inbound enquiry. |
| $250 – $1,000 | List. Worth a marketplace slot, not worth outbound effort. |
| $1,000 – $5,000 | Keep and list. Check the auction figure. A wide spread means the estimate is unsure. |
| Over $5,000 | Keep, and consider a broker rather than a passive listing. |
To set your own, work back from the arithmetic rather than copying the bands: divide your carrying cost by your assumed sale probability, and that is the estimate a name has to clear before it breaks even. At 3% and $12 that is $400 before you have priced any of your own time. Then add whatever risk buffer lets you sleep.
When the estimate is missing something
A bulk estimate reads the name. It does not know that one of your domains has a decade-old site behind it, or that another spent three years redirecting to something you would not want associated with your own. Both of those change the decision, in opposite directions.
In practice this only applies to a minority of a portfolio: the names acquired expired or aged, and the ones where an estimate and your own sense of the name disagree sharply. Those go in Investigate, and the archive check is the first thing you do to them.
Edge cases worth pausing on
- Names with existing traffic. No estimate model sees traffic. A name with real visitors is worth keeping regardless of its estimate, but check the traffic is real before you count it.
- Names you've had an offer on. A single real enquiry is worth more evidence than any model output.
- Very wide ranges. When the auction and brokerage figures are ten times apart, the model is telling you it has thin comparables. That is an Investigate, not a Drop.
- Trademark-adjacent names. These can be worth dropping even when they value well. Legal exposure is not priced into any estimate.
- Names with a history you would rather not own. A liability is a reason to drop a name the arithmetic says to keep.
- Names you're emotionally attached to. Renew them and stop pretending it's an investment decision. Just be deliberate about it.
Running the pass
- Export your registrar's renewal list as a plain domain list.
- Paste it into the bulk estimate tool in batches of up to 2,000.
- Export the results as CSV and sort by marketplace estimate.
- Apply your thresholds as a formula column. Decide once, not 500 times.
- Work only the Investigate rows by hand, archive first.
- Turn off auto-renew on the Drop rows before the renewal window opens.
Most of that is bulk work you can do in one sitting; the Investigate rows are the part that takes real attention, and how long the whole thing takes depends entirely on how many of them there are. It is still the cheapest hour in the renewal year, because it is the only one that removes a recurring cost rather than adding one.
Download the review template if you want the columns already laid out, including the history fields the estimate cannot fill in for you.