How it works

How we read a property

The hard part is not storing records. It is making twenty municipal systems comparable, and being explicit about what still cannot be said about a specific house.

The hard part is not storing records. It is making them comparable.

Every city issues its own permits, on its own software, using its own words. One writes REROOF, another files the same job under a four-letter legacy code retired in the 1990s, a third folds it into a generic BLDG with the detail buried in a free-text description. None of them agree on what a trade is called, when their records begin, or which fields they populate. A search box over that mess returns noise.

So the work underneath this product is mostly translation and evidence-grading: reading each source on its own terms, deciding what can honestly be said about a specific house, and being explicit about what cannot.

Prescriptive, not just descriptive

The record doesn’t stop at what a home has — it says what the home needs next and when, timed by real triggers rather than a sales calendar.

Fair assessments

Every figure carries its evidence grade, estimates present as ranges, and where the data cannot support an answer, the answer is an honest abstention — for owners and tenants alike.

Better-scoped service requests

Work goes out the door as measured quantities and documented conditions, so the people quoting it quote the actual job — fewer surprises on both sides of the invoice.

How it fits together · intelligent algorithms on a foundation of record

THE FOUNDATIONPermit records, decades deepInspection findings · sales historyEquipment plates · storm historyDaily weather, 26 seasons backTHE INTELLIGENCEMeasurement from LiDAR + orthoimageryDeterministic decoders, never guessesSeason replay · trigger engineEvidence grading on every figureTHE SMART HOME, DELIVEREDA schedule that knows this homeAssessments you can checkService requests scoped to the real jobDevice routines grounded in the record every insight traces down the stack

Roof measurement

LiDAR + orthoimagery, served as ranges — cross-checked against the parcel's own permit.

Twenty permit vocabularies

Decoded from descriptions, qualified city by city, honest about silence.

Equipment, dated from a photo

Deterministic serial decoding; unknown brands abstain.

Parcel-level weather & hail

What actually landed on this parcel, kept as a record.

The measured seasons

26 replayed years — full pages: lawn care · snow & ice.

Who actually does the work

Firms ranked by what they demonstrably do, never pay-to-play.

The service ticket engine

Words to work through judgment gates — safety whitelist, fail-closed routing, role-scoped eyes.

The informed marketplace

Evidence travels with the job; firms arrive as working teams, not listings.

Standardizing twenty municipal vocabularies

Decoded from descriptions, not from guesswork

Legacy permit codes are decoded by reading what the permits actually describe. We tried inferring them from issue rates and from which code replaced which — both methods produced confident, wrong answers. Only the text survived scrutiny, so only the text is used.

Qualified city by city

Two cities on identical permit software still populate different fields to different depths. Each one is measured separately before its records are served, because a rule that holds in one city can be quietly false next door.

“No trade” is not “don't know”

A permit for a point-of-sale evaluation involves no tradesperson at all. That is a definite answer, and it is kept separate from the genuinely ambiguous ones — collapsing the two hides tens of thousands of correctly-understood records behind a word like unclassified.

Never flattened to a common denominator

Where one city discloses a contractor license number and another discloses only a name, we keep both at full detail rather than reducing every city to what the poorest source offers. What a platform is silent about is recorded as silence.

Dating the machinery from a photograph

Furnaces, air conditioners and water heaters carry a rating plate, and the serial number on it encodes the date of manufacture — in a different scheme for every manufacturer. Photograph the plate and the equipment dates itself, far more reliably than the age of the house or an owner's recollection.

Deterministic where a rule exists

Serial formats are rules, not judgement calls, so they are decoded in code rather than guessed by a model. The same input always yields the same date.

An unknown brand abstains

Not every manufacturer's scheme is published or stable. Where the make is not one we can decode, the answer is UNKNOWN — never a plausible year inferred from the building's era.

Role is read from context

In Minnesota a heat pump beside an existing furnace is supplemental cooling, not the home's primary heat. What else is installed on the same unit determines how a component is described, sized and recommended on.

Checked against published recalls

Once a model is identified it can be matched against published safety recalls. That check runs before we open; we do not claim ongoing monitoring today, and we would rather say that plainly than imply a watch that is not yet running.

Measuring a roof from the air, with its uncertainty attached

Roof area is the number that decides what a re-roof costs, and it is normally produced by someone standing on a ladder. It can also be measured from a combination of LiDAR and aerial orthoimagery, including color-infrared captures — but only honestly if the measurement carries what it does not know.

