@org.ai/examples 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/LICENSE +21 -0
  3. package/README.md +147 -0
  4. package/api-business/index.ts +1179 -0
  5. package/directory/index.ts +1118 -0
  6. package/dist/api-business/index.d.ts +221 -0
  7. package/dist/api-business/index.d.ts.map +1 -0
  8. package/dist/api-business/index.js +1132 -0
  9. package/dist/api-business/index.js.map +1 -0
  10. package/dist/directory/index.d.ts +202 -0
  11. package/dist/directory/index.d.ts.map +1 -0
  12. package/dist/directory/index.js +1073 -0
  13. package/dist/directory/index.js.map +1 -0
  14. package/dist/index.d.ts +75 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +127 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/marketplace/index.d.ts +242 -0
  19. package/dist/marketplace/index.d.ts.map +1 -0
  20. package/dist/marketplace/index.js +1249 -0
  21. package/dist/marketplace/index.js.map +1 -0
  22. package/dist/saas/index.d.ts +151 -0
  23. package/dist/saas/index.d.ts.map +1 -0
  24. package/dist/saas/index.js +1142 -0
  25. package/dist/saas/index.js.map +1 -0
  26. package/dist/startup-studio/index.d.ts +285 -0
  27. package/dist/startup-studio/index.d.ts.map +1 -0
  28. package/dist/startup-studio/index.js +1252 -0
  29. package/dist/startup-studio/index.js.map +1 -0
  30. package/dist/vc-firm/index.d.ts +248 -0
  31. package/dist/vc-firm/index.d.ts.map +1 -0
  32. package/dist/vc-firm/index.js +1335 -0
  33. package/dist/vc-firm/index.js.map +1 -0
  34. package/index.ts +151 -0
  35. package/marketplace/index.ts +1295 -0
  36. package/package.json +58 -0
  37. package/saas/index.ts +1188 -0
  38. package/startup-studio/index.ts +1324 -0
  39. package/tsconfig.json +12 -0
  40. package/vc-firm/index.ts +1430 -0
