doctype "./plans.g.etl";
// sample from http://martinfowler.com/articles/mpsAgree.html
plan Regular {
value BASE_RATE : Quantity {
past => 10.0 * USD/KwH;
after 1999-12-01 => 12.0 * USD/KwH;
};
event USAGE {
after 1999-10-01 => account base_usage <- BASE_RATE * usage;
};
event SERVICE_CALL {
after 1999-10-01 => account service <- fee * 0.5 + $ 10.0;
after 1999-12-01 => account service <- fee * 0.5 + $ 15.0;
};
event TAX {
after 1999-10-01 => account tax <- fee * 0.055;
};
};
plan LowPay {
value BASE_RATE : Quantity {
past => 10.0*USD/KwH;
};
value REDUCED_RATE : Quantity {
past => 5.0*USD/KwH;
};
value CAP : Quantity {
past => 50.0 * KwH;
after 1999-10-01 => 60.0 * KwH;
};
event USAGE {
after 1999-10-01 => account base_usage <- if usage > CAP then BASE_RATE * usage else REDUCED_RATE * usage;
};
event SERVICE_CALL {
after 1999-10-01 => account service <- $ 10.0;
after 1999-12-01 => account service <- fee * 0.5 + $ 15.0;
};
event TAX {
after 1999-10-01 => account tax <- fee * 0.055;
};
};