A Minneapolis roof rendered from LiDAR returns: measured points tinted by the direction each roof plane faces, so every roof panel reads as its own surface.
A real Minneapolis roof — every dot is a measured LiDAR return, tinted by the direction its roof plane faces, with each panel's pitch and drainage direction annotated. The structural lines are built from the measurement itself: each crease is fitted from the raw returns, junctions are solved as the meeting points of the fitted lines, and every boundary must agree with the measured surface before it is drawn. No address shown.
Plan area2,720 sqft
Pitch5 / 12
Slope uplift+8.2%
Measured surface2,946 sqft ≈ 29.4 SQ
Its 2018 reroof permit declared29 squares

The arithmetic is on the table: 2,720 sqft of plan area, pitched at 5/12, carries an 8.2% slope uplift — 2,946 sqft of actual surface, or ≈29.4 squares against the 29 the installing contractor declared. Structural edge lengths are served with verify on site flags.

The cross-check is real: this parcel's own reroof permit states the squares the contractor installed, and the aerial measurement lands within about one percent of it. Its permit record also shows the previous tear-off in 1999 — the roof's age is on file, not guessed.

Graded for what the trees hide — with the grades measured

Tree canopy is the dominant error source in Minneapolis, so every measurement carries a quality tier keyed to how much of the roof the scan could actually see. The tiers are not decorative: benchmarked against hundreds of permits where the contractor declared the exact squares installed, half of our measurements on mostly-visible roofs land within about ten percent of the contractor's own figure — and as canopy cover grows, the tier drops and the served range widens instead of pretending.

Served as a range, never a single number

An estimate that presents itself as a measurement invites decisions it cannot support. Ours are served as calibrated ranges with their confidence tier attached, so a roofing firm knows how much weight a number will bear before anyone rolls a truck — and edge lengths are flagged to verify on site.

Benchmarked against permits that state their own area

A subset of roofing permits declares the squares of roofing installed. Those are real measurements taken by professionals, and they are used as the yardstick the aerial method is tuned against — then re-tested at full scale rather than on the sample that produced the tuning.

Some questions get refused

We tested whether roofing material could be resolved from available imagery and concluded it could not, at the resolution available. So material is answered from records or not at all, rather than by a model reaching past its evidence.

Weather that actually landed on this parcel

Storms localized to the property

Hail is resolved in two stages — a coarse pass to find which days had damaging storms at all, then a fine per-parcel pass on radar-derived hail size. The output is whether this address sat under a damaging event and on which date, not a county-wide advisory.

A forecast never rewrites history

What is forecast and what actually fell are kept strictly apart. A projection can plan the week ahead; it is never allowed to alter the record of what a property has already been through.

A storm is history, not just a lead

The complete hail history of a parcel is kept whatever its severity. A threshold decides what is worth acting on; it never deletes what happened.

Cross-checked against the permit record

A damaging storm followed by a roofing permit is a repaired roof. The same storm with no permit since is a different situation entirely — and reading them together is what makes either useful.

The season's work, modeled rather than guessed

Lawn care and snow clearing are the two things a home needs on a schedule the weather sets, not the calendar. They look simple and are full of traps — so they are modeled against decades of daily Minnesota weather, and the model is built around what actually governs each one. Each has its own page: lawn care and snow & ice.

Mowing visits one Minneapolis season actually needed · 26 real seasons, 2000–2025, replayed through the production model

81624 2000: 22 cuts2001: 18 cuts2002: 16 cuts2003: 16 cuts2004: 22 cuts2005: 20 cuts2006: 16 cuts2007: 21 cuts2008: 19 cuts2009: 18 cuts2010: 21 cuts2011: 16 cuts2012: 15 cuts2013: 17 cuts2014: 16 cuts2015: 22 cuts2016: 22 cuts2017: 20 cuts2018: 18 cuts2019: 17 cuts2020: 19 cuts2021: 19 cuts2022: 20 cuts2023: 16 cuts2024: 21 cuts2025: 21 cuts median 19 cuts 200020052010201520202025

The year, month by month · median visits per month across the same 26 replayed seasons