@@ -0,0 +1,1335 @@
1
+ /**
2
+ * VC Firm Business Example
3
+ *
4
+ * A complete example of a venture capital firm modeled using primitives.org.ai
5
+ * Think: a16z, Sequoia, Benchmark, Accel, Index Ventures
6
+ *
7
+ * @example Catalyst Ventures - An early-stage enterprise VC firm
8
+ * @packageDocumentation
9
+ */
10
+ /**
11
+ * NOTE: These examples demonstrate the DESIRED API shape for business-as-code.
12
+ * Some types may not exist yet in the actual package. The examples serve as
13
+ * documentation and specification for the ideal primitives API.
14
+ */
15
+ // Use any for flexibility - these examples define the ideal API shape
16
+ const Business = (def) => def;
17
+ const Product = (def) => def;
18
+ const Service = (def) => def;
19
+ const Goals = (defs) => defs;
20
+ const Vision = (def) => def;
21
+ const kpis = (defs) => defs;
22
+ const okrs = (defs) => defs;
23
+ const financials = (def) => def;
24
+ const Process = (def) => def;
25
+ const Workflow = (def) => def;
26
+ const createBusinessRole = (def) => def;
27
+ // $ helper placeholder
28
+ const $ = {
29
+ format: (n) => `$${n.toLocaleString()}`,
30
+ growth: (current, previous) => ((current - previous) / previous * 100).toFixed(1),
31
+ margin: (revenue, cost) => ((revenue - cost) / revenue * 100).toFixed(1),
32
+ };
33
+ // =============================================================================
34
+ // 1. BUSINESS DEFINITION
35
+ // =============================================================================
36
+ /**
37
+ * Catalyst Ventures - Early-Stage Enterprise VC
38
+ */
39
+ export const CatalystVenturesBusiness = Business({
40
+ name: 'Catalyst Ventures',
41
+ mission: 'Back exceptional founders building the future of enterprise software',
42
+ values: ['Founder First', 'Long-Term Thinking', 'Operational Excellence', 'Integrity'],
43
+ industry: 'Venture Capital',
44
+ founded: new Date('2015-03-01'),
45
+ stage: 'established',
46
+ structure: {
47
+ departments: [
48
+ {
49
+ name: 'Investment Team',
50
+ headcount: 12,
51
+ budget: 3500000,
52
+ teams: [
53
+ { name: 'Partners', headcount: 4, focus: 'Investment decisions' },
54
+ { name: 'Principals', headcount: 4, focus: 'Deal sourcing & diligence' },
55
+ { name: 'Associates', headcount: 4, focus: 'Research & support' },
56
+ ],
57
+ },
58
+ {
59
+ name: 'Platform',
60
+ headcount: 8,
61
+ budget: 1500000,
62
+ teams: [
63
+ { name: 'Talent', headcount: 3, focus: 'Portfolio recruiting' },
64
+ { name: 'GTM', headcount: 2, focus: 'Sales & marketing support' },
65
+ { name: 'Technical', headcount: 2, focus: 'Technical advisory' },
66
+ { name: 'Marketing', headcount: 1, focus: 'Brand & content' },
67
+ ],
68
+ },
69
+ {
70
+ name: 'Operations',
71
+ headcount: 5,
72
+ budget: 800000,
73
+ teams: [
74
+ { name: 'Finance', headcount: 2, focus: 'Fund accounting' },
75
+ { name: 'Legal', headcount: 1, focus: 'Legal & compliance' },
76
+ { name: 'IR', headcount: 2, focus: 'LP relations' },
77
+ ],
78
+ },
79
+ ],
80
+ },
81
+ });
82
+ // =============================================================================
83
+ // 2. VISION & GOALS
84
+ // =============================================================================
85
+ export const CatalystVision = Vision({
86
+ statement: 'Be the most founder-friendly firm backing category-defining enterprise companies',
87
+ timeHorizon: '2030',
88
+ pillars: [
89
+ 'Founder Partnership',
90
+ 'Platform Value',
91
+ 'Investment Returns',
92
+ 'Thought Leadership',
93
+ ],
94
+ successIndicators: [
95
+ { name: 'AUM', target: 2000000000, unit: 'USD' },
96
+ { name: 'Unicorn Portfolio Companies', target: 15 },
97
+ { name: 'Net IRR', target: 30, unit: '%' },
98
+ { name: 'Founder NPS', target: 90 },
99
+ ],
100
+ });
101
+ export const CatalystGoals = Goals([
102
+ {
103
+ name: 'Close Fund V ($500M)',
104
+ category: 'financial',
105
+ status: 'in-progress',
106
+ progress: 70,
107
+ dueDate: new Date('2024-06-30'),
108
+ owner: 'Managing Partner',
109
+ },
110
+ {
111
+ name: 'Deploy Fund IV',
112
+ category: 'operational',
113
+ status: 'in-progress',
114
+ progress: 60,
115
+ dueDate: new Date('2024-12-31'),
116
+ owner: 'Investment Team',
117
+ },
118
+ {
119
+ name: '3 IPO/M&A Exits',
120
+ category: 'strategic',
121
+ status: 'in-progress',
122
+ progress: 33,
123
+ dueDate: new Date('2024-12-31'),
124
+ owner: 'Managing Partner',
125
+ },
126
+ {
127
+ name: 'Launch AI/ML Thesis',
128
+ category: 'strategic',
129
+ status: 'in-progress',
130
+ progress: 50,
131
+ dueDate: new Date('2024-03-31'),
132
+ owner: 'Partner - AI',
133
+ },
134
+ {
135
+ name: 'Expand Platform Team',
136
+ category: 'operational',
137
+ status: 'in-progress',
138
+ progress: 40,
139
+ dueDate: new Date('2024-06-30'),
140
+ owner: 'Head of Platform',
141
+ },
142
+ ]);
143
+ export const Funds = [
144
+ {
145
+ id: 'fund-i',
146
+ name: 'Catalyst Ventures I',
147
+ vintage: 2015,
148
+ size: 75000000,
149
+ deployed: 75000000,
150
+ reserved: 0,
151
+ status: 'harvesting',
152
+ strategy: 'Seed & Series A Enterprise',
153
+ metrics: { tvpi: 4.2, dpi: 2.8, irr: 38, moic: 4.2 },
154
+ },
155
+ {
156
+ id: 'fund-ii',
157
+ name: 'Catalyst Ventures II',
158
+ vintage: 2017,
159
+ size: 150000000,
160
+ deployed: 150000000,
161
+ reserved: 0,
162
+ status: 'harvesting',
163
+ strategy: 'Seed & Series A Enterprise',
164
+ metrics: { tvpi: 3.5, dpi: 1.5, irr: 32, moic: 3.5 },
165
+ },
166
+ {
167
+ id: 'fund-iii',
168
+ name: 'Catalyst Ventures III',
169
+ vintage: 2019,
170
+ size: 250000000,
171
+ deployed: 225000000,
172
+ reserved: 25000000,
173
+ status: 'investing',
174
+ strategy: 'Seed & Series A Enterprise',
175
+ metrics: { tvpi: 2.8, dpi: 0.5, irr: 28 },
176
+ },
177
+ {
178
+ id: 'fund-iv',
179
+ name: 'Catalyst Ventures IV',
180
+ vintage: 2022,
181
+ size: 400000000,
182
+ deployed: 180000000,
183
+ reserved: 100000000,
184
+ status: 'investing',
185
+ strategy: 'Seed to Series B Enterprise',
186
+ metrics: { tvpi: 1.4, dpi: 0, irr: 0 },
187
+ },
188
+ {
189
+ id: 'fund-v',
190
+ name: 'Catalyst Ventures V',
191
+ vintage: 2024,
192
+ size: 500000000,
193
+ deployed: 0,
194
+ reserved: 150000000,
195
+ status: 'fundraising',
196
+ strategy: 'Seed to Series B Enterprise + AI/ML',
197
+ },
198
+ {
199
+ id: 'growth-i',
200
+ name: 'Catalyst Growth I',
201
+ vintage: 2021,
202
+ size: 300000000,
203
+ deployed: 240000000,
204
+ reserved: 60000000,
205
+ status: 'investing',
206
+ strategy: 'Series B-D Growth',
207
+ metrics: { tvpi: 1.6, dpi: 0.2, irr: 22 },
208
+ },
209
+ ];
210
+ export const TotalAUM = Funds.reduce((sum, f) => sum + f.size, 0);
211
+ export const Portfolio = [
212
+ {
213
+ id: 'datastream',
214
+ name: 'DataStream',
215
+ description: 'Real-time data infrastructure',
216
+ sector: 'Data Infrastructure',
217
+ stage: 'pre-ipo',
218
+ fundId: 'fund-i',
219
+ initialInvestment: new Date('2016-03-15'),
220
+ invested: 8000000,
221
+ ownership: 12,
222
+ currentValuation: 2500000000,
223
+ markValue: 300000000,
224
+ status: 'active',
225
+ board: true,
226
+ leadInvestor: true,
227
+ metrics: { arr: 180000000, growth: 45, employees: 800 },
228
+ },
229
+ {
230
+ id: 'securecloud',
231
+ name: 'SecureCloud',
232
+ description: 'Cloud security platform',
233
+ sector: 'Security',
234
+ stage: 'public',
235
+ fundId: 'fund-i',
236
+ initialInvestment: new Date('2015-09-01'),
237
+ invested: 5000000,
238
+ ownership: 0, // Exited
239
+ status: 'exited',
240
+ board: true,
241
+ leadInvestor: true,
242
+ },
243
+ {
244
+ id: 'aiops',
245
+ name: 'AIOps',
246
+ description: 'AI-powered IT operations',
247
+ sector: 'DevOps',
248
+ stage: 'series-c',
249
+ fundId: 'fund-ii',
250
+ initialInvestment: new Date('2018-06-01'),
251
+ invested: 15000000,
252
+ ownership: 15,
253
+ currentValuation: 800000000,
254
+ markValue: 120000000,
255
+ status: 'active',
256
+ board: true,
257
+ leadInvestor: true,
258
+ metrics: { arr: 65000000, growth: 55, employees: 350 },
259
+ },
260
+ {
261
+ id: 'complyhq',
262
+ name: 'ComplyHQ',
263
+ description: 'Compliance automation',
264
+ sector: 'RegTech',
265
+ stage: 'series-b',
266
+ fundId: 'fund-iii',
267
+ initialInvestment: new Date('2020-02-15'),
268
+ invested: 20000000,
269
+ ownership: 18,
270
+ currentValuation: 400000000,
271
+ markValue: 72000000,
272
+ status: 'active',
273
+ board: true,
274
+ leadInvestor: true,
275
+ metrics: { arr: 32000000, growth: 80, employees: 180 },
276
+ },
277
+ {
278
+ id: 'devflow',
279
+ name: 'DevFlow',
280
+ description: 'Developer productivity platform',
281
+ sector: 'Developer Tools',
282
+ stage: 'series-a',
283
+ fundId: 'fund-iv',
284
+ initialInvestment: new Date('2022-09-01'),
285
+ invested: 12000000,
286
+ ownership: 20,
287
+ currentValuation: 120000000,
288
+ markValue: 24000000,
289
+ status: 'active',
290
+ board: true,
291
+ leadInvestor: true,
292
+ metrics: { arr: 8000000, growth: 120, employees: 45 },
293
+ },
294
+ {
295
+ id: 'mlplatform',
296
+ name: 'MLPlatform',
297
+ description: 'Enterprise ML infrastructure',
298
+ sector: 'AI/ML',
299
+ stage: 'seed',
300
+ fundId: 'fund-iv',
301
+ initialInvestment: new Date('2023-06-15'),
302
+ invested: 4000000,
303
+ ownership: 15,
304
+ currentValuation: 40000000,
305
+ markValue: 6000000,
306
+ status: 'active',
307
+ board: false,
308
+ leadInvestor: true,
309
+ metrics: { arr: 500000, growth: 200, employees: 12 },
310
+ },
311
+ ];
312
+ // =============================================================================
313
+ // 5. SERVICES (Platform)
314
+ // =============================================================================
315
+ export const PlatformServices = {
316
+ talent: Service({
317
+ name: 'Talent Network',
318
+ description: 'Executive recruiting and team building support',
319
+ pricingModel: 'free', // Included for portfolio
320
+ deliverables: [
321
+ 'Executive search support',
322
+ 'Candidate pipeline',
323
+ 'Interview process design',
324
+ 'Compensation benchmarking',
325
+ 'Reference checks',
326
+ ],
327
+ }),
328
+ gtm: Service({
329
+ name: 'GTM Acceleration',
330
+ description: 'Sales and marketing support',
331
+ pricingModel: 'free',
332
+ deliverables: [
333
+ 'Sales playbook development',
334
+ 'Customer introductions',
335
+ 'Marketing strategy',
336
+ 'Pricing optimization',
337
+ 'Partnership introductions',
338
+ ],
339
+ }),
340
+ technical: Service({
341
+ name: 'Technical Advisory',
342
+ description: 'Technical strategy and architecture review',
343
+ pricingModel: 'free',
344
+ deliverables: [
345
+ 'Architecture review',
346
+ 'Technology strategy',
347
+ 'Security assessment',
348
+ 'Scalability planning',
349
+ 'Tech due diligence support',
350
+ ],
351
+ }),
352
+ ops: Service({
353
+ name: 'Operational Excellence',
354
+ description: 'Finance, legal, and operational support',
355
+ pricingModel: 'free',
356
+ deliverables: [
357
+ 'CFO/finance support',
358
+ 'Legal introductions',
359
+ 'Board governance',
360
+ 'Fundraising preparation',
361
+ 'M&A support',
362
+ ],
363
+ }),
364
+ };
365
+ // =============================================================================
366
+ // 6. ORGANIZATION & ROLES
367
+ // =============================================================================
368
+ export const CatalystOrg = {
369
+ id: 'catalyst',
370
+ name: 'Catalyst Ventures',
371
+ settings: {
372
+ timezone: 'America/San_Francisco',
373
+ currency: 'USD',
374
+ fiscalYearStart: 1,
375
+ },
376
+ departments: [
377
+ {
378
+ id: 'investment',
379
+ name: 'Investment Team',
380
+ permissions: {
381
+ deals: ['read', 'write', 'diligence', 'recommend'],
382
+ portfolio: ['read', 'write'],
383
+ fund: ['read'],
384
+ },
385
+ teams: [
386
+ {
387
+ id: 'partners',
388
+ name: 'Partners',
389
+ positions: [
390
+ { id: 'mp', title: 'Managing Partner', roleId: 'managing-partner', reportsTo: null },
391
+ { id: 'gp-1', title: 'General Partner', roleId: 'general-partner', reportsTo: 'mp' },
392
+ { id: 'gp-2', title: 'General Partner', roleId: 'general-partner', reportsTo: 'mp' },
393
+ { id: 'gp-3', title: 'General Partner', roleId: 'general-partner', reportsTo: 'mp' },
394
+ ],
395
+ },
396
+ {
397
+ id: 'principals',
398
+ name: 'Principals',
399
+ positions: [
400
+ { id: 'principal-1', title: 'Principal', roleId: 'principal', reportsTo: 'gp-1' },
401
+ { id: 'principal-2', title: 'Principal', roleId: 'principal', reportsTo: 'gp-2' },
402
+ ],
403
+ },
404
+ {
405
+ id: 'associates',
406
+ name: 'Associates',
407
+ positions: [
408
+ { id: 'associate-1', title: 'Associate', roleId: 'associate', reportsTo: 'principal-1' },
409
+ { id: 'associate-2', title: 'Associate', roleId: 'associate', reportsTo: 'principal-2' },
410
+ ],
411
+ },
412
+ ],
413
+ },
414
+ {
415
+ id: 'platform',
416
+ name: 'Platform',
417
+ permissions: {
418
+ portfolio: ['read', 'support'],
419
+ talent: ['read', 'write'],
420
+ gtm: ['read', 'write'],
421
+ },
422
+ },
423
+ {
424
+ id: 'operations',
425
+ name: 'Operations',
426
+ permissions: {
427
+ fund: ['read', 'write', 'report'],
428
+ lps: ['read', 'write'],
429
+ compliance: ['read', 'write', 'manage'],
430
+ },
431
+ },
432
+ ],
433
+ roles: [
434
+ createBusinessRole({
435
+ id: 'managing-partner',
436
+ name: 'Managing Partner',
437
+ type: 'executive',
438
+ level: 10,
439
+ permissions: {
440
+ deals: ['read', 'write', 'approve', 'veto'],
441
+ fund: ['read', 'write', 'manage'],
442
+ portfolio: ['read', 'write', 'manage'],
443
+ lps: ['read', 'write'],
444
+ },
445
+ canHandle: ['investment-decision', 'fundraising', 'lp-relations', 'exit'],
446
+ canApprove: ['investment', 'follow-on', 'exit', 'hiring'],
447
+ }),
448
+ createBusinessRole({
449
+ id: 'general-partner',
450
+ name: 'General Partner',
451
+ type: 'executive',
452
+ level: 9,
453
+ permissions: {
454
+ deals: ['read', 'write', 'diligence', 'recommend', 'lead'],
455
+ portfolio: ['read', 'write', 'board'],
456
+ fund: ['read'],
457
+ },
458
+ canHandle: ['deal-sourcing', 'diligence', 'board-seat', 'portfolio-support'],
459
+ canApprove: ['term-sheet', 'follow-on'],
460
+ }),
461
+ createBusinessRole({
462
+ id: 'principal',
463
+ name: 'Principal',
464
+ type: 'analyst',
465
+ level: 6,
466
+ permissions: {
467
+ deals: ['read', 'write', 'diligence', 'recommend'],
468
+ portfolio: ['read', 'support'],
469
+ },
470
+ canHandle: ['deal-sourcing', 'diligence', 'portfolio-support'],
471
+ }),
472
+ createBusinessRole({
473
+ id: 'associate',
474
+ name: 'Associate',
475
+ type: 'analyst',
476
+ level: 4,
477
+ permissions: {
478
+ deals: ['read', 'write', 'research'],
479
+ portfolio: ['read'],
480
+ },
481
+ canHandle: ['market-research', 'deal-sourcing', 'diligence-support'],
482
+ }),
483
+ createBusinessRole({
484
+ id: 'platform-head',
485
+ name: 'Head of Platform',
486
+ type: 'manager',
487
+ level: 7,
488
+ permissions: {
489
+ portfolio: ['read', 'support', 'coordinate'],
490
+ talent: ['read', 'write', 'manage'],
491
+ gtm: ['read', 'write', 'manage'],
492
+ },
493
+ canHandle: ['platform-strategy', 'portfolio-support', 'talent-coordination'],
494
+ }),
495
+ createBusinessRole({
496
+ id: 'talent-partner',
497
+ name: 'Talent Partner',
498
+ type: 'support',
499
+ level: 5,
500
+ permissions: {
501
+ portfolio: ['read'],
502
+ talent: ['read', 'write'],
503
+ candidates: ['read', 'write'],
504
+ },
505
+ canHandle: ['executive-search', 'recruiting-support', 'compensation-advice'],
506
+ }),
507
+ createBusinessRole({
508
+ id: 'ir-manager',
509
+ name: 'IR Manager',
510
+ type: 'support',
511
+ level: 5,
512
+ permissions: {
513
+ fund: ['read', 'report'],
514
+ lps: ['read', 'write'],
515
+ },
516
+ canHandle: ['lp-reporting', 'lp-communication', 'agm-coordination'],
517
+ }),
518
+ createBusinessRole({
519
+ id: 'deal-sourcing-bot',
520
+ name: 'Deal Sourcing Bot',
521
+ type: 'agent',
522
+ level: 2,
523
+ workerType: 'ai',
524
+ permissions: {
525
+ deals: ['read', 'write'],
526
+ research: ['read', 'write'],
527
+ },
528
+ canHandle: ['company-research', 'news-monitoring', 'deal-flow-tracking'],
529
+ }),
530
+ ],
531
+ approvalChains: [
532
+ {
533
+ id: 'investment',
534
+ name: 'Investment Approval',
535
+ requestType: 'investment',
536
+ levels: [
537
+ { threshold: 2000000, approvers: [{ type: 'role', roleId: 'general-partner' }] }, // Seed
538
+ { threshold: 10000000, approvers: [{ type: 'role', roleId: 'managing-partner' }, { type: 'role', roleId: 'general-partner' }] }, // Series A
539
+ { threshold: Infinity, approvers: [{ type: 'all-partners' }] }, // Large checks - full partnership
540
+ ],
541
+ },
542
+ {
543
+ id: 'follow-on',
544
+ name: 'Follow-on Approval',
545
+ requestType: 'follow-on',
546
+ levels: [
547
+ { threshold: 5000000, approvers: [{ type: 'role', roleId: 'general-partner' }] },
548
+ { threshold: Infinity, approvers: [{ type: 'role', roleId: 'managing-partner' }] },
549
+ ],
550
+ },
551
+ ],
552
+ routingRules: [
553
+ {
554
+ id: 'deal-research',
555
+ taskType: 'company-research',
556
+ priority: 1,
557
+ assignTo: { roleId: 'associate' },
558
+ },
559
+ {
560
+ id: 'deal-diligence',
561
+ taskType: 'deal-diligence',
562
+ priority: 2,
563
+ assignTo: { roleId: 'principal' },
564
+ },
565
+ {
566
+ id: 'executive-search',
567
+ taskType: 'executive-search',
568
+ priority: 1,
569
+ assignTo: { roleId: 'talent-partner' },
570
+ },
571
+ ],
572
+ };
573
+ // =============================================================================
574
+ // 7. KPIs & METRICS
575
+ // =============================================================================
576
+ export const CatalystKPIs = kpis([
577
+ // Fund Performance
578
+ {
579
+ name: 'AUM',
580
+ category: 'financial',
581
+ target: 2000000000,
582
+ current: 1675000000,
583
+ unit: 'USD',
584
+ frequency: 'quarterly',
585
+ owner: 'Managing Partner',
586
+ },
587
+ {
588
+ name: 'Fund IV TVPI',
589
+ category: 'financial',
590
+ target: 2.0,
591
+ current: 1.4,
592
+ frequency: 'quarterly',
593
+ owner: 'Managing Partner',
594
+ },
595
+ {
596
+ name: 'Net IRR (Blended)',
597
+ category: 'financial',
598
+ target: 25,
599
+ current: 28,
600
+ unit: '%',
601
+ frequency: 'yearly',
602
+ owner: 'Managing Partner',
603
+ },
604
+ // Investment Activity
605
+ {
606
+ name: 'New Investments / Year',
607
+ category: 'operational',
608
+ target: 15,
609
+ current: 8,
610
+ frequency: 'yearly',
611
+ owner: 'Investment Team',
612
+ },
613
+ {
614
+ name: 'Follow-ons / Year',
615
+ category: 'operational',
616
+ target: 20,
617
+ current: 12,
618
+ frequency: 'yearly',
619
+ owner: 'Investment Team',
620
+ },
621
+ {
622
+ name: 'Win Rate (Competitive Deals)',
623
+ category: 'operational',
624
+ target: 40,
625
+ current: 35,
626
+ unit: '%',
627
+ frequency: 'quarterly',
628
+ owner: 'Investment Team',
629
+ },
630
+ // Deal Flow
631
+ {
632
+ name: 'Deals Reviewed / Month',
633
+ category: 'operational',
634
+ target: 200,
635
+ current: 180,
636
+ frequency: 'monthly',
637
+ owner: 'Investment Team',
638
+ },
639
+ {
640
+ name: 'Meetings / Month',
641
+ category: 'operational',
642
+ target: 80,
643
+ current: 65,
644
+ frequency: 'monthly',
645
+ owner: 'Investment Team',
646
+ },
647
+ {
648
+ name: 'Conversion Rate (Meeting to Term Sheet)',
649
+ category: 'operational',
650
+ target: 5,
651
+ current: 4.2,
652
+ unit: '%',
653
+ frequency: 'quarterly',
654
+ owner: 'Investment Team',
655
+ },
656
+ // Portfolio
657
+ {
658
+ name: 'Portfolio Companies',
659
+ category: 'portfolio',
660
+ target: 50,
661
+ current: 42,
662
+ frequency: 'quarterly',
663
+ owner: 'Managing Partner',
664
+ },
665
+ {
666
+ name: 'Unicorns',
667
+ category: 'portfolio',
668
+ target: 10,
669
+ current: 6,
670
+ frequency: 'quarterly',
671
+ owner: 'Managing Partner',
672
+ },
673
+ {
674
+ name: 'Portfolio ARR (Aggregate)',
675
+ category: 'portfolio',
676
+ target: 500000000,
677
+ current: 385000000,
678
+ unit: 'USD',
679
+ frequency: 'quarterly',
680
+ owner: 'Managing Partner',
681
+ },
682
+ // Platform
683
+ {
684
+ name: 'Executive Placements / Year',
685
+ category: 'platform',
686
+ target: 50,
687
+ current: 35,
688
+ frequency: 'yearly',
689
+ owner: 'Head of Platform',
690
+ },
691
+ {
692
+ name: 'Customer Intros / Quarter',
693
+ category: 'platform',
694
+ target: 100,
695
+ current: 75,
696
+ frequency: 'quarterly',
697
+ owner: 'Head of Platform',
698
+ },
699
+ {
700
+ name: 'Founder NPS',
701
+ category: 'customer',
702
+ target: 85,
703
+ current: 78,
704
+ frequency: 'yearly',
705
+ owner: 'Managing Partner',
706
+ },
707
+ // LP Relations
708
+ {
709
+ name: 'LP Re-up Rate',
710
+ category: 'financial',
711
+ target: 90,
712
+ current: 85,
713
+ unit: '%',
714
+ frequency: 'yearly',
715
+ owner: 'IR Manager',
716
+ },
717
+ ]);
718
+ // =============================================================================
719
+ // 8. OKRs
720
+ // =============================================================================
721
+ export const CatalystOKRs = okrs([
722
+ {
723
+ objective: 'Close Fund V Successfully',
724
+ owner: 'Managing Partner',
725
+ period: 'H1 2024',
726
+ keyResults: [
727
+ {
728
+ description: 'Raise $500M for Fund V',
729
+ metric: 'Fund Size',
730
+ targetValue: 500000000,
731
+ currentValue: 350000000,
732
+ unit: 'USD',
733
+ },
734
+ {
735
+ description: 'Secure 3 new anchor LPs',
736
+ metric: 'New Anchors',
737
+ targetValue: 3,
738
+ currentValue: 1,
739
+ },
740
+ {
741
+ description: 'Achieve 90% LP re-up rate',
742
+ metric: 'Re-up Rate',
743
+ targetValue: 90,
744
+ currentValue: 85,
745
+ unit: '%',
746
+ },
747
+ ],
748
+ },
749
+ {
750
+ objective: 'Build Best-in-Class Investment Team',
751
+ owner: 'Managing Partner',
752
+ period: 'Q1 2024',
753
+ keyResults: [
754
+ {
755
+ description: 'Hire 2 new partners',
756
+ metric: 'Partners Hired',
757
+ targetValue: 2,
758
+ currentValue: 1,
759
+ },
760
+ {
761
+ description: 'Achieve 40% competitive win rate',
762
+ metric: 'Win Rate',
763
+ targetValue: 40,
764
+ currentValue: 35,
765
+ unit: '%',
766
+ },
767
+ {
768
+ description: 'Source 30% deals from network',
769
+ metric: 'Network Sourcing',
770
+ targetValue: 30,
771
+ currentValue: 22,
772
+ unit: '%',
773
+ },
774
+ ],
775
+ },
776
+ {
777
+ objective: 'Maximize Portfolio Value',
778
+ owner: 'Portfolio Team',
779
+ period: 'Q1 2024',
780
+ keyResults: [
781
+ {
782
+ description: 'Support 5 portfolio fundraises',
783
+ metric: 'Fundraises Supported',
784
+ targetValue: 5,
785
+ currentValue: 3,
786
+ },
787
+ {
788
+ description: 'Achieve 80% follow-on rate',
789
+ metric: 'Follow-on Rate',
790
+ targetValue: 80,
791
+ currentValue: 72,
792
+ unit: '%',
793
+ },
794
+ {
795
+ description: 'Add 2 new unicorns',
796
+ metric: 'New Unicorns',
797
+ targetValue: 2,
798
+ currentValue: 1,
799
+ },
800
+ ],
801
+ },
802
+ {
803
+ objective: 'Scale Platform Impact',
804
+ owner: 'Head of Platform',
805
+ period: 'Q1 2024',
806
+ keyResults: [
807
+ {
808
+ description: 'Place 15 executives',
809
+ metric: 'Executive Placements',
810
+ targetValue: 15,
811
+ currentValue: 8,
812
+ },
813
+ {
814
+ description: 'Make 30 customer intros',
815
+ metric: 'Customer Intros',
816
+ targetValue: 30,
817
+ currentValue: 18,
818
+ },
819
+ {
820
+ description: 'Achieve 85 Founder NPS',
821
+ metric: 'Founder NPS',
822
+ targetValue: 85,
823
+ currentValue: 78,
824
+ },
825
+ ],
826
+ },
827
+ ]);
828
+ // =============================================================================
829
+ // 9. PROCESSES
830
+ // =============================================================================
831
+ export const DealSourcingProcess = Process({
832
+ name: 'Deal Sourcing',
833
+ description: 'Source and evaluate new investment opportunities',
834
+ owner: 'Investment Team',
835
+ steps: [
836
+ {
837
+ order: 1,
838
+ name: 'Inbound/Outbound',
839
+ description: 'Receive or identify potential deal',
840
+ automationLevel: 'semi-automated',
841
+ duration: 'ongoing',
842
+ },
843
+ {
844
+ order: 2,
845
+ name: 'Initial Screen',
846
+ description: 'Quick assessment against investment criteria',
847
+ automationLevel: 'semi-automated',
848
+ duration: '1 day',
849
+ owner: 'Associate',
850
+ },
851
+ {
852
+ order: 3,
853
+ name: 'First Meeting',
854
+ description: 'Initial meeting with founders',
855
+ automationLevel: 'manual',
856
+ duration: '1 hour',
857
+ owner: 'Principal',
858
+ },
859
+ {
860
+ order: 4,
861
+ name: 'Deep Dive',
862
+ description: 'Extended meeting and product demo',
863
+ automationLevel: 'manual',
864
+ duration: '2 hours',
865
+ owner: 'Partner',
866
+ },
867
+ {
868
+ order: 5,
869
+ name: 'Market Research',
870
+ description: 'Market sizing and competitive analysis',
871
+ automationLevel: 'semi-automated',
872
+ duration: '1 week',
873
+ owner: 'Associate',
874
+ },
875
+ {
876
+ order: 6,
877
+ name: 'Partner Meeting',
878
+ description: 'Present to full partnership',
879
+ automationLevel: 'manual',
880
+ duration: '30 minutes',
881
+ owner: 'Partner',
882
+ },
883
+ {
884
+ order: 7,
885
+ name: 'Due Diligence',
886
+ description: 'Full due diligence process',
887
+ automationLevel: 'manual',
888
+ duration: '2-4 weeks',
889
+ owner: 'Principal',
890
+ },
891
+ {
892
+ order: 8,
893
+ name: 'Investment Committee',
894
+ description: 'Final IC decision',
895
+ automationLevel: 'manual',
896
+ duration: '1 day',
897
+ },
898
+ {
899
+ order: 9,
900
+ name: 'Term Sheet',
901
+ description: 'Issue and negotiate term sheet',
902
+ automationLevel: 'manual',
903
+ duration: '1 week',
904
+ owner: 'Partner',
905
+ },
906
+ {
907
+ order: 10,
908
+ name: 'Close',
909
+ description: 'Legal documentation and close',
910
+ automationLevel: 'manual',
911
+ duration: '2-4 weeks',
912
+ },
913
+ ],
914
+ metrics: [
915
+ { name: 'Time to Decision', target: 4, unit: 'weeks' },
916
+ { name: 'Win Rate', target: 40, unit: '%' },
917
+ { name: 'Conversion (Meeting to IC)', target: 10, unit: '%' },
918
+ ],
919
+ });
920
+ export const DueDiligenceProcess = Process({
921
+ name: 'Due Diligence',
922
+ description: 'Comprehensive due diligence on investment opportunities',
923
+ owner: 'Investment Team',
924
+ steps: [
925
+ {
926
+ order: 1,
927
+ name: 'Data Room Review',
928
+ description: 'Review company data room',
929
+ automationLevel: 'semi-automated',
930
+ duration: '3 days',
931
+ owner: 'Associate',
932
+ },
933
+ {
934
+ order: 2,
935
+ name: 'Financial Analysis',
936
+ description: 'Financial model review and projections',
937
+ automationLevel: 'manual',
938
+ duration: '1 week',
939
+ owner: 'Principal',
940
+ },
941
+ {
942
+ order: 3,
943
+ name: 'Customer Calls',
944
+ description: 'Reference calls with customers',
945
+ automationLevel: 'manual',
946
+ duration: '1 week',
947
+ owner: 'Principal',
948
+ },
949
+ {
950
+ order: 4,
951
+ name: 'Expert Calls',
952
+ description: 'Industry expert interviews',
953
+ automationLevel: 'manual',
954
+ duration: '1 week',
955
+ owner: 'Associate',
956
+ },
957
+ {
958
+ order: 5,
959
+ name: 'Technical Review',
960
+ description: 'Technology and product assessment',
961
+ automationLevel: 'manual',
962
+ duration: '3 days',
963
+ owner: 'Technical Advisor',
964
+ },
965
+ {
966
+ order: 6,
967
+ name: 'Founder References',
968
+ description: 'Back-channel founder references',
969
+ automationLevel: 'manual',
970
+ duration: '1 week',
971
+ owner: 'Partner',
972
+ },
973
+ {
974
+ order: 7,
975
+ name: 'Legal Review',
976
+ description: 'Cap table and legal review',
977
+ automationLevel: 'semi-automated',
978
+ duration: '3 days',
979
+ owner: 'Legal',
980
+ },
981
+ {
982
+ order: 8,
983
+ name: 'Investment Memo',
984
+ description: 'Write investment memo',
985
+ automationLevel: 'manual',
986
+ duration: '3 days',
987
+ owner: 'Principal',
988
+ },
989
+ ],
990
+ metrics: [
991
+ { name: 'Completion Time', target: 3, unit: 'weeks' },
992
+ { name: 'Customer Calls', target: 10 },
993
+ { name: 'Expert Calls', target: 5 },
994
+ ],
995
+ });
996
+ export const PortfolioSupportProcess = Process({
997
+ name: 'Portfolio Support',
998
+ description: 'Ongoing support for portfolio companies',
999
+ owner: 'Head of Platform',
1000
+ steps: [
1001
+ {
1002
+ order: 1,
1003
+ name: 'Monthly Check-in',
1004
+ description: 'Monthly sync with CEO',
1005
+ automationLevel: 'manual',
1006
+ duration: '30 minutes',
1007
+ owner: 'Partner',
1008
+ },
1009
+ {
1010
+ order: 2,
1011
+ name: 'Board Meeting',
1012
+ description: 'Quarterly board meeting',
1013
+ automationLevel: 'manual',
1014
+ duration: '3 hours',
1015
+ owner: 'Partner',
1016
+ },
1017
+ {
1018
+ order: 3,
1019
+ name: 'Platform Support',
1020
+ description: 'Talent, GTM, technical support',
1021
+ automationLevel: 'manual',
1022
+ duration: 'ongoing',
1023
+ owner: 'Platform Team',
1024
+ },
1025
+ {
1026
+ order: 4,
1027
+ name: 'Fundraising Support',
1028
+ description: 'Support next round fundraising',
1029
+ automationLevel: 'manual',
1030
+ duration: '3 months',
1031
+ owner: 'Partner',
1032
+ },
1033
+ {
1034
+ order: 5,
1035
+ name: 'Strategic Planning',
1036
+ description: 'Annual strategic planning',
1037
+ automationLevel: 'manual',
1038
+ duration: '1 day',
1039
+ owner: 'Partner',
1040
+ },
1041
+ ],
1042
+ metrics: [
1043
+ { name: 'Founder NPS', target: 85 },
1044
+ { name: 'Follow-on Rate', target: 80, unit: '%' },
1045
+ { name: 'Board Attendance', target: 100, unit: '%' },
1046
+ ],
1047
+ });
1048
+ // =============================================================================
1049
+ // 10. WORKFLOWS
1050
+ // =============================================================================
1051
+ export const DealScreeningWorkflow = Workflow({
1052
+ name: 'Deal Screening',
1053
+ description: 'Automated initial deal screening',
1054
+ trigger: { type: 'event', event: 'deal.submitted' },
1055
+ actions: [
1056
+ {
1057
+ order: 1,
1058
+ type: 'compute',
1059
+ name: 'Parse Deal Info',
1060
+ config: {
1061
+ extract: ['company', 'stage', 'sector', 'metrics', 'founders'],
1062
+ },
1063
+ },
1064
+ {
1065
+ order: 2,
1066
+ type: 'compute',
1067
+ name: 'Thesis Fit Score',
1068
+ config: {
1069
+ criteria: ['sector_fit', 'stage_fit', 'metrics_threshold', 'team_background'],
1070
+ weights: [0.3, 0.2, 0.3, 0.2],
1071
+ },
1072
+ },
1073
+ {
1074
+ order: 3,
1075
+ type: 'api',
1076
+ name: 'Enrich Company Data',
1077
+ config: {
1078
+ sources: ['pitchbook', 'crunchbase', 'linkedin'],
1079
+ },
1080
+ },
1081
+ {
1082
+ order: 4,
1083
+ type: 'condition',
1084
+ name: 'Check Fit Score',
1085
+ condition: 'fitScore >= 70',
1086
+ },
1087
+ {
1088
+ order: 5,
1089
+ type: 'notification',
1090
+ name: 'Alert Team',
1091
+ config: {
1092
+ channel: 'slack',
1093
+ template: 'high_priority_deal',
1094
+ to: '#deal-flow',
1095
+ },
1096
+ },
1097
+ {
1098
+ order: 6,
1099
+ type: 'task',
1100
+ name: 'Assign Review',
1101
+ config: {
1102
+ type: 'deal-review',
1103
+ assignTo: 'associate',
1104
+ dueIn: '24 hours',
1105
+ },
1106
+ },
1107
+ ],
1108
+ });
1109
+ export const PortfolioMonitoringWorkflow = Workflow({
1110
+ name: 'Portfolio Monitoring',
1111
+ description: 'Weekly portfolio health monitoring',
1112
+ trigger: { type: 'schedule', cron: '0 9 * * 1' }, // Weekly Monday 9am
1113
+ actions: [
1114
+ {
1115
+ order: 1,
1116
+ type: 'api',
1117
+ name: 'Collect Metrics',
1118
+ config: {
1119
+ sources: ['portfolio_dashboard', 'financial_reports'],
1120
+ metrics: ['arr', 'growth', 'runway', 'team_changes'],
1121
+ },
1122
+ },
1123
+ {
1124
+ order: 2,
1125
+ type: 'compute',
1126
+ name: 'Calculate Health Scores',
1127
+ config: {
1128
+ factors: ['revenue_growth', 'burn_rate', 'runway', 'retention'],
1129
+ },
1130
+ },
1131
+ {
1132
+ order: 3,
1133
+ type: 'condition',
1134
+ name: 'Check At Risk',
1135
+ condition: 'healthScore < 60 || runway < 9',
1136
+ },
1137
+ {
1138
+ order: 4,
1139
+ type: 'notification',
1140
+ name: 'Alert Partner',
1141
+ config: {
1142
+ channel: 'email',
1143
+ template: 'portfolio_alert',
1144
+ priority: 'high',
1145
+ },
1146
+ },
1147
+ {
1148
+ order: 5,
1149
+ type: 'task',
1150
+ name: 'Schedule Check-in',
1151
+ config: {
1152
+ type: 'portfolio-checkin',
1153
+ assignTo: 'partner',
1154
+ dueIn: '48 hours',
1155
+ },
1156
+ },
1157
+ ],
1158
+ });
1159
+ export const LPReportingWorkflow = Workflow({
1160
+ name: 'LP Reporting',
1161
+ description: 'Quarterly LP reporting process',
1162
+ trigger: { type: 'schedule', cron: '0 9 1 */3 *' }, // Quarterly
1163
+ actions: [
1164
+ {
1165
+ order: 1,
1166
+ type: 'api',
1167
+ name: 'Aggregate Data',
1168
+ config: {
1169
+ collect: ['portfolio_metrics', 'fund_performance', 'new_investments', 'exits'],
1170
+ },
1171
+ },
1172
+ {
1173
+ order: 2,
1174
+ type: 'task',
1175
+ name: 'Update Valuations',
1176
+ config: {
1177
+ type: 'valuation-update',
1178
+ assignTo: 'finance',
1179
+ dueIn: '1 week',
1180
+ },
1181
+ },
1182
+ {
1183
+ order: 3,
1184
+ type: 'task',
1185
+ name: 'Draft Report',
1186
+ config: {
1187
+ type: 'lp-report-draft',
1188
+ assignTo: 'ir-manager',
1189
+ dueIn: '2 weeks',
1190
+ },
1191
+ },
1192
+ {
1193
+ order: 4,
1194
+ type: 'task',
1195
+ name: 'Partner Review',
1196
+ config: {
1197
+ type: 'report-review',
1198
+ assignTo: 'managing-partner',
1199
+ dueIn: '1 week',
1200
+ },
1201
+ },
1202
+ {
1203
+ order: 5,
1204
+ type: 'notification',
1205
+ name: 'Send to LPs',
1206
+ config: {
1207
+ channel: 'email',
1208
+ template: 'quarterly_lp_report',
1209
+ to: 'lps',
1210
+ },
1211
+ },
1212
+ ],
1213
+ });
1214
+ // =============================================================================
1215
+ // 11. FINANCIALS
1216
+ // =============================================================================
1217
+ export const CatalystFinancials = financials({
1218
+ revenue: 33500000, // Management fees (2% of AUM)
1219
+ cogs: 0,
1220
+ operatingExpenses: 25000000,
1221
+ depreciation: 100000,
1222
+ interestExpense: 0,
1223
+ otherIncome: 0,
1224
+ taxes: 2000000,
1225
+ });
1226
+ export const FirmMetrics = {
1227
+ aum: 1675000000,
1228
+ managementFee: 0.02, // 2%
1229
+ carry: 0.20, // 20%
1230
+ managementFeeRevenue: 33500000,
1231
+ realizedCarry: 45000000, // From exits
1232
+ portfolio: {
1233
+ companies: 42,
1234
+ activeBoard: 18,
1235
+ unicorns: 6,
1236
+ totalInvested: 680000000,
1237
+ totalMarkValue: 1250000000,
1238
+ aggregateArr: 385000000,
1239
+ },
1240
+ dealFlow: {
1241
+ dealsReviewedYearly: 2200,
1242
+ meetingsYearly: 800,
1243
+ investmentsYearly: 12,
1244
+ conversionRate: 0.5, // %
1245
+ },
1246
+ team: {
1247
+ partners: 4,
1248
+ principals: 4,
1249
+ associates: 4,
1250
+ platform: 8,
1251
+ operations: 5,
1252
+ },
1253
+ performance: {
1254
+ blendedIrr: 28,
1255
+ blendedTvpi: 2.8,
1256
+ blendedDpi: 1.2,
1257
+ },
1258
+ };
1259
+ // =============================================================================
1260
+ // 12. UTILITY FUNCTIONS
1261
+ // =============================================================================
1262
+ export function getBusinessSummary() {
1263
+ return {
1264
+ company: CatalystVenturesBusiness,
1265
+ vision: CatalystVision,
1266
+ goals: CatalystGoals,
1267
+ funds: Funds,
1268
+ portfolio: Portfolio,
1269
+ services: PlatformServices,
1270
+ kpis: CatalystKPIs,
1271
+ okrs: CatalystOKRs,
1272
+ financials: CatalystFinancials,
1273
+ metrics: FirmMetrics,
1274
+ };
1275
+ }
1276
+ export function getFundPerformance() {
1277
+ return Funds.map(f => ({
1278
+ name: f.name,
1279
+ vintage: f.vintage,
1280
+ size: $.format(f.size),
1281
+ deployed: `${((f.deployed / f.size) * 100).toFixed(0)}%`,
1282
+ tvpi: f.metrics?.tvpi ? `${f.metrics.tvpi}x` : 'N/A',
1283
+ irr: f.metrics?.irr ? `${f.metrics.irr}%` : 'N/A',
1284
+ status: f.status,
1285
+ }));
1286
+ }
1287
+ export function getPortfolioSummary() {
1288
+ const active = Portfolio.filter(c => c.status === 'active');
1289
+ const totalValue = active.reduce((sum, c) => sum + (c.markValue || 0), 0);
1290
+ const totalInvested = active.reduce((sum, c) => sum + c.invested, 0);
1291
+ return {
1292
+ companies: active.length,
1293
+ totalInvested: $.format(totalInvested),
1294
+ totalValue: $.format(totalValue),
1295
+ moic: (totalValue / totalInvested).toFixed(2) + 'x',
1296
+ unicorns: active.filter(c => (c.currentValuation || 0) >= 1000000000).length,
1297
+ };
1298
+ }
1299
+ export function getTopCompanies(n = 5) {
1300
+ return Portfolio
1301
+ .filter(c => c.status === 'active' && c.markValue)
1302
+ .sort((a, b) => (b.markValue || 0) - (a.markValue || 0))
1303
+ .slice(0, n)
1304
+ .map(c => ({
1305
+ name: c.name,
1306
+ stage: c.stage,
1307
+ value: $.format(c.markValue),
1308
+ ownership: `${c.ownership}%`,
1309
+ arr: c.metrics?.arr ? $.format(c.metrics.arr) : 'N/A',
1310
+ }));
1311
+ }
1312
+ export default {
1313
+ business: CatalystVenturesBusiness,
1314
+ vision: CatalystVision,
1315
+ goals: CatalystGoals,
1316
+ funds: Funds,
1317
+ portfolio: Portfolio,
1318
+ services: PlatformServices,
1319
+ organization: CatalystOrg,
1320
+ kpis: CatalystKPIs,
1321
+ okrs: CatalystOKRs,
1322
+ processes: {
1323
+ dealSourcing: DealSourcingProcess,
1324
+ dueDiligence: DueDiligenceProcess,
1325
+ portfolioSupport: PortfolioSupportProcess,
1326
+ },
1327
+ workflows: {
1328
+ dealScreening: DealScreeningWorkflow,
1329
+ portfolioMonitoring: PortfolioMonitoringWorkflow,
1330
+ lpReporting: LPReportingWorkflow,
1331
+ },
1332
+ financials: CatalystFinancials,
1333
+ metrics: FirmMetrics,
1334
+ };
1335
+ //# sourceMappingURL=index.js.map