Overview
Account hierarchies allow you to:- Model parent-child relationships between distinct Metronome customers (up to 10 nodes)
- Share commits and credits across hierarchical levels
- Configure flexible payment arrangements (parent pays, child pays, or mixed)
- Consolidate child usage onto a single invoice at the parent level
- Maintain distinct pricing and contracts for each entity
- Disney could pay for all CDN data transfer across subsidiaries while each maintains their own contracts and pricing
- Disney could purchase a $10M shared commit for CDN data transfer that Hulu, ESPN, and other subsidiaries draw from before paying overages
- Each subsidiary could have their own pricing and commits, with Disney receiving a single consolidated invoice showing detailed usage breakdowns
Prerequisites
Before implementing account hierarchies, ensure you have:- Customer objects created for both parent and child organizations
- A billing configuration set up for each customer. Support for Stripe billing is live with support for marketplace billing in hierarchical scenarios coming soon.
- Understanding of your organizational billing structure and payment flows
Example 1: Parent with shared commit pool
In this scenario, Disney purchases a $10M commit that all subsidiaries can access for their usage. Create the parent contract with shared commit:- All children draw from Disney’s $10M commit
- Each child pays their own overages once the shared commit is exhausted
- Each child receives their own invoices
Example 2: Parent pays with consolidated invoicing
In this scenario, each subsidiary has their own commits, but Disney receives and pays all invoices with usage consolidated into a single statement. Create the parent contract with invoice consolidation enabled:- Disney has its own $200K commit that only it can access (child_access: “none”)
- Hulu has its own $500K commit that only it can access
- Disney pays for all commits including Hulu’s $500K commit invoice
- Disney receives a single consolidated usage statement invoice containing Disney’s own usage and Hulu’s usage with line items indicating the origin customer and contract
- All invoices are routed to Disney’s billing provider
Example 3: Selective commit access with distinct pricing
In this scenario, Disney has multiple commits with selective access, and each subsidiary has custom pricing. Create parent contract:- Different rate cards: Each subsidiary uses a rate card tailored to their business (streaming vs. broadcast) with appropriate products and pricing
- Selective commit access: Hulu and ESPN can access both premium and standard commits, while ABC only accesses the standard commit
- Contract-specific pricing: Hulu gets 20% off GB of CDN data transfer when drawing from the premium commit or paying overages
- Individual billing: Each subsidiary pays for their own overages and maintains separate billing configurations
Viewing hierarchy relationships
Get contract with hierarchy details
Retrieve complete hierarchy information for any contract:View consolidated invoices
When configured for consolidation, parent invoices include all subsidiary usage:Break down consolidated invoices
Analyze usage distribution across the hierarchy using invoice breakdowns. This is particularly useful for understanding spend patterns across subsidiaries.- Analyze spend by subsidiary: Group line items by
origin.customer_idto see each entity’s usage - Track contract performance: Use
origin.contract_idto measure usage against specific contracts
Best practices
Design your hierarchy thoughtfully- Map organizational relationships before implementation
- Consider payment flows and invoice routing requirements
- Use
type: "all"for organization-wide shared resources - Use
type: "contract_ids"for department or tier-specific access
- Review consolidated invoices to understand usage distribution
- Use invoice breakdowns to analyze spending by subsidiary
- Align contract start dates when possible
- Plan renewal strategies across the hierarchy
- Consider commit rollover implications for renewals
Troubleshooting
Child cannot access parent commit- Verify the parent commit’s
child_accessconfiguration includes the child - Ensure the child contract correctly references the parent contract ID
- Confirm both contracts are active during the same time period
- Verify parent contract has
invoice_consolidation_type: "CONCATENATE" - Check child contract has
usage_statement_behavior: "CONSOLIDATE" - Ensure child’s usage service period is bounded by parent’s service period
- Example: If parent invoice covers Jan 1-31 and child invoice covers Jan 5-31, child usage will consolidate. But if child invoice covers Dec 28 - Jan 28, child usage will not consolidate
- Confirm the issue dates align (same day) between parent and child invoices
usage_statement_behavior: "CONSOLIDATE"requirespayer: "PARENT"- Child contracts paying themselves must use
usage_statement_behavior: "SEPARATE"
Current limitations
- Hierarchy depth: Only one level supported (parent-child); no grandchildren or multi-level hierarchies
- Hierarchy size: Maximum active 10 nodes supported in a hierarchy
- Billing providers: Only Stripe is supported; marketplace billing coming soon
- Contract structure: Each Metronome customer requires their own contract - no single contract can automatically apply to all children
- Usage rating: Each child’s usage is rated separately based on their contract. Parent tiered pricing only applies to direct parent usage, not aggregated child usage
- Alert scope:
- Commit balance alerts on parent contracts don’t automatically trigger when children consume the commit
- Alerts evaluate when the parent receives usage data
- If only children receive usage, parent alerts may be delayed until parent usage arrives
- Additionally, parent spend alerts only include parent’s direct spend, not children’s