Summary
This notebook simulates the effect of the new (as of July 7th 2022)
evaluation design on payments. I produced this pretty quickly and thus
there isn’t much explanation for the formulas / calculations. See the
earlier notebooks with standard error calculations and simulations for
more background.
Evaluation Design

Simulation Approach
With this evaluation design, each annual impact estimate is
independent (assuming we don’t use the grade 3 assessment in year 4 for
payment calculations). Thus, to simulate the effect of uncertainty on
payments, I simulate draw random from the impact estimates rather than
each data collection rounds.
In the code below, I assume that the actual 2 year effect and the
target for each cohort is .2 but this is easily changed by changing the
parameters in the code.
Simulations
library(tidyverse)
# sampling inputs
J <- 50 # Number of schools per arm
K <- 25 # Number of students per school
rho <- 0.1 # ICC
rsj <- .2
rsk <- .2
rsl <- .63
# variance calculations
A <- rho/J
B <- (1-rho)/(J*K)
var <- 2*A*(1-rsj)+2*B*(1-rsk)+2*(A+B)*(1-rsl)
se = var^.5
sims <- 100000
true_impact = .2 # true impact for 2 years of exposure
target = .2 # target for each cohort
est_effect_y1 <- rnorm(sims, mean = true_impact, sd = se)
est_effect_y2 <- rnorm(sims, mean = true_impact, sd = se)
est_effect_y3 <- rnorm(sims, mean = true_impact, sd = se)
est_effect_y4 <- rnorm(sims, mean = true_impact, sd = se)
payment_y1 <- pmax(0, est_effect_y1/(4*target))
payment_y2 <- pmax(0, est_effect_y2/(4*target))
payment_y3 <- pmax(0, est_effect_y3/(4*target))
payment_y4 <- pmax(0, est_effect_y4/(4*target))
total_payment = payment_y1+payment_y2+payment_y3+payment_y4
mean(total_payment)
[1] 0.9994181
print("90% confidence interval for return")
[1] "90% confidence interval for return"
quantile(total_payment-1, c(.05,.95))
5% 95%
-0.3259126 0.3266359
print("75% confidence interval for return")
[1] "75% confidence interval for return"
quantile(total_payment-1, c(.125,.875))
12.5% 87.5%
-0.2288104 0.2280068
ggplot(tibble(p = total_payment-1), aes(x = p)) +
geom_histogram(binwidth = .02) +
labs(x = "Return", y = "Frequency", caption = "Red line indicates what the investors should be paid", title = "Expected Return w/ Current Evaluation Design")

