Knowledge Domain Database - Marketing & SEO
How does the domain work before writing a line of code? Choose a document from the left tree: each page explains part of the model.
Business Rules - Marketing SEO
This document lists the core business rules of the Marketing SEO domain, each with a unique BR-NNN code. Every rule is technology-independent and describes an invariant constraint on the behaviour of the domain.
---
BR-001 - CPA and CAC are distinct, non-interchangeable metrics
Code: BR-001
Name: CPA (per conversion) does not equal CAC (per acquired customer)
Description: CPA (Cost Per Acquisition) measures the average cost per single conversion (lead, sale, install) as total spend / number of conversions. CAC (Customer Acquisition Cost) measures the cost to acquire a new paying customer and typically includes all marketing and sales costs. The two metrics are NOT interchangeable.
Rationale: Avoid efficiency mis-evaluation: a conversion is not always a customer.
Priority: HIGH
Actors: Marketing Manager, Analytics System
Traceability: glossary.md CPA, CAC; D-37-05 (CPA vs CAC disambiguated).
---
BR-002 - ROAS and CPM expressed as integer permille
Code: BR-002
Name: ROAS and CPM are stored as INTEGER permille
Description: ROAS (Return on Ad Spend) and CPM (Cost Per Mille) are expressed as integers in permille to avoid floating point: e.g. ROAS 4.00x = 4000 ‰ (4000/1000), CPM 1.25 = 1250 ‰. Calculations and comparisons run on integers.
Rationale: Avoid rounding errors and unit ambiguity in advertising calculations (D-37-05).
Priority: HIGH
Actors: Analytics System, Marketing Manager
Traceability: glossary.md ROAS, CPM; D-37-05 (ROAS/CPM INTEGER permille).
---
BR-003 - Every campaign has an objective and a primary metric
Code: BR-003
Name: A Campaign defines objective and primary metric before activation
Description: A Campaign cannot be activated without a declared objective (awareness, lead, sale) and a coherent primary metric (e.g. CPM for awareness, CPA for conversion, ROAS for sale). The objective determines the evaluation metric.
Rationale: Ensure measurability and comparability of campaigns.
Priority: HIGH
Actors: Marketing Manager, Analytics System
Traceability: state-machines/campaign-lifecycle.md; events/domain-events.md CampaignLaunched.
---
BR-004 - SEO content with explicit search intent
Code: BR-004
Name: Every SEOContent is associated to a search intent and target keywords
Description: An SEOContent must declare the served search intent (informational, navigational, transactional, commercial) and the target Keyword. No content is published without an intent-keyword mapping.
Rationale: Align content to real demand and improve relevance in search engines.
Priority: MEDIUM
Actors: SEO Specialist, Content Creator
Traceability: glossary.md (search intent, keyword); events/domain-events.md ContentPublished.
---
BR-005 - A/B test with a single variable and significance
Code: BR-005
Name: An ABTest isolates one variable and declares a result when significant
Description: An ABTest compares two variants changing a single variable at a time and declares a winner only on reaching the planned statistical significance. No winners on insufficient samples.
Rationale: Avoid wrong conclusions from statistical noise; optimise on reliable grounds.
Priority: MEDIUM
Actors: Marketing Manager, Analytics System
Traceability: glossary.md (A/B test); events/domain-events.md ABTestWinnerIdentified.
---
BR-006 - Consent and privacy in tracking (descriptive)
Code: BR-006
Name: Conversion tracking respects consent and privacy
Description: Tracking of ConversionRecorded and audience data respects GDPR/ePrivacy principles: consent basis for non-strictly-necessary cookies/trackers, minimisation and purpose. Descriptive model rule, not legal advice.
Rationale: Ensure data-driven marketing complies with the European privacy framework.
Priority: HIGH
Actors: Marketing Manager, Analytics System
Traceability: GDPR/ePrivacy; D-37-05 (descriptive-only); events/domain-events.md ConversionRecorded.
---
BR-007 - Exhausted budget suspends delivery
Code: BR-007
Name: Reaching the budget suspends campaign delivery
Description: When a Campaign exhausts its allocated budget (BudgetExhausted), delivery is suspended and the campaign moves to paused; no further spend is allowed without a new allocation.
Rationale: Control ad spend and protect the overall budget.
Priority: HIGH
Actors: Marketing Manager
Traceability: state-machines/campaign-lifecycle.md; events/domain-events.md BudgetExhausted.
---
BR-008 - Engagement and funnel measured per stage
Code: BR-008
Name: The EngagementScore is computed and attributed to a FunnelStage
Description: An audience EngagementScore is computed on defined signals and attributed to a FunnelStage (awareness, consideration, decision). Progression between stages is measured, not assumed.
Rationale: Measure funnel effectiveness and drive nurturing.
Priority: MEDIUM
Actors: Analytics System, Marketing Manager
Traceability: glossary.md Marketing funnel; events/domain-events.md EngagementScoreComputed.
---