generateseries não funcionam em joins

ao usar generateseries no postgres, é permitido fazer left join com outras tabelas e exibir valores nulos? se sim não esta se comportando desta forma pra mim. no exemplo, não tenho valor pedido no mes 12, logo o mes 12 não é mostrado.

WITH periodo AS (
   SELECT 
  extract(YEAR FROM dt) AS ano,
  extract(MONTH FROM dt) AS mes
 FROM (SELECT CAST(generate_series(
    '2021-01-01'::date,
    '2021-12-31'::date,
    '1 month'::interval) AS date) AS dt
  ) AS date_series
)
 SELECT
    periodo.ano,
    periodo.mes,
    sum(pedido.vlr)     
FROM periodo
left JOIN pedido ON 
        EXTRACT(month FROM pedido.data) = periodo.mes
    and EXTRACT(year pedido.data) = periodo.ano
 WHERE 
      pedido.data BETWEEN '2021-01-01' AND '2021-12-31'    
 GROUP BY 1,2
 ORDER BY ano,mes