Mowing visitsApr: median 1 mowing visits1May: median 3 mowing visits3Jun: median 4 mowing visits4Jul: median 3 mowing visits3Aug: median 4 mowing visits4Sep: median 3 mowing visits3Oct: median 1 mowing visits1Snow clearingsJan: median 4 snow clearings4Feb: median 4 snow clearings4Mar: median 3 snow clearings3Apr: median 1 snow clearings1Nov: median 2 snow clearings2Dec: median 5 snow clearings5Ice treatmentsJan: median 2 ice treatments2Feb: median 1 ice treatments1Mar: median 2 ice treatments2Nov: median 2 ice treatments2Dec: median 2 ice treatments2 JFMAMJJASOND

Grass grows on water, not on heat

Dormancy is keyed to rainfall rather than temperature, because a Minnesota lawn in a dry August stops growing while the thermometer says it should be thriving. Get that backwards and you bill somebody for cuts their lawn did not need.

Growth rate needs two cuts to know

A single mow tells you an event happened, not how fast the lawn is growing. Vigour is only inferable from an interval, so the model waits for one rather than asserting a rate it cannot yet support.

Snow has no minimum spacing — ever

A lawn can be cut too often; a driveway cannot be cleared too often. Mowing carries a health floor on how close together visits may fall, and applying that same logic to snow would be a genuine safety error. The two schedules are deliberately not symmetrical.

Your season starts when you say it does

Plenty of households hold a “No Mow May” pledge, and the schedule honors it: declare your season start and mowing waits — while growth is still tracked — so your first cut queues the day your pledge ends, not a week later.

A budget as a range across many winters

How many cuts a typical season needs, how much that has varied across decades of real seasons, and how long the season runs — so a year's work can be understood before anyone quotes for it, rather than after.

Thinking past turf entirely? Bee-friendly lawns — clover mixes, low-mow fescues, pollinator plantings — are a choice we’d rather support than talk anyone out of, and Minnesota runs cost-share assistance for exactly this conversion (the state’s Lawns to Legumes program). If you run a landscaping company that does pollinator-friendly conversions, we’d like to hear from you.

Ice melt is chemistry, and most of what people believe is wrong

De-icer is where a homeowner most often pays for something that cannot work in the conditions they are using it in. The physics is unambiguous, so it is encoded rather than left to a rule of thumb.

Ice melted per pound of rock salt, by pavement temperature

below the practical floor 10 lb20 lb30 lb40 lb 30°F: one pound of salt melts 46.3 lb of ice25°F: one pound of salt melts 14.4 lb of ice20°F: one pound of salt melts 8.6 lb of ice15°F: one pound of salt melts 6.3 lb of ice10°F: one pound of salt melts 4.9 lb of ice5°F: one pound of salt melts 4.1 lb of ice0°F: one pound of salt melts 3.7 lb of ice 46 lb of ice per lb of salt at 30°F4 lb at 5°F 0°F5°F10°F15°F20°F25°F30°F pavement temperature

And how far down each product keeps working at all · the practical floors the schedule plans against

-20°F-10°F0°F10°F20°F32°F Calcium chlorideCalcium chloride: works down to about -20°F-20°FMagnesium chlorideMagnesium chloride: works down to about -9°F-9°F"Pet-safe" blend (MgCl2)"Pet-safe" blend (MgCl2): works down to about -9°F-9°FRock salt / brineRock salt / brine: works down to about 16°F16°FCMA / acetateCMA / acetate: works down to about 19°F19°FUrea (fertilizer)Urea (fertilizer): works down to about 25°F25°FSand — traction only, melts nothinggrip at any temperature · zero melt pavement temperature it still works at

Every de-icer has a floor

It works above a temperature and fails below it. Not "works less well" — below its floor it does not melt ice at all, and more of it changes nothing.

And above the floor it is a gradient

Rock salt near 20 °F retains only a fraction of the melting power it has just above freezing, so the same job needs several times the material. That is a different purchase, not a bigger scoop.

Sand melts nothing

Sand is traction, not chemistry. Useful below the point where any de-icer works, and useless for clearing ice — two different jobs that get sold as one.

Water ends residual protection, not time

Leftover product keeps working until it is diluted away. So rain or melt, not the number of days since application, is what decides whether a surface is still protected.

“Pet-safe” usually means magnesium chloride, which is still a chloride. It is gentler on paws than rock salt; it is not free of the effects chlorides have on concrete and planting beds. We would rather state that than repeat the label.

Knowing which firm actually does this work

The permit record names who pulled each permit, which means it also records who demonstrably does a given trade on a given street — from the public record, not from who paid for placement.

