What's new
Every released version of the report, newest first. Corrections to the numbers are listed here the same as new features, because a figure you may already have acted on changing is the thing you most need to see.
2.5.0
Added
- Six more city guides and a Ramona guide. New buyer's guides for Escondido, Vista, Encinitas, Santee, Lemon Grove and Del Mar, plus Ramona as an unincorporated community. Each names the Mello-Roos districts on the county's current list, the local water or sewer charge where it applies, and the fire, flood, bluff or tsunami checks for that place, with the loan math at a sourced local median (#191).
- Six more San Diego neighborhood guides. Clairemont, Mira Mesa, Rancho Bernardo, Point Loma, Pacific Beach and City Heights now have their own pages, each with its Mello-Roos and assessment picture, the checks that matter there (airport noise around MCAS Miramar and San Diego International, the 2007 Witch Creek fire in Rancho Bernardo, the Coastal Zone and short-term rental licenses in Pacific Beach) and loan figures at the local median. Each one also has a dot on the coverage map (#191).
Changed
- Nearby areas on the coverage map now share one numbered dot. Where areas sit too close together to pick apart, for example La Mesa, Lemon Grove and Spring Valley, the map shows a single dot with the number of areas in it. Click or tap it, or press Enter, and the map zooms in on those areas so you can pick each one on its own. "Show whole county" under the map, or the Escape key, zooms back out. The list of all areas under the map is unchanged (#194).
2.4.0
Added
- The San Diego property tax exemptions guide now states the disabled veterans' low-income exemption: $271,009 off assessed value for households with an annual income of $81,131 or less, about $2,710 to $2,981 a year in tax. It had named the tier without a number. The figures are the Board of Equalization's 2026 amounts, held as dated constants in the report engine, and the guide reminds you the low-income exemption is filed again every year between January 1 and February 15 (#196).
Changed
- Dollar amounts that end in exactly 50 cents now round up, so $2,062.50 shows as $2,063 and a $26,337.50 VA funding fee shows as $26,338. Before, some of them rounded down, so a few figures in reports, in the sample report, on the city and neighborhood pages and in the supplemental tax calculator may now read $1 higher. The calculator and the supplemental tax guide now agree on the same example (#195).
Fixed
- The Chula Vista guide and the Mello-Roos by community guide now label the Eastlake districts the way the County Auditor's list does: CFD 06-I is "Eastlake Woods, Vistas" and CFD 07M is "Eastlake III Woods, Vistas". Both pages had grouped 06-I under the 07M name (#198).
2.3.0
Added
- How much house can I afford? Four new guides answer it for a $100,000, $150,000, $200,000 and $250,000 household income in San Diego. Each shows the highest price you can qualify for with a conventional, FHA or VA loan, the monthly cost and cash to close, and how much HOA dues, Mello-Roos or other debts take off. The figures come from the same engine as the report (#188).
- Does this house have Mello-Roos? A new guide walks through four ways to check a San Diego home for a Mello-Roos special tax before you make an offer (#188).
- Four more guides. Cash to close in San Diego covers earnest money, the down payment and closing costs in the order you pay them, with conventional, FHA and VA totals from the report's engine. The Natural Hazard Disclosure guide explains what California's NHD statement covers and which of its items a sounding report checks. San Diego property tax exemptions covers the homeowners' and disabled veterans' exemptions and what each saves a year. HOA fees in San Diego covers reserves, the disclosures you receive, the limits on dues increases and special assessments, and how dues lower the price you qualify for (#189).
- Eastlake and Harmony Grove guides. Two new community pages cover master-planned areas with Mello-Roos. Eastlake lists the Chula Vista districts the county names for it and the school districts that can add their own. Harmony Grove covers the County's first Mello-Roos district, the 2014 Cocos Fire, and county rules. Both run the loan math for each program (#190).
- Supplemental tax calculator and a FAIR Plan guide. A new calculator at /guides/supplemental-tax-calculator estimates the supplemental property tax bill, or the two bills a January to May closing brings, from a price, the prior assessed value, a close date and a tax rate. It runs in your browser with the report's own proration math, asks for no address and sends nothing anywhere. A new guide explains the California FAIR Plan: what its fire-only dwelling policy covers, the separate policy that fills the gaps, its coverage limits, the 2024 to 2026 reforms, and how to check a home's fire hazard zone. The wildfire insurance and supplemental tax guides now link to them (#192).
- Use my own rates. Under Financing, a checkbox lets you enter your lender's rate for any loan program. The report then works every figure for that program at your rate, labels it "your rate" and shows the rate it replaced. Leave a program blank to keep the live rate (#182).
- The second time around. The About page now tells how we used sounding when we bought our second property in Chula Vista (#181).
- How sounding has grown. The About page now has a short history of the site, which groups the changes by month with the newest first. It starts with the first version in May, and each line says whether something was added, improved, changed, fixed or removed (#176).
- Buyer's available cash. Under Financing you can now enter how much cash you have for the purchase. For each loan program the report then says whether that covers the estimated cash to close, and by how much you are over or short. If you are reusing VA entitlement and what remains does not cover the price, the VA line also names the down payment it requires (unless you chose a larger VA down payment yourself), which is often why a VA purchase you expected to be $0 down is not (#173).
- Megan's Law notice. Reports for San Diego County addresses now carry California's statutory Megan's Law notice in their Neighborhood section, with a link to the Department of Justice's search site and the property's address printed so you can copy it into the search. The DOJ asks each visitor to accept its terms before searching, so the link cannot open a pre-filled search. sounding does not pull, store or show any registry data (#174).
Security
- Updated Next.js and sharp, and one library underneath them, to clear newly published security advisories in the code that serves the site. Two of those were rated high. The sharp one affected the image handling that serves pictures on the site. Nothing in the site changed; these are the libraries underneath it (#184).
- The report engine can now be handed a replacement access key without any interruption to the site. Changing that key used to mean a window where the site and the engine disagreed about it and reports would not generate; the engine now accepts the old key alongside the new one for as long as the changeover takes. Nothing about this is visible to you, and no report behaves differently (#105).
- Saved reports at
/r/<slug>and the/compareview now render inside an isolated frame that cannot run code. Report pages are built from an address you type in, and until now the only thing keeping a stray piece of markup in that address from running as code on a shared link was the report generator escaping it correctly every single time. This is now a second lock rather than the only one. The report looks and reads exactly as before; the one visible difference is that links out of a report (to the EPA's radon pages, for instance) now open in a new tab, so you keep your place (#113). - Updated Next.js, sharp and js-yaml to clear four newly published security advisories, one of them rated critical. Nothing in the site changed; these are the libraries underneath it. The critical one affected the image handling that serves pictures on the site, and is fixed by the update (#140).
- The browser rules that say which code the site is allowed to run are now enforced rather than only monitored. In plain terms: a violation used to be noted in the browser's own console and allowed anyway; now it is refused. This blocks code loaded from any website we did not approve, stops a page being tricked into sending a form somewhere else, and removes a class of link-rewriting attack. It changes nothing you can see (#113).
Fixed
- Typing a condo or apartment address now finds the unit you meant. A lettered unit ("1536 Apache Dr Unit F") and a unit typed after a comma ("1536 Apache Dr, #2") are both read now. When you type a building's address without a unit, the report no longer quietly uses the first unit's county record as yours. Its notes say the building has several units and ask you to add yours, and it shows no county facts until you do. Picking your address from the suggestions was never affected (#180).
- Corrected three entries on this page: the 2.1.0 report-history line now says the history keeps your 50 most recent reports on the device and browser that made them, the 2.2.0 guides line lists Poway as a city guide, and the FHA and VA rate change below now says which way the figures moved on each rate path (#183).
- The site's circle cursor now stays the cursor inside a generated report. The regular mouse pointer used to take over there while the circle stopped at the report's edge; the report now draws the same circle, and it grows over links as it does on the rest of the site. The calendar icon in a date field and the clear button in the
/comparesearch box showed the regular pointer too, and no longer do. Over a date field the circle now grows, as it does over links, so it circles the calendar icon instead of sitting on top of it. If you use a touch screen or have reduced motion turned on, you keep your normal cursor, as before (#160). - The small grey text in the report that appears under the form after you press Generate (the date line, the small labels, the notes beside figures, the disclaimer and the footer) is now dark enough to read comfortably on screen. Saved reports, comparisons and the sample report already had this correction; the freshly generated one did not. The PDF keeps its original print colors (#163).
- The "income needed for a $1M home" guide's worked example now reports $230,500 a year rather than $230,499. The old figure came from an unrounded intermediate and matched neither the income table it cites nor its own monthly figure. Every other number on the page is unchanged; the rest of this work was internal, making the page compute its figures instead of storing them, so a rate change can no longer leave part of it behind (#154).
- Corrected the FHA mortgage insurance figure in the "income needed for a $1M home" guide. The page charged FHA's 0.75% annual premium against the whole financed loan balance, including the upfront premium rolled into it, which overstated the monthly payment by about $11 and every income figure derived from it by $200-$300 a year. HUD's published method divides that premium back out, landing on the base loan - which is what the report generator has always used, so the tool itself was never affected. The guide's payment tables, income tables and headline figures now come from the same engine the reports do, and the paragraph explaining the calculation has been rewritten: it previously said using the base loan understated the payment, which was backwards (#153).
- FHA and VA interest rates in your report are now worked out from the conventional 30-year rate at a fixed difference, rather than two different ways depending on whether our rate feed answered. When the feed was reachable, all three programs were shown at the same conventional rate, which hid the gap between them; when it was not, FHA and VA were discounted further than lenders typically price them. What you will notice depends on where the rate came from. With today's rate from our feed, FHA and VA payments and the income needed to qualify are slightly lower than they were, because those two rates now sit below the conventional one instead of equal to it. When the feed is unreachable and the report uses its stored rates, they are slightly higher, because the old stored discounts were larger than lenders typically give. Cash to close does not depend on the rate and has not moved. The conventional figures have not moved. These remain estimates and your own lender's quote will differ; the report now states on its face that the FHA and VA rates are derived from the conventional one rather than quoted separately. The city, neighborhood and guide pages are worked out the same way, at the stored rates (#123).
- The What changed panel on a re-run report no longer restyles the page around it. It was being inserted as a page fragment when it is really a complete document of its own, so the report's print stylesheet leaked onto the surrounding page (#113).
Changed
- When you click Download PDF, the file is now saved under the property's street address, for example
1450_El_Prado.sounding.report.pdf, instead ofreport.pdforsounding-report.pdf, so several reports are easy to tell apart in your downloads folder (#178). - The report form no longer has a separate Apt / unit box. Picking an address from the suggestions picks the exact unit (condo units are listed on their own), and a unit typed into the box before picking was ignored. If you type an address instead, add the unit after the street, for example "1536 Apache Dr #2": the report finds the same parcel it did with the old box (#179).
- The four numbered steps under "A report, not a runaround" on the home page are now cards that match the rest of the page, and their wording names more of what a report pulls, including Mello-Roos, fire and earthquake maps, and local crime. The line above them now counts the city and neighborhood guides instead of naming four cities, so it stays current as guides are added (#175).
- The San Diego County map on the home page now shows the terrain. Hills, canyons and mesas are shaded from U.S. Geological Survey elevation data, so you can see at a glance how the coast gives way to the inland hills. The sea stays flat, and the dots and links work as before. The elevation data is public domain and credited on the licensing page (#177).
- Printing a saved report straight from the browser now depends on how your browser handles framed content, and may paginate differently. Download PDF is the supported way to get a clean printable copy and is unaffected (#113).
- San Marcos now sits with the other city guides at
/cities/san-marcos, alongside Chula Vista, Oceanside and the rest. It was first published as a standalone guide before the city pages could carry that much detail, and stayed there until now. The page's content is unchanged, and the old/guides/san-marcosaddress forwards to the new one, so saved links keep working (#162). - The spinning globe at the top of the home page is now a map of San Diego County, with a pulsing dot on every city and neighborhood the site has a guide page for. Purple dots are cities and City of San Diego neighborhoods; blue dots are unincorporated communities. With a mouse, point at a dot to see which area it is and click it to open that area's guide. On a phone, the first tap on a dot names the area and the second opens its guide. With a keyboard, the map is a single stop: the arrow keys move between areas and Enter opens one. The globe only appeared on larger screens; the map shows on phones too, between the headline and the report form, and a list under it links to every area. If you have reduced motion turned on, the dots stop pulsing. The map is drawn from public-domain U.S. Census, USGS and Natural Earth data, now credited on the licensing page (#161).
2.2.0
Added
- Reports now show what the neighbors are taxed on: a small table of nearby parcels' assessed values and assessed dollars per square foot, framed as a Prop 13 tax-basis comparison. Two identical houses on one block can be taxed on figures that differ several times over purely because of when each last changed hands, and that gap is what your own bill closes when you buy. It is deliberately not a valuation comparison: the county parcel data publishes no sale prices at all. Each row shows its measured distance from your parcel, because assessor parcel numbers do not reliably run along a street (#127).
- An Expected close date field on the generator. Leave it blank and the report assumes the first of next month, as before. Fill it in and the supplemental tax forecast is split across the fiscal years you will actually own the home in, which matters most if you close near the end of a fiscal year (#128).
- A line under the address field saying what the report actually pulls: Mello-Roos, surprise supplemental taxes, and the hazard designations most listings never mention (#118).
- A What's new page at
/changelog, so you can see what changed between releases and, in particular, which figures were corrected (#131). - Community guides for Bonita, Lakeside, Alpine and Rancho San Diego, and a city guide for Poway. Corrected 2026-10-08: this entry first listed Poway as a community guide (#183).
Fixed
- Supplemental tax bills are now described as arriving 6-9 months after closing, not 3-9. The county issues the supplemental only after the reassessment is processed, which rarely lands inside a quarter. The claim now carries a dated source in the report's receipts.
- The report no longer tells you to "pass
--close-date" to refine the assumed closing date. That is a command-line flag, so the instruction pointed at something a reader of the website could not do. It now explains what the assumption changes, and the new Expected close date field on the generator gives you a way to set it. - Source footnote numbers no longer run into the word before them anywhere in the report. Copied or read aloud, "Supplemental forecast" had been coming out as "Supplemental forecast3" and "Zone AE" as "Zone AE1".
- The sample report at
/samplewas regenerated. It had been serving the pre-correction copy.
Security
nanoidbumped 3.3.16 to 3.3.18 to clear the dependency audit gate (#133).
2.1.0
The state that shipped as "landing v2.1", adopted as the semver anchor. See docs/versioning.md for why numbering starts here.
Added
- Report history: your 50 most recent reports are findable again by address, on the same device and browser you made them on. Corrected 2026-10-08: this entry first said every report, and left out that the history keeps the 50 most recent and only on that device (#183).
- Google consent management, including a consent-withdrawal control.
Fixed
- The engine no longer produces a confident report for an address outside San Diego County. An out-of-coverage address returns an honest error rather than a neighbouring parcel's facts presented as verified.
- A lone leading five-digit house number is no longer mistaken for a ZIP code when deciding whether an address is in coverage.
- Save-to-compare confirmations reflect what was actually saved.
Security
- Per-IP throttling on the address-suggest endpoint, with a regression test pinning it.