@postxl/schema 1.0.3 → 1.1.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.
@@ -0,0 +1,441 @@
1
+ {
2
+ "name": "Portfolio Excellence",
3
+ "slug": "portfolex",
4
+ "description": "Financial modeling Pharma R&D Portfolios.",
5
+ "version": "0.0.1",
6
+ "schemas": ["Data"],
7
+ "defaultSchema": "Data",
8
+ "systemUser": {
9
+ "name": "System",
10
+ "email": "system@example.com",
11
+ "sub": null
12
+ },
13
+ "standardModels": ["User", "Action", "ActionOperation"],
14
+ "models": [
15
+ {
16
+ "name": "Scenario",
17
+ "excelName": "tblScenario",
18
+ "description": "A scenario is defines everything for a complete portfolio calculation.",
19
+ "schema": "Data",
20
+ "fields": [
21
+ {
22
+ "name": "id",
23
+ "excelName": "id",
24
+ "type": "String",
25
+ "label": "Id",
26
+ "description": "Internal Id. Shall not be modified."
27
+ },
28
+ {
29
+ "name": "code",
30
+ "excelName": "Code",
31
+ "type": "String",
32
+ "label": "Code",
33
+ "description": "Unique code/shorthand for the scenario.",
34
+ "isUnique": true
35
+ },
36
+ { "name": "name", "excelName": "name", "type": "String", "label": "Name" },
37
+ { "name": "description", "excelName": "description", "type": "String", "label": "Description" },
38
+ { "name": "isDefault", "excelName": "isDefault", "type": "Boolean", "label": "Is default scenario?" }
39
+ ],
40
+ "defaultField": "isDefault",
41
+ "standardFields": [],
42
+ "seed": [
43
+ { "id": "S001", "code": "S001", "name": "Actual", "description": "The actual portfolio", "isDefault": true }
44
+ ]
45
+ },
46
+ {
47
+ "name": "Project",
48
+ "excelName": "tblProject",
49
+ "description": "A list of projects and their associated attributes.",
50
+ "schema": "Data",
51
+ "fields": [
52
+ { "name": "id", "excelName": "id", "type": "String", "label": "Id" },
53
+ { "name": "scenarioId", "excelName": "scenarioId", "type": "Scenario", "label": "Scenario", "deepClone": true },
54
+ { "name": "code", "excelName": "projectCode", "type": "String", "label": "Project Code" },
55
+ { "name": "asset", "excelName": "asset", "type": "String", "label": "Asset" },
56
+ { "name": "target", "excelName": "target", "type": "String", "label": "Target" },
57
+ { "name": "isotope", "excelName": "isotope", "type": "String", "label": "Isotope" },
58
+ { "name": "txDx", "excelName": "txDx", "type": "String", "label": "TxDx" },
59
+ { "name": "indicationId", "excelName": "indication", "type": "Indication", "label": "Indication" }
60
+ ],
61
+ "standardFields": [],
62
+ "seed": [
63
+ {
64
+ "id": "P001",
65
+ "scenarioId": "S001",
66
+ "code": "P001",
67
+ "asset": "Asset A",
68
+ "target": "Target A",
69
+ "isotope": "Isotope X",
70
+ "txDx": "Tx",
71
+ "indicationId": 1
72
+ }
73
+ ]
74
+ },
75
+ {
76
+ "name": "ProjectPhase",
77
+ "excelName": "tblProjectPhase",
78
+ "description": "Development phases for each project.",
79
+ "schema": "Data",
80
+ "fields": [
81
+ {
82
+ "name": "projectId",
83
+ "excelName": "projectCode",
84
+ "type": "Project",
85
+ "label": "Project Code",
86
+ "deepClone": true
87
+ },
88
+ { "name": "phaseId", "excelName": "phase", "type": "Phase", "label": "Phase" },
89
+ { "name": "time", "excelName": "time", "type": "DateTime?", "label": "Time" },
90
+ { "name": "duration", "excelName": "duration", "type": "Int?", "label": "Duration" },
91
+ { "name": "rdCost", "excelName": "rdCost", "type": "Float?", "label": "R&D Cost" },
92
+ { "name": "probability", "excelName": "probability", "type": "Float?", "label": "Probability" }
93
+ ],
94
+ "standardFields": ["id"],
95
+ "seed": []
96
+ },
97
+ {
98
+ "name": "Sale",
99
+ "excelName": "tblSales",
100
+ "description": "Sales projections for each project.",
101
+ "schema": "Data",
102
+ "fields": [
103
+ {
104
+ "name": "projectId",
105
+ "excelName": "projectCode",
106
+ "type": "Project",
107
+ "label": "Project Code",
108
+ "deepClone": true
109
+ },
110
+ { "name": "peakSales", "excelName": "peakSales", "type": "Float", "label": "Peak Sales" },
111
+ { "name": "timeToPeak", "excelName": "timeToPeak", "type": "Int", "label": "Time to Peak" },
112
+ { "name": "uptakeCurveId", "excelName": "uptakeCurve", "type": "Uptake", "label": "Uptake Curve" },
113
+ {
114
+ "name": "postPeakAnnualGrowth",
115
+ "excelName": "postPeakAnnualGrowth",
116
+ "type": "Float",
117
+ "label": "Post Peak Annual Growth"
118
+ },
119
+ { "name": "erosionPhaseId", "excelName": "erosionPhase", "type": "Phase?", "label": "Erosion Phase" },
120
+ { "name": "erosionLag", "excelName": "erosionLag", "type": "Int?", "label": "Erosion Lag" },
121
+ { "name": "erosionFloor", "excelName": "erosionFloor", "type": "Float?", "label": "Erosion Floor" },
122
+ { "name": "erosionTime", "excelName": "erosionTime", "type": "Int?", "label": "Erosion Time" }
123
+ ],
124
+ "standardFields": ["id"],
125
+ "seed": []
126
+ },
127
+ {
128
+ "name": "Royalty",
129
+ "excelName": "tblRoyalty",
130
+ "description": "Royalty rates applied to sales for each project.",
131
+ "schema": "Data",
132
+ "fields": [
133
+ {
134
+ "name": "projectId",
135
+ "excelName": "projectCode",
136
+ "type": "Project",
137
+ "label": "Project Code",
138
+ "deepClone": true
139
+ },
140
+ { "name": "rate", "excelName": "rate", "type": "Float", "label": "Rate" },
141
+ { "name": "fromSales", "excelName": "fromSales", "type": "Float", "label": "From Sales" },
142
+ { "name": "toSales", "excelName": "toSales", "type": "Float?", "label": "To Sales" }
143
+ ],
144
+ "standardFields": ["id"],
145
+ "seed": []
146
+ },
147
+ {
148
+ "name": "VariableCost",
149
+ "excelName": "tblVariableCost",
150
+ "description": "Variable cost structure by phase and type.",
151
+ "schema": "Data",
152
+ "fields": [
153
+ {
154
+ "name": "projectId",
155
+ "excelName": "projectCode",
156
+ "type": "Project?",
157
+ "label": "Project Code",
158
+ "deepClone": true
159
+ },
160
+ { "name": "costType", "excelName": "costType", "type": "String", "label": "Cost Type" },
161
+ { "name": "rate", "excelName": "rate", "type": "Float", "label": "Rate" },
162
+ {
163
+ "name": "variableCostPhaseId",
164
+ "excelName": "variableCostPhase",
165
+ "type": "Phase",
166
+ "label": "Variable Cost Phase"
167
+ },
168
+ { "name": "costLag", "excelName": "costLag", "type": "Int", "label": "Cost Lag" },
169
+ { "name": "costDuration", "excelName": "costDuration", "type": "Int?", "label": "Cost Duration" }
170
+ ],
171
+ "standardFields": ["id"],
172
+ "seed": []
173
+ },
174
+ {
175
+ "name": "Milestone",
176
+ "excelName": "tblMilestone",
177
+ "description": "Key financial milestones by project and phase.",
178
+ "schema": "Data",
179
+ "fields": [
180
+ {
181
+ "name": "projectId",
182
+ "excelName": "projectCode",
183
+ "type": "Project",
184
+ "label": "Project Code",
185
+ "deepClone": true
186
+ },
187
+ { "name": "projectPhaseId", "excelName": "projectPhaseId", "type": "ProjectPhase?", "label": "Project Phase" },
188
+ {
189
+ "name": "milestoneDateType",
190
+ "excelName": "milestoneDateType",
191
+ "type": "MilestoneDateType",
192
+ "label": "Milestone Date Type"
193
+ },
194
+ { "name": "milestoneDate", "excelName": "milestoneDate", "type": "DateTime?", "label": "Milestone Date" },
195
+ { "name": "milestonePhaseId", "excelName": "milestonePhase", "type": "Phase?", "label": "Milestone Phase" },
196
+ { "name": "milestoneLag", "excelName": "milestoneLag", "type": "Int?", "label": "Milestone Lag" },
197
+ { "name": "amount", "excelName": "amount", "type": "Float", "label": "Amount" }
198
+ ],
199
+ "standardFields": ["id"],
200
+ "seed": []
201
+ },
202
+ {
203
+ "name": "Financial",
204
+ "excelName": "tblFinancial",
205
+ "description": "Global financial assumptions.",
206
+ "schema": "Data",
207
+ "fields": [
208
+ {
209
+ "name": "scenarioId",
210
+ "excelName": "scenarioId",
211
+ "type": "Scenario",
212
+ "label": "Scenario",
213
+ "isUnique": true,
214
+ "deepClone": true
215
+ },
216
+ { "name": "taxRate", "excelName": "taxRate", "type": "Float", "label": "Tax Rate" },
217
+ {
218
+ "name": "initialWorkingCapital",
219
+ "excelName": "initialWorkingCapital",
220
+ "type": "Float",
221
+ "label": "Initial Working Capital"
222
+ },
223
+ {
224
+ "name": "annualWorkingCapitalGrowth",
225
+ "excelName": "annualWorkingCapitalGrowth",
226
+ "type": "Float",
227
+ "label": "Annual Working Capital Growth"
228
+ },
229
+ { "name": "initialCapex", "excelName": "initialCapex", "type": "Float", "label": "Initial CAPEX" },
230
+ {
231
+ "name": "annualCapexGrowth",
232
+ "excelName": "annualCapexGrowth",
233
+ "type": "Float",
234
+ "label": "Annual CAPEX Growth"
235
+ },
236
+ { "name": "dnaShareOfCapex", "excelName": "dnaShareOfCapex", "type": "Float", "label": "D&A Share of CAPEX" },
237
+ { "name": "discountRate", "excelName": "discountRate", "type": "Float", "label": "Discount Rate" },
238
+ {
239
+ "name": "discountBaseYear",
240
+ "excelName": "discountBaseYear",
241
+ "type": "Int",
242
+ "label": "Base Year for Discounting"
243
+ }
244
+ ],
245
+ "standardFields": ["id"],
246
+ "seed": []
247
+ },
248
+ {
249
+ "name": "Phase",
250
+ "excelName": "tblPhase",
251
+ "description": "Definitions and attributes of each development phase.",
252
+ "schema": "Data",
253
+ "fields": [
254
+ { "name": "id", "excelName": "phase", "type": "String", "label": "Phase" },
255
+ { "name": "defaultSequence", "excelName": "defaultSequence", "type": "Int", "label": "Default Sequence" },
256
+ { "name": "fteClinical", "excelName": "fteClinical", "type": "Float?", "label": "FTE Clinical" },
257
+ { "name": "fteRegulatory", "excelName": "fteRegulatory", "type": "Float?", "label": "FTE Regulatory" },
258
+ { "name": "fteCmc", "excelName": "fteCmc", "type": "Float?", "label": "FTE CMC" },
259
+ { "name": "isEvent", "excelName": "isEvent", "type": "Boolean", "label": "Is Event?" },
260
+ { "name": "successorMask", "excelName": "successorMask", "type": "Int", "label": "Successor Mask" }
261
+ ],
262
+ "standardFields": [],
263
+ "seed": [
264
+ {
265
+ "id": "Preclinical",
266
+ "defaultSequence": 1,
267
+ "fteClinical": 0,
268
+ "fteRegulatory": 0.2,
269
+ "fteCmc": 0.1,
270
+ "isEvent": false,
271
+ "successorMask": 1048704
272
+ },
273
+ {
274
+ "id": "Phase I",
275
+ "defaultSequence": 2,
276
+ "fteClinical": 2,
277
+ "fteRegulatory": 0.5,
278
+ "fteCmc": 0.5,
279
+ "isEvent": false,
280
+ "successorMask": 1054720
281
+ }
282
+ ]
283
+ },
284
+ {
285
+ "name": "Indication",
286
+ "excelName": "tblIndication",
287
+ "description": "Therapeutic indications and abbreviations.",
288
+ "schema": "Data",
289
+ "fields": [
290
+ { "name": "id", "excelName": "indication", "type": "String", "label": "Indication" },
291
+ { "name": "abbreviation", "excelName": "abbreviation", "type": "String", "label": "Abbreviation" }
292
+ ],
293
+ "standardFields": [],
294
+ "seed": [
295
+ {
296
+ "id": "Cancer",
297
+ "abbreviation": "CA"
298
+ }
299
+ ]
300
+ },
301
+ {
302
+ "name": "Uptake",
303
+ "excelName": "tblUptake",
304
+ "description": "Uptake parameters for modeling adoption curves.",
305
+ "schema": "Data",
306
+ "fields": [
307
+ { "name": "id", "excelName": "rampupSpeed", "type": "String", "label": "Rampup Speed" },
308
+ { "name": "p0", "excelName": "p0", "type": "Float", "label": "p0" },
309
+ { "name": "p1", "excelName": "p1", "type": "Float", "label": "p1" },
310
+ { "name": "p2", "excelName": "p2", "type": "Float", "label": "p2" },
311
+ { "name": "p3", "excelName": "p3", "type": "Float", "label": "p3" },
312
+ { "name": "p4", "excelName": "p4", "type": "Float", "label": "p4" }
313
+ ],
314
+ "standardFields": [],
315
+ "seed": []
316
+ },
317
+ {
318
+ "name": "System",
319
+ "excelName": "tblSystem",
320
+ "description": "Model system settings like start and end times.",
321
+ "schema": "Data",
322
+ "fields": [
323
+ { "name": "startTime", "excelName": "startTime", "type": "DateTime", "label": "Start Time" },
324
+ { "name": "endTime", "excelName": "endTime", "type": "DateTime", "label": "End Time" }
325
+ ],
326
+ "standardFields": ["id"],
327
+ "seed": []
328
+ },
329
+ {
330
+ "name": "MonteCarloAnalysis",
331
+ "excelName": "tblMonteCarloAnalysis",
332
+ "description": "Defines a Monte Carlo analysis run including parameters and metadata.",
333
+ "schema": "Data",
334
+ "fields": [
335
+ { "name": "name", "excelName": "monteCarloAnalysis", "type": "String", "label": "Analysis Name" },
336
+ { "name": "date", "excelName": "date", "type": "DateTime", "label": "Run Date" },
337
+ { "name": "description", "excelName": "description", "type": "String?", "label": "Description" },
338
+ { "name": "numRuns", "excelName": "numRuns", "type": "Int", "label": "Number of Runs" }
339
+ ],
340
+ "standardFields": ["id"],
341
+ "seed": []
342
+ },
343
+ {
344
+ "name": "MonteCarloRun",
345
+ "excelName": "tblMonteCarloRun",
346
+ "description": "One execution of a Monte Carlo analysis.",
347
+ "schema": "Data",
348
+ "fields": [
349
+ {
350
+ "name": "monteCarloAnalysisId",
351
+ "excelName": "monteCarloAnalysis",
352
+ "type": "MonteCarloAnalysis",
353
+ "label": "Analysis"
354
+ },
355
+ { "name": "timestamp", "excelName": "timestamp", "type": "DateTime", "label": "Timestamp" },
356
+ { "name": "success", "excelName": "success", "type": "Boolean", "label": "Success" }
357
+ ],
358
+ "standardFields": ["id"],
359
+ "seed": []
360
+ },
361
+ {
362
+ "name": "MonteCarloParameter",
363
+ "excelName": "tblMonteCarloParameter",
364
+ "description": "Random seed values assigned per project for a given run.",
365
+ "schema": "Data",
366
+ "fields": [
367
+ {
368
+ "name": "monteCarloRunId",
369
+ "excelName": "monteCarloRun",
370
+ "type": "MonteCarloRun",
371
+ "label": "Monte Carlo Run"
372
+ },
373
+ {
374
+ "name": "projectId",
375
+ "excelName": "projectCode",
376
+ "type": "Project",
377
+ "label": "Project Code",
378
+ "deepClone": true
379
+ },
380
+ { "name": "seed", "excelName": "seed", "type": "Float", "label": "Seed (0-1)" }
381
+ ],
382
+ "standardFields": ["id"],
383
+ "seed": []
384
+ },
385
+ {
386
+ "name": "Period",
387
+ "excelName": "tblPeriod",
388
+ "description": "Defines a calendar period used in reporting and modeling.",
389
+ "schema": "Data",
390
+ "fields": [
391
+ { "name": "period", "excelName": "period", "type": "Int", "label": "Period Number" },
392
+ { "name": "date", "excelName": "date", "type": "DateTime", "label": "date" }
393
+ ],
394
+ "standardFields": ["id"],
395
+ "seed": []
396
+ },
397
+ {
398
+ "name": "Result",
399
+ "excelName": "tblResult",
400
+ "description": "Deterministic simulation results by project, phase, and period.",
401
+ "schema": "Data",
402
+ "fields": [
403
+ { "name": "projectId", "excelName": "projectCode", "type": "Project", "label": "Project Code" },
404
+ { "name": "phaseId", "excelName": "phase", "type": "Phase", "label": "Phase" },
405
+ { "name": "periodId", "excelName": "period", "type": "Period", "label": "Period" },
406
+ { "name": "probability", "excelName": "probability", "type": "Float", "label": "Probability" },
407
+ { "name": "value", "excelName": "value", "type": "Float", "label": "Value" },
408
+ { "name": "cashflowType", "excelName": "cashflowType", "type": "String", "label": "Cashflow Type" }
409
+ ],
410
+ "standardFields": ["id"],
411
+ "seed": []
412
+ },
413
+ {
414
+ "name": "MonteCarloResult",
415
+ "excelName": "tblMonteCarloResult",
416
+ "description": "Results from Monte Carlo simulation by period and run.",
417
+ "schema": "Data",
418
+ "fields": [
419
+ {
420
+ "name": "monteCarloRunId",
421
+ "excelName": "monteCarloRun",
422
+ "type": "MonteCarloRun",
423
+ "label": "Monte Carlo Run"
424
+ },
425
+ { "name": "periodId", "excelName": "period", "type": "Period", "label": "Period" },
426
+ { "name": "probability", "excelName": "probability", "type": "Float", "label": "Probability" },
427
+ { "name": "value", "excelName": "value", "type": "Float", "label": "Value" },
428
+ { "name": "cashflowType", "excelName": "cashflowType", "type": "String", "label": "Cashflow Type" }
429
+ ],
430
+ "standardFields": ["id"],
431
+ "seed": []
432
+ }
433
+ ],
434
+ "enums": [
435
+ {
436
+ "name": "MilestoneDateType",
437
+ "schema": "Data",
438
+ "members": ["fixedDate", "phase"]
439
+ }
440
+ ]
441
+ }