fin-ratios 0.1.0
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.
- package/dist/fetchers/edgar/index.cjs +100 -0
- package/dist/fetchers/edgar/index.cjs.map +1 -0
- package/dist/fetchers/edgar/index.d.cts +33 -0
- package/dist/fetchers/edgar/index.d.ts +33 -0
- package/dist/fetchers/edgar/index.js +98 -0
- package/dist/fetchers/edgar/index.js.map +1 -0
- package/dist/fetchers/fmp/index.cjs +110 -0
- package/dist/fetchers/fmp/index.cjs.map +1 -0
- package/dist/fetchers/fmp/index.d.cts +36 -0
- package/dist/fetchers/fmp/index.d.ts +36 -0
- package/dist/fetchers/fmp/index.js +107 -0
- package/dist/fetchers/fmp/index.js.map +1 -0
- package/dist/fetchers/yahoo/index.cjs +134 -0
- package/dist/fetchers/yahoo/index.cjs.map +1 -0
- package/dist/fetchers/yahoo/index.d.cts +50 -0
- package/dist/fetchers/yahoo/index.d.ts +50 -0
- package/dist/fetchers/yahoo/index.js +131 -0
- package/dist/fetchers/yahoo/index.js.map +1 -0
- package/dist/financials-DUHxWDPS.d.cts +113 -0
- package/dist/financials-DUHxWDPS.d.ts +113 -0
- package/dist/index.cjs +1180 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1314 -0
- package/dist/index.d.ts +1314 -0
- package/dist/index.js +1040 -0
- package/dist/index.js.map +1 -0
- package/dist/market-DlMw3vK1.d.cts +43 -0
- package/dist/market-DlMw3vK1.d.ts +43 -0
- package/package.json +87 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,1314 @@
|
|
|
1
|
+
export { B as BalanceSheet, C as CashFlowStatement, F as FinancialStatements, I as IncomeStatement } from './financials-DUHxWDPS.cjs';
|
|
2
|
+
export { M as MarketData, P as PriceHistory, a as PricePoint, R as Return, b as ReturnSeries } from './market-DlMw3vK1.cjs';
|
|
3
|
+
|
|
4
|
+
/** A ratio function that also exposes its formula string. */
|
|
5
|
+
type RatioFn<TInput, TOutput> = ((input: TInput) => TOutput) & {
|
|
6
|
+
formula: string;
|
|
7
|
+
description: string;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
declare function pe(input: {
|
|
11
|
+
marketCap: number;
|
|
12
|
+
netIncome: number;
|
|
13
|
+
}): number | null;
|
|
14
|
+
declare namespace pe {
|
|
15
|
+
var formula: string;
|
|
16
|
+
var description: string;
|
|
17
|
+
}
|
|
18
|
+
declare function forwardPe(input: {
|
|
19
|
+
price: number;
|
|
20
|
+
forwardEps: number;
|
|
21
|
+
}): number | null;
|
|
22
|
+
declare namespace forwardPe {
|
|
23
|
+
var formula: string;
|
|
24
|
+
var description: string;
|
|
25
|
+
}
|
|
26
|
+
declare function peg(input: {
|
|
27
|
+
peRatio: number;
|
|
28
|
+
epsGrowthRatePercent: number;
|
|
29
|
+
}): number | null;
|
|
30
|
+
declare namespace peg {
|
|
31
|
+
var formula: string;
|
|
32
|
+
var description: string;
|
|
33
|
+
}
|
|
34
|
+
declare function pb(input: {
|
|
35
|
+
marketCap: number;
|
|
36
|
+
totalEquity: number;
|
|
37
|
+
}): number | null;
|
|
38
|
+
declare namespace pb {
|
|
39
|
+
var formula: string;
|
|
40
|
+
var description: string;
|
|
41
|
+
}
|
|
42
|
+
declare function ps(input: {
|
|
43
|
+
marketCap: number;
|
|
44
|
+
revenue: number;
|
|
45
|
+
}): number | null;
|
|
46
|
+
declare namespace ps {
|
|
47
|
+
var formula: string;
|
|
48
|
+
var description: string;
|
|
49
|
+
}
|
|
50
|
+
declare function pFcf(input: {
|
|
51
|
+
marketCap: number;
|
|
52
|
+
operatingCashFlow: number;
|
|
53
|
+
capex: number;
|
|
54
|
+
}): number | null;
|
|
55
|
+
declare namespace pFcf {
|
|
56
|
+
var formula: string;
|
|
57
|
+
var description: string;
|
|
58
|
+
}
|
|
59
|
+
declare function enterpriseValue(input: {
|
|
60
|
+
marketCap: number;
|
|
61
|
+
totalDebt: number;
|
|
62
|
+
cash: number;
|
|
63
|
+
minorityInterest?: number | null;
|
|
64
|
+
preferredStock?: number | null;
|
|
65
|
+
}): number;
|
|
66
|
+
declare namespace enterpriseValue {
|
|
67
|
+
var formula: string;
|
|
68
|
+
var description: string;
|
|
69
|
+
}
|
|
70
|
+
declare function evEbitda(input: {
|
|
71
|
+
enterpriseValue: number;
|
|
72
|
+
ebitda: number;
|
|
73
|
+
}): number | null;
|
|
74
|
+
declare namespace evEbitda {
|
|
75
|
+
var formula: string;
|
|
76
|
+
var description: string;
|
|
77
|
+
}
|
|
78
|
+
declare function evEbit(input: {
|
|
79
|
+
enterpriseValue: number;
|
|
80
|
+
ebit: number;
|
|
81
|
+
}): number | null;
|
|
82
|
+
declare namespace evEbit {
|
|
83
|
+
var formula: string;
|
|
84
|
+
var description: string;
|
|
85
|
+
}
|
|
86
|
+
declare function evRevenue(input: {
|
|
87
|
+
enterpriseValue: number;
|
|
88
|
+
revenue: number;
|
|
89
|
+
}): number | null;
|
|
90
|
+
declare namespace evRevenue {
|
|
91
|
+
var formula: string;
|
|
92
|
+
var description: string;
|
|
93
|
+
}
|
|
94
|
+
declare function evFcf(input: {
|
|
95
|
+
enterpriseValue: number;
|
|
96
|
+
freeCashFlow: number;
|
|
97
|
+
}): number | null;
|
|
98
|
+
declare namespace evFcf {
|
|
99
|
+
var formula: string;
|
|
100
|
+
var description: string;
|
|
101
|
+
}
|
|
102
|
+
declare function evInvestedCapital(input: {
|
|
103
|
+
enterpriseValue: number;
|
|
104
|
+
investedCapital: number;
|
|
105
|
+
}): number | null;
|
|
106
|
+
declare namespace evInvestedCapital {
|
|
107
|
+
var formula: string;
|
|
108
|
+
var description: string;
|
|
109
|
+
}
|
|
110
|
+
declare function tobinsQ(input: {
|
|
111
|
+
marketCap: number;
|
|
112
|
+
totalDebt: number;
|
|
113
|
+
totalAssets: number;
|
|
114
|
+
}): number | null;
|
|
115
|
+
declare namespace tobinsQ {
|
|
116
|
+
var formula: string;
|
|
117
|
+
var description: string;
|
|
118
|
+
}
|
|
119
|
+
declare function grahamNumber(input: {
|
|
120
|
+
eps: number;
|
|
121
|
+
bookValuePerShare: number;
|
|
122
|
+
}): number | null;
|
|
123
|
+
declare namespace grahamNumber {
|
|
124
|
+
var formula: string;
|
|
125
|
+
var description: string;
|
|
126
|
+
}
|
|
127
|
+
declare function grahamIntrinsicValue(input: {
|
|
128
|
+
eps: number;
|
|
129
|
+
growthRate: number;
|
|
130
|
+
aaaBondYield: number;
|
|
131
|
+
}): number | null;
|
|
132
|
+
declare namespace grahamIntrinsicValue {
|
|
133
|
+
var formula: string;
|
|
134
|
+
var description: string;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* 2-stage DCF model.
|
|
139
|
+
* Stage 1: explicit FCF projections (or constant growth from base FCF).
|
|
140
|
+
* Stage 2: terminal value via Gordon Growth Model.
|
|
141
|
+
*/
|
|
142
|
+
declare function dcf2Stage(input: {
|
|
143
|
+
/** Base free cash flow (TTM) */
|
|
144
|
+
baseFcf: number;
|
|
145
|
+
/** Stage 1 annual growth rate (decimal, e.g. 0.15 for 15%) */
|
|
146
|
+
growthRate: number;
|
|
147
|
+
/** Number of years in high-growth stage */
|
|
148
|
+
years: number;
|
|
149
|
+
/** Terminal growth rate (decimal, e.g. 0.03 for 3%) */
|
|
150
|
+
terminalGrowthRate: number;
|
|
151
|
+
/** Weighted average cost of capital (decimal) */
|
|
152
|
+
wacc: number;
|
|
153
|
+
/** Net debt to subtract from enterprise value */
|
|
154
|
+
netDebt?: number;
|
|
155
|
+
/** Shares outstanding to get per-share value */
|
|
156
|
+
sharesOutstanding?: number;
|
|
157
|
+
}): {
|
|
158
|
+
intrinsicValue: number;
|
|
159
|
+
intrinsicValuePerShare: number | null;
|
|
160
|
+
pvStage1: number;
|
|
161
|
+
pvTerminalValue: number;
|
|
162
|
+
terminalValue: number;
|
|
163
|
+
} | null;
|
|
164
|
+
declare namespace dcf2Stage {
|
|
165
|
+
var formula: string;
|
|
166
|
+
var description: string;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Gordon Growth (Dividend Discount) Model for dividend-paying stocks.
|
|
170
|
+
*/
|
|
171
|
+
declare function gordonGrowthModel(input: {
|
|
172
|
+
nextDividend: number;
|
|
173
|
+
requiredReturn: number;
|
|
174
|
+
dividendGrowthRate: number;
|
|
175
|
+
}): number | null;
|
|
176
|
+
declare namespace gordonGrowthModel {
|
|
177
|
+
var formula: string;
|
|
178
|
+
var description: string;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Reverse DCF — solves for the implied FCF growth rate baked into the current market price.
|
|
182
|
+
* Uses bisection method over 20 iterations.
|
|
183
|
+
*/
|
|
184
|
+
declare function reverseDcf(input: {
|
|
185
|
+
marketCap: number;
|
|
186
|
+
baseFcf: number;
|
|
187
|
+
years: number;
|
|
188
|
+
terminalGrowthRate: number;
|
|
189
|
+
wacc: number;
|
|
190
|
+
netDebt?: number;
|
|
191
|
+
}): {
|
|
192
|
+
impliedGrowthRate: number;
|
|
193
|
+
interpretation: string;
|
|
194
|
+
} | null;
|
|
195
|
+
declare namespace reverseDcf {
|
|
196
|
+
var formula: string;
|
|
197
|
+
var description: string;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
declare function grossMargin(input: {
|
|
201
|
+
grossProfit: number;
|
|
202
|
+
revenue: number;
|
|
203
|
+
}): number | null;
|
|
204
|
+
declare namespace grossMargin {
|
|
205
|
+
var formula: string;
|
|
206
|
+
var description: string;
|
|
207
|
+
}
|
|
208
|
+
declare function operatingMargin(input: {
|
|
209
|
+
ebit: number;
|
|
210
|
+
revenue: number;
|
|
211
|
+
}): number | null;
|
|
212
|
+
declare namespace operatingMargin {
|
|
213
|
+
var formula: string;
|
|
214
|
+
var description: string;
|
|
215
|
+
}
|
|
216
|
+
declare function ebitdaMargin(input: {
|
|
217
|
+
ebitda: number;
|
|
218
|
+
revenue: number;
|
|
219
|
+
}): number | null;
|
|
220
|
+
declare namespace ebitdaMargin {
|
|
221
|
+
var formula: string;
|
|
222
|
+
var description: string;
|
|
223
|
+
}
|
|
224
|
+
declare function netProfitMargin(input: {
|
|
225
|
+
netIncome: number;
|
|
226
|
+
revenue: number;
|
|
227
|
+
}): number | null;
|
|
228
|
+
declare namespace netProfitMargin {
|
|
229
|
+
var formula: string;
|
|
230
|
+
var description: string;
|
|
231
|
+
}
|
|
232
|
+
declare function nopatMargin(input: {
|
|
233
|
+
nopat: number;
|
|
234
|
+
revenue: number;
|
|
235
|
+
}): number | null;
|
|
236
|
+
declare namespace nopatMargin {
|
|
237
|
+
var formula: string;
|
|
238
|
+
var description: string;
|
|
239
|
+
}
|
|
240
|
+
declare function roe(input: {
|
|
241
|
+
netIncome: number;
|
|
242
|
+
avgTotalEquity: number;
|
|
243
|
+
}): number | null;
|
|
244
|
+
declare namespace roe {
|
|
245
|
+
var formula: string;
|
|
246
|
+
var description: string;
|
|
247
|
+
}
|
|
248
|
+
declare function roa(input: {
|
|
249
|
+
netIncome: number;
|
|
250
|
+
avgTotalAssets: number;
|
|
251
|
+
}): number | null;
|
|
252
|
+
declare namespace roa {
|
|
253
|
+
var formula: string;
|
|
254
|
+
var description: string;
|
|
255
|
+
}
|
|
256
|
+
declare function nopat(input: {
|
|
257
|
+
ebit: number;
|
|
258
|
+
taxRate: number;
|
|
259
|
+
}): number;
|
|
260
|
+
declare namespace nopat {
|
|
261
|
+
var formula: string;
|
|
262
|
+
var description: string;
|
|
263
|
+
}
|
|
264
|
+
declare function roic(input: {
|
|
265
|
+
nopat: number;
|
|
266
|
+
investedCapital: number;
|
|
267
|
+
}): number | null;
|
|
268
|
+
declare namespace roic {
|
|
269
|
+
var formula: string;
|
|
270
|
+
var description: string;
|
|
271
|
+
}
|
|
272
|
+
declare function roce(input: {
|
|
273
|
+
ebit: number;
|
|
274
|
+
totalAssets: number;
|
|
275
|
+
currentLiabilities: number;
|
|
276
|
+
}): number | null;
|
|
277
|
+
declare namespace roce {
|
|
278
|
+
var formula: string;
|
|
279
|
+
var description: string;
|
|
280
|
+
}
|
|
281
|
+
declare function rote(input: {
|
|
282
|
+
netIncome: number;
|
|
283
|
+
avgTotalEquity: number;
|
|
284
|
+
avgGoodwill: number;
|
|
285
|
+
avgIntangibleAssets: number;
|
|
286
|
+
}): number | null;
|
|
287
|
+
declare namespace rote {
|
|
288
|
+
var formula: string;
|
|
289
|
+
var description: string;
|
|
290
|
+
}
|
|
291
|
+
interface DuPont3Factor {
|
|
292
|
+
netProfitMargin: number | null;
|
|
293
|
+
assetTurnover: number | null;
|
|
294
|
+
equityMultiplier: number | null;
|
|
295
|
+
roe: number | null;
|
|
296
|
+
}
|
|
297
|
+
declare function duPont3(input: {
|
|
298
|
+
netIncome: number;
|
|
299
|
+
revenue: number;
|
|
300
|
+
avgTotalAssets: number;
|
|
301
|
+
avgTotalEquity: number;
|
|
302
|
+
}): DuPont3Factor;
|
|
303
|
+
declare namespace duPont3 {
|
|
304
|
+
var formula: string;
|
|
305
|
+
var description: string;
|
|
306
|
+
}
|
|
307
|
+
declare function revenuePerEmployee(input: {
|
|
308
|
+
revenue: number;
|
|
309
|
+
employeeCount: number;
|
|
310
|
+
}): number | null;
|
|
311
|
+
declare namespace revenuePerEmployee {
|
|
312
|
+
var formula: string;
|
|
313
|
+
var description: string;
|
|
314
|
+
}
|
|
315
|
+
declare function profitPerEmployee(input: {
|
|
316
|
+
netIncome: number;
|
|
317
|
+
employeeCount: number;
|
|
318
|
+
}): number | null;
|
|
319
|
+
declare namespace profitPerEmployee {
|
|
320
|
+
var formula: string;
|
|
321
|
+
var description: string;
|
|
322
|
+
}
|
|
323
|
+
declare function investedCapital(input: {
|
|
324
|
+
totalEquity: number;
|
|
325
|
+
totalDebt: number;
|
|
326
|
+
cash: number;
|
|
327
|
+
}): number;
|
|
328
|
+
declare namespace investedCapital {
|
|
329
|
+
var formula: string;
|
|
330
|
+
var description: string;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
declare function currentRatio(input: {
|
|
334
|
+
currentAssets: number;
|
|
335
|
+
currentLiabilities: number;
|
|
336
|
+
}): number | null;
|
|
337
|
+
declare namespace currentRatio {
|
|
338
|
+
var formula: string;
|
|
339
|
+
var description: string;
|
|
340
|
+
}
|
|
341
|
+
declare function quickRatio(input: {
|
|
342
|
+
cash: number;
|
|
343
|
+
shortTermInvestments: number;
|
|
344
|
+
accountsReceivable: number;
|
|
345
|
+
currentLiabilities: number;
|
|
346
|
+
}): number | null;
|
|
347
|
+
declare namespace quickRatio {
|
|
348
|
+
var formula: string;
|
|
349
|
+
var description: string;
|
|
350
|
+
}
|
|
351
|
+
declare function cashRatio(input: {
|
|
352
|
+
cash: number;
|
|
353
|
+
shortTermInvestments: number;
|
|
354
|
+
currentLiabilities: number;
|
|
355
|
+
}): number | null;
|
|
356
|
+
declare namespace cashRatio {
|
|
357
|
+
var formula: string;
|
|
358
|
+
var description: string;
|
|
359
|
+
}
|
|
360
|
+
declare function operatingCashFlowRatio(input: {
|
|
361
|
+
operatingCashFlow: number;
|
|
362
|
+
currentLiabilities: number;
|
|
363
|
+
}): number | null;
|
|
364
|
+
declare namespace operatingCashFlowRatio {
|
|
365
|
+
var formula: string;
|
|
366
|
+
var description: string;
|
|
367
|
+
}
|
|
368
|
+
declare function dso(input: {
|
|
369
|
+
accountsReceivable: number;
|
|
370
|
+
revenue: number;
|
|
371
|
+
}): number | null;
|
|
372
|
+
declare namespace dso {
|
|
373
|
+
var formula: string;
|
|
374
|
+
var description: string;
|
|
375
|
+
}
|
|
376
|
+
declare function dio(input: {
|
|
377
|
+
inventory: number;
|
|
378
|
+
cogs: number;
|
|
379
|
+
}): number | null;
|
|
380
|
+
declare namespace dio {
|
|
381
|
+
var formula: string;
|
|
382
|
+
var description: string;
|
|
383
|
+
}
|
|
384
|
+
declare function dpo(input: {
|
|
385
|
+
accountsPayable: number;
|
|
386
|
+
cogs: number;
|
|
387
|
+
}): number | null;
|
|
388
|
+
declare namespace dpo {
|
|
389
|
+
var formula: string;
|
|
390
|
+
var description: string;
|
|
391
|
+
}
|
|
392
|
+
declare function cashConversionCycle(input: {
|
|
393
|
+
dso: number;
|
|
394
|
+
dio: number;
|
|
395
|
+
dpo: number;
|
|
396
|
+
}): number;
|
|
397
|
+
declare namespace cashConversionCycle {
|
|
398
|
+
var formula: string;
|
|
399
|
+
var description: string;
|
|
400
|
+
}
|
|
401
|
+
declare function defensiveIntervalRatio(input: {
|
|
402
|
+
cash: number;
|
|
403
|
+
shortTermInvestments: number;
|
|
404
|
+
accountsReceivable: number;
|
|
405
|
+
dailyOperatingExpenses: number;
|
|
406
|
+
}): number | null;
|
|
407
|
+
declare namespace defensiveIntervalRatio {
|
|
408
|
+
var formula: string;
|
|
409
|
+
var description: string;
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
declare function debtToEquity(input: {
|
|
413
|
+
totalDebt: number;
|
|
414
|
+
totalEquity: number;
|
|
415
|
+
}): number | null;
|
|
416
|
+
declare namespace debtToEquity {
|
|
417
|
+
var formula: string;
|
|
418
|
+
var description: string;
|
|
419
|
+
}
|
|
420
|
+
declare function netDebtToEquity(input: {
|
|
421
|
+
totalDebt: number;
|
|
422
|
+
cash: number;
|
|
423
|
+
totalEquity: number;
|
|
424
|
+
}): number | null;
|
|
425
|
+
declare namespace netDebtToEquity {
|
|
426
|
+
var formula: string;
|
|
427
|
+
var description: string;
|
|
428
|
+
}
|
|
429
|
+
declare function netDebtToEbitda(input: {
|
|
430
|
+
totalDebt: number;
|
|
431
|
+
cash: number;
|
|
432
|
+
ebitda: number;
|
|
433
|
+
}): number | null;
|
|
434
|
+
declare namespace netDebtToEbitda {
|
|
435
|
+
var formula: string;
|
|
436
|
+
var description: string;
|
|
437
|
+
}
|
|
438
|
+
declare function debtToAssets(input: {
|
|
439
|
+
totalDebt: number;
|
|
440
|
+
totalAssets: number;
|
|
441
|
+
}): number | null;
|
|
442
|
+
declare namespace debtToAssets {
|
|
443
|
+
var formula: string;
|
|
444
|
+
var description: string;
|
|
445
|
+
}
|
|
446
|
+
declare function debtToCapital(input: {
|
|
447
|
+
totalDebt: number;
|
|
448
|
+
totalEquity: number;
|
|
449
|
+
}): number | null;
|
|
450
|
+
declare namespace debtToCapital {
|
|
451
|
+
var formula: string;
|
|
452
|
+
var description: string;
|
|
453
|
+
}
|
|
454
|
+
declare function interestCoverageRatio(input: {
|
|
455
|
+
ebit: number;
|
|
456
|
+
interestExpense: number;
|
|
457
|
+
}): number | null;
|
|
458
|
+
declare namespace interestCoverageRatio {
|
|
459
|
+
var formula: string;
|
|
460
|
+
var description: string;
|
|
461
|
+
}
|
|
462
|
+
declare function ebitdaCoverageRatio(input: {
|
|
463
|
+
ebitda: number;
|
|
464
|
+
interestExpense: number;
|
|
465
|
+
}): number | null;
|
|
466
|
+
declare namespace ebitdaCoverageRatio {
|
|
467
|
+
var formula: string;
|
|
468
|
+
var description: string;
|
|
469
|
+
}
|
|
470
|
+
declare function debtServiceCoverageRatio(input: {
|
|
471
|
+
netOperatingIncome: number;
|
|
472
|
+
annualDebtService: number;
|
|
473
|
+
}): number | null;
|
|
474
|
+
declare namespace debtServiceCoverageRatio {
|
|
475
|
+
var formula: string;
|
|
476
|
+
var description: string;
|
|
477
|
+
}
|
|
478
|
+
declare function fixedChargeCoverageRatio(input: {
|
|
479
|
+
ebit: number;
|
|
480
|
+
fixedCharges: number;
|
|
481
|
+
interestExpense: number;
|
|
482
|
+
}): number | null;
|
|
483
|
+
declare namespace fixedChargeCoverageRatio {
|
|
484
|
+
var formula: string;
|
|
485
|
+
var description: string;
|
|
486
|
+
}
|
|
487
|
+
declare function equityMultiplier(input: {
|
|
488
|
+
totalAssets: number;
|
|
489
|
+
totalEquity: number;
|
|
490
|
+
}): number | null;
|
|
491
|
+
declare namespace equityMultiplier {
|
|
492
|
+
var formula: string;
|
|
493
|
+
var description: string;
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
declare function assetTurnover(input: {
|
|
497
|
+
revenue: number;
|
|
498
|
+
avgTotalAssets: number;
|
|
499
|
+
}): number | null;
|
|
500
|
+
declare namespace assetTurnover {
|
|
501
|
+
var formula: string;
|
|
502
|
+
var description: string;
|
|
503
|
+
}
|
|
504
|
+
declare function fixedAssetTurnover(input: {
|
|
505
|
+
revenue: number;
|
|
506
|
+
avgNetPPE: number;
|
|
507
|
+
}): number | null;
|
|
508
|
+
declare namespace fixedAssetTurnover {
|
|
509
|
+
var formula: string;
|
|
510
|
+
var description: string;
|
|
511
|
+
}
|
|
512
|
+
declare function inventoryTurnover(input: {
|
|
513
|
+
cogs: number;
|
|
514
|
+
avgInventory: number;
|
|
515
|
+
}): number | null;
|
|
516
|
+
declare namespace inventoryTurnover {
|
|
517
|
+
var formula: string;
|
|
518
|
+
var description: string;
|
|
519
|
+
}
|
|
520
|
+
declare function receivablesTurnover(input: {
|
|
521
|
+
revenue: number;
|
|
522
|
+
avgAccountsReceivable: number;
|
|
523
|
+
}): number | null;
|
|
524
|
+
declare namespace receivablesTurnover {
|
|
525
|
+
var formula: string;
|
|
526
|
+
var description: string;
|
|
527
|
+
}
|
|
528
|
+
declare function payablesTurnover(input: {
|
|
529
|
+
cogs: number;
|
|
530
|
+
avgAccountsPayable: number;
|
|
531
|
+
}): number | null;
|
|
532
|
+
declare namespace payablesTurnover {
|
|
533
|
+
var formula: string;
|
|
534
|
+
var description: string;
|
|
535
|
+
}
|
|
536
|
+
declare function workingCapitalTurnover(input: {
|
|
537
|
+
revenue: number;
|
|
538
|
+
avgWorkingCapital: number;
|
|
539
|
+
}): number | null;
|
|
540
|
+
declare namespace workingCapitalTurnover {
|
|
541
|
+
var formula: string;
|
|
542
|
+
var description: string;
|
|
543
|
+
}
|
|
544
|
+
declare function capitalTurnover(input: {
|
|
545
|
+
revenue: number;
|
|
546
|
+
investedCapital: number;
|
|
547
|
+
}): number | null;
|
|
548
|
+
declare namespace capitalTurnover {
|
|
549
|
+
var formula: string;
|
|
550
|
+
var description: string;
|
|
551
|
+
}
|
|
552
|
+
declare function operatingLeverage(input: {
|
|
553
|
+
ebitCurrent: number;
|
|
554
|
+
ebitPrior: number;
|
|
555
|
+
revenueCurrent: number;
|
|
556
|
+
revenuePrior: number;
|
|
557
|
+
}): number | null;
|
|
558
|
+
declare namespace operatingLeverage {
|
|
559
|
+
var formula: string;
|
|
560
|
+
var description: string;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
declare function freeCashFlow(input: {
|
|
564
|
+
operatingCashFlow: number;
|
|
565
|
+
capex: number;
|
|
566
|
+
}): number;
|
|
567
|
+
declare namespace freeCashFlow {
|
|
568
|
+
var formula: string;
|
|
569
|
+
var description: string;
|
|
570
|
+
}
|
|
571
|
+
declare function leveredFcf(input: {
|
|
572
|
+
freeCashFlow: number;
|
|
573
|
+
debtIssuance: number;
|
|
574
|
+
debtRepayments: number;
|
|
575
|
+
}): number;
|
|
576
|
+
declare namespace leveredFcf {
|
|
577
|
+
var formula: string;
|
|
578
|
+
var description: string;
|
|
579
|
+
}
|
|
580
|
+
declare function unleveredFcf(input: {
|
|
581
|
+
nopat: number;
|
|
582
|
+
depreciationAndAmortization: number;
|
|
583
|
+
capex: number;
|
|
584
|
+
changeInWorkingCapital: number;
|
|
585
|
+
}): number;
|
|
586
|
+
declare namespace unleveredFcf {
|
|
587
|
+
var formula: string;
|
|
588
|
+
var description: string;
|
|
589
|
+
}
|
|
590
|
+
declare function ownerEarnings(input: {
|
|
591
|
+
netIncome: number;
|
|
592
|
+
depreciationAndAmortization: number;
|
|
593
|
+
maintenanceCapex: number;
|
|
594
|
+
changeInWorkingCapital?: number;
|
|
595
|
+
}): number;
|
|
596
|
+
declare namespace ownerEarnings {
|
|
597
|
+
var formula: string;
|
|
598
|
+
var description: string;
|
|
599
|
+
}
|
|
600
|
+
declare function fcfYield(input: {
|
|
601
|
+
freeCashFlow: number;
|
|
602
|
+
marketCap: number;
|
|
603
|
+
}): number | null;
|
|
604
|
+
declare namespace fcfYield {
|
|
605
|
+
var formula: string;
|
|
606
|
+
var description: string;
|
|
607
|
+
}
|
|
608
|
+
declare function fcfMargin(input: {
|
|
609
|
+
freeCashFlow: number;
|
|
610
|
+
revenue: number;
|
|
611
|
+
}): number | null;
|
|
612
|
+
declare namespace fcfMargin {
|
|
613
|
+
var formula: string;
|
|
614
|
+
var description: string;
|
|
615
|
+
}
|
|
616
|
+
declare function fcfConversion(input: {
|
|
617
|
+
freeCashFlow: number;
|
|
618
|
+
netIncome: number;
|
|
619
|
+
}): number | null;
|
|
620
|
+
declare namespace fcfConversion {
|
|
621
|
+
var formula: string;
|
|
622
|
+
var description: string;
|
|
623
|
+
}
|
|
624
|
+
declare function ocfToSales(input: {
|
|
625
|
+
operatingCashFlow: number;
|
|
626
|
+
revenue: number;
|
|
627
|
+
}): number | null;
|
|
628
|
+
declare namespace ocfToSales {
|
|
629
|
+
var formula: string;
|
|
630
|
+
var description: string;
|
|
631
|
+
}
|
|
632
|
+
declare function capexToRevenue(input: {
|
|
633
|
+
capex: number;
|
|
634
|
+
revenue: number;
|
|
635
|
+
}): number | null;
|
|
636
|
+
declare namespace capexToRevenue {
|
|
637
|
+
var formula: string;
|
|
638
|
+
var description: string;
|
|
639
|
+
}
|
|
640
|
+
declare function capexToDepreciation(input: {
|
|
641
|
+
capex: number;
|
|
642
|
+
depreciation: number;
|
|
643
|
+
}): number | null;
|
|
644
|
+
declare namespace capexToDepreciation {
|
|
645
|
+
var formula: string;
|
|
646
|
+
var description: string;
|
|
647
|
+
}
|
|
648
|
+
declare function cashReturnOnAssets(input: {
|
|
649
|
+
operatingCashFlow: number;
|
|
650
|
+
totalAssets: number;
|
|
651
|
+
}): number | null;
|
|
652
|
+
declare namespace cashReturnOnAssets {
|
|
653
|
+
var formula: string;
|
|
654
|
+
var description: string;
|
|
655
|
+
}
|
|
656
|
+
|
|
657
|
+
declare function revenueGrowth(input: {
|
|
658
|
+
revenueCurrent: number;
|
|
659
|
+
revenuePrior: number;
|
|
660
|
+
}): number | null;
|
|
661
|
+
declare namespace revenueGrowth {
|
|
662
|
+
var formula: string;
|
|
663
|
+
var description: string;
|
|
664
|
+
}
|
|
665
|
+
declare function revenueCAGR(input: {
|
|
666
|
+
revenueStart: number;
|
|
667
|
+
revenueEnd: number;
|
|
668
|
+
years: number;
|
|
669
|
+
}): number | null;
|
|
670
|
+
declare namespace revenueCAGR {
|
|
671
|
+
var formula: string;
|
|
672
|
+
var description: string;
|
|
673
|
+
}
|
|
674
|
+
declare function epsGrowth(input: {
|
|
675
|
+
epsCurrent: number;
|
|
676
|
+
epsPrior: number;
|
|
677
|
+
}): number | null;
|
|
678
|
+
declare namespace epsGrowth {
|
|
679
|
+
var formula: string;
|
|
680
|
+
var description: string;
|
|
681
|
+
}
|
|
682
|
+
declare function ebitdaGrowth(input: {
|
|
683
|
+
ebitdaCurrent: number;
|
|
684
|
+
ebitdaPrior: number;
|
|
685
|
+
}): number | null;
|
|
686
|
+
declare namespace ebitdaGrowth {
|
|
687
|
+
var formula: string;
|
|
688
|
+
var description: string;
|
|
689
|
+
}
|
|
690
|
+
declare function fcfGrowth(input: {
|
|
691
|
+
fcfCurrent: number;
|
|
692
|
+
fcfPrior: number;
|
|
693
|
+
}): number | null;
|
|
694
|
+
declare namespace fcfGrowth {
|
|
695
|
+
var formula: string;
|
|
696
|
+
var description: string;
|
|
697
|
+
}
|
|
698
|
+
declare function bvpsGrowth(input: {
|
|
699
|
+
bvpsCurrent: number;
|
|
700
|
+
bvpsPrior: number;
|
|
701
|
+
}): number | null;
|
|
702
|
+
declare namespace bvpsGrowth {
|
|
703
|
+
var formula: string;
|
|
704
|
+
var description: string;
|
|
705
|
+
}
|
|
706
|
+
declare function dividendGrowthRate(input: {
|
|
707
|
+
dpsCurrent: number;
|
|
708
|
+
dpsPrior: number;
|
|
709
|
+
}): number | null;
|
|
710
|
+
declare namespace dividendGrowthRate {
|
|
711
|
+
var formula: string;
|
|
712
|
+
var description: string;
|
|
713
|
+
}
|
|
714
|
+
declare function earningsPowerValue(input: {
|
|
715
|
+
ebit: number;
|
|
716
|
+
taxRate: number;
|
|
717
|
+
wacc: number;
|
|
718
|
+
}): number | null;
|
|
719
|
+
declare namespace earningsPowerValue {
|
|
720
|
+
var formula: string;
|
|
721
|
+
var description: string;
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
declare function beta(input: {
|
|
725
|
+
stockReturns: number[];
|
|
726
|
+
marketReturns: number[];
|
|
727
|
+
}): number | null;
|
|
728
|
+
declare namespace beta {
|
|
729
|
+
var formula: string;
|
|
730
|
+
var description: string;
|
|
731
|
+
}
|
|
732
|
+
declare function jensensAlpha(input: {
|
|
733
|
+
portfolioReturn: number;
|
|
734
|
+
riskFreeRate: number;
|
|
735
|
+
beta: number;
|
|
736
|
+
marketReturn: number;
|
|
737
|
+
}): number;
|
|
738
|
+
declare namespace jensensAlpha {
|
|
739
|
+
var formula: string;
|
|
740
|
+
var description: string;
|
|
741
|
+
}
|
|
742
|
+
declare function sharpeRatio(input: {
|
|
743
|
+
returns: number[];
|
|
744
|
+
riskFreeRate: number;
|
|
745
|
+
periodsPerYear?: number;
|
|
746
|
+
}): number | null;
|
|
747
|
+
declare namespace sharpeRatio {
|
|
748
|
+
var formula: string;
|
|
749
|
+
var description: string;
|
|
750
|
+
}
|
|
751
|
+
declare function sortinoRatio(input: {
|
|
752
|
+
returns: number[];
|
|
753
|
+
riskFreeRate: number;
|
|
754
|
+
mar?: number;
|
|
755
|
+
periodsPerYear?: number;
|
|
756
|
+
}): number | null;
|
|
757
|
+
declare namespace sortinoRatio {
|
|
758
|
+
var formula: string;
|
|
759
|
+
var description: string;
|
|
760
|
+
}
|
|
761
|
+
declare function treynorRatio(input: {
|
|
762
|
+
portfolioReturn: number;
|
|
763
|
+
riskFreeRate: number;
|
|
764
|
+
beta: number;
|
|
765
|
+
}): number | null;
|
|
766
|
+
declare namespace treynorRatio {
|
|
767
|
+
var formula: string;
|
|
768
|
+
var description: string;
|
|
769
|
+
}
|
|
770
|
+
declare function calmarRatio(input: {
|
|
771
|
+
returns: number[];
|
|
772
|
+
periodsPerYear?: number;
|
|
773
|
+
}): number | null;
|
|
774
|
+
declare namespace calmarRatio {
|
|
775
|
+
var formula: string;
|
|
776
|
+
var description: string;
|
|
777
|
+
}
|
|
778
|
+
declare function informationRatio(input: {
|
|
779
|
+
portfolioReturns: number[];
|
|
780
|
+
benchmarkReturns: number[];
|
|
781
|
+
}): number | null;
|
|
782
|
+
declare namespace informationRatio {
|
|
783
|
+
var formula: string;
|
|
784
|
+
var description: string;
|
|
785
|
+
}
|
|
786
|
+
declare function omegaRatio(input: {
|
|
787
|
+
returns: number[];
|
|
788
|
+
threshold?: number;
|
|
789
|
+
}): number | null;
|
|
790
|
+
declare namespace omegaRatio {
|
|
791
|
+
var formula: string;
|
|
792
|
+
var description: string;
|
|
793
|
+
}
|
|
794
|
+
declare function maximumDrawdown(input: {
|
|
795
|
+
prices: number[];
|
|
796
|
+
}): number | null;
|
|
797
|
+
declare namespace maximumDrawdown {
|
|
798
|
+
var formula: string;
|
|
799
|
+
var description: string;
|
|
800
|
+
}
|
|
801
|
+
declare function trackingError(input: {
|
|
802
|
+
portfolioReturns: number[];
|
|
803
|
+
benchmarkReturns: number[];
|
|
804
|
+
periodsPerYear?: number;
|
|
805
|
+
}): number | null;
|
|
806
|
+
declare namespace trackingError {
|
|
807
|
+
var formula: string;
|
|
808
|
+
var description: string;
|
|
809
|
+
}
|
|
810
|
+
declare function historicalVaR(input: {
|
|
811
|
+
returns: number[];
|
|
812
|
+
confidence?: number;
|
|
813
|
+
}): number | null;
|
|
814
|
+
declare namespace historicalVaR {
|
|
815
|
+
var formula: string;
|
|
816
|
+
var description: string;
|
|
817
|
+
}
|
|
818
|
+
declare function parametricVaR(input: {
|
|
819
|
+
returns: number[];
|
|
820
|
+
confidence?: number;
|
|
821
|
+
}): number | null;
|
|
822
|
+
declare namespace parametricVaR {
|
|
823
|
+
var formula: string;
|
|
824
|
+
var description: string;
|
|
825
|
+
}
|
|
826
|
+
declare function conditionalVaR(input: {
|
|
827
|
+
returns: number[];
|
|
828
|
+
confidence?: number;
|
|
829
|
+
}): number | null;
|
|
830
|
+
declare namespace conditionalVaR {
|
|
831
|
+
var formula: string;
|
|
832
|
+
var description: string;
|
|
833
|
+
}
|
|
834
|
+
declare function ulcerIndex(input: {
|
|
835
|
+
prices: number[];
|
|
836
|
+
}): number | null;
|
|
837
|
+
declare namespace ulcerIndex {
|
|
838
|
+
var formula: string;
|
|
839
|
+
var description: string;
|
|
840
|
+
}
|
|
841
|
+
declare function upsideCaptureRatio(input: {
|
|
842
|
+
portfolioReturns: number[];
|
|
843
|
+
benchmarkReturns: number[];
|
|
844
|
+
}): number | null;
|
|
845
|
+
declare namespace upsideCaptureRatio {
|
|
846
|
+
var formula: string;
|
|
847
|
+
var description: string;
|
|
848
|
+
}
|
|
849
|
+
declare function downsideCaptureRatio(input: {
|
|
850
|
+
portfolioReturns: number[];
|
|
851
|
+
benchmarkReturns: number[];
|
|
852
|
+
}): number | null;
|
|
853
|
+
declare namespace downsideCaptureRatio {
|
|
854
|
+
var formula: string;
|
|
855
|
+
var description: string;
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
interface PiotroskiInput {
|
|
859
|
+
current: {
|
|
860
|
+
netIncome: number;
|
|
861
|
+
totalAssets: number;
|
|
862
|
+
operatingCashFlow: number;
|
|
863
|
+
longTermDebt: number;
|
|
864
|
+
currentAssets: number;
|
|
865
|
+
currentLiabilities: number;
|
|
866
|
+
sharesOutstanding: number;
|
|
867
|
+
grossProfit: number;
|
|
868
|
+
revenue: number;
|
|
869
|
+
};
|
|
870
|
+
prior: {
|
|
871
|
+
netIncome: number;
|
|
872
|
+
totalAssets: number;
|
|
873
|
+
longTermDebt: number;
|
|
874
|
+
currentAssets: number;
|
|
875
|
+
currentLiabilities: number;
|
|
876
|
+
sharesOutstanding: number;
|
|
877
|
+
grossProfit: number;
|
|
878
|
+
revenue: number;
|
|
879
|
+
};
|
|
880
|
+
}
|
|
881
|
+
interface PiotroskiResult {
|
|
882
|
+
score: number;
|
|
883
|
+
signals: {
|
|
884
|
+
roa_positive: boolean;
|
|
885
|
+
ocf_positive: boolean;
|
|
886
|
+
roa_improving: boolean;
|
|
887
|
+
quality_earnings: boolean;
|
|
888
|
+
lower_leverage: boolean;
|
|
889
|
+
higher_liquidity: boolean;
|
|
890
|
+
no_dilution: boolean;
|
|
891
|
+
higher_gross_margin: boolean;
|
|
892
|
+
higher_asset_turnover: boolean;
|
|
893
|
+
};
|
|
894
|
+
interpretation: string;
|
|
895
|
+
}
|
|
896
|
+
declare function piotroskiFScore(input: PiotroskiInput): PiotroskiResult;
|
|
897
|
+
declare namespace piotroskiFScore {
|
|
898
|
+
var formula: string;
|
|
899
|
+
var description: string;
|
|
900
|
+
}
|
|
901
|
+
interface AltmanInput {
|
|
902
|
+
workingCapital: number;
|
|
903
|
+
retainedEarnings: number;
|
|
904
|
+
ebit: number;
|
|
905
|
+
marketCap: number;
|
|
906
|
+
totalLiabilities: number;
|
|
907
|
+
totalAssets: number;
|
|
908
|
+
revenue: number;
|
|
909
|
+
}
|
|
910
|
+
interface AltmanResult {
|
|
911
|
+
z: number;
|
|
912
|
+
x1: number;
|
|
913
|
+
x2: number;
|
|
914
|
+
x3: number;
|
|
915
|
+
x4: number;
|
|
916
|
+
x5: number;
|
|
917
|
+
zone: 'safe' | 'grey' | 'distress';
|
|
918
|
+
interpretation: string;
|
|
919
|
+
}
|
|
920
|
+
declare function altmanZScore(input: AltmanInput): AltmanResult | null;
|
|
921
|
+
declare namespace altmanZScore {
|
|
922
|
+
var formula: string;
|
|
923
|
+
var description: string;
|
|
924
|
+
}
|
|
925
|
+
interface BeneishInput {
|
|
926
|
+
current: {
|
|
927
|
+
revenue: number;
|
|
928
|
+
accountsReceivable: number;
|
|
929
|
+
grossProfit: number;
|
|
930
|
+
totalAssets: number;
|
|
931
|
+
depreciation: number;
|
|
932
|
+
ppGross: number;
|
|
933
|
+
sgaExpense: number;
|
|
934
|
+
totalDebt: number;
|
|
935
|
+
netIncome: number;
|
|
936
|
+
cashFlowFromOps: number;
|
|
937
|
+
};
|
|
938
|
+
prior: {
|
|
939
|
+
revenue: number;
|
|
940
|
+
accountsReceivable: number;
|
|
941
|
+
grossProfit: number;
|
|
942
|
+
totalAssets: number;
|
|
943
|
+
depreciation: number;
|
|
944
|
+
ppGross: number;
|
|
945
|
+
sgaExpense: number;
|
|
946
|
+
totalDebt: number;
|
|
947
|
+
};
|
|
948
|
+
}
|
|
949
|
+
interface BeneishResult {
|
|
950
|
+
mScore: number;
|
|
951
|
+
variables: {
|
|
952
|
+
dsri: number;
|
|
953
|
+
gmi: number;
|
|
954
|
+
aqi: number;
|
|
955
|
+
sgi: number;
|
|
956
|
+
depi: number;
|
|
957
|
+
sgai: number;
|
|
958
|
+
lvgi: number;
|
|
959
|
+
tata: number;
|
|
960
|
+
};
|
|
961
|
+
manipulationLikely: boolean;
|
|
962
|
+
interpretation: string;
|
|
963
|
+
}
|
|
964
|
+
declare function beneishMScore(input: BeneishInput): BeneishResult | null;
|
|
965
|
+
declare namespace beneishMScore {
|
|
966
|
+
var formula: string;
|
|
967
|
+
var description: string;
|
|
968
|
+
}
|
|
969
|
+
interface MagicFormulaResult {
|
|
970
|
+
roic: number | null;
|
|
971
|
+
evEbit: number | null;
|
|
972
|
+
}
|
|
973
|
+
declare function magicFormula(input: {
|
|
974
|
+
ebit: number;
|
|
975
|
+
netWorkingCapital: number;
|
|
976
|
+
netFixedAssets: number;
|
|
977
|
+
enterpriseValue: number;
|
|
978
|
+
}): MagicFormulaResult;
|
|
979
|
+
declare namespace magicFormula {
|
|
980
|
+
var formula: string;
|
|
981
|
+
var description: string;
|
|
982
|
+
}
|
|
983
|
+
interface OhlsonInput {
|
|
984
|
+
totalAssets: number;
|
|
985
|
+
totalLiabilities: number;
|
|
986
|
+
currentAssets: number;
|
|
987
|
+
currentLiabilities: number;
|
|
988
|
+
netIncome: number;
|
|
989
|
+
priorNetIncome: number;
|
|
990
|
+
operatingCashFlow: number;
|
|
991
|
+
workingCapital: number;
|
|
992
|
+
gnp: number;
|
|
993
|
+
}
|
|
994
|
+
declare function ohlsonOScore(input: OhlsonInput): {
|
|
995
|
+
oScore: number;
|
|
996
|
+
bankruptcyProbability: number;
|
|
997
|
+
interpretation: string;
|
|
998
|
+
} | null;
|
|
999
|
+
declare namespace ohlsonOScore {
|
|
1000
|
+
var formula: string;
|
|
1001
|
+
var description: string;
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
declare function ruleOf40(input: {
|
|
1005
|
+
revenueGrowthRatePct: number;
|
|
1006
|
+
fcfMarginPct: number;
|
|
1007
|
+
}): number;
|
|
1008
|
+
declare namespace ruleOf40 {
|
|
1009
|
+
var formula: string;
|
|
1010
|
+
var description: string;
|
|
1011
|
+
}
|
|
1012
|
+
declare function magicNumber(input: {
|
|
1013
|
+
currentQuarterRevenue: number;
|
|
1014
|
+
priorQuarterRevenue: number;
|
|
1015
|
+
priorQuarterSalesAndMarketingSpend: number;
|
|
1016
|
+
}): number | null;
|
|
1017
|
+
declare namespace magicNumber {
|
|
1018
|
+
var formula: string;
|
|
1019
|
+
var description: string;
|
|
1020
|
+
}
|
|
1021
|
+
declare function netRevenueRetention(input: {
|
|
1022
|
+
beginningArr: number;
|
|
1023
|
+
expansion: number;
|
|
1024
|
+
churn: number;
|
|
1025
|
+
contraction: number;
|
|
1026
|
+
}): number | null;
|
|
1027
|
+
declare namespace netRevenueRetention {
|
|
1028
|
+
var formula: string;
|
|
1029
|
+
var description: string;
|
|
1030
|
+
}
|
|
1031
|
+
declare function grossRevenueRetention(input: {
|
|
1032
|
+
beginningArr: number;
|
|
1033
|
+
churn: number;
|
|
1034
|
+
contraction: number;
|
|
1035
|
+
}): number | null;
|
|
1036
|
+
declare namespace grossRevenueRetention {
|
|
1037
|
+
var formula: string;
|
|
1038
|
+
var description: string;
|
|
1039
|
+
}
|
|
1040
|
+
declare function customerAcquisitionCost(input: {
|
|
1041
|
+
salesAndMarketingSpend: number;
|
|
1042
|
+
newCustomersAcquired: number;
|
|
1043
|
+
}): number | null;
|
|
1044
|
+
declare namespace customerAcquisitionCost {
|
|
1045
|
+
var formula: string;
|
|
1046
|
+
var description: string;
|
|
1047
|
+
}
|
|
1048
|
+
declare function customerLifetimeValue(input: {
|
|
1049
|
+
avgMonthlyRevenuePerCustomer: number;
|
|
1050
|
+
grossMargin: number;
|
|
1051
|
+
monthlyChurnRate: number;
|
|
1052
|
+
}): number | null;
|
|
1053
|
+
declare namespace customerLifetimeValue {
|
|
1054
|
+
var formula: string;
|
|
1055
|
+
var description: string;
|
|
1056
|
+
}
|
|
1057
|
+
declare function ltvCacRatio(input: {
|
|
1058
|
+
ltv: number;
|
|
1059
|
+
cac: number;
|
|
1060
|
+
}): number | null;
|
|
1061
|
+
declare namespace ltvCacRatio {
|
|
1062
|
+
var formula: string;
|
|
1063
|
+
var description: string;
|
|
1064
|
+
}
|
|
1065
|
+
declare function cacPaybackPeriod(input: {
|
|
1066
|
+
cac: number;
|
|
1067
|
+
avgMonthlyRevenuePerCustomer: number;
|
|
1068
|
+
grossMarginPct: number;
|
|
1069
|
+
}): number | null;
|
|
1070
|
+
declare namespace cacPaybackPeriod {
|
|
1071
|
+
var formula: string;
|
|
1072
|
+
var description: string;
|
|
1073
|
+
}
|
|
1074
|
+
declare function burnMultiple(input: {
|
|
1075
|
+
netBurnRate: number;
|
|
1076
|
+
netNewArr: number;
|
|
1077
|
+
}): number | null;
|
|
1078
|
+
declare namespace burnMultiple {
|
|
1079
|
+
var formula: string;
|
|
1080
|
+
var description: string;
|
|
1081
|
+
}
|
|
1082
|
+
declare function saasQuickRatio(input: {
|
|
1083
|
+
newMrr: number;
|
|
1084
|
+
expansionMrr: number;
|
|
1085
|
+
churnedMrr: number;
|
|
1086
|
+
contractionMrr: number;
|
|
1087
|
+
}): number | null;
|
|
1088
|
+
declare namespace saasQuickRatio {
|
|
1089
|
+
var formula: string;
|
|
1090
|
+
var description: string;
|
|
1091
|
+
}
|
|
1092
|
+
declare function arrPerFte(input: {
|
|
1093
|
+
arr: number;
|
|
1094
|
+
fullTimeEmployees: number;
|
|
1095
|
+
}): number | null;
|
|
1096
|
+
declare namespace arrPerFte {
|
|
1097
|
+
var formula: string;
|
|
1098
|
+
var description: string;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
declare function ffo(input: {
|
|
1102
|
+
netIncome: number;
|
|
1103
|
+
depreciation: number;
|
|
1104
|
+
gainsOnSaleOfProperties: number;
|
|
1105
|
+
}): number;
|
|
1106
|
+
declare namespace ffo {
|
|
1107
|
+
var formula: string;
|
|
1108
|
+
var description: string;
|
|
1109
|
+
}
|
|
1110
|
+
declare function affo(input: {
|
|
1111
|
+
ffo: number;
|
|
1112
|
+
recurringCapex: number;
|
|
1113
|
+
straightLineRentAdjustment: number;
|
|
1114
|
+
}): number;
|
|
1115
|
+
declare namespace affo {
|
|
1116
|
+
var formula: string;
|
|
1117
|
+
var description: string;
|
|
1118
|
+
}
|
|
1119
|
+
declare function pFfo(input: {
|
|
1120
|
+
marketCap: number;
|
|
1121
|
+
ffo: number;
|
|
1122
|
+
}): number | null;
|
|
1123
|
+
declare namespace pFfo {
|
|
1124
|
+
var formula: string;
|
|
1125
|
+
var description: string;
|
|
1126
|
+
}
|
|
1127
|
+
declare function pAffo(input: {
|
|
1128
|
+
marketCap: number;
|
|
1129
|
+
affo: number;
|
|
1130
|
+
}): number | null;
|
|
1131
|
+
declare namespace pAffo {
|
|
1132
|
+
var formula: string;
|
|
1133
|
+
var description: string;
|
|
1134
|
+
}
|
|
1135
|
+
declare function netOperatingIncome(input: {
|
|
1136
|
+
revenue: number;
|
|
1137
|
+
operatingExpenses: number;
|
|
1138
|
+
}): number;
|
|
1139
|
+
declare namespace netOperatingIncome {
|
|
1140
|
+
var formula: string;
|
|
1141
|
+
var description: string;
|
|
1142
|
+
}
|
|
1143
|
+
declare function capRate(input: {
|
|
1144
|
+
noi: number;
|
|
1145
|
+
propertyValue: number;
|
|
1146
|
+
}): number | null;
|
|
1147
|
+
declare namespace capRate {
|
|
1148
|
+
var formula: string;
|
|
1149
|
+
var description: string;
|
|
1150
|
+
}
|
|
1151
|
+
declare function occupancyRate(input: {
|
|
1152
|
+
occupiedUnits: number;
|
|
1153
|
+
totalUnits: number;
|
|
1154
|
+
}): number | null;
|
|
1155
|
+
declare namespace occupancyRate {
|
|
1156
|
+
var formula: string;
|
|
1157
|
+
var description: string;
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
declare function netInterestMargin(input: {
|
|
1161
|
+
interestIncome: number;
|
|
1162
|
+
interestExpense: number;
|
|
1163
|
+
avgEarningAssets: number;
|
|
1164
|
+
}): number | null;
|
|
1165
|
+
declare namespace netInterestMargin {
|
|
1166
|
+
var formula: string;
|
|
1167
|
+
var description: string;
|
|
1168
|
+
}
|
|
1169
|
+
declare function efficiencyRatio(input: {
|
|
1170
|
+
nonInterestExpense: number;
|
|
1171
|
+
netInterestIncome: number;
|
|
1172
|
+
nonInterestIncome: number;
|
|
1173
|
+
}): number | null;
|
|
1174
|
+
declare namespace efficiencyRatio {
|
|
1175
|
+
var formula: string;
|
|
1176
|
+
var description: string;
|
|
1177
|
+
}
|
|
1178
|
+
declare function loanToDepositRatio(input: {
|
|
1179
|
+
totalLoans: number;
|
|
1180
|
+
totalDeposits: number;
|
|
1181
|
+
}): number | null;
|
|
1182
|
+
declare namespace loanToDepositRatio {
|
|
1183
|
+
var formula: string;
|
|
1184
|
+
var description: string;
|
|
1185
|
+
}
|
|
1186
|
+
declare function nplRatio(input: {
|
|
1187
|
+
nonPerformingLoans: number;
|
|
1188
|
+
totalLoans: number;
|
|
1189
|
+
}): number | null;
|
|
1190
|
+
declare namespace nplRatio {
|
|
1191
|
+
var formula: string;
|
|
1192
|
+
var description: string;
|
|
1193
|
+
}
|
|
1194
|
+
declare function provisionCoverageRatio(input: {
|
|
1195
|
+
loanLossReserves: number;
|
|
1196
|
+
nonPerformingLoans: number;
|
|
1197
|
+
}): number | null;
|
|
1198
|
+
declare namespace provisionCoverageRatio {
|
|
1199
|
+
var formula: string;
|
|
1200
|
+
var description: string;
|
|
1201
|
+
}
|
|
1202
|
+
declare function tier1CapitalRatio(input: {
|
|
1203
|
+
tier1Capital: number;
|
|
1204
|
+
riskWeightedAssets: number;
|
|
1205
|
+
}): number | null;
|
|
1206
|
+
declare namespace tier1CapitalRatio {
|
|
1207
|
+
var formula: string;
|
|
1208
|
+
var description: string;
|
|
1209
|
+
}
|
|
1210
|
+
declare function cet1Ratio(input: {
|
|
1211
|
+
commonEquityTier1: number;
|
|
1212
|
+
riskWeightedAssets: number;
|
|
1213
|
+
}): number | null;
|
|
1214
|
+
declare namespace cet1Ratio {
|
|
1215
|
+
var formula: string;
|
|
1216
|
+
var description: string;
|
|
1217
|
+
}
|
|
1218
|
+
declare function tangibleBookValuePerShare(input: {
|
|
1219
|
+
totalEquity: number;
|
|
1220
|
+
goodwill: number;
|
|
1221
|
+
intangibleAssets: number;
|
|
1222
|
+
sharesOutstanding: number;
|
|
1223
|
+
}): number | null;
|
|
1224
|
+
declare namespace tangibleBookValuePerShare {
|
|
1225
|
+
var formula: string;
|
|
1226
|
+
var description: string;
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
declare function lossRatio(input: {
|
|
1230
|
+
lossesIncurred: number;
|
|
1231
|
+
premiumsEarned: number;
|
|
1232
|
+
}): number | null;
|
|
1233
|
+
declare namespace lossRatio {
|
|
1234
|
+
var formula: string;
|
|
1235
|
+
var description: string;
|
|
1236
|
+
}
|
|
1237
|
+
declare function expenseRatio(input: {
|
|
1238
|
+
underwritingExpenses: number;
|
|
1239
|
+
premiumsWritten: number;
|
|
1240
|
+
}): number | null;
|
|
1241
|
+
declare namespace expenseRatio {
|
|
1242
|
+
var formula: string;
|
|
1243
|
+
var description: string;
|
|
1244
|
+
}
|
|
1245
|
+
declare function combinedRatio(input: {
|
|
1246
|
+
lossRatio: number;
|
|
1247
|
+
expenseRatio: number;
|
|
1248
|
+
}): number;
|
|
1249
|
+
declare namespace combinedRatio {
|
|
1250
|
+
var formula: string;
|
|
1251
|
+
var description: string;
|
|
1252
|
+
}
|
|
1253
|
+
declare function underwritingProfitMargin(input: {
|
|
1254
|
+
combinedRatio: number;
|
|
1255
|
+
}): number;
|
|
1256
|
+
declare namespace underwritingProfitMargin {
|
|
1257
|
+
var formula: string;
|
|
1258
|
+
var description: string;
|
|
1259
|
+
}
|
|
1260
|
+
declare function premiumsToSurplus(input: {
|
|
1261
|
+
netPremiumsWritten: number;
|
|
1262
|
+
policyholderSurplus: number;
|
|
1263
|
+
}): number | null;
|
|
1264
|
+
declare namespace premiumsToSurplus {
|
|
1265
|
+
var formula: string;
|
|
1266
|
+
var description: string;
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1269
|
+
/**
|
|
1270
|
+
* Divides numerator by denominator.
|
|
1271
|
+
* Returns null instead of Infinity/NaN when denominator is 0 or either input is null/undefined.
|
|
1272
|
+
*/
|
|
1273
|
+
declare function safeDivide(numerator: number | null | undefined, denominator: number | null | undefined): number | null;
|
|
1274
|
+
|
|
1275
|
+
/**
|
|
1276
|
+
* Compound Annual Growth Rate.
|
|
1277
|
+
* @param start - starting value
|
|
1278
|
+
* @param end - ending value
|
|
1279
|
+
* @param years - number of years
|
|
1280
|
+
*/
|
|
1281
|
+
declare function cagr(start: number | null | undefined, end: number | null | undefined, years: number): number | null;
|
|
1282
|
+
/**
|
|
1283
|
+
* Annualizes a sub-annual return.
|
|
1284
|
+
* @param returnValue - periodic return (decimal)
|
|
1285
|
+
* @param periodsPerYear - e.g. 252 for daily, 12 for monthly, 4 for quarterly
|
|
1286
|
+
*/
|
|
1287
|
+
declare function annualizeReturn(returnValue: number, periodsPerYear: number): number;
|
|
1288
|
+
/**
|
|
1289
|
+
* Standard deviation of an array of numbers.
|
|
1290
|
+
* @param values - array of returns or values
|
|
1291
|
+
* @param ddof - degrees of freedom (0 = population, 1 = sample). Default: 1
|
|
1292
|
+
*/
|
|
1293
|
+
declare function stdDev(values: number[], ddof?: number): number | null;
|
|
1294
|
+
/**
|
|
1295
|
+
* Arithmetic mean of an array.
|
|
1296
|
+
*/
|
|
1297
|
+
declare function mean(values: number[]): number | null;
|
|
1298
|
+
/**
|
|
1299
|
+
* Percentile of a sorted or unsorted array.
|
|
1300
|
+
* @param values - array of numbers
|
|
1301
|
+
* @param percentile - 0–1 (e.g. 0.05 for 5th percentile)
|
|
1302
|
+
*/
|
|
1303
|
+
declare function percentile(values: number[], p: number): number | null;
|
|
1304
|
+
/**
|
|
1305
|
+
* Maximum drawdown from a series of prices or cumulative returns.
|
|
1306
|
+
* Returns a positive decimal, e.g. 0.3 for a 30% drawdown.
|
|
1307
|
+
*/
|
|
1308
|
+
declare function maxDrawdown(prices: number[]): number | null;
|
|
1309
|
+
/**
|
|
1310
|
+
* Convert an array of prices to period returns.
|
|
1311
|
+
*/
|
|
1312
|
+
declare function pricesToReturns(prices: number[]): number[];
|
|
1313
|
+
|
|
1314
|
+
export { type AltmanInput, type AltmanResult, type BeneishInput, type BeneishResult, type DuPont3Factor, type MagicFormulaResult, type OhlsonInput, type PiotroskiInput, type PiotroskiResult, type RatioFn, affo, altmanZScore, annualizeReturn, arrPerFte, assetTurnover, beneishMScore, beta, burnMultiple, bvpsGrowth, cacPaybackPeriod, cagr, calmarRatio, capRate, capexToDepreciation, capexToRevenue, capitalTurnover, cashConversionCycle, cashRatio, cashReturnOnAssets, cet1Ratio, combinedRatio, conditionalVaR, currentRatio, customerAcquisitionCost, customerLifetimeValue, dcf2Stage, debtServiceCoverageRatio, debtToAssets, debtToCapital, debtToEquity, defensiveIntervalRatio, dio, dividendGrowthRate, downsideCaptureRatio, dpo, dso, duPont3, earningsPowerValue, ebitdaCoverageRatio, ebitdaGrowth, ebitdaMargin, efficiencyRatio, enterpriseValue, epsGrowth, equityMultiplier, evEbit, evEbitda, evFcf, evInvestedCapital, evRevenue, expenseRatio, fcfConversion, fcfGrowth, fcfMargin, fcfYield, ffo, fixedAssetTurnover, fixedChargeCoverageRatio, forwardPe, freeCashFlow, gordonGrowthModel, grahamIntrinsicValue, grahamNumber, grossMargin, grossRevenueRetention, historicalVaR, informationRatio, interestCoverageRatio, inventoryTurnover, investedCapital, jensensAlpha, leveredFcf, loanToDepositRatio, lossRatio, ltvCacRatio, magicFormula, magicNumber, maxDrawdown, maximumDrawdown, mean, netDebtToEbitda, netDebtToEquity, netInterestMargin, netOperatingIncome, netProfitMargin, netRevenueRetention, nopat, nopatMargin, nplRatio, occupancyRate, ocfToSales, ohlsonOScore, omegaRatio, operatingCashFlowRatio, operatingLeverage, operatingMargin, ownerEarnings, pAffo, pFcf, pFfo, parametricVaR, payablesTurnover, pb, pe, peg, percentile, piotroskiFScore, premiumsToSurplus, pricesToReturns, profitPerEmployee, provisionCoverageRatio, ps, quickRatio, receivablesTurnover, revenueCAGR, revenueGrowth, revenuePerEmployee, reverseDcf, roa, roce, roe, roic, rote, ruleOf40, saasQuickRatio, safeDivide, sharpeRatio, sortinoRatio, stdDev, tangibleBookValuePerShare, tier1CapitalRatio, tobinsQ, trackingError, treynorRatio, ulcerIndex, underwritingProfitMargin, unleveredFcf, upsideCaptureRatio, workingCapitalTurnover };
|