PageSourceSearch

https://nabewise.com/assets/method-CjW0lRvY.js

js nabewise.com collected 2026-10-02 10:54:27 UTC 13,044 bytes, 1 lines download raw bytes

1import{r as e}from"./useRouter-80ermfqe.js";import{t}from"./link-CwlrE5Ah.js";import{h as n,m as r,n as i,u as a}from"./prefs-DRLxyfjY.js";import{o}from"./index-CLqnyYxi.js";import{n as s,t as c}from"./vintage-stamp-_wKlNziV.js";var l=e();function u(){let e=i(),u=a[e],d=r(e),f=u.aliasesNote;return(0,l.jsxs)(`main`,{className:`mx-auto max-w-2xl px-4 py-12 sm:px-6`,children:[(0,l.jsx)(`p`,{className:`text-xs font-medium uppercase tracking-[0.18em] text-primary`,children:`Neighborhood score`}),(0,l.jsx)(`h1`,{className:`mt-3 font-display text-4xl tracking-tight`,children:`How NabeWise builds a neighborhood score`}),(0,l.jsxs)(`p`,{className:`mt-4 text-muted leading-relaxed`,children:[`A neighborhood score here is a 0–100 `,(0,l.jsx)(`em`,{children:`fit`}),` for how you live — not a single grade of the place, and not a score you can carry from `,u.name,` to another city. Six axes are scaled inside one city’s official `,u.unit,`, then weighted. `,f,` are search aliases, not extra polygons.`]}),(0,l.jsx)(`div`,{className:`mt-3`,children:(0,l.jsx)(c,{city:e})}),(0,l.jsxs)(`section`,{className:`mt-8 space-y-3 text-sm leading-relaxed`,children:[(0,l.jsx)(`h2`,{className:`font-display text-2xl`,children:`The formula`}),(0,l.jsxs)(`p`,{children:[`For each official `,u.unitSingular,` `,(0,l.jsx)(`code`,{className:`text-fg`,children:`n`}),` in`,` `,u.name,`:`]}),(0,l.jsxs)(`p`,{className:`rounded-lg border border-border bg-surface px-4 py-3 text-base leading-snug`,children:[`fit = (safety·w`,(0,l.jsx)(`sub`,{children:`s`}),` + schools·w`,(0,l.jsx)(`sub`,{children:`k`}),` + walk·w`,(0,l.jsx)(`sub`,{children:`w`}),` + cost·w`,(0,l.jsx)(`sub`,{children:`c`}),` + vibe·w`,(0,l.jsx)(`sub`,{children:`v`}),` + commute·w`,(0,l.jsx)(`sub`,{children:`j`}),`) / Σw`]}),(0,l.jsxs)(`p`,{children:[`Each axis is 0–100 inside this city set only. Safety inverts `,n(e),` crime per 
11,000 residents (percentile). Walk and vibe min–max OSM amenity density. Cost is 100 at or under your budget, then falls. Commute inverts weekday minutes to the job center you pick. Missing school data sits at 50.`]})]}),(0,l.jsxs)(`section`,{className:`mt-8 space-y-3 text-sm leading-relaxed`,children:[(0,l.jsx)(`h2`,{className:`font-display text-2xl`,children:`Six axes, 0–100`}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`Safety`}),` inverts `,n(e),` crime per 1,000 residents (violent + property) among these `,u.name,` areas. Downtown nightlife and visitors inflate counts; the rate is not a judgment of residents.`]}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`Schools`}),` still uses a nearby-school rating when present. Missing data sits at mid-scale; turn school weight off if you are not searching with kids.`]}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`Walk`}),` counts OpenStreetMap groceries, cafes, parks, and transit stops inside the `,u.unitSingular,` or within `,d.osm.radiusM,`m of its centroid.`]}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`Cost`}),` is 100 when ACS median home or rent is at or under your budget, then falls as price exceeds it.`]}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`Vibe`}),` uses OSM cafe, park, restaurant, and bar density. Quiet mode inverts bar weight.`]}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`Commute`}),` is typical weekday minutes to a job center you pick (downtown, campus, tech, or the city’s equivalent). Faster is better, ranked only among `,u.name,` areas. The numbers are baked from neighborhood geography — not live traffic, not Google. Leave work on “Anywhere” to drop this axis.`]})]}),(0,l.jsxs)(`section`,{className:`mt-8 space-y-3 text-sm leading-relaxed`,children:[(0,l.jsx)(`h2`,{className:`font-display text-2xl`,children:`Hard filters`}),(0,l.jsx)(`p`,{children:`Filters hide neighborhoods instead of reweighting them. Within budget keeps ACS median rent or home at or under your slider. On transit requires at least three OSM transit stops. Has a park requires three parks. Skip nightlife drops areas flagged for nightlife or with dense bars. A max commute uses your workplace, or the city’s primary job center if you have not picked one.`})]}),(0,l.jsxs)(`section`,{className:`mt-8 space-y-3 text-sm leading-relaxed`,children:[(0,l.jsx)(`h2`,{className:`font-display text-2xl`,children:`Default weights`}),(0,l.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-border`,children:(0,l.jsxs)(`table`,{className:`w-full text-left text-sm`,children:[(0,l.jsx)(`thead`,{className:`bg-surface-2 text-xs uppercase tracking-wider text-muted`,children:(0,l.jsxs)(`tr`,{children:[(0,l.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Mode`}),(0,l.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Safety`}),(0,l.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Schools`}),(0,l.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Walk`}),(0,l.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Cost`}),(0,l.jsx)(`th`,{className:`px-3 py-2 font-medium`,children:`Vibe`})]})}),(0,l.jsxs)(`tbody`,{className:`bg-surface tabular-nums`,children:[(0,l.jsxs)(`tr`,{className:`border-t border-border`,children:[(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`Walkable`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`15`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`10`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`40`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`20`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`15`})]}),(0,l.jsxs)(`tr`,{className:`border-t border-border`,children:[(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`Quiet streets`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`30`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`15`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`10`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`35`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`10`})]}),(0,l.jsxs)(`tr`,{className:`border-t border-border`,children:[(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`Nightlife`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`15`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`5`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`25`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`20`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`35`})]}),(0,l.jsxs)(`tr`,{className:`border-t border-border`,children:[(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`Kids in school`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`25`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`35`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`15`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`20`}),(0,l.jsx)(`td`,{className:`px-3 py-2`,children:`5`})]})]})]})}),(0,l.jsx)(`p`,{children:`Pick a workplace and commute takes 25 points; the other five axes scale to 75 so the total stays 100.`})]}),(0,l.jsxs)(`section`,{className:`mt-8 space-y-3 text-sm leading-relaxed`,children:[(0,l.jsx)(`h2`,{className:`font-display text-2xl`,children:`Sources`}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`People and housing`}),` come from the U.S. Census`,` `,d.acsRelease,` (`,d.acsYears,`) for `,d.county,` tracts. Each `,u.unitSingular,` inherits the tracts whose centroid falls inside it, or the tract that contains the neighborhood centroid. Medians are household-weighted across those tracts. Where ACS suppresses a median (common for home value in renter-heavy areas), we keep the last published figure.`]}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`Safety`}),` counts `,d.police,` `,n(e),` reports from `,d.window,`:`,` `,e===`dc`?`homicide, sex abuse, robbery, and assault with a dangerous weapon as violent; burglary, theft, theft from auto, motor vehicle theft, and arson as property. These are MPD DC Code categories, not FBI Part I. Incidents are already assigned to a neighborhood cluster, then expressed per 1,000 ACS residents.`:(0,l.jsxs)(l.Fragment,{children:[`murder, robbery, and aggravated assault as violent;`,` `,e===`mpls`?`burglary, larceny, and motor-vehicle theft as property (NIBRS). Aggravated assault, robbery, rape, and homicide as violent. Incidents join on Minneapolis’s official neighborhood name, then are expressed per 1,000 ACS residents.`:e===`sf`?`burglary, larceny, and motor-vehicle theft as property (SFPD incident categories). Aggravated assault, robbery, rape, and homicide as violent. Incidents join on San Francisco’s official analysis-neighborhood name, then are expressed per 1,000 ACS residents.`:e===`chicago`?`burglary, larceny, and motor-vehicle theft as property (FBI UCR codes). Incidents join on Chicago’s official community-area number, then are expressed per 1,000 ACS residents.`:e===`denver`?`burglary, larceny, auto theft, and theft from vehicles as property. Incidents join on Denver’s official neighborhood identifier, then are expressed per 1,000 ACS residents.`:e===`nyc`?`burglary, grand larceny, petit larceny, and motor-vehicle theft as property (NYPD offense descriptions). Felony assault, robbery, rape, and murder as violent. Incidents join on latitude/longitude into 2020 Neighborhood Tabulation Areas, then are expressed per 1,000 ACS residents.`:e===`la`?`burglary, larceny (23A–H), and motor-vehicle theft as property (NIBRS). Homicide, robbery, rape, and aggravated assault as violent; simple assault (13B) is excluded. Incidents join on hundredth-degree coordinates into LA Times neighborhood polygons, then are expressed per 1,000 ACS residents.`:`theft, burglary, and auto theft as property. Incidents join on census block group to the same tracts, then to the planning area, and are expressed per 1,000 ACS residents. Reports without a category or block group are dropped.`]})]}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`Walk and vibe`}),` count OpenStreetMap amenities (`,d.osm.attribution,`) tagged as supermarket/grocery/convenience, cafe, bar/pub/nightclub, park/playground, bus stop or rail station, and restaurant/fast food. A point counts if it sits inside the official polygon or within `,d.osm.radiusM,` meters of the polygon centroid. Snapshot `,d.osm.timestamp.slice(0,10),`.`]}),(0,l.jsxs)(`p`,{children:[`Boundaries are `,d.dataset,`. Listings are not MLS.`]}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`311`}),` on a neighborhood page is the last 14 days of public city service requests, mapped to the same official unit. It is not a chat feed and it is not in the fit score. Denver’s feed is DOTI (streets and transport) only. Information-only call-center rows are dropped. We do not store street addresses.`]}),(0,l.jsxs)(`p`,{children:[(0,l.jsx)(`strong`,{children:`Reddit`}),` on a neighborhood page is a snapshot of public posts from that city’s subreddit whose title mentions the neighborhood name. A one-line note tags those titles (beach, food, police) — it is not a review and not a survey. It is not Nextdoor and it is not in the fit score. Removed posts are dropped. Links go to reddit.com.`]}),(0,l.jsxs)(`p`,{className:`text-xs text-muted`,children:[`ACS/`,d.police,` pulled `,d.fetchedAt.slice(0,10),`. OSM pulled`,` `,d.osm.fetchedAt.slice(0,10),`.`]})]}),(0,l.jsxs)(`section`,{className:`mt-8 space-y-3 text-sm leading-relaxed`,children:[(0,l.jsx)(`h2`,{className:`font-display text-2xl`,children:`Limits`}),(0,l.jsxs)(`p`,{children:[`A neighborhood score is not a crime prediction, a school assignment, or a listing price. ACS medians lag the market and mix all bedrooms. Police`,n(e),` counts mix residents and visitors. OSM misses shops that never got tagged. Commute minutes ignore traffic, transit waits, and the job you actually have. 311 volume tracks who bothers to file, not how livable the block is. Reddit mentions whoever posted in a city subreddit — not a resident survey. Rankings never cross city lines — Hyde Park in Austin is not Hyde Park in Chicago.`]}),(0,l.jsxs)(`p`,{children:[`Guides such as`,` `,(0,l.jsx)(t,{to:`/$city/$slug`,params:{city:e,slug:`best-for-families`},className:`underline underline-offset-2`,children:`best for families`}),` `,`freeze editorial weights so every reader sees the same list.`]})]}),(0,l.jsxs)(`section`,{className:`mt-8 space-y-3 text-sm leading-relaxed`,children:[(0,l.jsx)(`h2`,{className:`font-display text-2xl`,children:`Who publishes this`}),(0,l.jsxs)(`p`,{children:[`NabeWise is published by NabeWise Media. There is no named byline on neighborhood pages. Rankings are a formula on public data, not an inspector’s visit. To flag a factual error, use`,` `,(0,l.jsx)(`a`,{href:`https://www.linkedin.com/company/nabewise-media`,className:`underline underline-offset-2`,children:`LinkedIn`}),` `,`or the company page on`,` `,(0,l.jsx)(`a`,{href:`https://www.crunchbase.com/organization/nabewise`,className:`underline underline-offset-2`,children:`Crunchbase`}),`. There is no separate /about or /contact URL on this site.`]})]}),(0,l.jsx)(s,{items:o,hint:`Short answers for the phrase “neighborhood score.”`})]})}
1export{u as component};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.