Your content here
create table analytics.market_channel_scope (
market_definition_version_id uuid not null
references analytics.market_definition_version,
channel_code text not null,
channel_name text not null,
inclusion_type text not null check (
inclusion_type in ('include', 'exclude')
),
rationale text not null,
primary key (
market_definition_version_id,
channel_code,
inclusion_type
)
);
Examples:
in_store
online_direct
online_marketplace
subscription
rental
event_based
business_to_business
institutional
Serviceability rules explain why TAM is reduced to SAM.
create table analytics.market_serviceability_rule (
market_serviceability_rule_id uuid primary key,
market_definition_version_id uuid not null
references analytics.market_definition_version,
rule_type text not null check (
rule_type in (
'distance',
'shipping_zone',
'regulatory',
'capacity',
'inventory',
'customer_eligibility',
'channel_access',
'operating_hours',
'custom'
)
),
rule_expression jsonb not null,
inclusion_effect text not null check (
inclusion_effect in ('include', 'exclude', 'weight')
),
rationale text not null,
evidence_type text not null check (
evidence_type in ('observed', 'policy', 'assumption', 'modeled')
)
);
Example:
{
"rule_type": "distance",
"rule_expression": {
"origin": "service_location_001",
"maximum_drive_minutes": 30
},
"inclusion_effect": "exclude",
"evidence_type": "policy"
}