{"_id":"@bobeec/contribution-margin-core","name":"@bobeec/contribution-margin-core","dist-tags":{"latest":"0.4.0"},"versions":{"0.4.0":{"name":"@bobeec/contribution-margin-core","version":"0.4.0","description":"Core calculation and layout engine for CVP (Cost-Volume-Profit) analysis charts - Chart library agnostic","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./calculator":{"types":"./dist/calculator/index.d.ts","import":"./dist/calculator/index.mjs","require":"./dist/calculator/index.js"},"./validator":{"types":"./dist/validator/index.d.ts","import":"./dist/validator/index.mjs","require":"./dist/validator/index.js"},"./layout":{"types":"./dist/layout/index.d.ts","import":"./dist/layout/index.mjs","require":"./dist/layout/index.js"},"./formatter":{"types":"./dist/formatter/index.d.ts","import":"./dist/formatter/index.mjs","require":"./dist/formatter/index.js"}},"keywords":["cvp-analysis","contribution-margin","break-even-point","management-accounting","calculation-engine","layout-engine"],"author":{"name":"Contribution Margin Chart Contributors"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/contribution-margin/contribution-margin-chart.git","directory":"packages/core"},"bugs":{"url":"https://github.com/contribution-margin/contribution-margin-chart/issues"},"homepage":"https://github.com/contribution-margin/contribution-margin-chart/tree/main/packages/core#readme","devDependencies":{"@vitest/coverage-v8":"^1.0.0","tsup":"^8.0.0","typescript":"^5.3.0","vitest":"^1.0.0"},"sideEffects":false,"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","typecheck":"tsc --noEmit","clean":"rm -rf dist"},"_id":"@bobeec/contribution-margin-core@0.4.0","_integrity":"sha512-o5o0mZyUAjFJgF2DRdjX+XMgJXROUN+u/YYvAeSOY79CrL/MXCJHqDrysijv9eGV9w676vx7hemdT3Bv1NjvYQ==","_resolved":"C:\\Users\\muram\\AppData\\Local\\Temp\\f9a0cb459b3f1181d632f332f28de5de\\bobeec-contribution-margin-core-0.4.0.tgz","_from":"file:bobeec-contribution-margin-core-0.4.0.tgz","_nodeVersion":"24.11.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-o5o0mZyUAjFJgF2DRdjX+XMgJXROUN+u/YYvAeSOY79CrL/MXCJHqDrysijv9eGV9w676vx7hemdT3Bv1NjvYQ==","shasum":"7989c033910052b2b0d07eb555a614fcfe5ed5f5","tarball":"https://registry.npmjs.org/@bobeec/contribution-margin-core/-/contribution-margin-core-0.4.0.tgz","fileCount":35,"unpackedSize":863203,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEs1v++7nDmzYqzlLn4Iij0jS5PGBejDkqyUeDBESGI0AiEAjRVDpXifFMg3aQTMjD2FxQBDQUcQKahykwuLBEqX6eM="}]},"_npmUser":{"name":"bobeec","email":"muramatsuryuichi@gmail.com"},"directories":{},"maintainers":[{"name":"bobeec","email":"muramatsuryuichi@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/contribution-margin-core_0.4.0_1766620825891_0.6531494587304627"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-25T00:00:25.766Z","0.4.0":"2025-12-25T00:00:26.099Z","modified":"2025-12-25T00:00:26.421Z"},"maintainers":[{"name":"bobeec","email":"muramatsuryuichi@gmail.com"}],"description":"Core calculation and layout engine for CVP (Cost-Volume-Profit) analysis charts - Chart library agnostic","homepage":"https://github.com/contribution-margin/contribution-margin-chart/tree/main/packages/core#readme","keywords":["cvp-analysis","contribution-margin","break-even-point","management-accounting","calculation-engine","layout-engine"],"repository":{"type":"git","url":"git+https://github.com/contribution-margin/contribution-margin-chart.git","directory":"packages/core"},"author":{"name":"Contribution Margin Chart Contributors"},"bugs":{"url":"https://github.com/contribution-margin/contribution-margin-chart/issues"},"license":"MIT","readme":"# @bobeec/contribution-margin-core\r\n\r\nCore calculation and layout engine for CVP (Cost-Volume-Profit) analysis charts.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @bobeec/contribution-margin-core\r\n```\r\n\r\n## Usage\r\n\r\n### Basic Calculation\r\n\r\n```typescript\r\nimport { CVPCalculator, calculateCVP } from '@bobeec/contribution-margin-core';\r\n\r\n// Using convenience function\r\nconst result = calculateCVP({\r\n  sales: 10_000_000,\r\n  variableCosts: 6_200_000,\r\n  fixedCosts: 3_100_000,\r\n});\r\n\r\nconsole.log(result.calculated.contributionMargin);    // 3,800,000\r\nconsole.log(result.calculated.breakEvenPoint);        // 8,157,894.74\r\nconsole.log(result.calculated.operatingProfit);       // 700,000\r\n\r\n// Using class instance\r\nconst calculator = new CVPCalculator();\r\nconst calculated = calculator.calculate(input);\r\n```\r\n\r\n### Validation\r\n\r\n```typescript\r\nimport { CVPValidator, validateCVP } from '@bobeec/contribution-margin-core';\r\n\r\nconst validation = validateCVP({\r\n  sales: 10_000_000,\r\n  variableCosts: 12_000_000, // Warning: exceeds sales\r\n  fixedCosts: 3_000_000,\r\n});\r\n\r\nif (validation.warnings.length > 0) {\r\n  console.warn('Warnings:', validation.warnings);\r\n}\r\n```\r\n\r\n### Layout Generation\r\n\r\n```typescript\r\nimport { LayoutEngine, generateLayout } from '@bobeec/contribution-margin-core';\r\n\r\nconst layout = generateLayout(input, {\r\n  showBEPLine: true,\r\n  lossDisplayMode: 'negative-bar',\r\n  colorScheme: 'default',\r\n});\r\n\r\nconsole.log(layout.segments);     // Chart segments\r\nconsole.log(layout.annotations);  // BEP lines, etc.\r\n```\r\n\r\n### Value Formatting\r\n\r\n```typescript\r\nimport { ValueFormatter, formatValue } from '@bobeec/contribution-margin-core';\r\n\r\nconst formatter = new ValueFormatter({\r\n  unitMode: 'thousand',\r\n  locale: 'ja-JP',\r\n  currencySymbol: '¥',\r\n});\r\n\r\nconsole.log(formatter.format(10_000_000));       // \"¥10,000十E�E\"\r\nconsole.log(formatter.formatPercentage(0.38));   // \"38.0%\"\r\n```\r\n\r\n## API Reference\r\n\r\nSee the [main documentation](../../README.md) for full API reference.\r\n\r\n## License\r\n\r\nMIT\r\n\r\n","readmeFilename":"README.md","_rev":"1-585ce1c12f01238e5986b2aa6edc72db"}