Compare commits

..

No commits in common. "28c14ece679eeed3143a4eb0ab2d2a934f1edd3a" and "be9ca7b848d9ad299e2649301c2b9df158d3edda" have entirely different histories.

9 changed files with 42 additions and 45 deletions

View File

@ -17,12 +17,10 @@ WITH
---these dates will have to be syncronized with the forecast build----------- ---these dates will have to be syncronized with the forecast build-----------
tdr AS ( tdr AS (
SELECT SELECT
-----------intented forecast range----------------------------------- -----------actuals into baseline-------------------------------------
DATERANGE('2021-06-01','2022-06-01','[)') prange DATERANGE('2020-06-01','2021-07-12','[]') arange
-----------explicitly call out overlap period------------------------ -----------plan into baseline----------------------------------------
-----------anythign in this period has to net out to match actuals--- ,DATERANGE('2021-06-01','2022-06-01','[)') prange
,DATERANGE('2021-06-01','2021-07-12','[]') overlap
,jsonb_build_array('plan','diff') iter
) )
,booked AS materialized( ,booked AS materialized(
SELECT SELECT
@ -34,7 +32,8 @@ tdr AS (
rlarp.osm_pool rlarp.osm_pool
WHERE WHERE
--find actual orders in the overlap range (where orders fall in both target ranges) --find actual orders in the overlap range (where orders fall in both target ranges)
order_date <@ (SELECT overlap FROM tdr) order_date <@ (SELECT arange FROM tdr)
AND order_date <@ (SELECT prange FROM tdr)
--anything that falls in this range is supposed to already match actuals, so no need to filter for actuals --anything that falls in this range is supposed to already match actuals, so no need to filter for actuals
GROUP BY GROUP BY
billto_group billto_group
@ -62,7 +61,7 @@ tdr AS (
--budget orders have already been trued up to match actual, so should not be included in the this isolation --budget orders have already been trued up to match actual, so should not be included in the this isolation
--find actual orders in the overlap range (where orders fall in both target ranges) --find actual orders in the overlap range (where orders fall in both target ranges)
p.order_date <@ (SELECT prange FROM tdr) p.order_date <@ (SELECT prange FROM tdr)
AND (SELECT iter FROM tdr) ? p.iter AND p.iter IN ('plan','diff')
GROUP BY GROUP BY
p.billto_group p.billto_group
,p.shipto_group ,p.shipto_group
@ -79,7 +78,7 @@ tdr AS (
,p.order_date ,p.order_date
,p.ship_date ,p.ship_date
,round(p.plan_units,2) plan_units ,round(p.plan_units,2) plan_units
,round(SUM(p.plan_units) FILTER (WHERE order_date >= (SELECT upper(overlap) FROM tdr)) OVER (PARTITION BY p.billto_group, p.shipto_group, p.part_group ORDER BY p.order_date, p.ship_date),2) plan_rolling ,round(SUM(p.plan_units) FILTER (WHERE order_date >= (SELECT upper(arange) FROM tdr)) OVER (PARTITION BY p.billto_group, p.shipto_group, p.part_group ORDER BY p.order_date, p.ship_date),2) plan_rolling
,round(SUM(p.plan_units) OVER (PARTITION BY p.billto_group, p.shipto_group, p.part_group ),2) plan_units_tot ,round(SUM(p.plan_units) OVER (PARTITION BY p.billto_group, p.shipto_group, p.part_group ),2) plan_units_tot
--,round(SUM(COALESCE(p.plan_units,0) + COALESCE(p.diff_units,0)) OVER (PARTITION BY p.billto_group, p.shipto_group, p.part_group ORDER BY p.order_date, p.ship_date),2) net_units_agg --,round(SUM(COALESCE(p.plan_units,0) + COALESCE(p.diff_units,0)) OVER (PARTITION BY p.billto_group, p.shipto_group, p.part_group ORDER BY p.order_date, p.ship_date),2) net_units_agg
,round(COALESCE(p.diff_units,0) + coalesce(p.plan_units,0),2) net_units ,round(COALESCE(p.diff_units,0) + coalesce(p.plan_units,0),2) net_units
@ -115,8 +114,8 @@ tdr AS (
rlarp.osm_log(doc) rlarp.osm_log(doc)
SELECT SELECT
$${ $${
"message":"remove future orders to the extent the new forecast totals more than the original budget", "message":"force accounts to match target total value and margin",
"tag":"1+11", "tag":"retail plug",
"type":"build" "type":"build"
}$$::jsonb doc }$$::jsonb doc
RETURNING * RETURNING *
@ -170,10 +169,10 @@ tdr AS (
,o.ship_season ,o.ship_season
,'1+11' AS version ,'1+11' AS version
,'pf' iter ,'pf' iter
,log.id --,log.id
,coalescE(log.doc->>'tag','') AS "tag" --,coalescE(log.doc->>'tag','') AS "tag"
,log.doc->>'message' AS "comment" --,log.doc->>'message' AS "comment"
,log.doc->>'type' module --,log.doc->>'type' module
FROM FROM
rlarp.osm_pool o rlarp.osm_pool o
INNER JOIN eval e ON INNER JOIN eval e ON
@ -182,7 +181,7 @@ tdr AS (
e.part_group = o.part_group AND e.part_group = o.part_group AND
e.order_date = o.order_date AND e.order_date = o.order_date AND
e.ship_date = o.ship_date e.ship_date = o.ship_date
CROSS JOIN log --CROSS JOIN log
WHERE WHERE
e.flag e.flag
GROUP BY GROUP BY
@ -226,10 +225,10 @@ tdr AS (
,o.ship_date ,o.ship_date
,o.ship_month ,o.ship_month
,o.ship_season ,o.ship_season
,log.id --,log.id
,coalescE(log.doc->>'tag','') --,coalescE(log.doc->>'tag','') AS "tag"
,log.doc->>'message' --,log.doc->>'message' AS "comment"
,log.doc->>'type' --,log.doc->>'type' module
-----some bad forecast swings, if one is removed it's wacky -----some bad forecast swings, if one is removed it's wacky
-----cap at -1,000,000 -----cap at -1,000,000
HAVING HAVING

View File

@ -16,13 +16,13 @@ DROP TABLE IF EXISTS tdr;
CREATE TEMP TABLE tdr AS ( CREATE TEMP TABLE tdr AS (
SELECT SELECT
-----------actuals into baseline------------------------------------- -----------actuals into baseline-------------------------------------
DATERANGE('2020-06-01','2021-07-15','[]') arange DATERANGE('2020-06-01','2021-07-12','[]') arange
-----------plan into baseline---------------------------------------- -----------plan into baseline----------------------------------------
,DATERANGE('2020-06-01','2022-06-01','[)') prange ,DATERANGE('2021-06-01','2022-06-01','[)') prange
-----------forecast into baseline------------------------------------ -----------forecast into baseline------------------------------------
,DATERANGE('2022-06-01','2022-06-01','[)') frange -- this range effectively excludes ,DATERANGE('2022-06-01','2022-06-01','[)') frange -- this range effectively excludes
-----------baseline selection for increment-------------------------- -----------baseline selection for increment--------------------------
,DATERANGE('2021-07-15','2021-07-15','[)') selection ,DATERANGE('2021-07-08','2021-07-08','[)') selection
-----------selection increment size---------------------------------- -----------selection increment size----------------------------------
,'0 year'::interval AS incr ,'0 year'::interval AS incr
-----------iterations to merge with---------------------------------- -----------iterations to merge with----------------------------------

View File

@ -113,9 +113,7 @@ SELECT
iter, iter,
tag tag
FROM FROM
rlarp.osm_pool rlarp.osm_pool;
WHERE
version <> 'actuals'
-------need to set item master values before other things----------- -------need to set item master values before other things-----------
UPDATE UPDATE

View File

@ -6,10 +6,10 @@ target AS (select target_volume vincr, target_price pincr)
,testv AS ( ,testv AS (
SELECT SELECT
sum(units) tot sum(units) tot
,sum(units) FILTER (WHERE iter IN ('copy','plan','diff')) base ,sum(units) FILTER (WHERE iter = 'copy') base
,COALESCE(sum(units) FILTER (WHERE module = 'new basket'),0) newpart ,COALESCE(sum(units) FILTER (WHERE module = 'new basket'),0) newpart
,sum(value_loc *r_rate) totsales ,sum(value_loc *r_rate) totsales
,sum(value_loc *r_rate) FILTER (WHERE iter IN ('plan','diff','copy')) basesales ,sum(value_loc *r_rate) FILTER (WHERE iter = 'copy') basesales
,COALESCE(sum(value_loc *r_rate) FILTER (WHERE module = 'new basket'),0) newpartsales ,COALESCE(sum(value_loc *r_rate) FILTER (WHERE module = 'new basket'),0) newpartsales
FROM FROM
rlarp.osm_pool rlarp.osm_pool
@ -114,7 +114,7 @@ target AS (select target_volume vincr, target_price pincr)
-----------------additional params------------------- -----------------additional params-------------------
AND CASE (SELECT flag FROM flagv) AND CASE (SELECT flag FROM flagv)
WHEN 'scale all' THEN true WHEN 'scale all' THEN true
WHEN 'scale copy' THEN iter IN ('plan','diff','copy') WHEN 'scale copy' THEN iter = 'copy'
WHEN 'scale new part' THEN module = 'new basket' WHEN 'scale new part' THEN module = 'new basket'
END END
AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments
@ -236,7 +236,7 @@ SELECT
-----------------additional params------------------- -----------------additional params-------------------
AND CASE (SELECT flag FROM flagv) AND CASE (SELECT flag FROM flagv)
WHEN 'scale all' THEN true WHEN 'scale all' THEN true
WHEN 'scale copy' THEN iter IN ('plan','diff','copy') WHEN 'scale copy' THEN iter = 'copy'
WHEN 'scale new part' THEN module = 'new basket' WHEN 'scale new part' THEN module = 'new basket'
END END
AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments

View File

@ -10,10 +10,10 @@ SELECT
,doc->>'stamp' stamp ,doc->>'stamp' stamp
,logid ,logid
,tag ,tag
,sum(value_usd) FILTER (WHERE iter IN ('plan','diff','copy')) sales ,sum(value_usd) FILTER (WHERE iter = 'copy') sales
,sum(cost_usd) FILTER (WHERE iter IN ('plan','diff','copy')) scogs ,sum(cost_usd) FILTER (WHERE iter = 'copy') scogs
,sum(value_usd) FILTER (WHERE iter <> NOT IN ('plan','diff','copy')) sales_adj ,sum(value_usd) FILTER (WHERE iter <> 'copy') sales_adj
,sum(cost_usd) FILTER (WHERE iter <> NOT IN ('plan','diff','copy')) scogs_adj ,sum(cost_usd) FILTER (WHERE iter <> 'copy') scogs_adj
FROM FROM
rlarp.osm_pool rlarp.osm_pool
LEFT OUTER JOIN rlarp.osm_log ON LEFT OUTER JOIN rlarp.osm_log ON

View File

@ -3,7 +3,7 @@ target AS (select incr_qty qincr)
,testv AS ( ,testv AS (
SELECT SELECT
sum(units) tot sum(units) tot
,sum(units) FILTER (WHERE iter IN ('copy','plan','diff')) base ,sum(units) FILTER (WHERE iter = 'copy') base
,sum(units) FILTER (WHERE module = 'new basket') newpart ,sum(units) FILTER (WHERE module = 'new basket') newpart
FROM FROM
rlarp.osm_pool p rlarp.osm_pool p
@ -91,13 +91,13 @@ target AS (select incr_qty qincr)
-----------------additional params------------------- -----------------additional params-------------------
AND CASE (SELECT flag FROM flagv) AND CASE (SELECT flag FROM flagv)
WHEN 'scale all' THEN true WHEN 'scale all' THEN true
WHEN 'scale copy' THEN iter IN ('copy','plan','diff') WHEN 'scale copy' THEN iter = 'copy'
WHEN 'scale new part' THEN module = 'new basket' WHEN 'scale new part' THEN module = 'new basket'
END END
AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments
AND order_date <= ship_date AND order_date <= ship_date
GROUP BY GROUP BY
fspr fspr
,plnt ---master data ,plnt ---master data
,promo --history date mix ,promo --history date mix
,terms ,terms

View File

@ -3,7 +3,7 @@ target AS (select target_vol vincr, target_prc pincr)
,testv AS ( ,testv AS (
SELECT SELECT
sum(units) tot sum(units) tot
,sum(units) FILTER (WHERE iter IN ('plan','diff','copy')) base ,sum(units) FILTER (WHERE iter = 'copy') base
,sum(units) FILTER (WHERE module = 'new basket') newpart ,sum(units) FILTER (WHERE module = 'new basket') newpart
FROM FROM
rlarp.osm_pool rlarp.osm_pool
@ -91,7 +91,7 @@ target AS (select target_vol vincr, target_prc pincr)
-----------------additional params------------------- -----------------additional params-------------------
AND CASE (SELECT flag FROM flagv) AND CASE (SELECT flag FROM flagv)
WHEN 'scale all' THEN true WHEN 'scale all' THEN true
WHEN 'scale copy' THEN iter IN ('plan','diff','copy') WHEN 'scale copy' THEN iter = 'copy'
WHEN 'scale new part' THEN module = 'new basket' WHEN 'scale new part' THEN module = 'new basket'
END END
AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments

View File

@ -3,7 +3,7 @@ target AS (select target_vol vincr, target_prc pincr)
,testv AS ( ,testv AS (
SELECT SELECT
sum(units) tot sum(units) tot
,sum(units) FILTER (WHERE iter IN ('plan','diff','copy')) base ,sum(units) FILTER (WHERE iter = 'copy') base
,sum(units) FILTER (WHERE module = 'new basket') newpart ,sum(units) FILTER (WHERE module = 'new basket') newpart
FROM FROM
rlarp.osm_pool rlarp.osm_pool
@ -92,7 +92,7 @@ target AS (select target_vol vincr, target_prc pincr)
-----------------additional params------------------- -----------------additional params-------------------
AND CASE (SELECT flag FROM flagv) AND CASE (SELECT flag FROM flagv)
WHEN 'scale all' THEN true WHEN 'scale all' THEN true
WHEN 'scale copy' THEN iter IN ('plan','diff','copy') WHEN 'scale copy' THEN iter = 'copy'
WHEN 'scale new part' THEN module = 'new basket' WHEN 'scale new part' THEN module = 'new basket'
END END
AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments AND calc_status||flag <> 'CLOSEDREMAINDER' --exclude short ships when building order adjustments

View File

@ -95,12 +95,12 @@ GROUP BY
order_month order_month
,seq ,seq
,SUM(units) FILTER (WHERE order_season = 2021) "2021 qty" ,SUM(units) FILTER (WHERE order_season = 2021) "2021 qty"
,SUM(units) FILTER (WHERE order_season = 2022 AND iter IN ('copy','short ship','bad_ship','plan')) "2022 base qty" ,SUM(units) FILTER (WHERE order_season = 2022 AND iter IN ('copy','short ship','bad_ship')) "2022 base qty"
,SUM(units) FILTER (WHERE order_season = 2022 AND iter NOT IN ('copy','short ship','bad_ship','diff','pf')) "2022 adj qty" ,SUM(units) FILTER (WHERE order_season = 2022 AND iter NOT IN ('copy','short ship','bad_ship')) "2022 adj qty"
,SUM(units) FILTER (WHERE order_season = 2022) "2022 tot qty" ,SUM(units) FILTER (WHERE order_season = 2022) "2022 tot qty"
,SUM(value_usd) FILTER (WHERE order_season = 2021) "2021 value_usd" ,SUM(value_usd) FILTER (WHERE order_season = 2021) "2021 value_usd"
,SUM(value_usd) FILTER (WHERE order_season = 2022 AND iter IN ('copy','short ship','bad_ship','plan')) "2022 base value_usd" ,SUM(value_usd) FILTER (WHERE order_season = 2022 AND iter IN ('copy','short ship','bad_ship')) "2022 base value_usd"
,SUM(value_usd) FILTER (WHERE order_season = 2022 AND iter NOT IN ('copy','short ship','bad_ship','diff','pf')) "2022 adj value_usd" ,SUM(value_usd) FILTER (WHERE order_season = 2022 AND iter NOT IN ('copy','short ship','bad_ship')) "2022 adj value_usd"
,SUM(value_usd) FILTER (WHERE order_season = 2022) "2022 tot value_usd" ,SUM(value_usd) FILTER (WHERE order_season = 2022) "2022 tot value_usd"
FROM FROM
months months