[口座残高と収益](flow_zone:HEqMuwo)は、[balances_renamed](dataset:balances_renamed) および [revenues_renamed](dataset:revenues_renamed) データセットの作成を行います。

![Balances and Revenues Zone.png](yT0cKyTHqrxr)

最初にデータセット２つを[Join](recipe:compute_balances_product) し、さらに[products](dataset:products) データセットで商品と商品タイプに関する情報を追加し特徴量を増やします。他の準備ステップと同様に、このデータセットとdates_historyデータセットはデカルト積で[Join](recipe:compute_balances_history)されます。後続の[Prepare](recipe:compute_balances_product_prepared_1) レシピでは空白セルは収益が０とされ、ある商品について顧客が残高を持っているにもかかわらず、収益が発生していないことを示します。残高と収益の日付と基準日の時間差が計算され、in_history変数を定義して、ルックバック期間に属する行だけを保持します。一時的な変数は削除され、2つのグループ化変数が順次適用されます。

 - [compute_balances_history_average](recipe:compute_balances_history_average): 各基準期間において、顧客ごと、商品ごとに平均値、最終残高、収益を算出しています。
 - [compute_balances_product_summary](recipe:compute_balances_product_summary): すべての残高と収益の合計をとり、商品タイプごとに商品数をカウントすることにより、商品タイプレベルにまで遡って集計されます。
 
[ピボット](recipe:compute_balances_product_summary_customer)レシピを使用して、データをロングフォーマットからワイドフォーマットに変換し、顧客と基準日ごとに1つの行を取得します。製品タイプごとに5列のセットが作成されます。このデータセットでは、各集約に含まれる値は1つだけですが、処理を簡単にするために、集計として「sum」を選択します。

 - product_count: 商品の総数
 - balance_avg_sum: 基準期間の平均的な商品タイプの総残高
 - balance_last_sum: 直近一ヶ月の商品タイプの総残高。
 - revenue_avg_sum: 参照期間中の平均的なプロダクトタイプの総収入。
 - revenue_last_sum: 直近一ヶ月間のプロダクトタイプの総収益。

最後に、[準備](recipe:compute_balances_product_summary_customer_prepared)レシピは、空のセルをゼロで埋め、前のピボットレシピで作成した列の名前をよりわかりやすい名前に変更します。


