/ docs / 09-business / pricing-strategy.md
pricing-strategy.md
  1  ---
  2  title: 'Pricing Strategy'
  3  category: 'business'
  4  last_verified: '2026-02-15'
  5  related_files:
  6    - 'src/cron/weekly-repricing.js'
  7    - 'src/utils/country-pricing.js'
  8  tags: ['pricing', 'strategy', 'cron', 'scheduling', 'testing', 'database', 'api', 'ai']
  9  status: 'current'
 10  ---
 11  
 12  # Multi-Country Pricing Strategy
 13  
 14  ## Overview
 15  
 16  The 333 Method uses **PPP-adjusted pricing** (Purchasing Power Parity) to ensure fair and competitive pricing across 25 countries. Prices are calculated based on World Bank GDP per capita data and use psychological pricing (97/47 endings) for optimal conversion.
 17  
 18  ## Pricing Tiers
 19  
 20  ### Price Distribution
 21  
 22  | Tier           | Price (USD) | Countries                                                                                                               | Count |
 23  | -------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------- | ----- |
 24  | **Premium+**   | $397        | Singapore, Ireland                                                                                                      | 2     |
 25  | **Premium**    | $297        | US, Norway, Switzerland, Netherlands, Denmark                                                                           | 5     |
 26  | **Standard**   | $197-247    | Austria, Sweden, Belgium, Australia, Germany, Canada, South Korea, France, UK, New Zealand, Italy, Japan, Spain, Poland | 14    |
 27  | **Emerging**   | $97         | China, Mexico                                                                                                           | 2     |
 28  | **Developing** | $47         | Indonesia, India                                                                                                        | 2     |
 29  
 30  ### Statistics
 31  
 32  - **Average Price**: $223 USD
 33  - **Price Range**: $47 - $397 USD
 34  - **GDPR Countries**: 13 (all EU/EEA countries)
 35  - **Price-Sensitive Markets**: 4 (China, Mexico, Indonesia, India)
 36  
 37  ## Pricing Philosophy
 38  
 39  ### 1. PPP-Adjusted Formula
 40  
 41  ```
 42  Local Price = Base Price × (Local PPP GDP per capita / US PPP GDP per capita)
 43  ```
 44  
 45  **Base Price**: $297 USD (United States)
 46  
 47  This ensures pricing reflects local economic conditions and purchasing power.
 48  
 49  ### 2. Cultural Pricing Strategy
 50  
 51  Prices are rounded using **culturally-appropriate strategies** based on regional consumer psychology:
 52  
 53  **Western Markets (US, CA, AU, NZ, UK, FR, IT, ES, IE)**
 54  
 55  - **Charm Pricing**: Endings in 7 or 9 (e.g., $297, $337, $349)
 56  - **Research**: MIT study shows 24%+ conversion lift
 57  - **Psychology**: Creates perceived value ("under $300")
 58  
 59  **German/Nordic Markets (DE, NO, SE, DK, CH, AT)**
 60  
 61  - **Round Numbers**: Multiples of 10, 50, 100 (e.g., €210, kr2,850, CHF 230)
 62  - **Psychology**: Efficiency preference, quick decision-making
 63  - **Culture**: Values transparency and clarity
 64  
 65  **East Asian Markets**
 66  
 67  - **China**: Lucky 8 or 88 endings (¥688, ¥358) - prosperity symbol
 68  - **Japan**: Round numbers (¥31,000) - honest pricing preference
 69  - **Korea**: Round thousands with 8, avoid 4 and 7 (₩328,000)
 70  
 71  **India**
 72  
 73  - **Auspicious 1**: Endings in 1 (₹3,001, ₹351)
 74  - **Culture**: Number 1 signifies new beginnings
 75  
 76  **Latin America (Mexico)**
 77  
 78  - **Round Numbers**: Multiples of 100 or 500 ($1,500)
 79  - **Psychology**: Stability signal during economic uncertainty
 80  
 81  **See**: [cultural-pricing.md](./CULTURAL-PRICING.md) for detailed research and rationale.
 82  
 83  ### 3. Price Constraints
 84  
 85  - **Floor**: $47 USD (20% of base price)
 86  - **Ceiling**: $450 USD (150% of base price)
 87  - **Prevents**: Extreme outliers while respecting economic differences
 88  
 89  ## Implementation
 90  
 91  ### Weekly Repricing (Automated)
 92  
 93  Prices are automatically updated weekly to reflect:
 94  
 95  1. **Exchange Rate Fluctuations**: Via Fixer.io API (free tier)
 96  2. **PPP Adjustments**: Based on World Bank data
 97  3. **Cultural Rounding**: Applied per market preferences
 98  
 99  ```bash
100  # Run manually
101  node src/cron/weekly-repricing.js
102  
103  # Automated via cron (Sunday 2am)
104  0 2 * * 0 cd /path/to/333Method && node src/cron/weekly-repricing.js
105  ```
106  
107  **Price Override Protection**: Countries with `price_overridden=1` are skipped to preserve manual cultural optimizations.
108  
109  ### Database Schema
110  
111  Pricing is stored in the `countries` table:
112  
113  ```sql
114  CREATE TABLE countries (
115    country_code TEXT PRIMARY KEY,
116    country_name TEXT NOT NULL,
117    price_usd INTEGER NOT NULL,        -- Price in cents (e.g., 29700 = $297)
118    pricing_tier TEXT NOT NULL,
119    currency_code TEXT NOT NULL,
120    currency_symbol TEXT NOT NULL,
121    ppp_gdp_per_capita INTEGER,
122    google_domain TEXT NOT NULL,
123    accept_language TEXT,              -- For HTTP requests
124    mobile_pattern TEXT,               -- Regex for mobile detection
125    common_cities TEXT,                -- JSON array
126    requires_gdpr_check BOOLEAN,
127    is_price_sensitive BOOLEAN,
128    -- ... additional fields
129  );
130  ```
131  
132  ### Usage
133  
134  ```javascript
135  import { getPrice, getCountry } from './utils/country-pricing.js';
136  
137  // Get pricing for a country
138  const auPrice = getPrice('AU');
139  // {
140  //   priceUsd: 247,
141  //   currency: 'AUD',
142  //   currencySymbol: '$',
143  //   formattedPrice: '$247.00',
144  //   tier: 'Standard',
145  //   isPriceSensitive: false
146  // }
147  
148  // Get full country config
149  const country = getCountry('AU');
150  // {
151  //   countryCode: 'AU',
152  //   countryName: 'Australia',
153  //   googleDomain: 'google.com.au',
154  //   acceptLanguage: 'en-AU,en;q=0.9',
155  //   priceUsd: 247,
156  //   commonCities: ['sydney', 'melbourne', 'brisbane', ...],
157  //   requiresGdprCheck: false
158  // }
159  ```
160  
161  ### CLI Tools
162  
163  ```bash
164  # View pricing summary
165  node src/utils/country-pricing.js summary
166  
167  # Get price for specific country
168  node src/utils/country-pricing.js price AU
169  
170  # Get all countries in a tier
171  node src/utils/country-pricing.js tier Premium
172  
173  # Override price (with market research justification)
174  node src/utils/country-pricing.js override AU 349 "Market research shows 40% higher willingness to pay"
175  ```
176  
177  ## Country-Specific Considerations
178  
179  ### Premium Markets (High purchasing power)
180  
181  **US, Norway, Switzerland, Netherlands, Denmark, Singapore, Ireland**
182  
183  - Premium positioning
184  - Emphasis on quality and expertise
185  - Higher expectations for service delivery
186  - More competitive landscape
187  
188  ### Price-Sensitive Markets
189  
190  **China, Mexico, Indonesia, India**
191  
192  - Value-focused messaging
193  - ROI emphasis in proposals
194  - Flexible payment terms consideration
195  - Local market research recommended
196  
197  ### GDPR Markets (13 countries)
198  
199  **EU/EEA countries requiring compliance**
200  
201  - Additional legal requirements
202  - Privacy-first messaging
203  - Company registration verification
204  - Data processing transparency
205  
206  ## Price Override Process
207  
208  When market research indicates a different optimal price point:
209  
210  1. **Research**: Gather data on local competitors, willingness to pay
211  2. **Document**: Record reasoning and data sources
212  3. **Override**: Use CLI tool to update price
213  4. **Track**: Monitor conversion rates and adjust
214  
215  ```bash
216  # Example: Australia market research shows $349 optimal
217  node src/utils/country-pricing.js override AU 349 "Competitor analysis: AU agencies charge $400-500 for similar reports. A/B test showed 25% higher conversion at $349 vs $247 with minimal volume loss"
218  ```
219  
220  ## Future Enhancements
221  
222  ### Exchange Rate Integration
223  
224  Currently prices are in USD-equivalent. Future enhancement:
225  
226  ```javascript
227  // Convert to local currency using live exchange rates
228  import { getExchangeRate } from './utils/forex.js';
229  
230  const priceInfo = getPrice('AU');
231  const exchangeRate = await getExchangeRate('USD', 'AUD');
232  const localPrice = Math.round((priceInfo.priceUsd * exchangeRate) / 5) * 5;
233  // Result: $247 USD × 1.52 = ~$375 AUD
234  ```
235  
236  Recommended API: [ExchangeRate-API](https://www.exchangerate-api.com/) or [Open Exchange Rates](https://openexchangerates.org/)
237  
238  ### A/B Testing
239  
240  Test pricing variants in select markets:
241  
242  - 10% of traffic sees +10% price
243  - Track conversion rate impact
244  - Optimize per-country based on elasticity
245  
246  ### Seasonal Adjustments
247  
248  Consider holiday/peak season pricing:
249  
250  - Q4 typically higher willingness to pay
251  - Post-holiday budget constraints
252  - Country-specific shopping seasons
253  
254  ## Data Sources
255  
256  - **PPP GDP per capita**: World Bank World Development Indicators (2023)
257  - **Total GDP**: World Bank (2023, current USD)
258  - **Pricing research**: SaaS pricing benchmarks, competitor analysis
259  - **Psychological pricing**: Research from Gumroad, Paddle, Stripe pricing studies
260  
261  ## References
262  
263  - [World Bank Open Data](https://data.worldbank.org/)
264  - [OECD PPP Data](https://www.oecd.org/sdd/purchasingpowerparities-frequentlyaskedquestionsfaqs.htm)
265  - [Psychological Pricing Research](https://www.priceintelligently.com/blog/psychological-pricing-strategies)
266  - [SaaS Pricing Best Practices](https://www.profitwell.com/recur/all/saas-pricing-strategy)
267  
268  ## Migration History
269  
270  - **Migration 022** (2026-01-25): Created countries table with PPP-adjusted pricing
271    - Initial base price: $297 USD
272    - 25 countries across 6 pricing tiers
273    - Universal charm pricing (97/47 endings)
274  - **Migration 024** (2026-02-06): Cultural pricing optimization
275    - Updated 15 countries with culturally-appropriate price endings
276    - Priority levels: CRITICAL (KR, CN), HIGH (US, CA, DE, NO, SE, DK, IN), MEDIUM (JP, AU, NZ, CH, MX, AT)
277    - Added `price_overridden`, `override_reason`, `market_notes`, `override_date` columns
278  - **Weekly Repricing** (2026-02-06): Automated cultural rounding
279    - Added `applyCulturalRounding()` function to `src/cron/weekly-repricing.js`
280    - Respects manual overrides (`price_overridden=1`)
281    - Applies region-specific rounding rules automatically