-
Notifications
You must be signed in to change notification settings - Fork 0
Comparing changes
Open a pull request
base repository: Tellimer/open-source
base: econify-v1.1.9
head repository: Tellimer/open-source
compare: econify-v1.2.0
- 5 commits
- 9 files changed
- 1 contributor
Commits on Sep 30, 2025
-
feat(econify): add Employed Persons to stock patterns + E2E test
- Added 'employed persons', 'employed', 'employment level', 'total employment', 'labour force' to STOCK_PATTERNS - Added comprehensive E2E test for Employed Persons indicator - Test verifies stock indicators do NOT get time conversion (periodicity is just release cadence) - Test covers quarterly and monthly data from Angola, Albania, Armenia - Validates that values stay unchanged (no division by time period) - Validates normalized units are 'Thousands' not 'thousands per month' - Documents that auto-targeting should skip time dimension for stock indicators All 409 tests passing ✅
Configuration menu - View commit details
-
Copy full SHA for 89acaf7 - Browse repository at this point
Copy the full SHA 89acaf7View commit details -
feat(econify): smart auto-targeting - skip time dimension for stock/r…
…ate indicators BREAKING CHANGE: Auto-targeting now intelligently skips time dimension for stock and rate indicators ## What Changed Auto-targeting now uses indicator classification to determine which dimensions to target: - **Stock indicators** (population, debt, reserves, employed persons) → Skip time dimension - **Rate indicators** (CPI, unemployment rate, inflation) → Skip time dimension - **Flow indicators** (GDP, exports, sales, revenue) → Include time dimension - **Non-monetary indicators** → Can participate in magnitude/time targeting when currency not in dimensions ## Why This Matters Previously, auto-targeting would apply time conversion to ALL indicators, including stocks: - ❌ "Employed Persons: 12,814 thousand" → divided by 3 → "4,271 thousand per month" - ❌ "Debt: 500 billion" → "500 billion per month" (nonsensical) Now it correctly handles each type: - ✅ "Employed Persons: 12,814 thousand" → stays "12,814 thousand" (snapshot) - ✅ "GDP: 300 million per quarter" → "100 million per month" (flow, converted) - ✅ "CPI: 105.2 points" → stays "105.2 points" (index, no time) ## Implementation 1. **Auto-targeting classification**: Calls `classifyIndicator()` for each indicator group 2. **Smart dimension selection**: Skips time dimension when `classification.type === 'stock' || 'rate'` 3. **Non-monetary inclusion**: Only filters by `isMonetary` when currency is in `autoTargetDimensions` 4. **Clear reasoning**: Explain metadata shows `time=skipped(stock indicator, no time dimension)` ## Test Updates - Added comprehensive E2E test for Employed Persons (stock indicator) - Updated auto-targeting tests to use flow indicators (Exports) instead of stock (Debt) - Added test for stock indicators automatically skipping time dimension - Updated tests to handle non-monetary indicators in magnitude/time targeting ## Files Changed - `src/normalization/auto_targets.ts` - Smart classification-based dimension selection - `src/workflows/e2e_comprehensive_test.ts` - E2E test for Employed Persons - `src/normalization/auto_targets_test.ts` - Updated tests for new behavior - `src/api/pipeline_api_test.ts` - Fixed tests to use flow indicators All 410 tests passing ✅
Configuration menu - View commit details
-
Copy full SHA for 905a5c8 - Browse repository at this point
Copy the full SHA 905a5c8View commit details -
docs(econify): add comprehensive smart auto-targeting documentation
## Documentation Updates Added detailed documentation for the new smart auto-targeting feature that intelligently skips time dimension for stock/rate indicators. ### Changes 1. **README.md** - Added Smart Auto-Targeting to Core Capabilities - Highlighted the prevention of incorrect conversions (e.g., employed persons ÷ 3) 2. **docs/guides/per-indicator-normalization.md** - Added comprehensive "Smart Auto-Targeting: Indicator Classification" section - Documented all three indicator types (Stock, Flow, Rate) with examples - Showed before/after comparisons demonstrating the fix - Explained global configuration with smart targeting - Updated summary to include smart targeting benefits ### Key Documentation Points - **Stock Indicators**: Population, Debt, Employed Persons → Time dimension skipped - **Flow Indicators**: GDP, Exports, Revenue → Time dimension included - **Rate Indicators**: CPI, Inflation, Unemployment Rate → Time dimension skipped - **Real-world examples** showing correct vs incorrect behavior - **Configuration guidance** for using global autoTargetDimensions ### Examples Included - Employed Persons: 12,814 thousand stays 12,814 (not divided by 3) - GDP: 300M/quarter → 100M/month (correctly converted) - CPI: 105.2 points stays 105.2 (no conversion) This documentation helps users understand: 1. Why their stock indicator data was being incorrectly converted 2. How the new smart targeting fixes it automatically 3. How to configure their pipeline to benefit from it
Configuration menu - View commit details
-
Copy full SHA for de4c261 - Browse repository at this point
Copy the full SHA de4c261View commit details -
docs(econify): add comprehensive smart auto-targeting documentation
## Documentation Updates Added detailed documentation for the new smart auto-targeting feature that intelligently skips time dimension for stock/rate indicators. ### Changes 1. **README.md** - Added Smart Auto-Targeting to Core Capabilities - Highlighted the prevention of incorrect conversions (e.g., employed persons ÷ 3) 2. **docs/guides/per-indicator-normalization.md** - Added comprehensive "Smart Auto-Targeting: Indicator Classification" section - Documented all three indicator types (Stock, Flow, Rate) with examples - Showed before/after comparisons demonstrating the fix - Explained global configuration with smart targeting - Updated summary to include smart targeting benefits ### Key Documentation Points - **Stock Indicators**: Population, Debt, Employed Persons → Time dimension skipped - **Flow Indicators**: GDP, Exports, Revenue → Time dimension included - **Rate Indicators**: CPI, Inflation, Unemployment Rate → Time dimension skipped - **Real-world examples** showing correct vs incorrect behavior - **Configuration guidance** for using global autoTargetDimensions ### Examples Included - Employed Persons: 12,814 thousand stays 12,814 (not divided by 3) - GDP: 300M/quarter → 100M/month (correctly converted) - CPI: 105.2 points stays 105.2 (no conversion) This documentation helps users understand: 1. Why their stock indicator data was being incorrectly converted 2. How the new smart targeting fixes it automatically 3. How to configure their pipeline to benefit from it
Configuration menu - View commit details
-
Copy full SHA for a3df702 - Browse repository at this point
Copy the full SHA a3df702View commit details -
chore(econify): release v1.2.0 - Smart Auto-Targeting
## Version 1.2.0 Release Major feature release introducing Smart Auto-Targeting that fixes critical stock indicator conversion bugs. ### Highlights 🎯 **Smart Auto-Targeting** - Automatically detects stock/flow/rate indicators - Skips time dimension for stock indicators (Population, Debt, Employed Persons) - Prevents incorrect conversions: "12,814 employed persons" no longer ÷ 3 → "4,271 per month" 🐛 **Critical Bug Fix** - Stock indicators were incorrectly time-converted - Now correctly treats them as snapshots, not rates over time - Affects: Population, Debt, Reserves, Money Supply, Assets, Employed Persons, etc. 📚 **Comprehensive Documentation** - Added Smart Auto-Targeting guide with real-world examples - Before/after comparisons showing the fix - Configuration guidance for global autoTargetDimensions ✅ **All 410 Tests Passing** ### Breaking Changes Auto-targeting behavior changed for stock/rate indicators - they now correctly skip time dimension normalization. This is a correctness fix for mathematically incorrect behavior. ### Files Changed - CHANGELOG.md - Added v1.2.0 release notes - deno.json - Bumped version to 1.2.0
Configuration menu - View commit details
-
Copy full SHA for 45cf593 - Browse repository at this point
Copy the full SHA 45cf593View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff econify-v1.1.9...econify-v1.2.0