Identity is anchored, never matched on a name

Company names are spelled a dozen ways and shared between unrelated firms. License numbers, phones and addresses anchor identity instead; a contradiction aborts the match rather than merging two businesses into one.

Ranked on the right kind of permit

An electrician who wired an air-conditioner disconnect is not who you call for a furnace. Ranking is done on the permits a firm actually leads, not every permit its name appears on.

License is a ceiling, permits are only a seed

What a firm is licensed to do bounds what it can be offered, and no amount of self-description widens that. History suggests where they work; it never grants a credential.

Routing fails closed

If the credential a job requires cannot be established, it is treated as licensed work. Work that needs a licensed trade can never fall through to a general handyman pool by default.

The service ticket engine

How a described problem becomes gated, evidenced work: the versioned safety whitelist, fail-closed routing, role-scoped visibility, the closed record — and Archie, the property AI sidekick who fronts the conversation. It touches every audience, so it has its own page.

An informed marketplace, with the teams already built in

Lead-gen marketplaces sell names. This one moves evidence: a verified owner, the home’s own record, and measured quantities travel with every job — and on the other side, the receiving firm isn’t a listing but a working operation, from a solo operator’s merged view to a staffed company’s dispatcher board, crew lanes and each worker’s day.

Two sides, one shared truth · and the team machinery beneath

PROPERTIES & OWNERSOwnership proven, not claimedThe home’s whole recordThe issue: words + photosQuantities measuredConsent before any workTHE INFORMED MIDDLEEvidence travels WITH the jobRouting by demonstrated workLicense is the ceilingQuality-tiered · no lead feesGates opened by humansFIRMS & TEAMSSolo pro: one merged viewStaffed firm: roster + tradesDispatcher → crew lanesEach worker’s own dayNew→Viewed→Responded→WonTHE TEAM SETUP, ALREADY ESTABLISHED — ASSIGNMENT THAT FAILS CLOSEDA job needs doingticket or brief,evidence attachedQualified?license · trade ·permit, per PERSONAssigned · scheduleddispatcher → crew→ worker’s dayDone, on the recordphotos, scope & cost,receipts, end statenot qualified → REFUSED, with the reason — never a silent fallbacktwo sides, one shared truth: the job’s own evidence

Demand arrives verified and scoped

Every request comes from a proven owner, carries the home’s context and the measured quantities, and is quality-tiered — a firm knows how much weight the job’s numbers bear before anyone drives anywhere.

Routing follows demonstrated work

Firms surface for the trades they demonstrably do, on the streets where they demonstrably do them — drawn from the permit record itself. A license is the ceiling of what work can route; a declaration can widen the map, never the credential.

Teams, not just inboxes

A staffed firm runs its whole operation here: the roster with each member’s trades, the dispatcher board, crew schedule lanes, and every field worker’s own day view. Assignment checks the person, not just the company — and refuses an unqualified match with the reason stated.

No lead fees, no pay-to-play

A firm is never charged to see a job, and no one can pay their way up the ranking. The economics come from work won, not attention sold — which is why the evidence can stay honest.

The discipline underneath all of it

Most of these decisions come down to the same instinct: an unknown reported as an unknown is worth more than a confident answer that is sometimes wrong, because a user cannot tell the difference from the outside.

Absence is not negation

No permit on file can mean no work, or it can mean the archive does not reach that far. We publish which, per city and per trade, so the difference is visible.

Every figure carries its source

County-attested, permit-verified, decoded from a plate, or told to us by the owner. These are different kinds of fact and they are labeled as such.

Improved, never overwritten

When the method gets better the record gains a better answer alongside the old one. History is a signal in its own right, so nothing is silently replaced.

The engine cannot see who pays us. Recommendations are computed from the evidence on a property. Commercial relationships are not an input, so no arrangement can move one up the page — that is a property of how it is built, not a promise about how we intend to behave.
Where this stands. PropEasy is pre-launch and not yet open to the public. On capability, specifically: nothing is dispatched to a contractor today — that rail stays closed until a human opens it; equipment recall exposure is not monitored on a schedule; measured-roof geometry exists for a small number of parcels rather than the metro; lawn and hardscape areas are not yet measured from imagery, so seasonal work is modeled on weather and season length rather than on your property's own square footage; and no smart-device integration is live, with every action the system would take written down and none of them sent.