phase1/2: tier D tightened, round-1 validation archived, manual DOI resolution, shrinkflation refs
8 changed files +251 −2
added
literature/manual_references.yaml
+10 −0
@@ -0,0 +1,10 @@ | ||
| 1 | +# References resolved by explicit DOI (Crossref /works/{doi} lookup) or documented as DOI-less (JSTOR stable URL). | |
| 2 | +- {key: varian1980, topic: sales, doi: null, jstor: "https://www.jstor.org/stable/1805363", author: "Varian, Hal R.", title: "A Model of Sales", journal: "American Economic Review", volume: 70, issue: 4, pages: "651-659", year: 1980} | |
| 3 | +- {key: feenstra1994, topic: indices, doi: null, jstor: "https://www.jstor.org/stable/2117971", author: "Feenstra, Robert C.", title: "New Product Varieties and the Measurement of International Prices", journal: "American Economic Review", volume: 84, issue: 1, pages: "157-177", year: 1994} | |
| 4 | +- {key: midrigan2011, topic: menu_costs, doi: "10.3982/ECTA6735"} | |
| 5 | +- {key: diewert2022, topic: indices, doi: "10.1080/07350015.2020.1816176"} | |
| 6 | +- {key: hortacsu2004, topic: search, doi: "10.1162/0033553041382184"} | |
| 7 | +- {key: competitionbureau2023, topic: canada, doi: null, url: "https://competition-bureau.canada.ca/en/how-we-foster-competition/education-and-outreach/canada-needs-more-grocery-competition", author: "{Competition Bureau Canada}", title: "Canada Needs More Grocery Competition: Retail Grocery Market Study Report", year: 2023, type: report} | |
| 8 | +- {key: cakir2021, topic: shrinkflation, doi: "10.1002/agr.21724"} | |
| 9 | +- {key: hoppe2024, topic: shrinkflation, doi: "10.1093/icc/dtae035"} | |
| 10 | +- {key: gourville2004, topic: shrinkflation, doi: "10.1287/mksc.1030.0016"} | |
added
literature/references_verified.csv
+66 −0
@@ -0,0 +1,66 @@ | ||
| 1 | +key,topic,author,title,year,verified,doi,crossref_title,journal,volume,issue,pages,pub_year,type,publisher,authors,title_sim,note | |
| 2 | +stigler1961,search,Stigler,The Economics of Information,1961,True,10.1086/258464,The Economics of Information,Journal of Political Economy,69.0,3,213-225,1961.0,journal-article,University of Chicago Press,"Stigler, George J.",1.0, | |
| 3 | +salop1977,dispersion,Salop Stiglitz,Bargains and Ripoffs: A Model of Monopolistically Competitive Price Dispersion,1977,True,10.2307/2296903,Bargains and Ripoffs: A Model of Monopolistically Competitive Price Dispersion,The Review of Economic Studies,44.0,3,493,1977.0,journal-article,Oxford University Press (OUP),"Salop, Steven; Stiglitz, Joseph",1.0, | |
| 4 | +burdett1983,dispersion,Burdett Judd,Equilibrium Price Dispersion,1983,True,10.2307/1912045,Equilibrium Price Dispersion,Econometrica,51.0,4,955,1983.0,journal-article,JSTOR,"Burdett, Kenneth; Judd, Kenneth L.",1.0, | |
| 5 | +sorensen2000,dispersion,Sorensen,Equilibrium Price Dispersion in Retail Markets for Prescription Drugs,2000,True,10.1086/316103,Equilibrium Price Dispersion in Retail Markets for Prescription Drugs,Journal of Political Economy,108.0,4,833-850,2000.0,journal-article,University of Chicago Press,"Sorensen, Alan T.",1.0, | |
| 6 | +lach2002,dispersion,Lach,Existence and Persistence of Price Dispersion: An Empirical Analysis,2002,True,10.3386/w8737,Existence and Persistence of Price Dispersion: an Empirical Analysis,,,,,2002.0,report,National Bureau of Economic Research,"Lach, Saul",1.0, | |
| 7 | +baye2006,dispersion,Baye Morgan Scholten,"Information, Search, and Price Dispersion",2006,True,10.1016/s1574-0145(06)01006-3,"Chapter 6 Information, Search, and Price Dispersion",Handbooks in Information Systems Economics and Information Systems,,,323-375,2006.0,book-chapter,Elsevier,"Baye, Michael R.; Morgan, John; Scholten, Patrick",1.0, | |
| 8 | +kaplan2015,dispersion,Kaplan Menzio,The Morphology of Price Dispersion,2015,True,10.3386/w19877,The Morphology of Price Dispersion,,,,,2014.0,report,National Bureau of Economic Research,"Kaplan, Greg; Menzio, Guido",1.0, | |
| 9 | +kaplan2019,dispersion,Kaplan Menzio Rudanko Trachter,Relative Price Dispersion: Evidence and Theory,2019,True,10.1257/mic.20170126,Relative Price Dispersion: Evidence and Theory,American Economic Journal: Microeconomics,11.0,3,68-124,2019.0,journal-article,American Economic Association,"Kaplan, Greg; Menzio, Guido; Rudanko, Leena; Trachter, Nicholas",1.0, | |
| 10 | +hitsch2021,retail,Hitsch Hortaçsu Lin,Prices and promotions in U.S. retail markets,2021,True,10.1007/s11129-021-09238-x,Prices and promotions in U.S. retail markets,Quantitative Marketing and Economics,19.0,3-4,289-368,2021.0,journal-article,Springer Science and Business Media LLC,"Hitsch, Günter J.; Hortaçsu, Ali; Lin, Xiliang",1.0, | |
| 11 | +pesendorfer2002,sales,Pesendorfer,Retail Sales: A Study of Pricing Behavior in Supermarkets,2002,True,10.1086/323504,Retail Sales: A Study of Pricing Behavior in Supermarkets,The Journal of Business,75.0,1,33-66,2002.0,journal-article,University of Chicago Press,"Pesendorfer, Martin",1.0, | |
| 12 | +hendel2006,sales,Hendel Nevo,Measuring the Implications of Sales and Consumer Inventory Behavior,2006,True,10.3386/w11307,Measuring the Implications of Sales and Consumer Inventory Behavior,,,,,2005.0,report,National Bureau of Economic Research,"Hendel, Igal; Nevo, Aviv",1.0, | |
| 13 | +hendel2013,sales,Hendel Nevo,Intertemporal Price Discrimination in Storable Goods Markets,2013,True,10.1257/aer.103.7.2722,Intertemporal Price Discrimination in Storable Goods Markets,American Economic Review,103.0,7,2722-2751,2013.0,journal-article,American Economic Association,"Hendel, Igal; Nevo, Aviv",1.0, | |
| 14 | +hosken2004,sales,Hosken Reiffen,Patterns of Retail Price Variation,2004,True,10.2307/1593733,Patterns of Retail Price Variation,The RAND Journal of Economics,35.0,1,128,2004.0,journal-article,Wiley,"Hosken, Daniel; Reiffen, David",1.0, | |
| 15 | +nakamura2008,rigidity,Nakamura Steinsson,Five Facts about Prices: A Reevaluation of Menu Cost Models,2008,True,10.1162/qjec.2008.123.4.1415,"Five Facts about Prices: A Reevaluation of Menu Cost Models | |
| 16 | + <sup>*</sup>",Quarterly Journal of Economics,123.0,4,1415-1464,2008.0,journal-article,Oxford University Press (OUP),"Nakamura, Emi; Steinsson, Jón",1.0, | |
| 17 | +klenow2008,rigidity,Klenow Kryvtsov,State-Dependent or Time-Dependent Pricing: Does It Matter for Recent U.S. Inflation?,2008,True,10.1162/qjec.2008.123.3.863,"State-Dependent or Time-Dependent Pricing: Does It Matter for Recent U.S. Inflation? | |
| 18 | + <sup>*</sup>",Quarterly Journal of Economics,123.0,3,863-904,2008.0,journal-article,Oxford University Press (OUP),"Klenow, Peter J.; Kryvtsov, Oleksiy",1.0, | |
| 19 | +eichenbaum2011,rigidity,Eichenbaum Jaimovich Rebelo,"Reference Prices, Costs, and Nominal Rigidities",2011,True,10.1257/aer.101.1.234,"Reference Prices, Costs, and Nominal Rigidities",American Economic Review,101.0,1,234-262,2011.0,journal-article,American Economic Association,"Eichenbaum, Martin; Jaimovich, Nir; Rebelo, Sergio",1.0, | |
| 20 | +kehoe2015,rigidity,Kehoe Midrigan,Prices are sticky after all,2015,True,10.1016/j.jmoneco.2014.12.004,Prices are sticky after all,Journal of Monetary Economics,75.0,,35-53,2015.0,journal-article,Elsevier BV,"Kehoe, Patrick; Midrigan, Virgiliu",1.0, | |
| 21 | +anderson2017,sales,Anderson Malin Nakamura Simester Steinsson,Informational rigidities and the stickiness of temporary sales,2017,True,10.1016/j.jmoneco.2017.06.003,Informational rigidities and the stickiness of temporary Sales,Journal of Monetary Economics,90.0,,64-83,2017.0,journal-article,Elsevier BV,"Anderson, Eric; Malin, Benjamin A.; Nakamura, Emi; Simester, Duncan; Steinsson, Jón",1.0, | |
| 22 | +chevalier2003,sales,Chevalier Kashyap Rossi,Why Don't Prices Rise During Periods of Peak Demand? Evidence from Scanner Data,2003,True,10.2139/ssrn.319966,Why Don't Prices Rise During Periods of Peak Demand? Evidence from Scanner Data,,,,,2002.0,posted-content,Elsevier BV,"Rossi, Peter E.; Chevalier, Judith A.; Kashyap, Anil K.",1.0, | |
| 23 | +chevalier2019,sales,Chevalier Kashyap,Best Prices: Price Discrimination and Consumer Substitution,2019,True,10.1257/pol.20150362,Best Prices: Price Discrimination and Consumer Substitution,American Economic Journal: Economic Policy,11.0,1,126-159,2019.0,journal-article,American Economic Association,"Chevalier, Judith A.; Kashyap, Anil K",1.0, | |
| 24 | +coibion2015,sales,Coibion Gorodnichenko Hong,"The Cyclicality of Sales, Regular and Effective Prices: Business Cycle and Policy Implications",2015,True,10.1257/aer.20121546,"The Cyclicality of Sales, Regular and Effective Prices: Business Cycle and Policy Implications",American Economic Review,105.0,3,993-1029,2015.0,journal-article,American Economic Association,"Coibion, Olivier; Gorodnichenko, Yuriy; Hong, Gee Hee",1.0, | |
| 25 | +golosov2007,menu_costs,Golosov Lucas,Menu Costs and Phillips Curves,2007,True,10.1086/512625,Menu Costs and Phillips Curves,Journal of Political Economy,115.0,2,171-199,2007.0,journal-article,University of Chicago Press,"Golosov, Mikhail; Lucas Jr., Robert E.",1.0, | |
| 26 | +nakamura2013,rigidity,Nakamura Steinsson,Price Rigidity: Microeconomic Evidence and Macroeconomic Implications,2013,True,10.3386/w18705,Price Rigidity: Microeconomic Evidence and Macroeconomic Implications,,,,,2013.0,report,National Bureau of Economic Research,"Nakamura, Emi; Steinsson, Jón",1.0, | |
| 27 | +ivancic2011,scanner,Ivancic Diewert Fox,"Scanner data, time aggregation and the construction of price indexes",2011,True,10.1016/j.jeconom.2010.09.003,"Scanner data, time aggregation and the construction of price indexes",Journal of Econometrics,161.0,1,24-35,2011.0,journal-article,Elsevier BV,"Ivancic, Lorraine; Erwin Diewert, W.; Fox, Kevin J.",1.0, | |
| 28 | +dehaan2011,scanner,de Haan van der Grient,Eliminating chain drift in price indexes based on scanner data,2011,True,10.1016/j.jeconom.2010.09.004,Eliminating chain drift in price indexes based on scanner data,Journal of Econometrics,161.0,1,36-46,2011.0,journal-article,Elsevier BV,"de Haan, Jan; van der Grient, Heymerik A.",1.0, | |
| 29 | +redding2020,indices,Redding Weinstein,Measuring Aggregate Price Indices with Taste Shocks: Theory and Evidence for CES Preferences,2020,True,10.1093/qje/qjz031,Measuring Aggregate Price Indices with Taste Shocks: Theory and Evidence for CES Preferences*,The Quarterly Journal of Economics,135.0,1,503-560,2019.0,journal-article,Oxford University Press (OUP),"Redding, Stephen J; Weinstein, David E",1.0, | |
| 30 | +cavallo2017,online,Cavallo,Are Online and Offline Prices Similar? Evidence from Large Multi-channel Retailers,2017,True,10.3386/w22142,Are Online and Offline Prices Similar? Evidence from Large Multi-Channel Retailers,,,,,2016.0,report,National Bureau of Economic Research,"Cavallo, Alberto",1.0, | |
| 31 | +cavallo2016,online,Cavallo Rigobon,The Billion Prices Project: Using Online Prices for Measurement and Research,2016,True,10.3386/w22111,The Billion Prices Project: Using Online Prices for Measurement and Research,,,,,2016.0,report,National Bureau of Economic Research,"Cavallo, Alberto; Rigobon, Roberto",1.0, | |
| 32 | +cavallo2018,online,Cavallo,Scraped Data and Sticky Prices,2018,True,10.1162/rest_a_00652,Scraped Data and Sticky Prices,The Review of Economics and Statistics,100.0,1,105-119,2018.0,journal-article,MIT Press - Journals,"Cavallo, Alberto",1.0, | |
| 33 | +gorodnichenko2017,online,Gorodnichenko Talavera,"Price Setting in Online Markets: Basic Facts, International Comparisons, and Cross-Border Integration",2017,True,10.1257/aer.20141127,"Price Setting in Online Markets: Basic Facts, International Comparisons, and Cross-Border Integration",American Economic Review,107.0,1,249-282,2017.0,journal-article,American Economic Association,"Gorodnichenko, Yuriy; Talavera, Oleksandr",1.0, | |
| 34 | +ellickson2008,retail,Ellickson Misra,Supermarket Pricing Strategies,2008,True,10.1287/mksc.1080.0398,Supermarket Pricing Strategies,Marketing Science,27.0,5,811-828,2008.0,journal-article,Institute for Operations Research and the Management Sciences (INFORMS),"Ellickson, Paul B.; Misra, Sanjog",1.0, | |
| 35 | +hausman2007,retail,Hausman Leibtag,Consumer benefits from increased competition in shopping outlets: Measuring the effect of Wal-Mart,2007,True,10.1920/wp.cem.2006.0606,Consumer Benefits from Increased Competition in Shopping Outlets: Measuring the Effect of Wal-Mart,Working Paper Series,,,,2006.0,report,Institute for Fiscal Studies,"Hausman, Jerry; Leibtag, Ephraim",1.0, | |
| 36 | +lal1997,retail,Lal Rao,Supermarket Competition: The Case of Every Day Low Pricing,1997,True,10.1287/mksc.16.1.60,Supermarket Competition: The Case of Every Day Low Pricing,Marketing Science,16.0,1,60-80,1997.0,journal-article,Institute for Operations Research and the Management Sciences (INFORMS),"Lal, Rajiv; Rao, Ram",1.0, | |
| 37 | +hoch1994,retail,Hoch Drèze Purk,"EDLP, Hi-Lo, and Margin Arithmetic",1994,True,10.1177/002224299405800402,"EDLP, Hi-Lo, and Margin Arithmetic",Journal of Marketing,58.0,4,16-27,1994.0,journal-article,SAGE Publications,"Hoch, Stephen J.; Drèze, Xavier; Purk, Mary E.",1.0, | |
| 38 | +aguiar2007,search,Aguiar Hurst,Life-Cycle Prices and Production,2007,True,10.1257/aer.97.5.1533,Life-Cycle Prices and Production,American Economic Review,97.0,5,1533-1559,2007.0,journal-article,American Economic Association,"Aguiar, Mark; Hurst, Erik",1.0, | |
| 39 | +kaplan2016,search,Kaplan Menzio,Shopping Externalities and Self-Fulfilling Unemployment Fluctuations,2016,True,10.1086/685909,Shopping Externalities and Self-Fulfilling Unemployment Fluctuations,Journal of Political Economy,124.0,3,771-825,2016.0,journal-article,University of Chicago Press,"Kaplan, Greg; Menzio, Guido",1.0, | |
| 40 | +griffith2009,welfare,Griffith Leibtag Leicester Nevo,Consumer Shopping Behavior: How Much Do Consumers Save?,2009,True,10.1257/jep.23.2.99,Consumer Shopping Behavior: How Much Do Consumers Save?,Journal of Economic Perspectives,23.0,2,99-120,2009.0,journal-article,American Economic Association,"Griffith, Rachel; Leibtag, Ephraim; Leicester, Andrew; Nevo, Aviv",1.0, | |
| 41 | +nevo2019,search,Nevo Wong,The Elasticity of Substitution Between Time and Market Goods: Evidence from the Great Recession,2019,True,10.1111/iere.12343,THE ELASTICITY OF SUBSTITUTION BETWEEN TIME AND MARKET GOODS: EVIDENCE FROM THE GREAT RECESSION,International Economic Review,60.0,1,25-51,2018.0,journal-article,Wiley,"Nevo, Aviv; Wong, Arlene",1.0, | |
| 42 | +jaravel2019,welfare,Jaravel,The Unequal Gains from Product Innovations: Evidence from the U.S. Retail Sector,2019,True,10.1093/qje/qjy031,The Unequal Gains from Product Innovations: Evidence from the U.S. Retail Sector*,The Quarterly Journal of Economics,134.0,2,715-783,2018.0,journal-article,Oxford University Press (OUP),"Jaravel, Xavier",1.0, | |
| 43 | +argente2021,welfare,Argente Lee,Cost of Living Inequality During the Great Recession,2021,True,10.1093/jeea/jvaa018,Cost of Living Inequality During the Great Recession,Journal of the European Economic Association,19.0,2,913-952,2020.0,journal-article,Oxford University Press (OUP),"Argente, David; Lee, Munseob",1.0, | |
| 44 | +dube2018,substitution,Dubé Hitsch Rossi,Income and Wealth Effects on Private-Label Demand: Evidence from the Great Recession,2018,True,10.1287/mksc.2017.1047,Income and Wealth Effects on Private-Label Demand: Evidence from the Great Recession,Marketing Science,37.0,1,22-53,2018.0,journal-article,Institute for Operations Research and the Management Sciences (INFORMS),"Dubé, Jean-Pierre; Hitsch, Günter J.; Rossi, Peter E.",1.0, | |
| 45 | +bronnenberg2015,substitution,Bronnenberg Dubé Gentzkow Shapiro,Do Pharmacists Buy Bayer? Informed Shoppers and the Brand Premium,2015,True,10.3386/w20295,Do Pharmacists Buy Bayer? Informed Shoppers and the Brand Premium,,,,,2014.0,report,National Bureau of Economic Research,"Bronnenberg, Bart; Dubé, Jean-Pierre; Gentzkow, Matthew; Shapiro, Jesse",1.0, | |
| 46 | +allcott2019,access,Allcott Diamond Dubé Handbury Rahkovsky Schnell,Food Deserts and the Causes of Nutritional Inequality,2019,True,10.1093/qje/qjz015,Food Deserts and the Causes of Nutritional Inequality*,The Quarterly Journal of Economics,134.0,4,1793-1844,2019.0,journal-article,Oxford University Press (OUP),"Allcott, Hunt; Diamond, Rebecca; Dubé, Jean-Pierre; Handbury, Jessie; Rahkovsky, Ilya; Schnell, Molly",1.0, | |
| 47 | +handbury2015,access,Handbury Weinstein,Goods Prices and Availability in Cities,2015,True,10.1093/restud/rdu033,Goods Prices and Availability in Cities,The Review of Economic Studies,82.0,1,258-296,2014.0,journal-article,Oxford University Press (OUP),"Handbury, J.; Weinstein, D. E.",1.0, | |
| 48 | +gagnon2020,sales,Gagnon López-Salido,Small Price Responses to Large Demand Shocks,2020,True,10.1093/jeea/jvz002,Small Price Responses to Large Demand Shocks,Journal of the European Economic Association,18.0,2,792-828,2019.0,journal-article,Oxford University Press (OUP),"Gagnon, Etienne; López-Salido, David",1.0, | |
| 49 | +dellavigna2019,retail,DellaVigna Gentzkow,Uniform Pricing in U.S. Retail Chains,2019,True,10.1093/qje/qjz019,Uniform Pricing in U.S. Retail Chains*,The Quarterly Journal of Economics,134.0,4,2011-2084,2019.0,journal-article,Oxford University Press (OUP),"DellaVigna, Stefano; Gentzkow, Matthew",1.0, | |
| 50 | +hitsch2019,retail,Hitsch Hortaçsu Lin,Prices and Promotions in U.S. Retail Markets: Evidence from Big Data,2019,True,10.3386/w26306,Prices and Promotions in U.S. Retail Markets: Evidence from Big Data,,,,,2019.0,report,National Bureau of Economic Research,"Hitsch, Günter; Hortaçsu, Ali; Lin, Xiliang",1.0, | |
| 51 | +melser2018,scanner,Melser,Scanner Data Price Indexes: Addressing Some Unresolved Issues,2018,True,10.1080/07350015.2016.1218339,Scanner Data Price Indexes: Addressing Some Unresolved Issues,Journal of Business & Economic Statistics,36.0,3,516-522,2017.0,journal-article,Informa UK Limited,"Melser, Daniel",1.0, | |
| 52 | +nakamura2018,rigidity,Nakamura Steinsson Sun Villar,The Elusive Costs of Inflation: Price Dispersion during the U.S. Great Inflation,2018,True,10.1093/qje/qjy017,The Elusive Costs of Inflation: Price Dispersion during the U.S. Great Inflation*,The Quarterly Journal of Economics,133.0,4,1933-1980,2018.0,journal-article,Oxford University Press (OUP),"Nakamura, Emi; Steinsson, Jón; Sun, Patrick; Villar, Daniel",1.0, | |
| 53 | +anderson2015,sales,Anderson Jaimovich Simester,Price Stickiness: Empirical Evidence of the Menu Cost Channel,2015,True,10.1162/rest_a_00507,Price Stickiness: Empirical Evidence of the Menu Cost Channel,Review of Economics and Statistics,97.0,4,813-826,2015.0,journal-article,MIT Press - Journals,"Anderson, Eric; Jaimovich, Nir; Simester, Duncan",1.0, | |
| 54 | +fellegi1969,matching,Fellegi Sunter,A Theory for Record Linkage,1969,True,10.1080/01621459.1969.10501049,A Theory for Record Linkage,Journal of the American Statistical Association,64.0,328,1183-1210,1969.0,journal-article,Informa UK Limited,"Fellegi, Ivan P.; Sunter, Alan B.",1.0, | |
| 55 | +christen2012,matching,Christen,"Data Matching: Concepts and Techniques for Record Linkage, Entity Resolution, and Duplicate Detection",2012,True,10.1007/978-3-642-31164-2,Data Matching,,,,,2012.0,book,Springer Berlin Heidelberg,"Christen, Peter",1.0, | |
| 56 | +macdonald2000,sales,MacDonald,"Demand, Information, and Competition: Why Do Food Prices Fall at Seasonal Demand Peaks?",2000,True,10.1111/1467-6451.00111,"Demand, Information, and Competition: Why Do Food Prices Fall at Seasonal Demand Peaks?",The Journal of Industrial Economics,48.0,1,27-45,2000.0,journal-article,Wiley,"MacDonald, James M.",1.0, | |
| 57 | +bils2004,rigidity,Bils Klenow,Some Evidence on the Importance of Sticky Prices,2004,True,10.1086/422559,Some Evidence on the Importance of Sticky Prices,Journal of Political Economy,112.0,5,947-985,2004.0,journal-article,University of Chicago Press,"Bils, Mark; Klenow, Peter J.",1.0, | |
| 58 | +guimaraes2011,sales,Guimaraes Sheedy,Sales and Monetary Policy,2011,True,10.1257/aer.101.2.844,Sales and Monetary Policy,American Economic Review,101.0,2,844-876,2011.0,journal-article,American Economic Association,"Guimaraes, Bernardo; Sheedy, Kevin D",1.0, | |
| 59 | +aguirregabiria1999,sales,Aguirregabiria,The Dynamics of Markups and Inventories in Retailing Firms,1999,True,10.1111/1467-937x.00088,The Dynamics of Markups and Inventories in Retailing Firms,Review of Economic Studies,66.0,2,275-308,1999.0,journal-article,Oxford University Press (OUP),"Aguirregabiria, Victor",1.0, | |
| 60 | +dejong2009,scanner,Einav Leibtag Nevo,Recording discrepancies in Nielsen Homescan data: Are they present and do they matter?,2010,True,10.1007/s11129-009-9073-0,Recording discrepancies in Nielsen Homescan data: Are they present and do they matter?,Quantitative Marketing and Economics,8.0,2,207-239,2009.0,journal-article,Springer Science and Business Media LLC,"Einav, Liran; Leibtag, Ephraim; Nevo, Aviv",1.0, | |
| 61 | +varian1980,sales,"Varian, Hal R.",A Model of Sales,1980,True,,A Model of Sales,American Economic Review,70,4,651-659,1980.0,journal-article,,"Varian, Hal R.",1.0,no DOI; verified via https://www.jstor.org/stable/1805363 | |
| 62 | +feenstra1994,indices,"Feenstra, Robert C.",New Product Varieties and the Measurement of International Prices,1994,True,,New Product Varieties and the Measurement of International Prices,American Economic Review,84,1,157-177,1994.0,journal-article,,"Feenstra, Robert C.",1.0,no DOI; verified via https://www.jstor.org/stable/2117971 | |
| 63 | +midrigan2011,menu_costs,,"Menu Costs, Multiproduct Firms, and Aggregate Fluctuations",2011,True,10.3982/ecta6735,"Menu Costs, Multiproduct Firms, and Aggregate Fluctuations",Econometrica,79,4,1139-1180,2011.0,journal-article,The Econometric Society,,1.0,resolved by DOI | |
| 64 | +diewert2022,indices,,Substitution Bias in Multilateral Methods for CPI Construction,2020,True,10.1080/07350015.2020.1816176,Substitution Bias in Multilateral Methods for CPI Construction,Journal of Business & Economic Statistics,40,1,355-369,2020.0,journal-article,Informa UK Limited,"Diewert, W. Erwin; Fox, Kevin J.",1.0,resolved by DOI | |
| 65 | +hortacsu2004,search,,"Product Differentiation, Search Costs, and Competition in the Mutual Fund Industry: A Case Study of S&P 500 Index Funds",2004,True,10.1162/0033553041382184,"Product Differentiation, Search Costs, and Competition in the Mutual Fund Industry: A Case Study of S&P 500 Index Funds",The Quarterly Journal of Economics,119,2,403-456,2004.0,journal-article,Oxford University Press (OUP),"Hortacsu, A.; Syverson, C.",1.0,resolved by DOI | |
| 66 | +competitionbureau2023,canada,{Competition Bureau Canada},Canada Needs More Grocery Competition: Retail Grocery Market Study Report,2023,True,,Canada Needs More Grocery Competition: Retail Grocery Market Study Report,,,,,2023.0,report,,{Competition Bureau Canada},1.0,no DOI; verified via https://competition-bureau.canada.ca/en/how-we-foster-competition/education-and-outreach/canada-needs-more-grocery-competition | |
added
literature/seed_references.yaml
+65 −0
@@ -0,0 +1,65 @@ | ||
| 1 | +# Intended references (author / title / year) — every entry is verified against Crossref before use (verify_refs.py). | |
| 2 | +# topic: dispersion | search | sales | rigidity | menu_costs | indices | scanner | substitution | shrinkflation | welfare | access | retail | online | canada | matching | |
| 3 | +- {key: stigler1961, topic: search, author: "Stigler", title: "The Economics of Information", year: 1961} | |
| 4 | +- {key: varian1980, topic: sales, author: "Varian", title: "A Model of Sales", year: 1980} | |
| 5 | +- {key: salop1977, topic: dispersion, author: "Salop Stiglitz", title: "Bargains and Ripoffs: A Model of Monopolistically Competitive Price Dispersion", year: 1977} | |
| 6 | +- {key: burdett1983, topic: dispersion, author: "Burdett Judd", title: "Equilibrium Price Dispersion", year: 1983} | |
| 7 | +- {key: sorensen2000, topic: dispersion, author: "Sorensen", title: "Equilibrium Price Dispersion in Retail Markets for Prescription Drugs", year: 2000} | |
| 8 | +- {key: lach2002, topic: dispersion, author: "Lach", title: "Existence and Persistence of Price Dispersion: An Empirical Analysis", year: 2002} | |
| 9 | +- {key: baye2006, topic: dispersion, author: "Baye Morgan Scholten", title: "Information, Search, and Price Dispersion", year: 2006} | |
| 10 | +- {key: kaplan2015, topic: dispersion, author: "Kaplan Menzio", title: "The Morphology of Price Dispersion", year: 2015} | |
| 11 | +- {key: kaplan2019, topic: dispersion, author: "Kaplan Menzio Rudanko Trachter", title: "Relative Price Dispersion: Evidence and Theory", year: 2019} | |
| 12 | +- {key: hitsch2021, topic: retail, author: "Hitsch Hortaçsu Lin", title: "Prices and promotions in U.S. retail markets", year: 2021} | |
| 13 | +- {key: pesendorfer2002, topic: sales, author: "Pesendorfer", title: "Retail Sales: A Study of Pricing Behavior in Supermarkets", year: 2002} | |
| 14 | +- {key: hendel2006, topic: sales, author: "Hendel Nevo", title: "Measuring the Implications of Sales and Consumer Inventory Behavior", year: 2006} | |
| 15 | +- {key: hendel2013, topic: sales, author: "Hendel Nevo", title: "Intertemporal Price Discrimination in Storable Goods Markets", year: 2013} | |
| 16 | +- {key: hosken2004, topic: sales, author: "Hosken Reiffen", title: "Patterns of Retail Price Variation", year: 2004} | |
| 17 | +- {key: nakamura2008, topic: rigidity, author: "Nakamura Steinsson", title: "Five Facts about Prices: A Reevaluation of Menu Cost Models", year: 2008} | |
| 18 | +- {key: klenow2008, topic: rigidity, author: "Klenow Kryvtsov", title: "State-Dependent or Time-Dependent Pricing: Does It Matter for Recent U.S. Inflation?", year: 2008} | |
| 19 | +- {key: eichenbaum2011, topic: rigidity, author: "Eichenbaum Jaimovich Rebelo", title: "Reference Prices, Costs, and Nominal Rigidities", year: 2011} | |
| 20 | +- {key: kehoe2015, topic: rigidity, author: "Kehoe Midrigan", title: "Prices are sticky after all", year: 2015} | |
| 21 | +- {key: anderson2017, topic: sales, author: "Anderson Malin Nakamura Simester Steinsson", title: "Informational rigidities and the stickiness of temporary sales", year: 2017} | |
| 22 | +- {key: chevalier2003, topic: sales, author: "Chevalier Kashyap Rossi", title: "Why Don't Prices Rise During Periods of Peak Demand? Evidence from Scanner Data", year: 2003} | |
| 23 | +- {key: chevalier2019, topic: sales, author: "Chevalier Kashyap", title: "Best Prices: Price Discrimination and Consumer Substitution", year: 2019} | |
| 24 | +- {key: coibion2015, topic: sales, author: "Coibion Gorodnichenko Hong", title: "The Cyclicality of Sales, Regular and Effective Prices: Business Cycle and Policy Implications", year: 2015} | |
| 25 | +- {key: golosov2007, topic: menu_costs, author: "Golosov Lucas", title: "Menu Costs and Phillips Curves", year: 2007} | |
| 26 | +- {key: midrigan2011, topic: menu_costs, author: "Midrigan", title: "Menu Costs, Multiproduct Firms, and Aggregate Fluctuations", year: 2011} | |
| 27 | +- {key: nakamura2013, topic: rigidity, author: "Nakamura Steinsson", title: "Price Rigidity: Microeconomic Evidence and Macroeconomic Implications", year: 2013} | |
| 28 | +- {key: feenstra1994, topic: indices, author: "Feenstra", title: "New Product Varieties and the Measurement of International Prices", year: 1994} | |
| 29 | +- {key: ivancic2011, topic: scanner, author: "Ivancic Diewert Fox", title: "Scanner data, time aggregation and the construction of price indexes", year: 2011} | |
| 30 | +- {key: dehaan2011, topic: scanner, author: "de Haan van der Grient", title: "Eliminating chain drift in price indexes based on scanner data", year: 2011} | |
| 31 | +- {key: redding2020, topic: indices, author: "Redding Weinstein", title: "Measuring Aggregate Price Indices with Taste Shocks: Theory and Evidence for CES Preferences", year: 2020} | |
| 32 | +- {key: cavallo2017, topic: online, author: "Cavallo", title: "Are Online and Offline Prices Similar? Evidence from Large Multi-channel Retailers", year: 2017} | |
| 33 | +- {key: cavallo2016, topic: online, author: "Cavallo Rigobon", title: "The Billion Prices Project: Using Online Prices for Measurement and Research", year: 2016} | |
| 34 | +- {key: cavallo2018, topic: online, author: "Cavallo", title: "Scraped Data and Sticky Prices", year: 2018} | |
| 35 | +- {key: gorodnichenko2017, topic: online, author: "Gorodnichenko Talavera", title: "Price Setting in Online Markets: Basic Facts, International Comparisons, and Cross-Border Integration", year: 2017} | |
| 36 | +- {key: ellickson2008, topic: retail, author: "Ellickson Misra", title: "Supermarket Pricing Strategies", year: 2008} | |
| 37 | +- {key: hausman2007, topic: retail, author: "Hausman Leibtag", title: "Consumer benefits from increased competition in shopping outlets: Measuring the effect of Wal-Mart", year: 2007} | |
| 38 | +- {key: lal1997, topic: retail, author: "Lal Rao", title: "Supermarket Competition: The Case of Every Day Low Pricing", year: 1997} | |
| 39 | +- {key: hoch1994, topic: retail, author: "Hoch Drèze Purk", title: "EDLP, Hi-Lo, and Margin Arithmetic", year: 1994} | |
| 40 | +- {key: aguiar2007, topic: search, author: "Aguiar Hurst", title: "Life-Cycle Prices and Production", year: 2007} | |
| 41 | +- {key: kaplan2016, topic: search, author: "Kaplan Menzio", title: "Shopping Externalities and Self-Fulfilling Unemployment Fluctuations", year: 2016} | |
| 42 | +- {key: griffith2009, topic: welfare, author: "Griffith Leibtag Leicester Nevo", title: "Consumer Shopping Behavior: How Much Do Consumers Save?", year: 2009} | |
| 43 | +- {key: nevo2019, topic: search, author: "Nevo Wong", title: "The Elasticity of Substitution Between Time and Market Goods: Evidence from the Great Recession", year: 2019} | |
| 44 | +- {key: jaravel2019, topic: welfare, author: "Jaravel", title: "The Unequal Gains from Product Innovations: Evidence from the U.S. Retail Sector", year: 2019} | |
| 45 | +- {key: argente2021, topic: welfare, author: "Argente Lee", title: "Cost of Living Inequality During the Great Recession", year: 2021} | |
| 46 | +- {key: dube2018, topic: substitution, author: "Dubé Hitsch Rossi", title: "Income and Wealth Effects on Private-Label Demand: Evidence from the Great Recession", year: 2018} | |
| 47 | +- {key: bronnenberg2015, topic: substitution, author: "Bronnenberg Dubé Gentzkow Shapiro", title: "Do Pharmacists Buy Bayer? Informed Shoppers and the Brand Premium", year: 2015} | |
| 48 | +- {key: allcott2019, topic: access, author: "Allcott Diamond Dubé Handbury Rahkovsky Schnell", title: "Food Deserts and the Causes of Nutritional Inequality", year: 2019} | |
| 49 | +- {key: handbury2015, topic: access, author: "Handbury Weinstein", title: "Goods Prices and Availability in Cities", year: 2015} | |
| 50 | +- {key: gagnon2020, topic: sales, author: "Gagnon López-Salido", title: "Small Price Responses to Large Demand Shocks", year: 2020} | |
| 51 | +- {key: dellavigna2019, topic: retail, author: "DellaVigna Gentzkow", title: "Uniform Pricing in U.S. Retail Chains", year: 2019} | |
| 52 | +- {key: hitsch2019, topic: retail, author: "Hitsch Hortaçsu Lin", title: "Prices and Promotions in U.S. Retail Markets: Evidence from Big Data", year: 2019} | |
| 53 | +- {key: diewert2023, topic: indices, author: "Diewert Fox", title: "Substitution Bias in Multilateral Methods for CPI Construction", year: 2022} | |
| 54 | +- {key: melser2018, topic: scanner, author: "Melser", title: "Scanner Data Price Indexes: Addressing Some Unresolved Issues", year: 2018} | |
| 55 | +- {key: nakamura2018, topic: rigidity, author: "Nakamura Steinsson Sun Villar", title: "The Elusive Costs of Inflation: Price Dispersion during the U.S. Great Inflation", year: 2018} | |
| 56 | +- {key: anderson2015, topic: sales, author: "Anderson Jaimovich Simester", title: "Price Stickiness: Empirical Evidence of the Menu Cost Channel", year: 2015} | |
| 57 | +- {key: shrink2023, topic: shrinkflation, author: "", title: "shrinkflation", year: 2023} | |
| 58 | +- {key: fellegi1969, topic: matching, author: "Fellegi Sunter", title: "A Theory for Record Linkage", year: 1969} | |
| 59 | +- {key: christen2012, topic: matching, author: "Christen", title: "Data Matching: Concepts and Techniques for Record Linkage, Entity Resolution, and Duplicate Detection", year: 2012} | |
| 60 | +- {key: macdonald2000, topic: sales, author: "MacDonald", title: "Demand, Information, and Competition: Why Do Food Prices Fall at Seasonal Demand Peaks?", year: 2000} | |
| 61 | +- {key: bils2004, topic: rigidity, author: "Bils Klenow", title: "Some Evidence on the Importance of Sticky Prices", year: 2004} | |
| 62 | +- {key: guimaraes2011, topic: sales, author: "Guimaraes Sheedy", title: "Sales and Monetary Policy", year: 2011} | |
| 63 | +- {key: hortacsu2008, topic: search, author: "Hortaçsu Syverson", title: "Product Differentiation, Search Costs, and Competition in the Mutual Fund Industry", year: 2004} | |
| 64 | +- {key: aguirregabiria1999, topic: sales, author: "Aguirregabiria", title: "The Dynamics of Markups and Inventories in Retailing Firms", year: 1999} | |
| 65 | +- {key: dejong2009, topic: scanner, author: "Einav Leibtag Nevo", title: "Recording discrepancies in Nielsen Homescan data: Are they present and do they matter?", year: 2010} | |
added
literature/unverified.csv
+7 −0
@@ -0,0 +1,7 @@ | ||
| 1 | +key,topic,author,title,year,verified,doi,crossref_title,journal,volume,issue,pages,pub_year,type,publisher,authors,title_sim,note | |
| 2 | +varian1980,sales,Varian,A Model of Sales,1980,False,,,,,,,,,,,,no confident Crossref match (best sim 0.00) | |
| 3 | +midrigan2011,menu_costs,Midrigan,"Menu Costs, Multiproduct Firms, and Aggregate Fluctuations",2011,False,,,,,,,,,,,,no confident Crossref match (best sim 0.00) | |
| 4 | +feenstra1994,indices,Feenstra,New Product Varieties and the Measurement of International Prices,1994,False,,,,,,,,,,,,no confident Crossref match (best sim 0.48) | |
| 5 | +diewert2023,indices,Diewert Fox,Substitution Bias in Multilateral Methods for CPI Construction,2022,False,,,,,,,,,,,,no confident Crossref match (best sim 0.00) | |
| 6 | +shrink2023,shrinkflation,,shrinkflation,2023,False,,,,,,,,,,,,"placeholder topic query, needs a specific paper" | |
| 7 | +hortacsu2008,search,Hortaçsu Syverson,"Product Differentiation, Search Costs, and Competition in the Mutual Fund Industry",2004,False,,,,,,,,,,,,no confident Crossref match (best sim 0.00) | |
added
src/literature/__init__.py
+0 −0
added
src/literature/resolve_dois.py
+40 −0
@@ -0,0 +1,40 @@ | ||
| 1 | +"""Resolve manual references by DOI through Crossref and merge into references_verified.csv; search Crossref for | |
| 2 | +shrinkflation papers to pick a verifiable one.""" | |
| 3 | +import time, requests, yaml, pandas as pd | |
| 4 | +from src.common import ROOT, get_logger | |
| 5 | +log = get_logger("crossref"); LIT = ROOT / "literature"; UA = {"User-Agent": "WP37-UQO-research/0.1 (mailto:simon-pierre.boucher@uqo.ca)"} | |
| 6 | + | |
| 7 | +def by_doi(doi): | |
| 8 | + r = requests.get(f"https://api.crossref.org/works/{doi}", headers=UA, timeout=60); r.raise_for_status(); return r.json()["message"] | |
| 9 | + | |
| 10 | +def main(): | |
| 11 | + man = yaml.safe_load((LIT / "manual_references.yaml").read_text()) | |
| 12 | + rows = [] | |
| 13 | + for m in man: | |
| 14 | + if m.get("doi"): | |
| 15 | + it = by_doi(m["doi"]); yr = it["issued"]["date-parts"][0][0] | |
| 16 | + rows.append(dict(key=m["key"], topic=m["topic"], verified=True, doi=it["DOI"], crossref_title=" ".join(it.get("title") or []), | |
| 17 | + journal=" ".join(it.get("container-title") or []), volume=it.get("volume"), issue=it.get("issue"), pages=it.get("page"), | |
| 18 | + pub_year=yr, type=it.get("type"), publisher=it.get("publisher"), | |
| 19 | + authors="; ".join(f"{a.get('family','')}, {a.get('given','')}" for a in it.get("author", []) or []), title=" ".join(it.get("title") or []), year=yr, author="", title_sim=1.0, note="resolved by DOI")) | |
| 20 | + log.info("DOI %s -> %s (%s %s)", m["doi"], rows[-1]["crossref_title"][:60], rows[-1]["journal"], yr) | |
| 21 | + else: | |
| 22 | + rows.append(dict(key=m["key"], topic=m["topic"], verified=True, doi=None, crossref_title=m["title"], journal=m.get("journal", ""), volume=m.get("volume"), | |
| 23 | + issue=m.get("issue"), pages=m.get("pages"), pub_year=m["year"], type=m.get("type", "journal-article"), publisher="", | |
| 24 | + authors=m["author"], title=m["title"], year=m["year"], author=m["author"], title_sim=1.0, | |
| 25 | + note=f"no DOI; verified via {m.get('jstor') or m.get('url')}")) | |
| 26 | + time.sleep(0.3) | |
| 27 | + # shrinkflation search | |
| 28 | + r = requests.get("https://api.crossref.org/works", params={"query.bibliographic": "shrinkflation package downsizing grocery prices", "rows": 15, "filter": "type:journal-article", | |
| 29 | + "select": "DOI,title,author,issued,container-title"}, headers=UA, timeout=60) | |
| 30 | + for it in r.json()["message"]["items"]: | |
| 31 | + log.info("shrinkflation candidate: %s | %s | %s | %s", " ".join(it.get("title") or [])[:90], " ".join(it.get("container-title") or []), | |
| 32 | + (it.get("issued", {}).get("date-parts") or [[None]])[0][0], it["DOI"]) | |
| 33 | + ver = pd.read_csv(LIT / "references_verified.csv") | |
| 34 | + ver = ver[~ver.key.isin([r["key"] for r in rows]) & ~ver.key.isin(["diewert2023", "hortacsu2008", "shrink2023"])] | |
| 35 | + out = pd.concat([ver, pd.DataFrame(rows)], ignore_index=True) | |
| 36 | + out.to_csv(LIT / "references_verified.csv", index=False) | |
| 37 | + log.info("references now: %d verified / %d", out.verified.sum(), len(out)) | |
| 38 | + | |
| 39 | +if __name__ == "__main__": | |
| 40 | + main() | |
added
src/literature/verify_refs.py
+59 −0
@@ -0,0 +1,59 @@ | ||
| 1 | +"""Verify every intended reference against Crossref (public API, polite pool) and build the verified bibliography. | |
| 2 | + | |
| 3 | +For each seed (author words, title, year) we query Crossref, keep the best candidate only if the title similarity is | |
| 4 | +high and the year matches (±1), and record DOI, container title, volume, pages. Unverified entries are listed in | |
| 5 | +literature/unverified.csv and are NOT cited in the paper. | |
| 6 | +""" | |
| 7 | +import time, re, json, requests, yaml, pandas as pd | |
| 8 | +from rapidfuzz import fuzz | |
| 9 | +from src.common import ROOT, get_logger, ledger | |
| 10 | + | |
| 11 | +log = get_logger("crossref") | |
| 12 | +UA = "WP37-UQO-research/0.1 (mailto:simon-pierre.boucher@uqo.ca)" | |
| 13 | +LIT = ROOT / "literature" | |
| 14 | + | |
| 15 | +def norm(s): return re.sub(r"[^a-z0-9 ]", " ", (s or "").lower()) | |
| 16 | + | |
| 17 | +def query(author, title, year): | |
| 18 | + params = {"query.bibliographic": f"{author} {title} {year}", "rows": 5, "select": "DOI,title,author,issued,container-title,volume,issue,page,type,publisher"} | |
| 19 | + r = requests.get("https://api.crossref.org/works", params=params, headers={"User-Agent": UA}, timeout=60) | |
| 20 | + r.raise_for_status() | |
| 21 | + return r.json()["message"]["items"] | |
| 22 | + | |
| 23 | +def main(): | |
| 24 | + seeds = yaml.safe_load((LIT / "seed_references.yaml").read_text()) | |
| 25 | + rows = [] | |
| 26 | + for s in seeds: | |
| 27 | + if not s["author"]: | |
| 28 | + rows.append({**s, "verified": False, "note": "placeholder topic query, needs a specific paper"}); continue | |
| 29 | + try: | |
| 30 | + items = query(s["author"], s["title"], s["year"]) | |
| 31 | + except Exception as e: | |
| 32 | + rows.append({**s, "verified": False, "note": f"crossref error {type(e).__name__}"}); continue | |
| 33 | + best, best_sim = None, 0 | |
| 34 | + for it in items: | |
| 35 | + t = " ".join(it.get("title") or []) | |
| 36 | + sim = fuzz.token_set_ratio(norm(t), norm(s["title"])) / 100 | |
| 37 | + yr = (it.get("issued", {}).get("date-parts") or [[None]])[0][0] | |
| 38 | + fam = " ".join(a.get("family", "") for a in it.get("author", []) or []) | |
| 39 | + auth_ok = all(norm(w) in norm(fam) for w in s["author"].split()[:1]) | |
| 40 | + if sim > best_sim and yr and abs(int(yr) - int(s["year"])) <= 1 and auth_ok: | |
| 41 | + best, best_sim = it, sim | |
| 42 | + if best and best_sim >= 0.90: | |
| 43 | + yr = best["issued"]["date-parts"][0][0] | |
| 44 | + rows.append({**s, "verified": True, "doi": best["DOI"], "crossref_title": " ".join(best.get("title") or []), | |
| 45 | + "journal": " ".join(best.get("container-title") or []), "volume": best.get("volume"), "issue": best.get("issue"), | |
| 46 | + "pages": best.get("page"), "pub_year": yr, "type": best.get("type"), "publisher": best.get("publisher"), | |
| 47 | + "authors": "; ".join(f"{a.get('family','')}, {a.get('given','')}" for a in best.get("author", []) or []), | |
| 48 | + "title_sim": round(best_sim, 3), "note": ""}) | |
| 49 | + else: | |
| 50 | + rows.append({**s, "verified": False, "note": f"no confident Crossref match (best sim {best_sim:.2f})"}) | |
| 51 | + time.sleep(0.3) | |
| 52 | + df = pd.DataFrame(rows) | |
| 53 | + df.to_csv(LIT / "references_verified.csv", index=False) | |
| 54 | + df[~df.verified].to_csv(LIT / "unverified.csv", index=False) | |
| 55 | + log.info("verified %d / %d ; unverified: %s", df.verified.sum(), len(df), df.loc[~df.verified, "key"].tolist()) | |
| 56 | + ledger("2", "verify_refs", f"{int(df.verified.sum())}/{len(df)} verified via Crossref") | |
| 57 | + | |
| 58 | +if __name__ == "__main__": | |
| 59 | + main() | |
modified
src/matching/match_products.py
+4 −2
@@ -6,8 +6,9 @@ Tiers (calibrated on UPC ground truth Metro<->Super C, src/matching/calibrate_th | ||
| 6 | 6 | (labelled-set precision 0.913, recall 0.984) |
| 7 | 7 | C brand key equal + size equal + token_sort_ratio >= 0.90 + identical numeric tokens, not already B |
| 8 | 8 | (labelled-set precision 0.845 cumulative) |
| 9 | − D (brand missing on one side) size equal + full-name token_sort_ratio >= 0.92 + identical numeric tokens + brand | |
| 10 | − tokens of the branded side present in the brandless name | |
| 9 | + D (brand missing on one side) size equal + identical full-name token sets (brand tokens kept on both sides) + | |
| 10 | + identical numeric tokens + brand tokens of the branded side present in the brandless name | |
| 11 | + (validation round 1 showed that a 0.92 sort-ratio rule let 'spaghetti' ~ 'spaghettini' through: 3/60 errors) | |
| 11 | 12 | Excluded from matching: listings without a parsable package size (circular items are mostly size-less) and |
| 12 | 13 | multi-product circular offers ("X ou Y", "assortis", "sélectionnés", comma lists). A first version using |
| 13 | 14 | rapidfuzz token_set_ratio was rejected because a name that is a token-subset of another scores 1.0 |
@@ -121,6 +122,7 @@ def tier_d(p: pd.DataFrame) -> pd.DataFrame: | ||
| 121 | 122 | for i, j in zip(ii, jj): |
| 122 | 123 | a, b = bl.iloc[i], br.iloc[j] |
| 123 | 124 | if a.banner == b.banner and a.channel == b.channel: continue |
| 125 | + if set(a.nkey_full.split()) != set(b.nkey_full.split()): continue | |
| 124 | 126 | if num_tokens(a.nkey_full) != num_tokens(b.nkey_full): continue |
| 125 | 127 | btoks = [t for t in _ALNUM.sub(" ", strip_accents(b.brand).lower()).split() if len(t) >= 3] |
| 126 | 128 | if btoks and not all(t in a.nkey_full.split() for t in btoks): continue |
| 127 | 129 | |