business-as-code
Version:
Primitives for expressing business logic and processes as code
227 lines (178 loc) • 6.73 kB
Markdown
# Business-as-Code Implementation
## Overview
The `business-as-code` package provides primitives for expressing business logic and processes as code. It includes comprehensive TypeScript types and functions for defining:
- Business entities and organizational structures
- Vision statements and strategic goals
- Products and services with pricing models
- Business processes and workflows
- Key Performance Indicators (KPIs)
- Objectives and Key Results (OKRs)
- Financial metrics and calculations
- Business operations helper ($)
## Package Structure
```
src/
├── index.ts # Main exports
├── types.ts # Core TypeScript types (11KB)
├── business.ts # Business entity functions
├── vision.ts # Vision statement functions
├── goals.ts # Goal management functions
├── product.ts # Product definition functions
├── service.ts # Service definition functions
├── process.ts # Business process functions
├── workflow.ts # Workflow automation functions
├── kpis.ts # KPI tracking functions
├── okrs.ts # OKR management functions
├── financials.ts # Financial calculations
├── dollar.ts # $ business operations helper
└── index.test.ts # Comprehensive tests (27 tests)
examples/
└── basic-usage.ts # Complete usage example
dist/ # Compiled output (52 files)
```
## Implementation Details
### Core Types (types.ts)
Defines comprehensive TypeScript interfaces for:
- `BusinessDefinition` - Complete business entity structure
- `GoalDefinition` - Strategic and operational goals
- `ProductDefinition` - Product specifications with roadmap
- `ServiceDefinition` - Service offerings with SLA
- `ProcessDefinition` - Business process steps and metrics
- `WorkflowDefinition` - Automated workflow sequences
- `KPIDefinition` - Key performance indicators
- `OKRDefinition` - Objectives and key results
- `FinancialMetrics` - Financial statements and calculations
- `BusinessOperations` - $ helper interface
### Main Functions
1. **Business()** - Define business entity
- Organizational structure with departments and teams
- Mission, values, and metadata
- Budget and team size tracking
2. **Vision()** - Define vision statement
- Strategic direction
- Success indicators
- Timeframe tracking
3. **Goals()** - Define and track goals
- Goal categories (strategic, operational, financial, etc.)
- Progress tracking (0-100%)
- Dependency management
- Status tracking (not-started, in-progress, at-risk, completed)
4. **Product()** - Define products
- Pricing models (one-time, subscription, usage-based, freemium, tiered)
- Cost of goods sold (COGS)
- Product roadmap
- Gross margin calculations
5. **Service()** - Define services
- Pricing models (hourly, fixed, retainer, value-based)
- Service level agreements (SLA)
- Delivery time estimation
6. **Process()** - Define business processes
- Process steps with automation levels
- Duration calculations
- Automation percentage tracking
- Process metrics
7. **Workflow()** - Define automated workflows
- Event, schedule, webhook, and manual triggers
- Action sequences (send, create, update, delete, notify, call, wait)
- Conditional execution
- Template variable substitution
8. **kpis()** - Track key performance indicators
- Categories (financial, customer, operations, people, growth)
- Target vs. current value tracking
- Achievement calculations
- Health score aggregation
9. **okrs()** - Define OKRs
- Objective statements
- Key results with progress tracking
- Confidence scoring
- Status management
10. **financials()** - Calculate financial metrics
- Gross profit and margin
- Operating income and margin
- Net income and margin
- EBITDA and margin
- Burn rate and runway
- Customer acquisition cost (CAC)
- Customer lifetime value (LTV)
- Return on investment (ROI)
11. **$** - Business operations helper
- Currency formatting
- Percentage calculations
- Growth rate calculations
- Margin calculations
- ROI calculations
- LTV/CAC calculations
- Burn rate and runway
- Business context management
## Key Features
### Type Safety
- Comprehensive TypeScript types
- Full IntelliSense support
- Compile-time validation
### Validation
- Input validation for all functions
- Error messages for invalid data
- Circular dependency detection (goals)
- Constraint checking (budgets, progress, etc.)
### Calculations
- Financial metrics (margins, ROI, etc.)
- Progress tracking (goals, OKRs)
- Time-based calculations (duration, runway)
- Achievement percentages
### Flexibility
- Optional fields with sensible defaults
- Metadata support on all entities
- Extensible interfaces
- Multiple pricing models
## Test Coverage
27 comprehensive tests covering:
- Business entity creation and validation
- Vision statement validation
- Goal progress tracking and dependencies
- Product gross margin calculations
- Service pricing models
- Process automation tracking
- Workflow trigger validation
- KPI target achievement
- OKR progress calculations
- Financial metric calculations
- $ helper utility functions
All tests passing ✓
## Build Output
Successfully compiled to:
- JavaScript (ES modules)
- TypeScript declarations (.d.ts)
- Source maps (.js.map, .d.ts.map)
Total: 52 files in dist/ directory
## Dependencies
- `ai-functions` (workspace:*) - For AI integrations
## Next Steps
The package is fully implemented and ready for use. Potential enhancements:
1. Add more financial calculations (DCF, NPV, IRR)
2. Add forecasting functions
3. Add data visualization helpers
4. Add export functions (CSV, Excel, PDF)
5. Add time-series analysis for KPIs and financials
6. Add goal/OKR templates for common scenarios
7. Integration with actual data sources
8. Reporting and dashboard generation
## Usage Example
See `examples/basic-usage.ts` for a complete working example demonstrating all features.
```typescript
import { Business, Goals, Product, kpis, okrs, financials, $ } from 'business-as-code'
// Define business
const company = Business({ name: 'Acme Corp', ... })
// Track goals
const goals = Goals([...])
// Define products
const product = Product({ name: 'Widget Pro', price: 99, ... })
// Track KPIs
const kpiList = kpis([...])
// Define OKRs
const okrList = okrs([...])
// Calculate financials
const metrics = financials({ revenue: 1000000, ... })
// Use $ helper
console.log($.format(1234.56)) // "$1,234.56"
console.log($.growth(120, 100)) // 20
```