1: doctype "./plans.g.etl";
     2: // sample from http://martinfowler.com/articles/mpsAgree.html
     3: plan Regular {
     4: 	value BASE_RATE : Quantity {
     5: 		past => 10.0 * USD/KwH;
     6: 		after 1999-12-01 => 12.0 * USD/KwH;
     7: 	};
     8: 	event USAGE {
     9: 		after 1999-10-01 => account base_usage <- BASE_RATE * usage;
    10: 	};
    11: 	event SERVICE_CALL {
    12: 		after 1999-10-01 => account service <- fee * 0.5 + $ 10.0;
    13: 		after 1999-12-01 => account service <- fee * 0.5 + $ 15.0;
    14: 	};
    15: 	event TAX {
    16: 		after 1999-10-01 => account tax <- fee * 0.055;
    17: 	};
    18: };
    19: 
    20: plan LowPay {
    21: 	value BASE_RATE : Quantity {
    22: 		past => 10.0*USD/KwH;
    23: 	};
    24: 	value REDUCED_RATE : Quantity {
    25: 		past => 5.0*USD/KwH;
    26: 	};
    27: 	value CAP : Quantity {
    28: 		past => 50.0 * KwH;
    29: 		after 1999-10-01 => 60.0 * KwH;
    30: 	};
    31: 	event USAGE {
    32: 		after 1999-10-01 => account base_usage <- if usage > CAP then BASE_RATE * usage else REDUCED_RATE * usage;
    33: 	};
    34: 	event SERVICE_CALL {
    35: 		after 1999-10-01 => account service <- $ 10.0;
    36: 		after 1999-12-01 => account service <- fee * 0.5 + $ 15.0;
    37: 	};
    38: 	event TAX {
    39: 		after 1999-10-01 => account tax <- fee * 0.055;
    40: 	};
    41: };