function series rel_ok (const series obsdate, const series reldate, int p) series y_obs, m_obs, d_obs, y_rel, m_rel, d_rel isoconv(obsdate, &y_obs, &m_obs, &d_obs) isoconv(reldate, &y_rel, &m_rel, &d_rel) series dm = (12*y_rel + m_rel) - (12*y_obs + m_obs) return dm < p || (dm == p && d_rel <= d_obs) end function nulldata 45 setobs 12 2005:10 string fname = "INDPRO.txt" # initial published values join @fname firstpub --data=INDPRO --tkey=observation_date \ --tconvert=realtime_start_date --aggr=min(realtime_start_date) # plus 3 months join @fname plus3 --data=INDPRO --tkey=observation_date \ --tconvert="observation_date,realtime_start_date" \ --filter="rel_ok(observation_date, realtime_start_date, 3)" \ --aggr=max(realtime_start_date) # plus 6 months join @fname plus6 --data=INDPRO --tkey=observation_date \ --tconvert="observation_date,realtime_start_date" \ --filter="rel_ok(observation_date, realtime_start_date, 6)" \ --aggr=max(realtime_start_date) # plus 12 months join @fname plus12 --data=INDPRO --tkey=observation_date \ --tconvert="observation_date,realtime_start_date" \ --filter="rel_ok(observation_date, realtime_start_date, 12)" \ --aggr=max(realtime_start_date) setinfo firstpub --graph-name="First publication" setinfo plus3 --graph-name="Plus 3 months" setinfo plus6 --graph-name="Plus 6 months" setinfo plus12 --graph-name="Plus 12 months" # set --output=realtime.pdf for PDF gnuplot firstpub plus3 plus6 plus12 --time --with-lines \ --output=display { set key left bottom; }