diff --git a/sql/schema.functions.postgresql.sql b/sql/schema.functions.postgresql.sql
index 5884c89de1a69689e66ce65ac348fa2763265664..fced8751a07bb6cc2f8f3151bef38cd35f447bca 100644
--- a/sql/schema.functions.postgresql.sql
+++ b/sql/schema.functions.postgresql.sql
@@ -3,9 +3,20 @@ RETURNS VOID AS $$
 BEGIN
 	REFRESH MATERIALIZED VIEW agrometinfo.v_pra_dailyvalue;
 END;
-$$  LANGUAGE plpgsql
+$$ LANGUAGE plpgsql
 	SECURITY DEFINER
 	-- Set a secure search_path: trusted schema(s), then 'pg_temp'.
 	SET search_path = agrometinfo, pg_temp;
 GRANT EXECUTE ON FUNCTION agrometinfo.refresh_materialized_view() TO season;
+COMMENT ON FUNCTION refresh_materialized_view() IS 'Secure function to update v_pra_dailyvalue using season role, from insert_indicators function.';
 
+CREATE OR REPLACE FUNCTION update_comparedvalue()
+RETURNS VOID AS $$
+BEGIN
+	UPDATE dailyvalue AS d
+	SET comparedvalue=COALESCE(d.computedvalue - n."medianvalue", 0)
+	FROM normalvalue AS n
+	WHERE n."indicator"=d.indicator AND n.cell=d.cell AND n.doy=EXTRACT(doy FROM d.date);
+END;
+$$ LANGUAGE plpgsql;
+COMMENT ON FUNCTION update_comparedvalue() IS 'Update the compared value in dailyvalue, useful when normalvalue is changed.';