Simple EA Funds variant
This commit is contained in:
parent
b5b29e99d6
commit
eecfd765f3
36
src/EAFunds.bs.js
Normal file
36
src/EAFunds.bs.js
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
|
||||||
|
function yearlyMeanGrowthRateIfNotClosed(group) {
|
||||||
|
return {
|
||||||
|
meanDiff: 1.1,
|
||||||
|
stdDiff: 1.1
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function yearlyChanceOfClosing(group) {
|
||||||
|
return 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function yearlyStdevGrowthRate(group, year, parameter) {
|
||||||
|
if (group) {
|
||||||
|
return /* tuple */[
|
||||||
|
30,
|
||||||
|
30
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
return /* tuple */[
|
||||||
|
50,
|
||||||
|
10
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var PayoutsIfAround = {
|
||||||
|
yearlyMeanGrowthRateIfNotClosed: yearlyMeanGrowthRateIfNotClosed,
|
||||||
|
yearlyChanceOfClosing: yearlyChanceOfClosing,
|
||||||
|
yearlyStdevGrowthRate: yearlyStdevGrowthRate
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.PayoutsIfAround = PayoutsIfAround;
|
||||||
|
/* No side effect */
|
39
src/EAFunds.re
Normal file
39
src/EAFunds.re
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
type fund =
|
||||||
|
| ANIMAL_WELFARE
|
||||||
|
| GLOBAL_HEALTH
|
||||||
|
| LONG_TERM_FUTURE
|
||||||
|
| META;
|
||||||
|
|
||||||
|
type group =
|
||||||
|
| Fund(fund)
|
||||||
|
| All;
|
||||||
|
|
||||||
|
type parameter =
|
||||||
|
| CHANCE_CLOSED
|
||||||
|
| DONATIONS
|
||||||
|
| PAYOUTS;
|
||||||
|
|
||||||
|
type yearlyNumericDiff = {
|
||||||
|
meanDiff: float,
|
||||||
|
stdDiff: float,
|
||||||
|
};
|
||||||
|
|
||||||
|
module PayoutsIfAround = {
|
||||||
|
let yearlyMeanGrowthRateIfNotClosed = (group: group): yearlyNumericDiff => {
|
||||||
|
{meanDiff: 1.1, stdDiff: 1.1};
|
||||||
|
};
|
||||||
|
|
||||||
|
let yearlyChanceOfClosing = (group: group) => {
|
||||||
|
0.1;
|
||||||
|
};
|
||||||
|
|
||||||
|
let yearlyStdevGrowthRate = (group: group, year: int, parameter: parameter) => {
|
||||||
|
switch (group) {
|
||||||
|
| Fund(ANIMAL_WELFARE) => (30, 30)
|
||||||
|
| Fund(GLOBAL_HEALTH) => (30, 30)
|
||||||
|
| Fund(LONG_TERM_FUTURE) => (30, 30)
|
||||||
|
| Fund(META) => (30, 30)
|
||||||
|
| All => (50, 10)
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user