anchor.diff:  			{"startDate", ocs_rest:iso8601(SD)}
   	end.
   
  --spec prod_tdate(Prefix, Product) -> Result
  -	when
  -		Prefix :: erl_term | json,
  -		Product :: list() | #product{},
  +-spec prod_tdate(Product) -> Result
  +	when
  +		Product :: [tuple()] | #product{},
   		Result :: undefined | tuple().
   %% @private
  -prod_tdate(erl_term, Product) ->
  +prod_tdate(Product) when is_list(Product) ->
   	case lists:keyfind("terminationDate", 1, Product) of
   		{_, SD} ->
   			ocs_rest:iso8601(SD);
   		false ->
   			undefined
   	end;
  -prod_tdate(json, Product) ->
  +prod_tdate(#product{} = Product) ->
   	case Product#product.termination_date of
   		undefined ->
   			{"terminationDate", ""};
  
positive.code: 		false ->
  			{undefined, undefined}
  	end;
  prod_price_vf(json, Price) ->
  	case Price#price.valid_for of
  		{undefined, undefined} ->
  			{"validFor",{struct, []}};
  
negative.code: 			{"recurringChargePeriod", rc_period(RCPeriod)}
  	end.
  
  -spec prod_price_alter_name(Alteration) -> Result
  	when
  		Alteration :: [tuple()] | #alteration{},
  		Result :: string() | tuple().
  %% @private
  prod_price_alter_name(Alteration) when is_list(Alteration) ->
  	{_, Name} = lists:keyfind("name", 1, Alteration),
  	Name;
  prod_price_alter_name(#alteration{} = Alteration) ->
  	{"name", Alteration#alteration.name}.
  
  -spec prod_price_alter_vf(Alteration) -> Result
  	when
  		Alteration :: [tuple()] | #alteration{},
  		Result :: integer() | tuple().
  %% @private
  prod_price_alter_vf(Alteration) when is_list(Alteration) ->
  	case lists:keyfind("validFor", 1, Alteration) of
  		{_, {struct, Alteration}} ->
  			PAlterSTimeISO = proplists:get_value("startDateTime", Alteration),
  			PAlterETime = proplists:get_value("endDateTime", Alteration),
  			case {PAlterSTimeISO, PAlterETime} of
  				{undefined, undefined} ->
  					{undefined, undefined};
  