Residential Methodology
Scope Boundary

This diagram communicates the scope boundary as aligned with the Food Loss and Waste Accounting and Reporting Standard[17]. Note that ReFED’s analysis also includes food sent to donations, although donations are not considered a destination within the Standard.
- NOTES
“Food Donation” has been added as a Destination
“Biomaterial Processing is referred to as “Industrial Uses” in our model
“Co/anaerobic digestion” is referred to as “Anaerobic digestion” in our model
“Controlled Combustion” is referred to as “Incineration” in our model
“Refuse/discards” is referred to as “Dumping” in our model
Calculations
Surplus Food Calculations
In ReFED’s data model, the following calculations are repeated for every state, year, and food type before any aggregation is done.
DATA ITEM |
DATA SOURCE OR CALCULATION |
EXAMPLE |
---|---|---|
US Dollars Purchased from Grocery Stores |
Nielsen Point-of-Sale (POS) Data[38] |
$__residential_example_us_dollars_sold__ worth of __residential_example_refed_food_category__ purchased from grocery stores in __residential_example_state__ in __residential_example_year__ |
Tons Purchased fron Grocery Stores |
Nielsen Point-of-Sale (POS) Data[38] |
__residential_example_tons_sold__ tons __residential_example_refed_food_category__ purchased from grocery stores in __residential_example_state__ in __residential_example_year__ |
Retail Price per Lb |
= US Dollars Purchased from Grocery Stores / Tons Purchased from Grocery Stores / 2,000 lbs per ton
See U.S. Grocery Retail Dollar-to-Weight Conversion Factors Report[39] for more information on the price per lb data.
|
= $__residential_example_us_dollars_sold__ worth of __residential_example_refed_food_category__ purchased / __residential_example_tons_sold__ tons __residential_example_refed_food_category__ purchased / 2,000 lbs per ton
= $__residential_example_dollarsperlb__ per lb
|
% of Food Obtained from Grocery Stores |
USDA NHANES Survey[50] |
__residential_example_percent_obtained_from_grocery_stores__% of __residential_example_refed_food_category__ obtained from grocery stores (as opposed to restaurants, farmers markets, food banks, gas stations, home gardens, etc.) |
Tons Obtained Elsewhere |
= Tons Purchased from Grocery Stores * (100% - % of Food Obtained from Grocery Stores) / % of Food Obtained from Grocery Stores |
= __residential_example_tons_sold__ tons purchased from grocery * (100% - __residential_example_percent_obtained_from_grocery_stores__%) / __residential_example_percent_obtained_from_grocery_stores__
= __residential_example_tons_obtained_elsewhere__ tons __residential_example_refed_food_category__ obtained elsewhere
|
Surplus Rate |
= __residential_example_residential_surplus_rate__% of __residential_example_refed_food_category__ brought home are wasted |
|
Tons Surplus |
= ( Tons Purchased from Grocery Stores + Tons Obtained Elsewhere) * Surplus Rate |
= (__residential_example_tons_sold__ tons purchased from grocery + __residential_example_tons_obtained_elsewhere__ tons obtained elsewhere ) * __residential_example_residential_surplus_rate__%
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus
|
US Dollars Surplus |
= Tons Surplus * Retail Price per Lb * 2,000 lbs per ton |
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * $__residential_example_dollarsperlb__ per lb
= $__residential_example_us_dollars_surplus__ surplus
|
Cause Calculations
DATA ITEM |
DATA SOURCE OR CALCULATION |
EXAMPLE |
---|---|---|
% Surplus due to Cause |
NRDC Home Kitchen Diaries[35] |
Example data breakdown of home food waste causes for produce (See Appendix X for other food types):
Considered inedible: __residential_example_percent_surplus_due_to_cause_considered_inedible__%
Cooking issues: __residential_example_percent_surplus_due_to_cause_cooking_issues__%
Date label concerns: __residential_example_percent_surplus_due_to_cause_date_label_concerns__%
Didn’t taste good: __residential_example_percent_surplus_due_to_cause_didnt_taste_good__%
Didn’t want leftovers: __residential_example_percent_surplus_due_to_cause_didnt_want_leftovers__%
Inedible parts: __residential_example_percent_surplus_due_to_cause_inedible_parts__%
Left out too long: __residential_example_percent_surplus_due_to_cause_left_out_too_long__%
Other: __residential_example_percent_surplus_due_to_cause_other__%
Spoiled: __residential_example_percent_surplus_due_to_cause_spoiled__%
Too little save: __residential_example_percent_surplus_due_to_cause_too_little_to_save__%
————————————————
Total: 100%
|
Tons Surplus due to Cause |
= Tons Surplus * % Surplus due to Cause |
Tons due to Considered inedible:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_considered_inedible__%
= __residential_example_tons_surplus_due_to_cause_considered_inedible__ tons
Tons due to Cooking issues:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_cooking_issues__%
= __residential_example_tons_surplus_due_to_cause_cooking_issues__ tons
Tons due to Date label concerns:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_date_label_concerns__%
= __residential_example_tons_surplus_due_to_cause_date_label_concerns__ tons
Tons due to Didn’t taste good:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_didnt_taste_good__%
= __residential_example_tons_surplus_due_to_cause_didnt_taste_good__ tons
Tons due to Didn’t want leftovers:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_didnt_want_leftovers__%
= __residential_example_tons_surplus_due_to_cause_didnt_want_leftovers__ tons
Tons due to Inedible parts:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_inedible_parts__%
= __residential_example_tons_surplus_due_to_cause_inedible_parts__ tons
Tons due to Left out too long:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_left_out_too_long__%
= __residential_example_tons_surplus_due_to_cause_left_out_too_long__ tons
Tons due to Other:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_other_rate__%
= __residential_example_tons_surplus_due_to_cause_other__ tons
Tons due to Spoiled:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_spoiled__%
= __residential_example_tons_surplus_due_to_cause_spoiled__ tons
Tons due to Too little to save:
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_too_little_to_save__%
= __residential_example_tons_surplus_due_to_cause_too_little_to_save__ tons
|
US Dollars Surplus due to Cause |
= US Dollars Surplus * % Surplus due to Cause |
US Dollars due to Considered inedible:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_considered_inedible__%
= $__residential_example_us_dollars_surplus_due_to_cause_considered_inedible__
US Dollars due to Cooking issues:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_cooking_issues__%
= $__residential_example_us_dollars_surplus_due_to_cause_cooking_issues__
US Dollars due to Date label concerns:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_date_label_concerns__%
= $__residential_example_us_dollars_surplus_due_to_cause_date_label_concerns__
US Dollars due to Didn’t taste good:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_didnt_taste_good__%
= $__residential_example_us_dollars_surplus_due_to_cause_didnt_taste_good__
US Dollars due to Didn’t want leftovers:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_didnt_want_leftovers__%
= $__residential_example_us_dollars_surplus_due_to_cause_didnt_want_leftovers__
US Dollars due to Inedible parts:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_inedible_parts__%
= $__residential_example_us_dollars_surplus_due_to_cause_inedible_parts__
US Dollars due to Left out too long:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_left_out_too_long__%
= $__residential_example_us_dollars_surplus_due_to_cause_left_out_too_long__
US Dollars due to Other:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_other_rate__%
= $__residential_example_us_dollars_surplus_due_to_cause_other__
US Dollars due to Spoiled:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_spoiled__%
= $__residential_example_us_dollars_surplus_due_to_cause_spoiled__
US Dollars due to Too little to save:
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_surplus_due_to_cause_too_little_to_save__%
= $__residential_example_us_dollars_surplus_due_to_cause_too_little_to_save__
|
Destination Calculations
DATA ITEM |
DATA SOURCE OR CALCULATION |
EXAMPLE |
---|---|---|
Destination Breakdown of Residential Surplus |
NRDC Home Kitchen Diaries[__citation_KitchenDiaries__] |
According to the NRDC Home Kitchen Diaries, this was the destination breakdown of residential surplus for __residential_example_refed_food_department__ (See Appendix Y for other food types):
Animal feed: __residential_example_percent_animal_feed__%
Compost: __residential_example_percent_composted__%
Sewer: __residential_example_percent_sewer__%
Trash: __residential_example_percent_trash__%
————————————————
Total: 100%
|
% of Trash that is Landfilled vs Incinerated in __residential_example_state__
(BioCycle/Columbia University Survey)[8] (See Appendix Z)
|
% of Trash that is Landfilled = __residential_example_percent_of_trash_landfilled__%
% of Trash that is Incinerated = __residential_example_percent_of_trash_incinerated__%
|
|
Breaking “Trash” into Landfill vs Incineration:
% Landfilled = % Trash * % of Trash that is Landfilled
% Incinerated = % Trash * % of Trash that is Incinerated
|
% Landfilled:
= __residential_example_percent_trash__% * __residential_example_percent_of_trash_landfilled__%
= __residential_example_landfilled_rate__
% Incinerated:
= __residential_example_percent_trash__% * __residential_example_percent_of_trash_incinerated__%
= __residential_example_incinerated_rate__
|
|
Tons Animal Feed |
= Tons Surplus * % Animal Feed |
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_animal_feed__% animal feed
= __residential_example_tons_animal_feed__ tons __residential_example_refed_food_category__ sent to animal feed
|
Tons Composted |
= Tons Surplus * % Composted |
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_composted__% composted
= __residential_example_tons_composted__ tons __residential_example_refed_food_category__ composted
|
Tons Sewer |
= Tons Surplus * % Sewer |
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_sewer__% disposed down the drain
= __residential_example_tons_sewer__ tons __residential_example_refed_food_category__ disposed via sewer
|
Tons Landfilled |
= Tons Surplus * % Landfilled |
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_of_trash_landfilled__% landfilled
= __residential_example_tons_landfilled__ tons __residential_example_refed_food_category__ landfilled
|
Tons Incinerated |
= Tons Surplus * % Incinerated |
= __residential_example_tons_surplus__ tons __residential_example_refed_food_category__ surplus * __residential_example_percent_of_trash_incinerated__% incinerated
= __residential_example_tons_incinerated__ tons __residential_example_refed_food_category__ incinerated
|
US Dollars Animal Feed |
= US Dollars Surplus * % Animal Feed |
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_animal_feed__% animal feed
= $__residential_example_us_dollars_animal_feed__ __residential_example_refed_food_category__ sent to animal feed
|
US Dollars Composted |
= US Dollars Surplus * % Composted |
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_composted__% composted
= $__residential_example_us_dollars_composted__ __residential_example_refed_food_category__ composted
|
US Dollars Sewer |
= US Dollars Surplus * % Sewer |
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_sewer__% disposed down the drain
= $__residential_example_us_dollars_sewer__ __residential_example_refed_food_category__ disposed via sewer
|
US Dollars Landfilled |
= US Dollars Surplus * % Landfilled |
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_of_trash_landfilled__% landfilled
= $__residential_example_us_dollars_landfilled__ __residential_example_refed_food_category__ landfilled
|
US Dollars Incinerated |
= US Dollars Surplus * % Incinerated |
= $__residential_example_us_dollars_surplus__ __residential_example_refed_food_category__ surplus * __residential_example_percent_of_trash_incinerated__% incinerated
= $__residential_example_us_dollars_incinerated__ __residential_example_refed_food_category__ incinerated
|
Data Sources and Limitations
Retail Value and Tons Purchased at Grocery Stores
Nielsen data represents over 85% coverage of grocery retail sales in the U.S. Each year top U.S. grocery retailers report item level point-of-sale sales data to Nielsen[38], including information about each item such as the grocery chain where it was sold, the brand name of the product, the food classification (department, category, subcategory), the weight of food and packaging, and many other attributes. ReFED used this data to quantify the retail value and weight of food sold by grocery retailers in the U.S. by year, state, and food type. For more information about the weight data, see the U.S. Grocery Retail Dollar-to-Weight Conversion Factors report[39].
Nielsen provided point-of-sale data for the years 2016-2019. In order to estimate values for the missing years 2010-2015 each subcategory was extrapolated using category-level average year-over-year linear growth rates for both sales value and sales weight. Due to the high granularity of the categories, there were some cases where the growth rates were either extremely high or extremely low. To avoid unrealistic growth estimations over time within these outlier categories, department-level growth rates were used instead if a category had a growth rate ±15%. These outlier categories represent 0.5% of total sales.
The accuracy of these estimates is limited to the accuracy of the Nielsen sales and weight data. The weight data for UPC items comes directly from up-to-date product packaging images. For non-UPC items sold in eaches, Nielsen estimates weight using a weight conversion factor (e.g., the average weight of a lemon). For other non-UPC items, Nielsen is reliant on the retailer transaction data to provide the item sale weight units (e.g., lbs of apples sold).
Food Obtained from Grocery Stores vs Elsewhere
Residential Food Surplus Rates
Residential Food Surplus Causes
Raw data and documentation: - https://refed-roadmap.s3-us-west-2.amazonaws.com/public_documentation/Documentation_Residential_CauseBreakdown_2010-2014.xlsx - https://refed-roadmap.s3-us-west-2.amazonaws.com/public_documentation/Documentation_Residential_CauseBreakdown_2015-2019.xlsx
As a part of a three-city study (New York, Nashville, Denver), Natural Resources Defense Council (NRDC) conducted an in-home study[35] where participants documented the weight and type of foods wasted over a two week period. Participants also documented the reason why they wasted the food and what they did with it (e.g., disposed of down the drain, trash, fed to animals, composted). ReFED used this data to quantify the causes of residential food waste by year, state, and food type.
Residential Food Surplus Destinations
ReFED also used the NRDC Home Kitchen Diaries[35] to quantify the destination breakdown of residential food surplus. The same strengths and weaknesses of the causal data listed above apply to the destinations component of the study as well. Additionally, it’s possible that the residential composting numbers may be higher than the U.S. average due to selection bias of the people that chose to participate in the study.
Data Quality Evaluation
This rubric is designed to evaluate the quality of how each data source was utilized by ReFED to estimate food loss and waste. It is not meant to rate the quality of the study itself. See Appendix AA for more information about the ReFED Data Quality Rubric.
Table 20. Data Quality Evaluation for Food Waste Monitor Residential Sector
DATA |
SOURCE |
DATA QUALITY SCORE |
||||||
---|---|---|---|---|---|---|---|---|
CREDIBILITY |
UPDATE FREQUENCY |
COVERAGE |
FOOD TYPE |
GEOGRAPHY |
SCORE |
WEIGHT |
||
RESIDENTIAL SURPLUS DATA |
||||||||
Retail Value Purchased at Grocery Stores |
Nielsen Point-of-sale (POS) Data |
4 |
5 |
5 |
5 |
5 |
High 24/5 = 4.8 |
17% |
Tons Purchased at Grocery Stores |
Nielsen Point-of-sale (POS) Data |
4 |
5 |
5 |
5 |
5 |
High 24/5 = 4.8 |
17% |
% of Food Obtained from Grocery Stores |
USDA NHANES Survey |
5 |
5 |
5 |
5 |
3 |
High 23/5 = 4.6 |
33% |
Surplus Rate |
USDA Consumer-Level Food Loss Estimates |
5 |
1 |
5 |
3 |
3 |
Medium 17/5 = 3.4 |
33% |
4.8 * 17% + 4.8 * 17% + 4.6 * 33% + 3.4 * 33% = 4.27 |
High |
|||||||
RESIDENTIAL CAUSES DATA |
||||||||
% Surplus Due to Cause |
NRDC Home Kitchen Diaries |
5 |
1 |
1 |
4 |
2 |
Low 13/5 = 2.6 |
100% |
2.6 * 100% = 2.6 |
Low |
|||||||
RESIDENTIAL DESTINATIONS DATA |
||||||||
% Destination Breakdown |
NRDC Home Kitchen Diaries |
5 |
1 |
1 |
4 |
2 |
Low 13/5 = 2.6 |
95% |
% of Trash Landfilled vs Incinerated |
Biocycle/Columbia University Survey |
5 |
1 |
5 |
1 |
5 |
Medium 17/5 = 3.4 |
5% |
2.6 * 95% + 3.4 * 5% = 2.64 |
Low |