UNPKG

business-as-code

Version:

Primitives for expressing business logic and processes as code

137 lines 4.14 kB
/** * Key Performance Indicators (KPIs) management * * Uses org.ai KPI types for standardized KPI definitions across the ecosystem. */ import type { KPIDefinition, TimePeriod } from './types.js'; import type { KPI as OrgKPI, KPICategory, KPITrend, KPIFrequency, KPIHistoryEntry } from 'org.ai'; export type { OrgKPI, KPICategory, KPITrend, KPIFrequency, KPIHistoryEntry }; /** * Convert a business-as-code KPIDefinition to an org.ai KPI * * @param definition - Business KPI definition * @param id - Unique identifier for the KPI * @returns org.ai KPI object */ export declare function toOrgKPI(definition: KPIDefinition, id: string): OrgKPI; /** * Convert an org.ai KPI to a business-as-code KPIDefinition * * @param kpi - org.ai KPI object * @returns Business KPI definition */ export declare function fromOrgKPI(kpi: OrgKPI): KPIDefinition; /** * Define Key Performance Indicators for tracking business metrics * * @example * ```ts * const businessKPIs = kpis([ * { * name: 'Monthly Recurring Revenue', * description: 'Total predictable revenue per month', * category: 'financial', * unit: 'USD', * target: 100000, * current: 85000, * frequency: 'monthly', * dataSource: 'Billing System', * formula: 'SUM(active_subscriptions.price)', * }, * { * name: 'Customer Churn Rate', * description: 'Percentage of customers lost per month', * category: 'customer', * unit: 'percent', * target: 5, * current: 3.2, * frequency: 'monthly', * dataSource: 'CRM', * formula: '(churned_customers / total_customers) * 100', * }, * { * name: 'Net Promoter Score', * description: 'Customer satisfaction and loyalty metric', * category: 'customer', * unit: 'score', * target: 50, * current: 48, * frequency: 'quarterly', * dataSource: 'Survey Platform', * }, * ]) * ``` */ export declare function kpis(definitions: KPIDefinition[]): KPIDefinition[]; /** * Define a single KPI */ export declare function kpi(definition: KPIDefinition): KPIDefinition; /** * Calculate KPI achievement percentage */ export declare function calculateAchievement(kpi: KPIDefinition): number; /** * Check if KPI meets target */ export declare function meetsTarget(kpi: KPIDefinition): boolean; /** * Update KPI current value */ export declare function updateCurrent(kpi: KPIDefinition, value: number): KPIDefinition; /** * Update KPI target */ export declare function updateTarget(kpi: KPIDefinition, target: number): KPIDefinition; /** * Get KPIs by category */ export declare function getKPIsByCategory(kpis: KPIDefinition[], category: KPIDefinition['category']): KPIDefinition[]; /** * Get KPIs by frequency */ export declare function getKPIsByFrequency(kpis: KPIDefinition[], frequency: TimePeriod): KPIDefinition[]; /** * Get KPIs that meet their targets */ export declare function getKPIsOnTarget(kpis: KPIDefinition[]): KPIDefinition[]; /** * Get KPIs that don't meet their targets */ export declare function getKPIsOffTarget(kpis: KPIDefinition[]): KPIDefinition[]; /** * Calculate overall KPI health score (0-100) */ export declare function calculateHealthScore(kpis: KPIDefinition[]): number; /** * Group KPIs by category */ export declare function groupByCategory(kpis: KPIDefinition[]): Map<string, KPIDefinition[]>; /** * Calculate variance from target */ export declare function calculateVariance(kpi: KPIDefinition): number; /** * Calculate variance percentage from target */ export declare function calculateVariancePercentage(kpi: KPIDefinition): number; /** * Format KPI value with unit */ export declare function formatValue(kpi: KPIDefinition, value?: number): string; /** * Compare KPI performance over time */ export declare function comparePerformance(current: KPIDefinition, previous: KPIDefinition): { change: number; changePercent: number; improved: boolean; }; /** * Validate KPI definitions */ export declare function validateKPIs(kpis: KPIDefinition[]): { valid: boolean; errors: string[]; }; //# sourceMappingURL=kpis.d.ts.map