LS0tDQp0aXRsZTogIkIyU09GIFNhbXBsZSBTaW11bGF0aW9ucyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMgU3VtbWFyeQ0KDQpUaGlzIG5vdGVib29rIHNpbXVsYXRlcyB0aGUgZWZmZWN0IG9mIHRoZSBuZXcgKGFzIG9mIEp1bHkgN3RoIDIwMjIpIGV2YWx1YXRpb24gZGVzaWduIG9uIHBheW1lbnRzLiBJIHByb2R1Y2VkIHRoaXMgcHJldHR5IHF1aWNrbHkgYW5kIHRodXMgdGhlcmUgaXNuJ3QgbXVjaCBleHBsYW5hdGlvbiBmb3IgdGhlIGZvcm11bGFzIC8gY2FsY3VsYXRpb25zLiBTZWUgdGhlIGVhcmxpZXIgbm90ZWJvb2tzIHdpdGggc3RhbmRhcmQgZXJyb3IgY2FsY3VsYXRpb25zIGFuZCBzaW11bGF0aW9ucyBmb3IgbW9yZSBiYWNrZ3JvdW5kLg0KDQojIEV2YWx1YXRpb24gRGVzaWduDQoNCiFbXShpbWFnZXMvcGFzdGUtQ0NFQjQyREYucG5nKQ0KDQojIFNpbXVsYXRpb24gQXBwcm9hY2gNCg0KV2l0aCB0aGlzIGV2YWx1YXRpb24gZGVzaWduLCBlYWNoIGFubnVhbCBpbXBhY3QgZXN0aW1hdGUgaXMgaW5kZXBlbmRlbnQgKGFzc3VtaW5nIHdlIGRvbid0IHVzZSB0aGUgZ3JhZGUgMyBhc3Nlc3NtZW50IGluIHllYXIgNCBmb3IgcGF5bWVudCBjYWxjdWxhdGlvbnMpLiBUaHVzLCB0byBzaW11bGF0ZSB0aGUgZWZmZWN0IG9mIHVuY2VydGFpbnR5IG9uIHBheW1lbnRzLCBJIHNpbXVsYXRlIGRyYXcgcmFuZG9tIGZyb20gdGhlIGltcGFjdCBlc3RpbWF0ZXMgcmF0aGVyIHRoYW4gZWFjaCBkYXRhIGNvbGxlY3Rpb24gcm91bmRzLg0KDQpJbiB0aGUgY29kZSBiZWxvdywgSSBhc3N1bWUgdGhhdCB0aGUgYWN0dWFsIDIgeWVhciBlZmZlY3QgYW5kIHRoZSB0YXJnZXQgZm9yIGVhY2ggY29ob3J0IGlzIC4yIGJ1dCB0aGlzIGlzIGVhc2lseSBjaGFuZ2VkIGJ5IGNoYW5naW5nIHRoZSBwYXJhbWV0ZXJzIGluIHRoZSBjb2RlLg0KDQojIFN0YW5kYXJkIEVycm9yIEZvcm11bGENCg0KU2luY2Ugd2UgYXJlIHJlc2FtcGxpbmcgNTAlIG9mIHNjaG9vbHMgaW4gYm90aCB0aGUgdHJlYXRtZW50IGFuZCBjb250cm9sIGdyb3VwcyB0aGUgc3RhbmRhcmQgZXJyb3Igd2lsbCBiZSB0aGUgc2FtZSBhcyBpZiB3ZSBhcmUgcmVzYW1wbGluZyBzY2hvb2xzIGluIHRyZWF0bWVudCBidXQgdHJhY2tpbmcgdGhlIHNhbWUgc2Nob29scyBmb3IgY29udHJvbC4gVGhlIHZhcmlhbmNlIGZvciB0aGUgZXN0aW1hdG9yIHdvdWxkIChzZWUgc2NlbmFyaW8gMiBmcm9tIHRoZSBlYXJsaWVyIG5vdGVib29rKToNCg0KJCQgVihcaGF0e1x0YXV9KSA9IDJBKDEtUl9KXjIpKzJCKDEtUl9LXjIpICsgMiooQStCKSooMS1SXjJfTCkkJA0KDQojIFNpbXVsYXRpb25zDQoNCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQoNCiMgc2FtcGxpbmcgaW5wdXRzDQpKIDwtIDUwICMgTnVtYmVyIG9mIHNjaG9vbHMgcGVyIGFybQ0KSyA8LSAyNSAjIE51bWJlciBvZiBzdHVkZW50cyBwZXIgc2Nob29sDQpyaG8gPC0gMC4xICMgSUNDDQpyc2ogPC0gLjINCnJzayA8LSAuMg0KcnNsIDwtIC42Mw0KDQojIHZhcmlhbmNlIGNhbGN1bGF0aW9ucw0KQSA8LSByaG8vSg0KQiA8LSAoMS1yaG8pLyhKKkspDQp2YXIgPC0gMipBKigxLXJzaikrMipCKigxLXJzaykrMiooQStCKSooMS1yc2wpDQpzZSA9IHZhcl4uNQ0KDQpzaW1zIDwtIDEwMDAwMA0KdHJ1ZV9pbXBhY3QgPSAuMiAjIHRydWUgaW1wYWN0IGZvciAyIHllYXJzIG9mIGV4cG9zdXJlDQp0YXJnZXQgPSAuMiAjIHRhcmdldCBmb3IgZWFjaCBjb2hvcnQNCg0KZXN0X2VmZmVjdF95MSA8LSBybm9ybShzaW1zLCBtZWFuID0gdHJ1ZV9pbXBhY3QsIHNkID0gc2UpDQplc3RfZWZmZWN0X3kyIDwtIHJub3JtKHNpbXMsIG1lYW4gPSB0cnVlX2ltcGFjdCwgc2QgPSBzZSkNCmVzdF9lZmZlY3RfeTMgPC0gcm5vcm0oc2ltcywgbWVhbiA9IHRydWVfaW1wYWN0LCBzZCA9IHNlKQ0KZXN0X2VmZmVjdF95NCA8LSBybm9ybShzaW1zLCBtZWFuID0gdHJ1ZV9pbXBhY3QsIHNkID0gc2UpDQoNCnBheW1lbnRfeTEgPC0gcG1heCgwLCBlc3RfZWZmZWN0X3kxLyg0KnRhcmdldCkpDQpwYXltZW50X3kyIDwtIHBtYXgoMCwgZXN0X2VmZmVjdF95Mi8oNCp0YXJnZXQpKQ0KcGF5bWVudF95MyA8LSBwbWF4KDAsIGVzdF9lZmZlY3RfeTMvKDQqdGFyZ2V0KSkNCnBheW1lbnRfeTQgPC0gcG1heCgwLCBlc3RfZWZmZWN0X3k0Lyg0KnRhcmdldCkpDQoNCnRvdGFsX3BheW1lbnQgPSBwYXltZW50X3kxK3BheW1lbnRfeTIrcGF5bWVudF95MytwYXltZW50X3k0DQoNCm1lYW4odG90YWxfcGF5bWVudCkNCg0KcHJpbnQoIjkwJSBjb25maWRlbmNlIGludGVydmFsIGZvciByZXR1cm4iKQ0KcXVhbnRpbGUodG90YWxfcGF5bWVudC0xLCBjKC4wNSwuOTUpKQ0KDQpwcmludCgiNzUlIGNvbmZpZGVuY2UgaW50ZXJ2YWwgZm9yIHJldHVybiIpDQpxdWFudGlsZSh0b3RhbF9wYXltZW50LTEsIGMoLjEyNSwuODc1KSkNCg0KDQpnZ3Bsb3QodGliYmxlKHAgPSB0b3RhbF9wYXltZW50LTEpLCBhZXMoeCA9IHApKSArIA0KICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IC4wMikgKw0KICBsYWJzKHggPSAiUmV0dXJuIiwgeSA9ICJGcmVxdWVuY3kiLCBjYXB0aW9uID0gIlJlZCBsaW5lIGluZGljYXRlcyB3aGF0IHRoZSBpbnZlc3RvcnMgc2hvdWxkIGJlIHBhaWQiLCB0aXRsZSA9ICJFeHBlY3RlZCBSZXR1cm4gdy8gQ3VycmVudCBFdmFsdWF0aW9uIERlc2lnbiIpICANCmBgYA0K