Sources
These tools use public Arapahoe County, Douglas County, and Colorado records bundled as static JSON in this project. The app does not scrape county sites when you click buttons. Use this page to check numbers yourself against official documents, and to understand how matching and calculations work in plain language. Setup, file paths, and rebuild steps live in the repository README (opens in a new tab). Always verify against official sources and your tax notice.
Gap notes and county methodology below follow this county.
Your property tax bill (Arapahoe)
On the home page, the levy breakdown can load taxing authorities from your parcel PIN using offline county data mart-style exports joined with Colorado property-tax entity data where matching is safe. Loading a stack only reads this site's bundled data — no live requests to the county.
Check the numbers yourself (no code)
Use the home card See how Arapahoe County displays your data or the county parcel record and online levy table; compare to what the app shows after you load by PIN or add entries with Add tile.
- Open Search Residential, Commercial, Ag and Vacant (opens in a new tab) (or the peer links on the home card) and note the PIN on the parcel record.
- Open Tax District Levies for that parcel. Compare each taxing authority and its mills to the app after you load by PIN — they should align.
- The tool may omit one assessor fee entry that appears in some exports but not on the online levy table (see methodology below). School districts, cities, and counties often will not appear in optional state "special district" directories even though they are on your bill.
How matching works
- Address and PIN: Search uses situs house number (plus optional number suffix), street name with direction and street type stripped for matching, and optional unit. Incomplete or lightly misspelled street types (for example stree for street) and close street-name typos are resolved against other roads at the same house number; when several streets are plausible, the form offers choices. You can also paste a parcel PIN or assessor AIN into the address or parcel-id field. Search or Enter from any field. Above the form, an Own / Rent switch (default Own) is self-declared: we do not infer tenure from the parcel. The same switch stays on the locked report so you can flip the lens without starting over. One address can match many parcels; when several match, tap the row you want (whole row is the control). A short glossary line explains real property vs. business personal property once above the list — not on each row. Rows show the county situs street line and a second line with city, state, and ZIP from the Main Parcel export (the county file with parcel address details). Business personal property accounts can appear in that list when they share a street address with Real property. On the locked report, Switch account type appears only when that mix is present (not for all-Real multi-unit lists such as condo units). Those accounts keep owner, situs, values, and the property-tax breakdown for their tax district; building, land, sale, permit, and comparable-properties tools stay with Real parcels. Equipment accounts can open a county Notice of Valuation PDF when an AIN is in the pin map. Nothing is sent to our servers; address fields are length-capped in the browser.
- Taxing authority group (TAG): Your parcel maps to a county taxing authority id (TAG). The county's online levy table uses the same id — it is not a private per-parcel serial number.
- Property classification: In Property details, under the county-record panel, we show the assessor's property-class description from the county data. A paper notice may still say Residential or Commercial for the same parcel; see Property classification in the Glossary.
- District contact vs tax IDs: Levy tile mills and tax-entity linkage come from one join path (county tags matched to DOLA property-tax entities). Website and mailing contacts come from a separate state LG directory filtered to districts on shipping county stacks (Arapahoe and Douglas today). Bill LG ID and directory LG ID can differ — public mail often reflects administration or management, not a single tidy join. When IDs align, that is the strongest link; when only the name is fuzzy or IDs differ, contact still appears with that explanation. See LG ID.
- Assessor fee: Some mart exports include an assessor fee code that does not appear on the online levy table. The PIN loader omits that row so the list matches the table you can copy from.
- Geography on fuzzy name matches: Similar district names exist across Colorado. When a name-only match is needed, the directory path prefers districts tied to Arapahoe so the wrong county's contact information is less likely to win.
Property details methodology
After a PIN load, Property details show county-record fields joined from the Assessor Data Mart (legal, ownership, land, buildings, sales, permits when present), including state use, subdivision, and tax roll when the export has them. Neighborhood name and code come from the Assessor Open GIS Parcels (opens in a new tab) layer (PIN join; code and name only), not from the Main Parcel CSV, which has no neighborhood column. We do not guess neighborhood from subdivision name. Empty cells use No data found with a short report link.
- Own vs Rent lens: Choosing Rent keeps the same tax account and property-tax bill breakdown (the same individual bill entries; the on-screen levy stack). It emphasizes tax pressure for the entire property (annual and monthly estimates). When we can resolve a dwelling count N from county land-line UB units, or from a duplex / triplex / fourplex building type, or from a typical single-dwelling account, we also show a crude equal split (annual ÷ N and that amount ÷ 12), and the dollar amounts on those bill entries (and metro estimates when shown) use that same per-unit share, then show as monthly figures labeled /mo so they read like rent. Metro headline wording in Rent mode frames shares as a percent of estimated monthly property tax (not of rent). That split is an estimate only: it assumes every unit bears the same share, may attribute some non-residential tax on mixed-use parcels to dwellings, and is not a lease line or proof that rent passes tax through one-for-one. When N is unknown we show whole-property totals only (including bill-entry $, still monthly in Rent) and say we do not know how many units share the account (not "homes," so commercial Real accounts read cleanly). Own mode keeps annual whole-account dollars. Rent mode tones down owner tools (comparable-properties PDF, owner mailing rows) and tucks dense sale / building / land tables under a disclosure. The Own | Rent switch and Rent dashboard are not offered for business personal property accounts (equipment tax is not a renter lens). Renting is not the same as commercial assessment class.
- Value labels use the data mart assessment year (as on the county parcel page), not the tax year used for the levy roll (the county's certified mill rates for that billing year). When those two years differ, the values section notes both, and the assessment-year summary tile shows the tax year as a secondary line.
- Assessed school value is the taxable value school districts use for the school portion of your property tax bill. It is not a mart column. For improved residential property from 2025 onward, the app computes it with the Colorado Department of Property Taxation (DPT) school assessment rate (7.05% for 2026) on appraised building and land, rounded the way the county parcel page does. Residential parcels use a state use code starting with 1 (a county classification for how land is used). Non-residential property does not show a school assessed row.
- Assessed value totals come from the mart total assessed figure. Building and land columns follow the county pattern. Residential local splits use the DPT local rate on land (6.8% for 2026 after the temporary reduction on the first $700,000 of actual value; building = total minus that land split). Non-residential splits allocate the mart total in proportion to appraised building and land. The percent next to an assessed row shows which rate turned appraised value into assessed value, the figure mill rates use on your property tax bill. For Real property, labels follow the county's state use code when that code maps cleanly to a DPT chart row (for example commercial 25%/26%, industrial 26%); exempt and other unmapped codes omit the parenthetical rather than invent a percent. Business personal property uses the Colorado personal-property assessment rate for that assessment year (26% for 2026; 27% for 2025; 25% from 2027), not the Real state-use chart. Logic lives in
src/lib/parcelAssessmentRates.ts(display) and the build script (bundled shards). - Prior-year assessed value: Property details and the values table use the mart for this assessment year's actual and assessed figures.
COUNTY DATA GAP
We searched published county and state sources for prior-year actual and assessed values, including the Assessor Data Mart Main Parcel Table (opens in a new tab). That table has this assessment year's figures only. None of those sources include prior-year assessed history in a bulk table we can obtain. Per the assessor's office, there is no historical information available on the public website. Individual prior-year figures may be available only by contacting the assessor's office directly. Without those figures, there is no valuation trend to show. Subject sale history on the parcel record still comes from Parcel Transfer Information. Mill-rate year-over-year dollar lines still use this year's assessed value for both years when last year's mills are known. - Ownership type uses legal-party owner rows: one owner keeps that row's type; when every owner is Individual, we show Joint Tenancy to match the usual county parcel-page label for co-owners (vesting is not in the mart, so other arrangements cannot be told apart).
- Sale Book Page opens Arapahoe Clerk and Recorder public search (same pattern as the county parcel page). Some older filings return no document there — that can happen on the county site too.
- Comparable properties (often called comps) uses the parcel's AIN when available. When county hosting is limited, the home summary tile shows COUNTY DATA GAP with a short status; the whole tile opens the full explanation (the PDF icon is a visual cue), and includes a link to try the county download if your value changed. The in-page comps grid is demo-only today (Try demo property); row help is grounded in the county Comp Sheet Layout and Time Adjusted Sales Prices (opens in a new tab) explainer.
COUNTY DATA GAP
The county comparable properties PDF (opens in a new tab) (FileDownload.ashx on the parcel record site) often returns no file found. Per the Assessor's office: The county site posts comps for the current year only. If your value did not change from 2025 to 2026, no new comps grid appears online. The county also stated it would no longer make the 2025 comps available. Those prior comps still apply, but the county download does not provide them. The office expects comps online again for every parcel after 2027 valuation postcards, in late April or early May. - Notice of Valuation for business personal property uses the same AIN pattern on personalpropertysearch.arapahoegov.com (FileDownload.ashx?AIN=…). That PDF is the county notice for the equipment account, not a comps grid. Real-property parcelsearch FileDownload does not serve these notices. The county compare card also links the account details page (Details.aspx?AIN=…) on that same host. On the home dashboard, business personal property keeps the short property panel and totals-only values table together in the property column; Real accounts still place the longer values / sale / building / permit tables below the levy grid.
How current is the data?
The app serves static data, not live county or state APIs. The UI shows "County data current as of …" from the date maintainers recorded when they last downloaded a fresh Assessor Data Mart (opens in a new tab) extract (often updated about weekly), not from the last time the offline rebuild scripts ran. Maintainers download tables such as Main Parcel Table and Tax Authority Groups and Tax Authorities as CSV from that portal and join them offline when refreshing bundled data; looking up a PIN does not call a live Data Mart API. Neighborhood name and code on Property details also join from the Assessor Open GIS Data (opens in a new tab) Parcels download (local FileGDB; PIN + neighborhood fields only into public JSON). DOLA Property Tax Entities (opens in a new tab) and the Special District Mapping Project (opens in a new tab) feed tax-entity and contact matching when mills or IDs change. Maintainers refresh Property Tax Entities as a statewide CSV (see README): on the DOLA portal, select certifying county only and search — do not filter by local government type. The build filters rows by certifying county; replacing the CSV does not change bundled levy JSON until rebuild. Metro rates follow the annual mill levy form, not the weekly mart cadence. How maintainers download, stage, and rebuild: repository README (opens in a new tab).
COUNTY DATA GAP
When county data fails
Notes titled COUNTY DATA GAP (red border) mean we tried to get a county-published export or hosted file and it did not arrive complete, or it is unavailable. That can include bulk downloads, comparable-properties PDFs, and other official county files, not only one line on your levy breakdown. We state what we tried, what was missing, and which dated extract we still have. That is missing county data, not an error in your property search.
Each item links to a COUNTY DATA GAP note in Your property tax bill where that topic is explained. Showing gaps for Arapahoe County.
Metro district tax share
Metro district tax share on the home page compares your total mill rate to metro district rates from the county mill schedule. After a PIN load, the metro card uses the same total mills as your levy stack and detects metro districts when a stack row's LG ID matches a metro district in the bundled mill schedule. There is no manual district picker. The metro card shows one headline tile: debt-service share when those mills appear on your stack, otherwise total metro share. When more than one metro appears, that headline uses combined certified metro mills in county stack order. The breakdown below still lists each metro part. Use Start over in the address card to reset the home page flow.
Check the numbers yourself (no code)
Use your tax bill or the county website; match mills and authority names to the same documents we cite in this section.
- From your paper bill or the county site, identify your total mill levy and the metro-related parts of your rate (for example debt service and operations), using the county's labels — wording varies. For a quick manual check, total mills and metro debt are usually the easiest figures to compare first. In the app, the metro card always uses your full stack total as the denominator and picks up every metro that matches an LG ID on your stack.
- Open the county's Mill Levies and Tax Districts (Assessor hub) (opens in a new tab). That page lists the Mill Levy Public Information (opens in a new tab) PDF and related documents. Find your metropolitan district by name or LGID. That schedule shows operations vs debt service mills — the same split the app uses when it shows metro debt share (when applicable).
- If the in-app snapshot date is older than the county's current PDF, treat the current county PDF as authoritative for disputes.
In the app
Mill rates come from two county extracts. Metro districts can show purpose-level change from the Mill Levy Public Information Form when that form matches your stack. Every other taxing authority on your stack (and metros without a purpose match) can show total-mill change from the Taxing District Levy Percentage PDFs for Tax Year 2025 vs Tax Year 2024, joined by the authority code on each stack row. When you open one of those rate-table sources from Who authorized this?, the app uses the open property and that bill entry to send you to the exact PDF page, locating it with the property's tax area and the authority code when that historical combination is in the county table. If it is not, the link opens the correct year's PDF at the start of the file rather than guessing a page. When any authority's rate changed, the app shows a Changed cue on that tile. A summary tile Mill levy sits with actual value, assessed value, and property tax. It shows this bill's total mill levy (same total as the levy stack). Changed on that chip means the total moved, not that the property-tax dollar moved; the badge matches the levy tiles (including the up or down arrow). Tap the Mill levy chip to jump to those tiles. Property tax stays this year's estimated dollar with no Changed badge. Assessed value carries a red Prior years missing badge that opens a COUNTY DATA GAP note in place (not red chrome on that chip). How we searched for those figures is on this page. This tool does not compare your prior-year treasurer bill total, and it does not claim the bill went up or down overall. In tile details, a short percent summary appears when we know last year's mill rate (for example 2.0% higher than last year). Tap anywhere on that colored summary box to open the year-by-year breakdown; the underlined Details › cue on the same line as the percent headline signals that more is available. Each tax year shows county mills first, then About $X with an asterisk for hypothetical annual tax at your current assessed value. A single footnote at the bottom of the breakdown explains that county-published sources do not include prior-year assessed values; per the assessor's office, there is no historical information available on the public website; and individual prior-year figures may be available only by contacting the assessor's office directly. Those dollar amounts use this year's assessed value (link on "today's assessed value" in the footnote). The difference row shows mills and dollars together. For metros only, a Total label appears when several purpose rows (operations, debt, and similar) are listed below; school districts and other authorities omit that label. Purpose-level detail appears only when purpose rows sum to the same totals as the Levy Percentage PDFs; otherwise the app uses authority totals only. Metro purpose comparisons never add a summary Total together with the part purposes that make it up. Below that box, tile details include a simple Total mills from county property tax tables chart when we have at least three tax years of county mill rate-table data for that authority. That is the Levy Percentage series (currently Tax Years 2018 through 2025), listed under Related county PDFs below. The chart shows total mills only, not dollars on your bill. Tap a year on the chart to see that year's mills.
Who authorized this?: For selected rows on your property-tax breakdown (Cherry Creek, authority code (AUTH) 0501; Littleton Public Schools, AUTH 0601; Arapahoe County, AUTH 2998; Sky Ranch Metropolitan District No. 3, AUTH 4571; South Metro Fire Rescue, AUTH 4100 on Arapahoe stacks and AUTH 4014 on Douglas stacks via the cross-county authority registry), tile details can show a plain-language trail from voters and the governing body to the published rate, with See each step for the full trail. Prefer the best official document we can verify; when that file is missing, the trail still links the next-best official place (often that year's Past Elections File Library (opens in a new tab) section) so you can see where we looked and why the ideal PDF is not linked. Typical deep-links include county rate tables, election notices, Official Summary reports, and budget PDFs when published. For Arapahoe County Ballot Issue 1A, the mills step pairs Tax Years 2023 and 2024 (temporary tax credit ended; maximum rate unchanged), not the latest year-over-year pair alone. Some jargon (for example debt-free schools mill levy, bonds, or de-Brucing for a TABOR revenue vote) has a brief in-place definition. The panel also notes What we can't say for sure when we cannot yet split a year-to-year rate change into parts, or cannot link ballot wording. Metro district elections can have a different public record than county and school elections. When the district publishes an annual report or audit saying what eligible electors (the people legally allowed to vote in that district election) authorized, but no public ballot wording or certified vote count can be found, we link that district record and leave the missing details blank. For metro and fire trails, rate history in What changed? comes from Arapahoe's bundled authority mill totals (Levy Percentage series): always the change from last year, and a separate Most notable change block when a larger year-to-year move exists. Fire protection district trails (such as South Metro Fire Rescue Ballot Issue 7A) still use county Ballot Issue letters and certified vote totals when those exist; when the district covers more than one county, Arapahoe vote totals are labeled as Arapahoe-only. In one county case, the only sample ballot we can link is in another language; we link that official PDF, say when we cannot find English among the currently published files, and show AI-translated English in a collapsed disclosure labeled as not legal ballot text (not an official county translation). That does not mean an English ballot never existed. This translation fallback is not a metro district template. Data lives in public/data/levy-authority-chain-entries.json.
Data snapshot: Metro levy rates in this tool were last bundled on (when our copy of the county PDF was processed). That date is not necessarily when the county last amended the form. The authoritative schedule is the county's current PDF.
Official sources
- Authoritative PDF: Mill Levy Public Information Form (C.R.S. 39-1-125(1)(c)) (opens in a new tab). District names, levy purposes, previous-year mill rates, and aggregated debt service and total mills are extracted offline into the app. Tile details for matched metros prefer this purpose-level compare when it reconciles to Levy Percentage authority totals; otherwise the app uses authority totals from the Levy Percentage PDFs. Years are labeled as tax years (Tax Year 2025 vs Tax Year 2024), not budget-year shorthand (metro form snapshot ).
- Assessor hub: Mill Levies and Tax Districts (Assessor hub) (opens in a new tab). Related county PDFs are listed next (Levy Percentage feeds all-authority year-over-year; Certification is context only).
Related county PDFs
Official Arapahoe publications. Certification is useful for context and is not imported into the metro schedule. Taxing District Levy Percentage PDFs feed the all-authority mill history used for year-over-year change on every levy tile. Browse years from the Mill Levies and Tax Districts (Assessor hub) (opens in a new tab).
Certification of Levies and Revenues (example: 2025)
County certification document; useful for cross-checking totals. Not imported into the app's metro schedule.
Taxing District Levy Percentage (Tax Years 2018 through 2025)
Authority total mills by tax area. The app stores AUTH totals by tax year (separate from the parcel levy stack file) and joins them to each stack row by authority code. Year-over-year cues compare Tax Years 2024 and 2025; the modal history chart uses every bundled year when at least three are published for that authority. Optional dollar lines in tile details multiply mills by your current assessed value only. The county bulk table does not include prior-year assessed value, so those dollars use this year's assessed value for both tax years in the comparison. Open each tax year below (same files the chart and Changed badges cite).
- Taxing District Levy Percentage - Tax Year 2018 (opens in a new tab)
- Taxing District Levy Percentage - Tax Year 2019 (opens in a new tab)
- Taxing District Levy Percentage - Tax Year 2020 (opens in a new tab)
- Taxing District Levy Percentage - Tax Year 2021 (opens in a new tab)
- Taxing District Levy Percentage - Tax Year 2022 (opens in a new tab)
- Taxing District Levy Percentage - Tax Year 2023 (opens in a new tab)
- Taxing District Levy Percentage - Tax Year 2024 (opens in a new tab)
- Taxing District Levy Percentage - Tax Year 2025 (opens in a new tab)
Code
Source code is available on GitHub (opens in a new tab). The README (opens in a new tab) covers setup, data paths, tests, and regenerating bundled files.