spec premium_membership
"""
Premium Membership Benefits
Defines the benefits for premium members.
This spec can be referenced by other specs.
"""
rule discount_rate: 10%
rule free_shipping_threshold: 50
rule points_multiplier: 1.5
rule monthly_bonus_points: 100
spec membership_benefits
"""
Membership Benefits
Shows how specs can reference other specs.
Membership levels have different benefits.
"""
uses membership: premium_membership
data monthly_spend: number
-> minimum 0
-> suggest 150
rule discount: monthly_spend * membership.discount_rate
rule shipping_cost: 10
unless monthly_spend >= membership.free_shipping_threshold
then 0
rule base_points:
monthly_spend * membership.points_multiplier
rule bonus_points: membership.monthly_bonus_points
rule total_points: base_points + bonus_points
rule total_savings: discount + shipping_cost