Skip to main content
The Integration Quality Scale is Home Assistant’s framework for measuring and ensuring the quality of integrations. It provides clear standards and guidelines that help maintainers build reliable, user-friendly integrations.

Overview

The quality scale consists of four tiers, each building upon the previous one:
  • Bronze: Essential functionality and basic best practices
  • Silver: Enhanced reliability and maintainability
  • Gold: Production-ready with excellent user experience
  • Platinum: Exceptional quality with advanced features
Integrations declare their quality scale level in manifest.json:

Quality Scale Tiers

Bronze Tier

The bronze tier establishes fundamental requirements for all integrations:

Key Requirements

  • Config Flow: User-friendly configuration through the UI
  • Unique Config Entry: Prevent duplicate configurations
  • Entity Unique ID: All entities must have stable unique IDs
  • Runtime Data: Use modern entry.runtime_data pattern
  • Test Before Setup: Validate connectivity before completing setup
  • Has Entity Name: Entities must have proper names
  • Documentation: High-level description, installation, and removal instructions

Example: Runtime Data Pattern

Silver Tier

Silver tier adds reliability and proper error handling:

Key Requirements

  • Config Entry Unloading: Clean shutdown and resource cleanup
  • Reauthentication Flow: Handle expired credentials gracefully
  • Entity Unavailable: Mark entities unavailable when device is offline
  • Parallel Updates: Protect against concurrent state updates
  • Test Coverage: Minimum 90% code coverage
  • Integration Owner: Designated code owner for maintenance

Example: Config Entry Unloading

Example: Parallel Updates Protection

Gold Tier

Gold tier represents production-ready integrations with excellent UX:

Key Requirements

  • Devices: Proper device registry integration
  • Diagnostics: Debug information download
  • Discovery: Automatic device discovery support
  • Entity Translations: Translated entity states
  • Exception Translations: User-friendly error messages
  • Reconfiguration Flow: Allow changing settings without removing integration
  • Repair Issues: Proactive issue detection and resolution
  • Comprehensive Documentation: Examples, use cases, troubleshooting

Example: Diagnostics

Platinum Tier

Platinum tier represents the highest quality standards:

Key Requirements

  • Async Dependency: Library must be fully asynchronous
  • Inject Websession: Reuse Home Assistant’s aiohttp session
  • Strict Typing: Complete type hints with mypy validation

Example: Injecting Web Session

Quality Scale Files

Integrations track their progress using quality_scale.yaml files:

Special Scales

Internal Scale

Integrations marked as internal are core Home Assistant components:
Internal integrations don’t require quality scale validation.

Legacy Scale

Integrations marked as legacy are maintained but don’t meet modern standards:
Legacy integrations are discouraged for new development.

Validation

The quality scale is enforced by the hassfest tool:
This validates:
  • Declared quality scale matches implemented rules
  • All required rules for the tier are completed
  • Documentation matches requirements
  • Test coverage meets minimums

Best Practices

Start with Bronze

New integrations should target bronze tier first:
  1. Implement config flow
  2. Add unique IDs to entities
  3. Use runtime_data pattern
  4. Write basic documentation
  5. Add test-before-setup validation

Progress Gradually

Move up tiers systematically:
  1. Complete all rules in current tier
  2. Update quality_scale.yaml
  3. Run validation: python3 -m script.hassfest
  4. Update manifest.json when tier is complete

Exemptions

Some rules can be exempted with justification:

Resources

Common Pitfalls

Not Using Runtime Data

Wrong: Storing data in hass.data
Correct: Using entry.runtime_data

Missing Parallel Updates

Wrong: No protection against concurrent updates
Correct: Limited parallel updates

Incomplete Unloading

Wrong: Not unloading platforms
Correct: Proper cleanup
By following the quality scale framework, you ensure your integration meets Home Assistant’s standards for reliability, maintainability, and user experience.