Twin Cities landlord dataset Last updated: 2026-10-24 Rental buildings in Minneapolis and Saint Paul: business-owned buildings with their owner and tax-bill group, and buildings owned by private people with the name withheld, Minneapolis license tiers and violations, Saint Paul fire inspection grades and HUD physical inspection scores. Minneapolis violations cover Jan. 2, 2024 to Oct. 15, 2026. Published by the Twin Cities Renter Guide, twincitiesrenterguide.com. Built from public records; see the Sources sheet for each source, its link and the date it was retrieved. Sheets: About, Data, Data dictionary, Method, Sources, Exceptions, HUD scores, HUD scores dictionary. Check the official records before relying on any row. A violation is an inspector's finding, not a court judgment. Private owners' names are withheld; buildings the owner lives in are not included. Look up any owner with parcel_id on the county property search. METHOD 1. Downloaded Minneapolis active rental licenses, Minneapolis rental property violations, Saint Paul residential certificates of occupancy and the Metro Regional Parcel Dataset for Hennepin and Ramsey counties (dates on the Sources sheet). 2. Dropped Minneapolis short-term rental licenses and registrations, older licenses at the same address and parcel when a newer one is active (a change of owner), and Saint Paul certificate of occupancy rows for hotels, dormitories, convents, offices and other non-housing occupancies, college residence halls, and buildings whose certificate is revoked or condemned. 3. Matched each rental to its county parcel by parcel ID (Saint Paul: by address when the parcel ID doesn't match). 4. Took the owner's name from the county parcel record. For Minneapolis licenses that match no county parcel, used the owner on the rental license, unless it is a loan servicer. When the county owner is a property-tax firm or a retirement-account custodian, used the tax-bill name if it is a business. When the owner line is a shortened entity name and the tax-bill name is the same entity with its legal form (LLC, Inc., LP), used the tax-bill name. Business rows are buildings whose owner is a business: companies, partnerships, nonprofits, churches, colleges, public agencies, owners named after their building or its address, and names on the hand-checked overrides list. People and family and revocable trusts are private rows (step 9a); retirement-account custodians are "not identified" (step 4a). A business name with "ET AL" or "TRUST" in it is kept when it also has a business form such as LLC, Inc., LP or university. Names shaped like a person's (a first name or initials, with no legal form like LLC, Inc. or LP), such as a surname that happens to be Church or Bank, are treated as people. Person names attached to a business name are removed. 4a. Kept city-licensed rentals whose owner the county record doesn't settle as "not identified", with no owner name: Minneapolis licenses with no matching county parcel and no business on the license, Saint Paul buildings with no matching parcel, buildings whose parcel ID points to one condo, co-op or townhome unit (unless every parcel at the address has the same business owner, in which case that owner is used), and buildings titled to a retirement-account custodian. 4b. Tried again for rows still without an owner, using the current Metro Regional Parcel points (with locations): the parcel at the same address, or for rows with city coordinates, within 25 meters with the same street number. One non-unit parcel, or several parcels that all have the same business owner, settles the owner (owner_name_source then says "parcel matched by address or location"). Three or more condo, co-op or townhome unit parcels mark the building as owned unit by unit (owner_note). 5. Added Saint Paul buildings missing from the certificate of occupancy list: non-homestead apartment, low-income rental and residential parcels owned by businesses, minus vacant land, garages, storage and nursing homes, parcels with no street number, and addresses already on the city's list. 6. Counted Minneapolis violations per rental license. 7. Grouped buildings whose property tax bills go to the same street address or PO box (street number, first street word or highway number, suite or mailbox number, and ZIP, with written-out ordinals like THIRD read as 3RD). PO boxes outside Minnesota are not used, because lockbox services serve unrelated owners. Tax bills sent to property-tax service firms are not used, because those firms serve unrelated owners; those buildings, and buildings with no usable tax-bill address, are grouped by exact owner name. A tax-bill address is used only when it has both a street line and a city-state-ZIP line. Tax-bill addresses are never published. 8. Labeled each group (see owner_group in the dictionary) and gave it a stable ID. 9. Removed exact duplicate rows (same city, license or property number, address and units). 9a. Added rentals owned by private people and family trusts, with names withheld, only where the city confirms a rental (a Minneapolis rental license or a Saint Paul certificate of occupancy). Left out buildings the owner lives in (homesteaded on the county record), such as an owner renting out the other half of a duplex. Private owners with 2 or more buildings or 5 or more units get an owner tag that links their buildings; tags come from the normalized owner name and a secret key. Private owners are not put in tax-bill groups or rankings. 10. Added common building names from listing and official pages, only where a page ties the name to the address (see common_name_source). Names that are really an owner or manager are skipped. 11. Added HUD physical inspection scores for HUD-assisted and HUD-insured buildings: the latest three scores from HUD's multifamily inspection report, joined by HUD property ID to HUD's scores file for the address, plus HUD's public housing development scores. Placed each property in Minneapolis or Saint Paul from HUD's coordinates and city outlines merged from state precinct boundaries (HUD's city field is a mailing city and can name the wrong city). Kept properties in HUD's current multifamily report, plus all public housing developments, with a score released in 2016 or later. Properties in the April scores file but not in the current report are left out. 12. Attached a HUD score to a building only when the street address matches exactly in the same city. HUD properties that don't match a building here (often because HUD lists a different address for the same complex, or the owner isn't in this list) still show in the lookup by name and address, and are all in the HUD scores sheet and file. Public housing developments are groups of buildings, so their scores are never attached to a single building. Limits: a tax-bill group can join separate owners who share a manager or bookkeeper, and can miss buildings billed elsewhere. Each building's own owner is in owner_name. A violation is an inspector's finding, not a court judgment. Owner-occupied buildings owned by people are not included. Individual owners' names are withheld; parcel IDs let anyone look up the recorded owner on the county site; this dataset is not anonymized, it simply doesn't publish individuals' names. SOURCES - mpls-licenses: Minneapolis Active Rental Licenses (City of Minneapolis), https://opendata.minneapolismn.gov/datasets/cityoflakes::active-rental-licenses/about, retrieved 2026-10-17. Used for: Minneapolis rental addresses, licensed units, license tier, and the license owner's name when the county record has no business name. Copy: source-minneapolis-rental-licenses-2026-10-17.csv (owner and applicant names, addresses, phones and emails removed) - mpls-violations: Minneapolis rental property violations (City of Minneapolis), https://www.minneapolismn.gov/government/government-data/datasource/rental-property-violations-dashboard, retrieved 2026-10-17. Used for: Housing code violations by rental license, 2024-01-02 to 2026-10-15. Copy: source-minneapolis-rental-violations-2026-10-17.csv (owner name column removed) - sp-cofo: Saint Paul Certificate of Occupancy – Residential (City of Saint Paul), https://hub.arcgis.com/datasets/8908aa067a434a92b15cf7e61837ff2b_0, retrieved 2026-10-17, file the city's service shows its last edit on July 1, 2025, so grades and statuses may be more than a year old. Used for: Saint Paul rental addresses, units, fire inspection grade (A to D) and registered student housing. Copy: source-saint-paul-certificates-of-occupancy-2026-10-17.csv (PROPNAME kept only when it is a building name and the owner is not a private person; other values, which include people's names and notes, removed) - sp-parcels: Metro Regional Parcel Dataset, Saint Paul residential parcels (MetroGIS (Metropolitan Council and the seven metro counties), via the Minnesota Geospatial Commons), https://gisdata.mn.gov/dataset/groups/us-mn-state-metrogis-plan-regional-parcels, retrieved 2026-10-17, file latest quarterly release on the retrieval date; the files carry no release date of their own. Used for: Saint Paul buildings missing from the certificate of occupancy list: non-homestead apartment, low-income rental and residential parcels owned by businesses. Copy: Not included: the parcel files are large and list individual homeowners. Download from the link. - building-names: Building names from listing and official pages (Various; see common_name_source on each row), see source_url in source-building-names.csv, retrieved 2026-10-24. Used for: Common or marketed building names tied to addresses. Copy: source-building-names.csv (every name, address, city and the page it came from, including names not matched to a building) - parcels: Metro Regional Parcel Dataset (Hennepin and Ramsey parcel points) (MetroGIS (Metropolitan Council and the seven metro counties), via the Minnesota Geospatial Commons), https://gisdata.mn.gov/dataset/groups/us-mn-state-metrogis-plan-regional-parcels, retrieved 2026-10-17, file latest quarterly release on the retrieval date; the files carry no release date of their own. Used for: Recorded owner name and the address where the property tax bill goes, used to name owners and link buildings into tax-bill groups. Copy: Not included: the parcel files are large and list individual homeowners. Download from the link. - hud-mf-report: Multifamily inspection report, MF-Inspection-Report.xls (latest three scores per property) (U.S. Department of Housing and Urban Development (HUD), Office of Multifamily Housing), https://www.hud.gov/stat/mfh/inspection-scores, retrieved 2026-10-24, file the HUD page says data as of Oct. 6, 2026; the newest release date in the file is Aug. 14, 2026. Used for: hud_score, hud_score_released, earlier scores. Copy: source-hud-mf-report-minneapolis-saint-paul.csv (Minneapolis and Saint Paul rows only; the full national file is at the link) - hud-mf-scores: Multifamily physical inspection scores (HUD, Office of Policy Development and Research (HUD User)), https://www.huduser.gov/PORTAL/node/6626, retrieved 2026-10-24, file 2026-04-08 (file name). Used for: addresses and coordinates of HUD multifamily properties, to place them in a city and match them to buildings. Copy: source-hud-mf-scores-minneapolis-saint-paul.csv (Minneapolis and Saint Paul rows only; the full national file is at the link) - hud-ph-scores: Public housing physical inspection scores (HUD, Office of Policy Development and Research (HUD User)), https://www.huduser.gov/PORTAL/node/6626, retrieved 2026-10-24, file 2026-04-08 (file name). Used for: scores of public housing developments. Copy: source-hud-ph-scores-minneapolis-saint-paul.csv (Minneapolis and Saint Paul rows only; the full national file is at the link) - city-bounds: Minnesota precinct boundaries (Minneapolis and Saint Paul precincts merged into city outlines) (Minnesota Secretary of State statewide precinct file, as packaged in civic-data-boundaries-us-mn-precincts (MIT license)), https://github.com/civic-interconnect/civic-data-boundaries-us-mn-precincts, retrieved 2026-10-16, file snapshot 2026-05-01. Used for: deciding whether a HUD property is inside Minneapolis or Saint Paul from its coordinates. COLUMNS - owner_type (text): business; individual: a private person or family trust (or, occasionally, an owner name the build couldn't confirm as a business; those are treated as private to be safe), name withheld; or not identified: a city-licensed rental whose owner the county record doesn't settle (no matching county parcel and no business on the license, a condo or unit parcel that names one unit's owner rather than the building's, or a retirement-account custodian as owner). For individual and not identified rows, look the owner up with parcel_id or the address on the Hennepin or Ramsey County property search, or on the city record. [parcels; mpls-licenses] - owner_tag (text): Individual rows only: a code like IND-7F3A2C shared by all buildings of the same private owner, given only to owners with at least 2 buildings or 5 units in this dataset. Generated from the owner's name with a secret key that is not published, so it can't be computed from a guessed name. It is not anonymous: the county record for any one building names the owner. Blank for smaller private owners. [parcels; mpls-licenses] - owner_group_id (text): ID of the tax-bill group: G + the first 8 hex characters of the SHA-1 of the group's smallest member key (city|license_id|parcel_id). It stays the same between builds unless that member leaves the group or a member with a smaller key joins. Use it, not owner_group, to rebuild groups: different groups can share a label. [build] - owner_group (text): Label of the tax-bill group: buildings whose property tax bills go to the same street address or PO box. Buildings with no usable tax-bill address, or whose bill goes to a property-tax service firm, are grouped by exact owner name instead. Each city's public housing agency is one group, and other public bodies (such as the City of Minneapolis) are grouped by name. A group is often one owner or parent company, but can also be a manager or bookkeeper serving several owners. The label is a public housing agency if one is in the group, otherwise the public body that owns at least half its buildings, otherwise a manager or management company named on at least two of the group's tax bills when the group has several owners (a quarter of them when it has one owner), otherwise another business named on at least 40% of the tax bills, otherwise the owner name that shares the group's most common brand word, otherwise the most common owner name. Ties go to the alphabetically first name, so labels don't change between builds. [parcels; mpls-licenses] - owner_name (text): Business name of this building's owner (see owner_name_source); blank for individual owners. Person names attached to a business name on the record are removed, as are "ET AL" and account numbers. [parcels; mpls-licenses] - owner_note (text): For some rows whose owner isn't identified: "condo or co-op building: N parcels at this address, owned unit by unit"; "condo or co-op unit: ..." for a single licensed unit whose own parcel couldn't be told apart from the others at the address; or "new or replatted parcel: ..." when the city's parcel ID isn't in the county's current parcel file yet. The city lists the building as one rental, but the county records each unit (or co-op share parcel) separately, so there is no single owner. [parcels] - owner_name_source (text): Where owner_name comes from: "county owner" (owner on the county parcel record), "county tax-bill name" (the business the county sends the tax bill to, used when the owner line is a tax firm, a custodian or a shortened form of the same business), or "license owner" (owner on the Minneapolis rental license, used only when the license matches no county parcel; loan servicers listed as owners are not used). [parcels; mpls-licenses] - city (text): Minneapolis or Saint Paul. [all] - address (text): Street address of the rental building as the source lists it, upper case. Saint Paul county-only rows have suffixes abbreviated (AVE, ST, W). [mpls-licenses; sp-cofo; sp-parcels] - building_name (text): Property name on Saint Paul's certificate of occupancy list, kept only when it is a building name. [sp-cofo] - common_name (text): Name the building is commonly known or marketed by, when a listing or official page ties that name to this address. [building-names] - common_name_source (URL): The page that ties the common name to the address, as retrieved. Listing-site search pages (for example Redfin result pages) change over time; the name was on the page when retrieved. [building-names] - units (integer): Licensed units (Minneapolis), units on the certificate of occupancy (Saint Paul) or units on the county record (Saint Paul county-only rows; 0 means not recorded). [mpls-licenses; sp-cofo; sp-parcels] - license_tier (text): Minneapolis rental license tier as listed on the license file: Tier 1, Tier 1D (the city's default tier for a property without a routine inspection in more than five years; same eight-year cycle as Tier 1), Tier 2 or Tier 3. Blank in Saint Paul. The city's violation dashboard can show a different, newer tier for the same license (see EXCEPTIONS). [mpls-licenses] - violations (integer): Minneapolis housing code violations tied to the rental license over the period in the readme. Blank in Saint Paul, which doesn't publish comparable data. [mpls-violations] - life_safety (integer): Of those violations, the ones the city groups as Life Safety. [mpls-violations] - open_violations (integer): Of those violations, the ones still open when the data was exported. [mpls-violations] - cofo_grade (text): Saint Paul fire certificate of occupancy grade from the last fire safety inspection, A to D. A is inspected every 6 years, B every 4, C every 2 and D every year. [sp-cofo] - student_housing (true/false): Saint Paul certificate of occupancy subtype is student housing. [sp-cofo] - county_class (text): Saint Paul county-only rows: the county's use class and dwelling type. Residential (1 to 3 unit) parcels owned by a business but missing from the city's list may or may not be rented. [sp-parcels] - public_housing (true/false): Owner or tax-bill name is a public housing agency. [parcels] - parcel_id (text): County parcel ID (PIN). The county's records for this ID name the recorded owner. On Minneapolis rows without "parcels" in sources, this is the PIN printed on the license, which may not be a current county PIN. [parcels] - license_id (text): Minneapolis rental license number, or Saint Paul certificate of occupancy property number. [mpls-licenses; sp-cofo] - sources (text): IDs of the sources this row came from; see the Sources sheet. "building-names" when common_name is filled, "hud" when a HUD score is attached. Minneapolis rows without "parcels" had no matching county parcel. [all] - hud_property_id (text): HUD's property ID (REMS ID for multifamily, development ID for public housing). When two HUD properties share one building's address, both are listed, separated by "; ", and hud_score and hud_score_released list their values in the same order. [hud-mf-report; hud-ph-scores] - hud_score (text): Latest HUD physical inspection score, 0 to 100. Below 60 fails. Older inspections (the UPCS protocol) add a letter: a means no health and safety deficiencies other than smoke detectors, b one or more non-life-threatening ones, c one or more exigent or fire safety ones; an asterisk means smoke detector deficiencies. Newer NSPIRE inspections have no letter. [hud-mf-report; hud-ph-scores] - hud_score_released (date): Date HUD released the latest score (multifamily) or inspection date (public housing). [hud-mf-report; hud-ph-scores] - dataset_updated (date): Date this dataset was built. [build] CHANGES - Oct. 24, 2026 (audit): Saint Paul buildings whose parcel ID points to one condo, co-op or townhome unit are no longer credited to that unit's owner or dropped as owner-occupied; they are "not identified" unless every parcel at the address has the same business owner. Minneapolis licenses with no county parcel and no business on the license are kept as "not identified" instead of dropped. About 75 organizations that had been treated as private people (churches, nonprofits, student-housing companies, a park board) were reclassified, through new name rules and a hand-checked overrides list. Tax firms and retirement-account custodians are no longer used as owners. Short-term rental registrations, licenses replaced after a sale, and Saint Paul buildings listed twice under two property numbers were removed. Group labels no longer change between builds, "R/E" names are no longer cut, owner type was added to landlords.json (p[13]), and the sources column now lists building-names and hud. EXCEPTIONS AND OUTLIERS - Left out by design: 897 Minneapolis short-term rental licenses and registrations; 14 Minneapolis licenses replaced by a newer license at the same address and parcel; homesteaded private buildings (4,642 in Minneapolis, 5,798 units; 1,766 in Saint Paul, 2,415 units). - Location match (step 4b): 50 buildings got an owner from the parcel at their address or location; 434 were marked as condo or co-op buildings owned unit by unit. - Owner not identified: 462 buildings (8,025 units; 169 Minneapolis, 293 Saint Paul). 134 Saint Paul certificates point to a single condo, co-op or townhome unit parcel; 18 of them were resolved because every parcel at the address has the same business owner. - Private rows that may be businesses: 62 private rows have 20 or more units. Names that don't look like a business (no legal form, a first name first) are treated as private to be safe, and are checked by hand at each build against the overrides list in the build folder; some will still be organizations. - Owner tags come from the exact normalized owner name. The same owner written two ways (initials vs. full names, "&" vs. "/", with or without "TR") gets two tags, and two different people with the same name share one. - Violations: the city's export has 15,061 violations; 12,492 are on licenses in this dataset. The rest are on short-term rentals, owner-occupied buildings and licenses no longer active. About 4 in 10 are grouped "Other" by the city (not counted toward the tier) and are included in violations. Rows marked open/closed "Not Available" count as not open. - License tier: 1 license is Tier 1D and 0 Minneapolis licenses have no tier on the license file. The city's violation dashboard lists a different tier for about 2,000 licenses (mostly Tier 1 on the license file vs. Tier 1D on the dashboard); this dataset uses the license file. - Lenders and servicers as owner: 33 business rows name a bank, mortgage company or servicer as county owner, usually after a foreclosure. They are kept as the recorded owner. - HUD: 1 building row has two HUD properties at one address; both are listed in order, separated by "; ". HUD properties whose mailing city is Minneapolis or Saint Paul but whose coordinates fall outside both cities are left out. - Saint Paul buildings listed under two property numbers with the same parcel, address and units (separate occupancy records): 12 extra records removed, keeping the one with a property name. Duplicates kept on purpose: several buildings can share one parcel (1,600+ rows), and in Saint Paul several parcels can share one address. A Saint Paul property number can repeat with different unit counts when the city lists more than one building under it. - Saint Paul grades P and Q and blank grades are published as blank. Sober houses, rooming units and public-housing-occupancy rows on the city's list are included without a flag. - Building names: about half come from listing-site search pages, which change over time. When two pages give different names for one address, the first one in source-building-names.csv is used. JSON FORMAT landlords.json (read by the site's lookup): meta: built (date), violations_period [first, last], format note. g: groups, each [label, up to 5 other names, number of names, is public housing, more names joined by ' | ', id, kind (0 tax-bill group, 1 private owner tag)]. o: business owner names; p[12] indexes into it (-1 for a private owner, name withheld, or an owner not identified). p[7] is -1 for a private owner without a tag and for an owner not identified. p: buildings, each [address, city (0 Minneapolis, 1 Saint Paul), units, Minneapolis tier, violations, life safety, open, index into g, Saint Paul grade, flag (0 none, 1 Saint Paul county-only apartment or low-income rental, 2 student housing, 3 county-only residential 1 to 3 units), building_name, common_name, owner name index, owner type (0 business, 1 individual, 2 not identified, 3 not identified: condo or co-op owned unit by unit, 4 not identified: new or replatted parcel not yet in county records)]. h: HUD properties, each [name, 0 multifamily or 1 public housing development, address, city, [score, date, ...] newest first, index into p or -1, public housing agency].