Inclusion Type Decision Tree
Purpose: Determine the correct ServiceInclusionType for a child service.
Decision Tree
flowchart TD
Start[Child Service] --> Q1{Is this service<br/>essential for parent<br/>to function?}
Q1 -->|Yes| Q2{Can parent exist<br/>without this service?}
Q2 -->|No, required| MANDATORY[InclusionType: MANDATORY<br/>Auto-activated with parent]
Q2 -->|Yes, but degraded| Q3{Default on or off?}
Q1 -->|No| Q4{Who decides activation?}
Q4 -->|Customer| OPTIONAL[InclusionType: OPTIONAL<br/>User selects at purchase]
Q4 -->|System rules| CONFIGURABLE[InclusionType: CONFIGURABLE<br/>Rules determine activation]
Q4 -->|Always included| MANDATORY
Q3 -->|Default on| MANDATORY
Q3 -->|Default off| OPTIONAL
style MANDATORY fill:#4CAF50
style OPTIONAL fill:#2196F3
style CONFIGURABLE fill:#FF9800
Inclusion Types Explained
MANDATORY (Auto-Activated)
Definition: Service is automatically activated when parent activates. User has no choice.
Characteristics:
- Activates without user intervention
- Cannot be deactivated independently
- Terminates when parent terminates
- No separate billing line (bundled)
Use When:
- Parent cannot function without this service
- Regulatory requirement (e.g., Number Registry for MSN)
- Technical dependency (e.g., NBN Access for NBN AVC)
- Default functionality (e.g., basic voicemail)
Examples:
| Service | Parent | Why MANDATORY |
|---|---|---|
| NBN_ACCESS | NBN_BASE | Cannot use NBN without access service |
| NBN_AVC | NBN_ACCESS | AVC is technical component of Access |
| NUMBER_REGISTRY_AU_IPND | MSN | IPND registration is regulatory requirement |
| VOICEMAIL_BASIC | MOBILE_BASE | Basic voicemail included by default |
OPTIONAL (User Choice)
Definition: Service is offered to customer at purchase. Customer decides to include or not.
Characteristics:
- Presented in service configurator
- Customer explicitly chooses
- Can be added/removed independently
- Has separate billing line
Use When:
- Customer pays extra for this service
- Not everyone needs/wants this service
- Service is a premium upgrade
- Service is add-on functionality
Examples:
| Service | Parent | Why OPTIONAL |
|---|---|---|
| MOBILE_DATA_50GB | MOBILE_BASE | Customer chooses data tier |
| INTL_ROAMING | MOBILE_BASE | Not all customers travel |
| SPEED_BOOST | NBN_BASE | Premium upgrade |
| STATIC_IP | NBN_BASE | Business customers only |
| VOICEMAIL_VISUAL | VOICEMAIL | Upgrade from basic |
CONFIGURABLE (Rule-Based)
Definition: System determines activation based on rules, eligibility, or configuration.
Characteristics:
- Not directly user-selectable
- Activated based on business rules
- May depend on other services
- May depend on customer attributes
Use When:
- Eligibility constraints apply
- Service depends on customer tier
- Activation requires verification
- Complex business logic needed
Examples:
| Service | Parent | Why CONFIGURABLE |
|---|---|---|
| MSN_GOLD | MOBILE_BASE | Only premium tier eligible |
| ENTERPRISE_FEATURES | ANY_BASE | Only business customers |
| DEVICE_SUBSIDY | MOBILE_BASE | Only contract customers |
| LOYALTY_DISCOUNT | ANY_BASE | Based on tenure rules |
Detailed Decision Criteria
Question 1: Is this service essential for parent to function?
Yes → Likely MANDATORY
Ask follow-up: Can parent exist without this service?
- No → Definitely MANDATORY (technical dependency)
- Yes, but degraded → Probably MANDATORY (default functionality)
No → OPTIONAL or CONFIGURABLE
Ask follow-up: Who decides activation?
- Customer → OPTIONAL
- System rules → CONFIGURABLE
Question 2: Does the customer pay extra?
Yes → Likely OPTIONAL
If customer explicitly chooses and pays extra, it should be OPTIONAL so they can see the price and make a decision.
No → Likely MANDATORY or CONFIGURABLE
If bundled in parent price, it should be MANDATORY. If free but conditional, it should be CONFIGURABLE.
Question 3: Are there eligibility restrictions?
Yes → Likely CONFIGURABLE
If not everyone can get this service, use CONFIGURABLE with eligibility constraints.
No → MANDATORY or OPTIONAL
If available to everyone, use MANDATORY (always included) or OPTIONAL (customer choice).
Question 4: Is this a regulatory requirement?
Yes → MANDATORY
Regulatory services must be MANDATORY to ensure compliance:
- Number Registry for IPND compliance
- Caller ID presentation for TCP Code
- Emergency service access
Service Type Analysis
Mobile Services
| Service | Inclusion Type | Rationale |
|---|---|---|
| MSN_STANDARD | OPTIONAL | Customer chooses number tier |
| MSN_GOLD | CONFIGURABLE | Eligibility check (premium tier) |
| SIM_PHYSICAL | OPTIONAL | Customer chooses SIM type |
| SIM_ESIM | OPTIONAL | Customer chooses SIM type |
| MOBILE_DATA_* | OPTIONAL | Customer chooses data tier |
| VOICEMAIL | MANDATORY | Basic voicemail included |
| VOICEMAIL_VISUAL | OPTIONAL | Premium upgrade |
| INTL_ROAMING | OPTIONAL | Customer chooses |
| NUMBER_REGISTRY_AU_IPND | MANDATORY | Regulatory requirement |
| DEVICE_HANDSET | OPTIONAL | Customer chooses device |
Internet Services
| Service | Inclusion Type | Rationale |
|---|---|---|
| NBN_ACCESS | MANDATORY | Technical requirement |
| NBN_AVC | MANDATORY | Technical component of Access |
| NBN_DATA_* | OPTIONAL | Customer chooses data tier |
| DEVICE_MODEM | OPTIONAL | BYO vs provided |
| STATIC_IP | OPTIONAL | Business feature |
| SPEED_BOOST | OPTIONAL | Premium upgrade |
VoIP Services
| Service | Inclusion Type | Rationale |
|---|---|---|
| VOIP_NUMBER | MANDATORY | VoIP needs number |
| VOIP_DATA | OPTIONAL | Customer chooses plan |
| DEVICE_ATA | OPTIONAL | Customer chooses device |
| VOICEMAIL | MANDATORY | Basic included |
| CALL_FORWARDING | OPTIONAL | Premium feature |
Landline Services
| Service | Inclusion Type | Rationale |
|---|---|---|
| LANDLINE_NUMBER | MANDATORY | Landline needs number |
| LANDLINE_FEATURES | OPTIONAL | Customer chooses |
| CALLER_ID | OPTIONAL | Premium feature |
| VOICEMAIL | MANDATORY | Basic included |
Common Mistakes
Mistake 1: Making Paid Services MANDATORY
Customer-paid service as MANDATORY
{
code: 'SVC_MOBILE_DATA_50GB',
inclusionType: ServiceInclusionType.MANDATORY // ← WRONG
}
Customer-paid service as OPTIONAL
{
code: 'SVC_MOBILE_DATA_50GB',
inclusionType: ServiceInclusionType.OPTIONAL // ← CORRECT
}
Impact: Customer cannot remove unwanted paid service. Leads to complaints.
Mistake 2: Making Regulatory Services OPTIONAL
Regulatory service as OPTIONAL
{
code: 'SVC_NUMBER_REGISTRY_AU_IPND',
inclusionType: ServiceInclusionType.OPTIONAL // ← WRONG - Compliance violation!
}
Regulatory service as MANDATORY
{
code: 'SVC_NUMBER_REGISTRY_AU_IPND',
inclusionType: ServiceInclusionType.MANDATORY // ← CORRECT
}
Impact: Non-compliance with IPND registration requirements. Legal risk.
Mistake 3: Making Technical Dependencies OPTIONAL
Technical component as OPTIONAL
{
code: 'SVC_NBN_ACCESS',
inclusionType: ServiceInclusionType.OPTIONAL // ← WRONG
}
Technical component as MANDATORY
{
code: 'SVC_NBN_ACCESS',
inclusionType: ServiceInclusionType.MANDATORY // ← CORRECT
}
Impact: NBN service cannot function without Access. Breaks service.
Mistake 4: Ignoring Eligibility Constraints
Premium service as OPTIONAL without eligibility
{
code: 'SVC_MSN_GOLD',
inclusionType: ServiceInclusionType.OPTIONAL, // ← WRONG - No eligibility check
eligibilityConstraints: [] // Empty!
}
Premium service as CONFIGURABLE with eligibility
{
code: 'SVC_MSN_GOLD',
inclusionType: ServiceInclusionType.CONFIGURABLE, // ← CORRECT
eligibilityConstraints: [
{ type: 'CUSTOMER_TIER', value: 'PREMIUM' }
]
}
Impact: Any customer can select premium number. Business rule violation.
Business Logic Considerations
Billing Impact
| Inclusion Type | Billing Behaviour |
|---|---|
| MANDATORY | Bundled in parent price. No separate line. |
| OPTIONAL | Separate billing line. Customer pays extra. |
| CONFIGURABLE | Depends on rules. May be bundled or separate. |
Activation Flow
| Inclusion Type | Activation Flow |
|---|---|
| MANDATORY | Auto-activates with parent. No user action. |
| OPTIONAL | Displayed in service configurator. User selects. |
| CONFIGURABLE | Eligibility evaluated. Auto-includes if eligible. |
Termination Behaviour
| Inclusion Type | Termination Behaviour |
|---|---|
| MANDATORY | Terminates with parent. Cannot terminate independently. |
| OPTIONAL | Can terminate independently. May terminate with parent. |
| CONFIGURABLE | Follows parent. May have custom rules. |
User Experience Implications
Service Configurator Display
| Inclusion Type | UI Display |
|---|---|
| MANDATORY | Not shown (auto-included) OR shown as "Included" |
| OPTIONAL | Shown with checkbox/toggle. User can select. |
| CONFIGURABLE | Shown with eligibility indicator. May be greyed out. |
Order Summary
| Inclusion Type | Order Summary |
|---|---|
| MANDATORY | Listed under "Included Services" |
| OPTIONAL | Listed under "Selected Add-ons" with price |
| CONFIGURABLE | Listed if activated by rules |
Validation Checklist
After determining inclusion type, verify:
- MANDATORY services have no separate price
- MANDATORY services cannot be deselected in UI
- OPTIONAL services have price configured
- OPTIONAL services appear in service configurator
- CONFIGURABLE services have eligibility constraints
- Regulatory services are MANDATORY
- Technical dependencies are MANDATORY
- Customer-paid add-ons are OPTIONAL
- Premium/restricted services are CONFIGURABLE