Published
Edited
Apr 29, 2019
Insert cell
md`# Augur (REP) reporting fee utility value exploration`
Insert cell
Insert cell
slide`Per the multicoin capital report on Augur, the primary driver is outstanding interest and average reporting fee as a percentage of OI

https://multicoin.capital/2017/08/24/rep2017/`
Insert cell
viewof outstandingInterest = slider({
min: 100000,
max: 10000000000,
step: 500000,
value: 450000,
title: "Current outstanding interest on Augur",
description: "Increments in 1/2 million"
})
Insert cell
viewof interestGrowthRate = slider({
min: 0,
max: 100,
step: 0.01,
value: 3,
title: "Annual outstanding interest growth rate",
description: "Increments in 1 percent, defaulting to 300%"
})
Insert cell
viewof averageReportingFee = slider({
min: 0,
max: 1,
step: 0.01,
value: 0.01,
title: "Average reporting fee as a percentage of outstanding interest",
description: "Increments in 1 percent"
})
Insert cell
md`### Outstanding interest over the next 10 years`
Insert cell
outstandingInterestOvertime = {
let Arr = [outstandingInterest];
for(let i=1; i < 10; i++) {
let newInt = Arr[i-1] * interestGrowthRate;
Arr[i] = Math.round(Arr[i-1] + newInt);
}
return Arr;
}
Insert cell
grossValues = {
let reportingArr = [outstandingInterest * averageReportingFee];
for(let i=1; i < 10; i++) {
let newSpend = outstandingInterestOvertime[i-1] * averageReportingFee;
reportingArr[i] = Math.round(reportingArr[i-1] + newSpend);
}
return reportingArr;
}
Insert cell
grossProduct = grossValues.map((gross, idx) => {
if (!idx) return gross
return gross - grossValues[idx-1]
})
Insert cell
Insert cell
monetaryValue = grossProduct.map(year => year / velocity)
Insert cell
viewof discountRate = slider({
min: 0,
max: 1,
step: .01,
value: 0.20,
title: "Discount Rate",
description: "The rate at which future utility needs to be discounted (higher discounts indicate more uncertainty)"
})
Insert cell
md`## Probability of failure`
Insert cell
viewof milestones = createMilestones(2)
Insert cell
viewof qualifiers = createQualifers(0)
Insert cell
viewof economicMechanic = createTokenModel(1)
Insert cell
viewof decentralization = createDecentralization(0)
Insert cell
discountedMonetaryValue = getNPV(monetaryValue)
Insert cell
viewof probabilityOfFailure = slider({
min: 0,
max: 1,
step: .01,
value: calculateProbabilityFailure(milestones, economicMechanic, qualifiers, decentralization),
title: "Probability of failure",
description: "The probabilty that this project in isolation will fail"
})
Insert cell
viewof terminalGrowthRate = slider({
min: .01,
max: 1,
step: .01,
value: 0.02,
title: "Terminal growth rate per annum (percent)",
description: "percentages from 1% through 100%"
})
Insert cell
terminalValue = {
let lastYearFees = monetaryValue.slice(-1)[0]
return lastYearFees / (discountRate - terminalGrowthRate)
}
Insert cell
discountedTerminalValue = terminalValue / ((1+discountRate)**(monetaryValue.length + 1))
Insert cell
currentUtilityValue = (discountedMonetaryValue + discountedTerminalValue) * (1 - probabilityOfFailure)
Insert cell
slide`Net Present Utility Value: ${currentUtilityValue.toLocaleString(undefined, { style: 'currency', currency: 'USD'})}`
Insert cell
import {slider} from "@jashkenas/inputs"
Insert cell
import {slide, slide_style} from "@mbostock/slide"

Insert cell

slide_style
Insert cell
import {createMilestones, createQualifers, createTokenModel, createDecentralization, calculateProbabilityFailure} from '@bgits/cryptonetwork-probability-of-failure'
Insert cell
NPVaggregate = function (rate) {
var npv = arguments[1];
for (var i = 2; i < arguments.length; i++) {
npv +=(arguments[i] / Math.pow((1 + rate), i - 1));
}
return Math.round(npv * 100) / 100;
}
Insert cell
getNPV = (aggregateDollarDemandPerYear) => Math.floor(NPVaggregate(discountRate, ...aggregateDollarDemandPerYear))
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more