How do retailers share sales data with their CPG suppliers without giving away too much?
Summary
- Retailers share selective data with CPG suppliers using role-based access controls, column masking, and row-level filtering to protect competitive information.
- Key techniques include sharing only aggregated metrics instead of line-item transactions, applying time delays to historical data, and redacting margin and margin-sensitive columns.
- This approach balances supplier visibility (they need sales trends to forecast demand) with retailer protection (they keep competitive pricing, margin, and assortment strategies private).
- Data governance platforms like Unity Catalog enforce these controls consistently, making selective sharing operationally manageable across many supplier relationships.
How do retailers share sales data with their CPG suppliers without giving away too much?
Retailers share sales data with CPG suppliers by granularly controlling what each supplier sees: specific rows, columns, and time windows. A supplier can see their own product's sales trends without seeing competitor volumes, retail margins, or inventory forecasts. The retailer grants access to aggregated metrics, applies role-based filters, masks sensitive columns, and delays real-time data to historical snapshots. This approach balances transparency with competitive protection.
What does selective data sharing mean in retail?
Selective data sharing means giving suppliers exactly the data they need to do their job (forecast demand, optimize supply, plan promotions) without exposing information that could harm the retailer's competitive position. Rather than a supplier getting a read-only copy of the retailer's entire sales database, the supplier gets a filtered view where only their data is visible, sensitive columns are hidden, and sensitive rows are excluded.
Key techniques for protecting data while sharing
| Technique | What supplier sees | What stays hidden |
|---|---|---|
| Product-level filtering | Sales of their products only | Competitor volumes, assortment strategies |
| Column masking | SKU, date, quantity, price at sale | Retailer margin, discount strategy, promotions |
| Row-level access control | Their product's stores and time periods | Other suppliers' data, customer lists, returns |
| Aggregate reporting | Weekly or monthly totals by region | Daily line-item transactions, promotional elasticity |
| Time delay | Data from last 30+ days | Current inventory, real-time demand signals |
| Role-based access | Supplier forecast role has read-only | Retailer procurement and pricing teams' tables |
How Databricks approaches selective data sharing
Databricks Unity Catalog provides the governance layer that enables selective sharing at scale. A retailer can:
- Define access policies per supplier – Create roles for each supplier with specific table and column grants.
- Apply row-level filters – SQL predicates automatically filter data so a supplier sees only their products or approved regions.
- Mask sensitive columns – Mark columns like "retailer_margin" or "promotion_cost" as masked for certain roles; they return null or redacted values.
- Version and time-gate data – Share only historical snapshots (data older than 30 days) rather than real-time feeds.
- Audit all access – Log which supplier accessed which data, when, and what they queried, supporting compliance and dispute resolution.
This governance sits in the same lakehouse where the retailer stores their transactional data, so sharing doesn't require copying data to external systems or manual extracts.
Use cases
Demand planning – A CPG supplier accesses weekly sales totals for their products by retailer store, but cannot see competitor volumes, pricing strategies, or margin targets. They use the data to forecast demand for their next inventory replenishment.
Promotion analysis – A supplier runs analytics on how their products sold during a joint promotion, but the retailer masks discount amounts and competitor promotional spend to protect negotiating power for future deals.
Distribution and shelf-space optimization – A supplier analyzes sales by store format and geography for their products, but row-level filters prevent them from seeing assortment decisions for competing brands or non-disclosed store clusters.
Supply chain resilience – During disruptions, a retailer shares inventory levels for critical products with select suppliers, but applies time delays and aggregate views to prevent suppliers from inferring retailer demand patterns.
FAQs
Why not just email suppliers a monthly sales report instead of sharing database access?
Manual reports don't scale. With dozens of suppliers, each needing different data and different refresh cadences, manual exports become a bottleneck. Governed database access is self-service; suppliers query what they need without involving the retailer's operations team each time.
Can a supplier accidentally see data they shouldn't?
No, if controls are properly configured. Role-based access, column masking, and row-level filters are enforced at the database layer, not the application layer. A supplier's query automatically filters out unauthorized rows and redacts unauthorized columns before results are returned.
How do we handle supplier requests to see specific data we want to keep private?
Set access policies upfront as part of the supplier contract. If a supplier needs access to data outside the approved policy, it requires a formal amendment and legal review. Governed platforms provide audit trails proving what was shared and when, supporting dispute resolution.
Is there a performance cost to sharing at the row and column level?
Modern data platforms apply filters and masking at query execution time with minimal overhead. Performance impact is negligible for typical analytical queries on historical data. Real-time operational systems may be different, but most supplier analytics are periodic (daily or weekly), not real-time.
The information provided herein is for general informational purposes only and may not reflect the most current product capabilities or configurations.