{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Best Practices & Limitations","siteUrl":"https://docs.bettermile.com","jsonLd":{"@context":"https://schema.org","@type":"Organization","name":"Bettermile","url":"https://bettermile.com","logo":"https://docs.bettermile.com/images/logo.png"},"description":"Best practices for input quality, privacy, and performance with Better Places, plus testing guidance and known limitations."},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"best-practices--limitations","__idx":0},"children":["Best Practices & Limitations"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"best-practices","__idx":1},"children":["Best practices"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Maximize input data."]}," The more context the engine receives (postal code, city, street), the higher the match accuracy."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Structure your inputs."]}," Submit distinct components (structured JSON) rather than a single string to improve parsing accuracy."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Trust the normalizer."]}," Don't pre-clean addresses before sending them. Pre-normalizing can lose information during geocoding."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Privacy first."]}," Remove personal identifiers before submission. The system filters this data, but cleaner inputs ensure stricter GDPR compliance."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Performance tuning."]}," Parallelize requests to maximize throughput, but avoid excessive bursts. Client-side rate limiting is not currently enforced."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"testing--validation","__idx":2},"children":["Testing & validation"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Quality monitoring"]},": track the accuracy score and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["attribute_scores"]}," in the response."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Operational health"]},": set alerts for API latency and HTTP response codes."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Baseline testing"]},": validate against a known set of addresses to establish a performance baseline."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"known-limitations","__idx":3},"children":["Known limitations"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["No relevance score is returned between the request and response address."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The service does not validate whether the input is a potentially valid address."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Forward geocoding only (address to coordinates). Reverse geocoding is not supported."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Available for 55 countries. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/places/resources/supported-countries"},"children":["Supported Countries"]},"."]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The last-meter layer (entrances, parking, handover) is available only within the Bettermile suite, not through the standalone API."]}]}]}]},"headings":[{"value":"Best Practices & Limitations","id":"best-practices--limitations","depth":1},{"value":"Best practices","id":"best-practices","depth":2},{"value":"Testing & validation","id":"testing--validation","depth":2},{"value":"Known limitations","id":"known-limitations","depth":2}],"frontmatter":{"title":"Best Practices & Limitations","rbac":{"anonymous":"read","authenticated":"read"},"seo":{"description":"Best practices for input quality, privacy, and performance with Better Places, plus testing guidance and known limitations.","title":"Best Practices & Limitations"}},"lastModified":"2026-10-28T17:26:54.707Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/places/resources/best-practices","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}