Skip to content

month_normalize()

Normalize a monthly metric based on number of days in month

Since 1.16.0

Translate a metric to a standard month. A standard month is calculated as the exact number of days in a year divided by the number of months in a year, so 365.25/12 = 30.4375. month_normalize() divides a metric by the number of days in the corresponding calendar month and multiplies it by 30.4375.

This enables you to compare metrics for different months and decide which one performed better, objectively. For example, in the following table that summarizes the number of sales for three months, January has the highest number of total sales:

MonthSales
Jan3000
Feb2900
Mar2900

When you normalize the sales metrics, you get the following result, showing that February in fact performed better:

MonthNormalized sales
Jan2945.56
Feb3152.46
Mar2847.38

Get the normalized value for a metric of 1000, and a reference date of January 1, 2021:

SELECT month_normalize(1000,'2021-01-01 00:00:00+03'::timestamptz)

The output looks like this:

month_normalize
---------------------
981.8548387096774

The syntax is:

SELECT month_normalize(
metric => <metric>,
reference_date => <timestamp>,
days => <days>
);
NameTypeDefaultRequiredDescription
metricfloat8-The metric value to normalize
reference_dateTIMESTAMPTZ-Timestamp to normalize the metric with
daysfloat8365.25/12-Number of days to use for normalization
ColumnTypeDescription
month_normalizeDOUBLE PRECISIONThe normalized metric value, adjusted to a standard 30.4375-day month (365.25/12).