Install
openclaw skills install @voronindenis5/apartment-scorecardUse when comparing apartments or rental homes and torn between options, when deciding if a listing is actually affordable, when touring rentals and needing to score them consistently instead of by vibes, when the advertised rent hides fees/parking/pet rent/utilities/commute, when preparing to negotiate rent or lease terms, or when defining what you actually need (bedrooms, pets, commute ceiling) before searching — applies hard constraints first (budget, commute, bedrooms, pets, move date) to kill unqualified listings, scores survivors on 16 weighted criteria YOU prioritize, computes the true all-in monthly cost with every fee amortized, runs affordability analysis (30/33/50% rules, 3x-income approval math), compares finalists side-by-side with the quality-vs-cost premium quantified, and generates a leverage-based negotiation script with anchoring targets.
openclaw skills install @voronindenis5/apartment-scorecardApartment hunting corrupts judgment: you tour five places in a day, the one with the nice lobby light wins, and six months later you're paying $120/month in "amenity fees" for a gym you never use with a 50-minute commute you didn't count. The listing price is marketing; your actual cost and quality are computable.
This skill enforces the process your rational self would use: hard constraints first (no point scoring a place you can't afford, can't bring the cat to, or can't move into on time), then weighted scoring on 16 criteria with weights that reflect YOUR priorities (a remote worker weights light and noise; a commuter weights transit), then true monthly cost — every fee, amortized broker fee, parking, pet rent, utilities, insurance, deposit interest, and optionally your commute time valued in money — and finally negotiation prep: the market signals that justify asking for less, with anchoring numbers and a script.
screen, then compare the finalistsbudget (the 30/33/50 rules + landlord 3×-income math)negotiate with the facts you gathered (days vacant, comparables, lease flexibility)job-offer-comparator style skills for offers), roommate conflict mediation, or short-term vacation rentals.| Criterion | Default weight | 1 looks like | 5 looks like |
|---|---|---|---|
| price | 3 | over budget | at/below budget |
| commute | 3 | 90+ min | under 20 min |
| noise | 3 | constant | silent |
| safety | 3 | uncomfortable | no thought |
| space | 2 | cramped | generous |
| light | 2 | dark cave | sunny all day |
| kitchen | 2 | can't cook | joy to cook |
| building | 2 | falling apart | well managed |
| neighbors | 2 | nightly bass | peaceful |
| laundry | 2 | street trip | in-unit |
| transit | 2 | car mandatory | car-free easy |
| pets_ok | 2 | banned | welcome |
| storage | 1 | none | abundant |
| bathroom | 1 | grim | spa |
| flex_space | 1 | none | dedicated room |
| outdoor | 1 | none | private green |
Edit weights in ~/.apartment-scorecard.json — set to 0 anything you don't care about. Score each listing 1-5 per criterion during/immediately after the tour; criteria prints this table.
# Affordability: 30/33/50% rules, 3×-income approval math, front costs
python3 scripts/apartment_scorecard.py budget
# See criteria + defaults
python3 scripts/apartment_scorecard.py criteria
# Screen & rank: hard constraints kill, survivors score, true cost ranks
python3 scripts/apartment_scorecard.py screen --file apartments.json
# Side-by-side of finalists + quality-vs-cost premium
python3 scripts/apartment_scorecard.py compare "Maple St 2BR" "Oak Rd Garden"
# Negotiation plan with your leverage facts
python3 scripts/apartment_scorecard.py negotiate "Maple St 2BR" \
--vacant-days 30 --lease-offer 18 \
--facts comparables move_in_speed
# Full demo: budget → screen → compare → negotiate
python3 scripts/apartment_scorecard.py example
Listings: JSON list (or CSV) — name, rent, bedrooms, commute_min, deposit, fees_monthly, parking_monthly, pet_rent_monthly, broker_fee, utilities_included, pets_ok, available (YYYY-MM-DD), lease_months, plus your 1-5 scores per criterion. See references/listing-format.md.
true_monthly = rent + monthly fees + utilities (if not included)
+ renters insurance + parking + pet rent
+ deposit × 4% / 12 (interest your money loses)
+ (broker + move-in fees) / lease months
+ commute_min × 2 × days × 4.33 × $/min (optional, try 0.3-0.8)
The commute term is the sleeper: at $0.50/min, a place 20 minutes further costs ~$433/month — often more than the rent difference people agonize over. Report also shows %income so the 50% danger line is visible at a glance.
budget → know your real ceiling BEFORE touring (all-in, not rent).screen → ranking with hard fails listed; compare the top 2 → the premium line asks the right question ("is $300/mo worth 9 score points?").negotiate the chosen one with real facts → anchor first, trade lease length/speed for dollars, get it in writing.true $/mo column exists to prevent this.negotiate prints the script.python3 scripts/test_apartment_scorecard.py → ALL TESTS PASSED (29 assertions)python3 scripts/apartment_scorecard.py example runs the full pipeline