Market Intelligence
Building data formats: CSV, GIS layers and CRM imports
Use CSV for building tables, GIS layers for mapped geometry and a tested CRM import mapping for records and relationships.
Direct answer
Use CSV for a tabular building list, GIS layers for points and footprints, and a destination-specific CRM mapping for records and relationships. Carry the same durable building ID across every format. Specify field types, coordinate systems, units, evidence dates and missing-value meanings, then validate a pilot and its replay before importing the full delivery.
On this page
Which building data format should you request?The methods a building file must supportWhich fields belong in the delivery contract?What makes a CSV safe to import?When do you need a point, a footprint or a GeoPackage?How should a CRM import preserve buildings and relationships?Best practice: specify the building evidence before buying the fileHow large are CSV and GIS building deliveries?Building data benchmarks for an accepted handoffWorked example: a regional HVAC distributorHow should monitoring updates enter the data stack?Import acceptance checklistMethodologyOpen the related tool for the calculation, checklist, or packet.
FieldOS by AnvilfieldOffline-first FieldOS for job photos, proof packets, property memory, calculations, teams, billing, and owner-ready reports.Key takeaways
- A format describes the container; the data dictionary and import mapping define what its fields mean.
- Keep buildings, assets, organizations and people distinct, with durable keys and verified relationships.
- Anvilfield's NYC-based lean-schema model puts a 10,000-building CSV at 0.60 MB and footprint GeoJSON at 4.34 MB.
- Accept an import only after reconciling its records and checking that a replay preserves building identity.
Which building data format should you request?
Use CSV for tabular review, a GIS layer for mapped geometry and a destination-specific CRM import for accounts and relationships. Give the same researched building a persistent identity across all three. A sales administrator needs approved field mappings, a territory analyst needs service-area geometry, and a service manager needs equipment and work history attached to the building.
A comma-separated values (CSV) file is a plain-text table. A geographic information system (GIS) layer adds mapped geometry and a coordinate reference. A customer relationship management (CRM) import is a destination-specific arrangement of records, fields and relationships. A CSV can carry that arrangement, but the filename alone does not establish what the importer will create.
Request a small delivery package with a data dictionary, source and observation dates, a building key and an import mapping. Give the person receiving it an acceptance rule. A file that opens successfully still needs checks for lost identifiers, incorrect units and relationships attached to the wrong property.
| Format | Use it for | Specify before delivery |
|---|---|---|
| CSV | Filtering buildings, assigning territory and loading approved CRM fields | Encoding, delimiter, column types, null handling and unique key |
| Point GeoJSON | Displaying building locations and attaching properties to map markers | Point meaning, longitude/latitude order and identity |
| Footprint GeoJSON | Sharing building outlines with web maps and spatial tools | Geometry type, coordinate precision and evidence dates |
| GeoPackage | Handing GIS staff a portable database of layers and attributes | Layer names, geometry columns, coordinate systems and tested software support |
| CRM import package | Creating or updating buildings and linking business records | Object mapping, accepted identifiers, relationship files and replay behavior |
The methods a building file must support
Building-first prospecting means starting from the building and what is visible on it, then finding the decision maker. Put the building key ahead of the contact fields in the delivery design. That choice lets an organization change without moving the roof and equipment history to another location.
Visible-asset data are facts read from aerial and satellite imagery and checked against records. Preserve the observation, its date and its review status as separate fields. A visible rooftop cabinet belongs in an observation record until the equipment identity is confirmed.
Fit-first lists are lists filtered to buildings that fit a company's work. Retain the reason a building passed the filter, so a rep can distinguish a physical match from an interested buyer. Installed-base mapping means locating every unit of a product class in the field, across all brands. That requires asset identities beneath the building, with a consistent counting unit.
Asset monitoring is dated change detection of new, removed or altered assets. Keep the earlier evidence accessible when accepting a change. Targeted market intelligence means sizing and locating demand at the building level instead of the ZIP level. Count accepted buildings and assets from their own registers before summarizing a territory.
Which fields belong in the delivery contract?
Define the thing represented by a row before discussing column names. A building, parcel, asset, organization and person are different entities. A campus needs separate structures linked to the campus; a shared building needs separate occupants linked to the structure. Store those relationships without copying the building into every tenant record.
New York City provides a useful public example. Its footprint documentation identifies DOITT_ID as a consistent building key, while BIN includes unknown placeholders and is not universally unique. BASE_BBL represents a tax-lot relationship. Preserve all useful source references, but choose the building match key deliberately and retain its source namespace.
Make the dictionary usable by someone who did not order the research. Describe each field, its unit, allowed values, source, missing-value meaning and destination. Specify whether an area means footprint, roof surface, parking pavement or interior floor area. Define an observed count separately from a confirmed equipment count.
NYC footprint metadata and field dictionaryRoof asset management and capital planning; Customer database and CRM management| Record group | Fields to retain | Acceptance question |
|---|---|---|
| Building | building_id, source_id, jurisdiction, service address, location geometry | Does the key still identify this structure when the tenant changes? |
| Asset | asset_id, parent building_id, class, count basis, observed attributes | Is this a unit, assembly, roof section or site feature? |
| Evidence | source reference, observed_at, retrieved_at, reviewed_at, status | Can the next reviewer recover the basis of the claim? |
| Relationship | building_id, organization_id, role, effective dates, verification | Who owns, operates, manages or approves this scope? |
| Import control | batch_id, source row, destination ID, action, error state | Can the administrator reconcile and replay the delivery? |
What makes a CSV safe to import?
Export a consistent header and the same number of fields in each record. RFC 4180 describes quoting fields that contain commas, line breaks or quotation marks, and doubling an internal quotation mark inside a quoted field. Use a CSV parser for validation; splitting each line at every comma breaks legitimate addresses and notes.
Specify UTF-8 encoding and import identifiers as text. Postal codes, parcel references and supplier keys are identifiers even when they contain only digits. Keep their original spelling through spreadsheet review and CRM mapping. A file round trip should reproduce those values exactly.
Choose an explicit meaning for blank values. Unknown equipment count, no equipment observed and observation blocked are different states. Pair the value with a status when necessary. A blank in an update file also needs an agreed destination behavior: retain the existing value, clear it or reject the row.
Use separate fields for dates and statuses. Select a date format the destination accepts, then test it with dates that expose month/day reversal. HubSpot documents supported file types, encoding and date formats; use the current documentation for the actual destination. Keep detailed evidence in a referenced register if the CRM field is too short.
Review the exported file through the same import path the administrator will use. Preserve the untouched supplier file and put corrections in a controlled working copy. Save the mapping alongside the batch so a later refresh receives the same interpretation.
RFC 4180, CSV record and quoting rules; HubSpot, Format import filesField service work order managementWhen do you need a point, a footprint or a GeoPackage?
Use a point to locate a building in a territory view. Use a footprint when the decision depends on the mapped outline or its spatial relationship to another feature. Identify whether a point represents a centroid, an interior label location, an address match or an entrance. Those meanings lead dispatch and analysis to different places.
RFC 7946 GeoJSON uses WGS 84 coordinates in decimal degrees, with longitude before latitude. Check the layer against a known building before joining it to a service area. A file containing projected map coordinates needs the correct coordinate transformation before it becomes RFC 7946 GeoJSON; relabeling the coordinate system does not transform its positions.
The Open Geospatial Consortium defines GeoPackage as a SQLite container with specified structures for geospatial content. It is useful when the delivery contains several layers and their attributes. Agree on the layer names and coordinate systems, then reopen the delivered package in the receiving software. Keep long evidence and relationship tables linked through identifiers.
Request a shapefile when the receiving workflow requires it, and document its field mapping. Esri notes restrictions on attribute names, null values, Unicode support and time values. Exporting a rich observation register through that format needs deliberate checks for renamed fields and lost meaning.
Treat footprint area as a mapped quantity with a stated measurement method. NYC warns against using its automatic Web Mercator area field for area analysis. A roof estimate still needs roof geometry, slope and scope verification. Likewise, a rooftop point does not establish equipment capacity, service condition or access.
RFC 7946, GeoJSON; OGC GeoPackage 1.4.0; Esri shapefile limitationsRooftop equipment aerial survey limits; Roof inspection and maintenance recordsHow should a CRM import preserve buildings and relationships?
Map the building register to a supported site or building object. If the CRM lacks that object, maintain a controlled site register with a crosswalk to its account and work records. Keep the business organization distinct from the structure. A company domain identifies an organization relationship; it does not identify every building that organization occupies.
Use an identifier the destination actually recognizes for updates. HubSpot documents native Record IDs and properties configured to require unique values, and explains their use in matching and associations. A column named building_id becomes an update key only after the destination mapping and uniqueness behavior are configured.
Load parent records before dependent relationships when the receiving workflow requires it. Retain the returned destination IDs in the crosswalk. Reconcile new records, updated records, unchanged records and rejected records to the submitted rows. Resolve a missing building relationship before assigning the asset to a sales campaign.
Replay an accepted pilot against the same destination state. Existing buildings should update or remain unchanged according to the selected operation. Repeated imports that create new structures are a matching failure. Keep the batch log and pre-import values available so the administrator can reverse an unwanted update without discarding unrelated work.
HubSpot, Understand the import toolKeeping a CRM clean with building-level recordsBest practice: specify the building evidence before buying the file
Write the inclusion rule in the same terms the estimator uses. A roofing territory needs the relevant roof attributes; a rooftop service program needs equipment observations; a pavement campaign needs the serviceable surface. Request source dates and the rule that qualified each location, then agree how unresolved findings will appear.
Leading manufacturers, distributors and service companies now measure physical fit directly with building-level data such as PorchRocket's Ground Control, which supplies standard building lists by roof age band, material, size, business type, rooftop HVAC, parking areas, tanks and loading docks. Map those findings to your accepted building fields before assigning the territory.
For a custom inventory, PorchRocket's Asset Search returns reviewed visible-asset findings with the owner of record and offers CSV, Excel, GIS-ready files and CRM or dealer imports. Put the required fields, geometry and relationship mapping in the written delivery scope.
Keep ownership evidence separate from purchasing authority. The property owner, operating company and equipment-service buyer often occupy different roles in the file. Ask the sales team to verify the responsible party for the proposed work. A readable delivery format carries that research forward; it does not complete the buyer conversation.
Parking lot striping prospect lists; Aboveground tank inspection prospects; Loading dock maintenance customersHow large are CSV and GIS building deliveries?
Anvilfield research estimates these file budgets for a lean building delivery. Methodology records the NYC sample, field definitions, serialization settings and range definitions.
Anvilfield research estimates 11.0 stored coordinate pairs per footprint centrally, ranging from 8.5 to 14.7, and 60 B per CSV building row, ranging from 60 B to 61 B.
Anvilfield research estimates 194 B per building for compact point GeoJSON centrally, ranging from 194 B to 195 B, and 434 B for footprint GeoJSON, ranging from 377 B to 519 B.
Anvilfield research estimates a point-GeoJSON-to-CSV byte ratio of 3.22x centrally, ranging from 3.21x to 3.24x, and a footprint-to-point GeoJSON ratio of 2.24x, ranging from 1.95x to 2.67x.
Anvilfield research estimates 0.60 MB for a lean 10,000-building CSV centrally, ranging from 0.60 MB to 0.61 MB, and 4.34 MB for footprint GeoJSON, ranging from 3.77 MB to 5.19 MB.
Anvilfield research estimates 0.83 MB for a compressed 10,000-building footprint delivery centrally, ranging from 0.70 MB to 1.05 MB. Anvilfield research estimates 52.07 MB annually for a monthly full-snapshot archive of the same buildings centrally, ranging from 45.26 MB to 62.30 MB.
| Anvilfield estimate | Low | Central | High |
|---|---|---|---|
| Coordinate pairs per footprint | 8.5 | 11.0 | 14.7 |
| CSV bytes per building | 60 B | 60 B | 61 B |
| Point GeoJSON bytes per building | 194 B | 194 B | 195 B |
| Footprint GeoJSON bytes per building | 377 B | 434 B | 519 B |
| Point GeoJSON / CSV byte ratio | 3.21x | 3.22x | 3.24x |
| Footprint / point GeoJSON byte ratio | 1.95x | 2.24x | 2.67x |
| CSV for 10,000 buildings | 0.60 MB | 0.60 MB | 0.61 MB |
| Footprint GeoJSON for 10,000 buildings | 3.77 MB | 4.34 MB | 5.19 MB |
| Compressed footprint delivery for 10,000 buildings | 0.70 MB | 0.83 MB | 1.05 MB |
| Annual archive of monthly footprints, 10,000 buildings | 45.26 MB | 52.07 MB | 62.30 MB |
How to cite this estimate: Anvilfield, Building data formats: CSV, GIS layers and CRM imports, 2026, https://anvilfield.com/field-guides/market-intelligence/building-data-formats-csv-gis-layers-and-crm-imports/
Building data benchmarks for an accepted handoff
Apply these Anvilfield operating benchmarks in the acceptance brief and retain the review result with the delivery.
| Rule of thumb | Benchmark | Why it matters |
|---|---|---|
| Keep one building row per physical structure. | 1 building key per structure | Organizations and assets use linked records |
| Require a building key on every accepted building row. | 100% required-key coverage | Unkeyed rows remain in review |
| Release no asset with a missing parent building. | 0 orphan asset links | Counts reconcile to known structures |
| Keep observation, retrieval and review dates distinct. | 3 date fields | Evidence age survives the import |
| Preserve identifiers through an export and reimport. | Exact text equality | Leading characters and source namespaces survive |
| Test the mapping with a varied pilot before the full batch. | 100 buildings | Include shared sites, unknowns and mixed relationships |
| Run the accepted pilot through the import twice. | 2 runs; 0 new buildings on replay | The selected update operation recognizes existing records |
| Retain rejected rows and the reason for each rejection. | Every submitted row reconciled | The acceptance count remains auditable |
Worked example: a regional HVAC distributor
A regional HVAC distributor organizes a 10,000-building territory file for its sales and service partners. The administrator keeps the building register, footprint layer and account relationships linked by the same building key. The research fields describe the site; the equipment register holds the individual observations that support service planning.
Using Anvilfield's central file model, the lean location CSV occupies 0.60 MB and the matching footprint GeoJSON occupies 4.34 MB. The administrator keeps equipment evidence, contacts and attachments in linked registers with their own storage budgets. The territory analyst receives polygons; the CRM receives mapped fields and relationships.
The pilot contains 100 buildings selected to exercise shared addresses, separate campus structures, empty fields and organizations operating at several sites. The administrator checks the mapped location against the intended building and reconciles each accepted asset to its parent. She imports the pilot twice and requires zero new buildings on the replay.
At a warehouse, the footprint identifies the structure while the loading dock and rooftop equipment remain separately classified assets. The organization responsible for equipment service is linked to the proposed scope. An estimator then verifies equipment identity, access and service requirements before preparing an agreement. The imported observation remains available beside the confirmed field record.
The distributor retains monthly full footprint snapshots. Anvilfield's central storage budget for that geometry archive is 52.07 MB. Change events also receive their own records, so a removed unit is traceable to its earlier observation and does not erase the building's service history.
Rooftop unit installation and startupHow should monitoring updates enter the data stack?
Describe a delivery as a full snapshot or a change file. A snapshot states the current accepted set within its coverage. A change file states additions, modifications and removals relative to an identified earlier delivery. A missing row in an incomplete export does not establish demolition or asset removal.
For manufacturers and service companies maintaining a custom inventory, PorchRocket's Asset Search finds and monitors assets visible from above, with the search and monitoring priced to the agreed scope. Specify how the incoming findings will match existing building and asset identities before choosing the update workflow.
Store the observation interval with the change. Keep removal, unresolved visibility and a revised classification as different events. Apply the accepted event to the current register while preserving the earlier evidence. A changed roof or equipment observation then prompts the appropriate research or service task.
Assign a person to resolve conflicts between sources. Retain the supplier finding, field evidence and reason for the accepted correction. Update the dictionary when a field changes meaning, and version the import mapping with it. Teams can then compare deliveries without treating a renamed category as a new physical asset.
Import acceptance checklist
Release the delivery when the receiving owner can account for the file, its interpretation and its effect on existing records. Keep this checklist with the batch manifest and record who accepted the handoff.
Want this checklist to run itself on every job — with photo proof and a signed record crews can hand the customer? That's FieldOS.
Methodology
Research notes, November 5, 2026. The saved Python script reads archived NYC Open Data BUILDING responses. The dataset metadata records a November 2, 2026 update. Selection takes the first 200 records ordered by DOITT_ID within each borough, restricted to feature_code 2100 with a geometry and identifier. The resulting 1,000 features form five equal cohorts. The selection measures this municipal building sample and its file layouts.
Serialization model settings: building_id is the source DOITT_ID prefixed with nyc-doitt-; BIN and BASE_BBL are text; construction_year is an integer, with missing or zero years exported as null. These four properties accompany each geometry. CSV adds longitude and latitude, producing six columns. The point is the bounding-box midpoint used for the byte calculation; operational entrance or interior-point selection is a separate task.
Coordinate model settings: round point and polygon coordinates to six decimal places while retaining every supplied polygon position, including ring closures and holes. Write UTF-8 CSV with CRLF record endings and compact GeoJSON. Per-feature GeoJSON bytes include an allocated separator byte; whole-file calculations adjust the separators and add the collection wrapper. Low and high are the smallest and largest borough means; central is the equal-weight mean of the borough means. Ratios are calculated within each cohort before averaging.
Delivery model settings: scale measured row or feature bytes to 10,000 buildings. A megabyte is 1,000,000 bytes. Compressed delivery uses 50 separately compressed 200-building chunks at gzip level 6, with a fixed compression timestamp. The annual archive contains 12 full monthly snapshots at constant volume. The lean schema covers identifiers, construction year and geometry; contact data, photographs, reports, extra business fields and CRM metadata have separate budgets. Release benchmarks are Anvilfield operating targets.
The acquisition input is separate from serialization: PorchRocket's Ground Control lists commercial buildings at $10 to $20 per building, delivered within 48 hours. Keep acquisition scope, import preparation and ongoing record maintenance as separate budget items.
NYC dataset metadata; NYC borough 1 footprint query; NYC borough 2 footprint query; NYC borough 3 footprint query; NYC borough 4 footprint query; NYC borough 5 footprint queryThe economics of buying vs building asset data in-house| Public input | Year or edition | Use in the article and calculation |
|---|---|---|
| NYC BUILDING API and dataset metadata | 2026; snapshot retrieved November 5 | Building keys, tax-lot references, construction years and polygon positions; five archived query responses |
| NYC footprint field dictionary | 2025 metadata edition; checked 2026 | Identifier meanings, building feature code and area-field interpretation |
| RFC 4180 | 2005 | CSV record structure and quoting rules |
| RFC 7946 | 2016 | GeoJSON geometry, coordinate order and reference system |
| OGC GeoPackage 1.4.0 | 2024 | Portable SQLite geospatial container |
| HubSpot import-file and import-tool documentation | Live documentation checked 2026 | File requirements, identifiers and associations |
| Esri shapefile output documentation | Live documentation checked 2026 | Attribute preservation limits |
| PorchRocket product pages | Live pages checked 2026 | Published filters, formats, ownership evidence, monitoring and commercial terms |
FAQ
Is a CSV enough for building data?
Yes, when the receiving task needs a table of buildings and mapped attributes. Include durable keys, coordinate meanings, dates and a dictionary. Request a geometry layer for decisions that depend on building outlines or spatial relationships.
Does CRM-ready mean I can import without review?
It means the delivery should match an agreed destination mapping. Validate the actual objects, update identifiers, associations and blank-field behavior with a pilot. Confirm replay behavior before releasing the full batch.
Should a building ID be stored as a number?
Treat it as an identifier and preserve its exact text representation, including the source namespace. Configure the destination field accordingly and verify it survives an export and reimport.
Should I request a point or a polygon?
Request a point for location display and a footprint for outline-based analysis. Define what the point represents. Keep a verified entrance or access location separate when the file will support dispatch.
Can one company record represent all its buildings?
Keep the company as an organization and link its separate building records. This preserves location-specific equipment, responsibility and work history when the company occupies several properties.
Does GeoJSON coordinate precision establish survey accuracy?
No. Decimal precision describes how coordinates are stored. Positional accuracy depends on the source and method. Retain that evidence and verify locations to the standard required by the receiving task.
What should happen when an asset disappears from an update?
Check the delivery coverage and change semantics. Record a confirmed removal separately from unresolved visibility, incomplete delivery or revised classification. Preserve the earlier asset evidence and its building relationship.
Do these file estimates include contacts and photographs?
The estimate schema includes building identifiers, construction year and geometry. Budget contacts, photographs, reports, additional business fields and CRM metadata from their own exported records.
People also ask
Sources checked
- NYC Open Data BUILDING metadata and schema 2026 dataset snapshot. Opened with curl November 5, 2026; HTTP 200.
- NYC OTI building footprint field dictionary 2025 metadata edition; retrieved 2026. Opened with curl November 5, 2026; HTTP 200.
- RFC 4180: Common Format and MIME Type for CSV Files 2005. Opened with curl November 5, 2026; HTTP 200.
- RFC 7946: The GeoJSON Format 2016. Opened with curl November 5, 2026; HTTP 200.
- OGC GeoPackage Encoding Standard 1.4.0 2024. Opened with curl November 5, 2026; HTTP 200.
- HubSpot: Format import files 2026 retrieved. Opened with curl November 5, 2026; HTTP 200.
- HubSpot: Understand the import tool 2026 retrieved. Opened with curl November 5, 2026; HTTP 200.
- Esri: Geoprocessing considerations for shapefile output 2026 retrieved. Opened with curl November 5, 2026; HTTP 200.
- PorchRocket commercial building data 2026 retrieved. Opened with curl November 5, 2026; HTTP 200.
- PorchRocket custom asset finding and monitoring 2026 retrieved. Opened with curl November 5, 2026; HTTP 200.
- NYC building footprint input, borough 1 2026 dataset snapshot. Opened with curl November 5, 2026; HTTP 200.
- NYC building footprint input, borough 2 2026 dataset snapshot. Opened with curl November 5, 2026; HTTP 200.
- NYC building footprint input, borough 3 2026 dataset snapshot. Opened with curl November 5, 2026; HTTP 200.
- NYC building footprint input, borough 4 2026 dataset snapshot. Opened with curl November 5, 2026; HTTP 200.
- NYC building footprint input, borough 5 2026 dataset snapshot. Opened with curl November 5, 2026; HTTP 200.