{
  "source_file": "0930",
  "source_platform": "Medium",
  "author": "Chad Isenberg",
  "title_listed": "Missing features in the data product movement",
  "keywords": "",
  "domain": "数据处理",
  "content_type": "深度技术解析",
  "is_paid_flag": "否",
  "url": "https://towardsdatascience.com/missing-features-in-the-data-product-movement-613f4b5718b7/",
  "publish_date": "2023-02-15",
  "corpus_stage": "",
  "notes": "",
  "id": "4010fc2c1b71",
  "collected_at": "2026-10-02T04:54:55",
  "title": "Missing features in the data product movement | Towards Data Science",
  "body_markdown": "![Revisit consent button](../images/body-df29beacd7496220cc94.svg)\nWe value your privacy\nWe use cookies to enhance your browsing experience, serve personalised ads or content, and analyse our traffic. By clicking \"Accept All\", you consent to our use of cookies.\nCustomise Reject All Accept All\nCustomise Consent Preferences ![](../images/body-2159bb67f3de8ad870eb.svg)\nWe use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.\nThe cookies that are categorised as \"Necessary\" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... Show more\nNecessaryAlways Active\nNecessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.\n  * Cookie\nBCTempID\n  * Duration\n10 minutes\n  * Description\nNo description available.\n\n\n  * Cookie\n__cf_bm\n  * Duration\n1 hour\n  * Description\nThis cookie, set by Cloudflare, is used to support Cloudflare Bot Management. \n\n\n  * Cookie\nAWSALBCORS\n  * Duration\n7 days\n  * Description\nAmazon Web Services set this cookie for load balancing.\n\n\n  * Cookie\n_cfuvid\n  * Duration\nsession\n  * Description\nCloudflare sets this cookie to track users across sessions to optimize user experience by maintaining session consistency and providing personalized services\n\n\n  * Cookie\nli_gc\n  * Duration\n6 months\n  * Description\nLinkedin set this cookie for storing visitor's consent regarding using cookies for non-essential purposes.\n\n\n  * Cookie\n__hssrc\n  * Duration\nsession\n  * Description\nThis cookie is set by Hubspot whenever it changes the session cookie. The __hssrc cookie set to 1 indicates that the user has restarted the browser, and if the cookie does not exist, it is assumed to be a new session.\n\n\n  * Cookie\n__hssc\n  * Duration\n1 hour\n  * Description\nHubSpot sets this cookie to keep track of sessions and to determine if HubSpot should increment the session number and timestamps in the __hstc cookie.\n\n\n  * Cookie\nwpEmojiSettingsSupports\n  * Duration\nsession\n  * Description\nWordPress sets this cookie when a user interacts with emojis on a WordPress site. It helps determine if the user's browser can display emojis properly.\n\n\n  * Cookie\nBCSessionID\n  * Duration\n1 year 1 month 4 days\n  * Description\nBlueconic sets this cookie as a unique identifier for the BlueConic profile.\n\n\n  * Cookie\n_octo\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nlogged_in\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\n__Secure-YEC\n  * Duration\npast\n  * Description\nYouTube sets this cookie to stores the user's video player preferences using embedded YouTube video\n\n\n  * Cookie\n__eoi\n  * Duration\n6 months\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nAWSALBTGCORS\n  * Duration\n7 days\n  * Description\nNo description available.\n\n\n  * Cookie\nlogin-status-p\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nAWSALBTG\n  * Duration\n7 days\n  * Description\nNo description available.\n\n\n  * Cookie\ncsrf_token\n  * Duration\nsession\n  * Description\nNo description available.\n\n\n  * Cookie\ntoken_v2\n  * Duration\n1 day\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nD\n  * Duration\n1 year\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nPHPSESSID\n  * Duration\nsession\n  * Description\nThis cookie is native to PHP applications. The cookie stores and identifies a user's unique session ID to manage user sessions on the website. The cookie is a session cookie and will be deleted when all the browser windows are closed.\n\n\n  * Cookie\nVISITOR_PRIVACY_METADATA\n  * Duration\n6 months\n  * Description\nYouTube sets this cookie to store the user's cookie consent state for the current domain. \n\n\n  * Cookie\ncookietest\n  * Duration\nsession\n  * Description\nThe cookietest cookie is typically used to determine whether the user's browser accepts cookies, essential for website functionality and user experience.\n\n\n  * Cookie\n__Host-airtable-session\n  * Duration\n1 year\n  * Description\nThis cookie is used to enable us to integrate the services of Airtable.\n\n\n  * Cookie\n__Host-airtable-session.sig\n  * Duration\n1 year\n  * Description\nThis cookie is used to enable us to integrate the services of Airtable.\n\n\n  * Cookie\nm\n  * Duration\n1 year 1 month 4 days\n  * Description\nStripe sets this cookie for fraud prevention purposes. It identifies the device used to access the website, allowing the website to be formatted accordingly.\n\n\n  * Cookie\nBIGipServer*\n  * Duration\nsession\n  * Description\nMarketo sets this cookie to collect information about the user's online activity and build a profile about their interests to provide advertisements relevant to the user. \n\n\n  * Cookie\n__cfruid\n  * Duration\nsession\n  * Description\nCloudflare sets this cookie to identify trusted web traffic.\n\n\n  * Cookie\n_GRECAPTCHA\n  * Duration\n6 months\n  * Description\nGoogle Recaptcha service sets this cookie to identify bots to protect the website against malicious spam attacks.\n\n\n  * Cookie\n__Secure-YNID\n  * Duration\n6 months\n  * Description\nGoogle cookie used to protect user security and prevent fraud, especially during the login process.\n\n\n  * Cookie\ncookieyes-consent\n  * Duration\n1 year\n  * Description\nCookieYes sets this cookie to remember users' consent preferences so that their preferences are respected on subsequent visits to this site. It does not collect or store any personal information about the site visitors.\n\n\nFunctional\nFunctional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.\n  * Cookie\nlidc\n  * Duration\n1 day\n  * Description\nLinkedIn sets the lidc cookie to facilitate data center selection.\n\n\n  * Cookie\nbrw\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nbrwConsent\n  * Duration\n5 minutes\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nWMF-Uniq\n  * Duration\n1 year\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nloom_anon_comment\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nloom_referral_video\n  * Duration\nsession\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nVISITOR_INFO1_LIVE\n  * Duration\n6 months\n  * Description\nA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.\n\n\n  * Cookie\nyt-remote-connected-devices\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to store the user's video preferences using embedded YouTube videos.\n\n\n  * Cookie\nytidb::LAST_RESULT_ENTRY_KEY\n  * Duration\nNever Expires\n  * Description\nThe cookie ytidb::LAST_RESULT_ENTRY_KEY is used by YouTube to store the last search result entry that was clicked by the user. This information is used to improve the user experience by providing more relevant search results in the future.\n\n\n  * Cookie\nyt-remote-device-id\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to store the user's video preferences using embedded YouTube videos.\n\n\n  * Cookie\nyt-remote-session-name\n  * Duration\nsession\n  * Description\nThe yt-remote-session-name cookie is used by YouTube to store the user's video player preferences using embedded YouTube video.\n\n\n  * Cookie\nyt-remote-fast-check-period\n  * Duration\nsession\n  * Description\nThe yt-remote-fast-check-period cookie is used by YouTube to store the user's video player preferences for embedded YouTube videos.\n\n\n  * Cookie\nyt-remote-session-app\n  * Duration\nsession\n  * Description\nThe yt-remote-session-app cookie is used by YouTube to store user preferences and information about the interface of the embedded YouTube video player.\n\n\n  * Cookie\nyt-remote-cast-available\n  * Duration\nsession\n  * Description\nThe yt-remote-cast-available cookie is used to store the user's preferences regarding whether casting is available on their YouTube video player.\n\n\n  * Cookie\nyt-remote-cast-installed\n  * Duration\nsession\n  * Description\nThe yt-remote-cast-installed cookie is used to store the user's video player preferences using embedded YouTube video.\n\n\n  * Cookie\ncp_session\n  * Duration\n3 months\n  * Description\nCodepen sets this cookie for Help systems found in the website.\n\n\n  * Cookie\nloid\n  * Duration\n1 year 1 month 4 days\n  * Description\nThis cookie is set by the Reddit. The cookie enables the sharing of content from the website onto the social media platform.\n\n\nAnalytics\nAnalytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.\n  * Cookie\n__hstc\n  * Duration\n6 months\n  * Description\nHubspot set this main cookie for tracking visitors. It contains the domain, initial timestamp (first visit), last timestamp (last visit), current timestamp (this visit), and session number (increments for each subsequent session).\n\n\n  * Cookie\nhubspotutk\n  * Duration\n6 months\n  * Description\nHubSpot sets this cookie to keep track of the visitors to the website. This cookie is passed to HubSpot on form submission and used when deduplicating contacts.\n\n\n  * Cookie\n_ga\n  * Duration\n1 year 1 month 4 days\n  * Description\nGoogle Analytics sets this cookie to calculate visitor, session and campaign data and track site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognise unique visitors.\n\n\n  * Cookie\n_ga_*\n  * Duration\n1 year 1 month 4 days\n  * Description\nGoogle Analytics sets this cookie to store and count page views.\n\n\n  * Cookie\n__Host-psifi.analyticsTrace\n  * Duration\n6 hours\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\n__Host-psifi.analyticsTraceV2\n  * Duration\n6 hours\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\n_gh_sess\n  * Duration\nsession\n  * Description\nGitHub sets this cookie for temporary application and framework state between pages like what step the user is on in a multiple step form.\n\n\n  * Cookie\nYSC\n  * Duration\nsession\n  * Description\nYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.\n\n\n  * Cookie\najs_anonymous_id\n  * Duration\n1 year\n  * Description\nThis cookie is set by Segment to count the number of people who visit a certain site by tracking if they have visited before.\n\n\n  * Cookie\nvuid\n  * Duration\n1 year 1 month 4 days\n  * Description\nVimeo installs this cookie to collect tracking information by setting a unique ID to embed videos on the website. \n\n\nPerformance\nPerformance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.\n  * Cookie\nAWSALB\n  * Duration\n7 days\n  * Description\nAWSALB is an application load balancer cookie set by Amazon Web Services to map the session to the target.\n\n\n  * Cookie\nacq\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nacq.sig\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nptc\n  * Duration\n2 years\n  * Description\nNo description available.\n\n\nAdvertisement\nAdvertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.\n  * Cookie\nmuc_ads\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to collect user behaviour and interaction data to optimize the website.\n\n\n  * Cookie\nguest_id_marketing\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor.\n\n\n  * Cookie\nguest_id_ads\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor.\n\n\n  * Cookie\npersonalization_id\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to integrate and share features for social media and also store information about how the user uses the website, for tracking and targeting.\n\n\n  * Cookie\nguest_id\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor. It registers if a user is signed in to the Twitter platform and collects information about ad preferences.\n\n\n  * Cookie\nbcookie\n  * Duration\n1 year\n  * Description\nLinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser IDs.\n\n\n  * Cookie\n__Secure-ROLLOUT_TOKEN\n  * Duration\n6 months\n  * Description\nYouTube sets this cookie to manage feature rollout and experimentation. It helps Google control which new features or interface changes are shown to users as part of testing and staged rollouts, ensuring consistent experience for a given user during an experiment.\n\n\n  * Cookie\nyt.innertube::nextId\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen.\n\n\n  * Cookie\nyt.innertube::requests\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen.\n\n\n  * Cookie\nsession_tracker\n  * Duration\nsession\n  * Description\nThis cookie is set by the Reddit. This cookie is used to identify trusted web traffic. It also helps in adverstising on the website.\n\n\n  * Cookie\nedgebucket\n  * Duration\nsession\n  * Description\nReddit sets this cookie to save the information about a log-on Reddit user, for the purpose of advertisement recommendations and updating the content.\n\n\n  * Cookie\ndid\n  * Duration\n1 year\n  * Description\nArbor sets this cookie to show targeted ads to site visitors.This cookie expires after 2 months or 1 year.\n\n\nUncategorised\nOther uncategorised cookies are those that are being analysed and have not been classified into a category as yet.\nNo cookies to display.\nReject All Save My Preferences Accept All\nToggle Search[](https://towardsdatascience.com/)Toggle Mobile Navigation\n[](https://towardsdatascience.com/)\nPublish AI, ML & data-science insights to a global community of data professionals.\nSign in[Submit an Article](https://write.insightmediagroup.io)\n[Latest](https://towardsdatascience.com/latest/)[Editor's Picks](https://towardsdatascience.com/tag/editors-pick/)[Newsletter](https://towardsdatascience.com/tag/the-variable/)[ShipAI](https://towardsdatascience.com/shipai/)\n* * *\n[Write For TDS](https://towardsdatascience.com/submissions/)\n[LinkedIn](https://www.linkedin.com/company/towards-data-science/)[X](https://x.com/TDataScience)Toggle Search\n[Business](https://towardsdatascience.com/category/business/)\n# Missing features in the data product movement\n[Chad Isenberg](https://towardsdatascience.com/author/cisenbe/)\nFebruary 15, 20238 min read\n# The Missing Features in Your Data Product\nEngagement, delight, and trust as deliverables\nI lead a monthly data discussion group at Zendesk, where I'm fortunate to get to hear a variety of thoughts and perspectives from smart, diverse, and talented people. We cover topics ranging from the [technical ](https://medium.com/airbnb-engineering/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70)to the [procedural](https://benn.substack.com/p/how-dbt-fails), and we regularly tie these back to our work streams. Online discussion groups, local meetups, and conferences are terrific, but I feel there's even more value in getting the people in your organization together to discuss industry trends, as it can provide direction for your teams and their projects.\nOne of the themes we've been returning to is the idea of our team's value and how we can measure it. In an [earlier article](https://medium.com/towards-data-science/data-teams-as-support-teams-2bb1f1ed31b), I talked about how data teams generate value, but this isn't the only way. Regardless of whether you're providing business support, enabling automation through reverse ETL, or feeding data to advanced analytical and machine learning use-cases, there's always a lingering question: did we save or generate more than we spent?\nAs one of our attendees said, our customers frequently measure our impact \"based on vibes.\" This shouldn't be taken as a slight, but rather a concession to the difficulty in creating firm metrics around impact and value. Additionally, embedded in this idea is that there is subjective and perhaps non-quantifiable value in analytical outputs, which we'll discuss in a moment.\nBuilding an attribution model for data products is a notoriously tough nut to crack, and I won't try to tackle all of the elements here. While I believe we could benefit from a broad attribution framework, I don't know if that's even possible, given the number of ways data can reduce costs and increase revenue. Instead, I want to focus on a few specific components that I feel are neglected, in particular:\n  1. The psychosocial value of data\n  2. Customer delight and satisfaction\n  3. Data quality as a core deliverable\n\n\nLearn this step by step with the interactive [AI and Data Scientist](https://roadmap.sh/ai-data-scientist) and [Data Analyst](https://roadmap.sh/data-analyst) roadmaps.\n## Are we cheerleaders?\nThis first observation is less about how we should be \"doing data products\" and more about what the table stakes are. During our discussion, I brought up the idea that we don't necessarily know why data-driven companies succeed, but [research indicates that they do](https://cisr.mit.edu/publication/2022_0101_Dashboarding_WeillWoerner). One person responded with this insight: maybe the dashboards aren't \"doing anything,\" at least not in the sense of driving a specific, deliberate action. What if instead of (or in addition to) actionable insights, their value is in motivating and aligning our customers?\n![Photo by Rojan Maharjan on Unsplash](../images/000.jpg)\nPhoto by [Rojan Maharjan](https://unsplash.com/@kathmandude_?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral)\nAt one point in my career, I was working as a BI developer for a wholesale company, and we had reporting that provided our sales team with summaries of their sales metrics. This report saw reasonable usage throughout the month, but it sky-rocketed at month-end, with some users refreshing several times an hour. I remember being completely bewildered by this trend.\nI'm sure there were several operational use cases behind this behavior, but in hindsight, I believe one of the most valuable outputs of the report was motivation. Seeing their shipments go out in near real-time made our salespeople excited; it gave them the extra \"oomph\" to make calls and close deals as they rushed to meet or exceed quota. This reporting was doing very real work and driving a business process, even if it wasn't in the way that we would typically expect.\nIt's also worth noting that there's something inherently social about many of these data artifacts. A dashboard is a shared object and can serve as a common thread of conversation between colleagues. Even if the underlying data isn't remarkable or particularly insightful, the dialogues and shared narratives sparked by them can be valuable. Alignment is a powerful tool for an organization, and data can drive alignment.\nAs \"objective\" people, many data professionals may be reluctant to accept that \"inspiration\" is a valid or valuable output; however, we're missing something if we don't use data to motivate us. I resisted this idea initially, but reflecting on my career, I have many stories and anecdotes like the above, and I can't help but feel that this qualitative impact is significant. Perhaps the most important lesson I took away from this experience is that just because I couldn't perceive a mechanism for generating value doesn't mean that it didn't exist.\nFinally, the narrative of the data showing us some hidden insight or a contrarian opinion is a trope at this point, but there's something powerful that happens when data affirms our beliefs and reassures us that we're on the right track. That data often supports the status quo rather than upends it should be celebrated, not feared.\n## Bread and circuses\n![Photo by Mathew Schwartz on Unsplash](../images/001.jpg)\nPhoto by [Mathew Schwartz](https://unsplash.com/@cadop?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral)\nIn the same vein, I believe it's important to consider whether or not our customers like our data products. This could range from providing ergonomic naming conventions and easily-consumable tables for analysts and data scientists to delivering aesthetically-pleasing dashboards for business users.\nWhat does this look like? Should we be building in feedback mechanisms to our data products? Should we have surveys? I would caution that we don't want to be too heavy-handed; as with all internal products, we're at risk of having a tenuous relationship with the actual value chain (i. e., how we get paid).\nStill, I think there's room for providing lightweight systems to drive feedback in the data product lifecycle. Which features are loved? Which are hated? When is it safe for a data product to go into \"maintenance mode,\" and when do we sunset? In my experience, these questions are almost always raised in an ad-hoc fashion, and by that point in the product's lifecycle, even identifying active users can be complicated by process automation that has been long since forgotten.\n## Quality as a deliverable\nAs we were closing our monthly meeting, [Niral Patel](https://www.linkedin.com/in/niralpatel/), one of the data engineering managers on my team, brought up this cogent point: why is quality an afterthought when it's a critical component to satisfy our customers' demands?\nTo some extent, this is a matter of resources. Data teams are frequently scrappy and asked to take on far more work than they're capable of delivering. They're mired in operational woes and unclear requirements. When pressed for time, delivering an incomplete thing is better than delivering nothing.\nBut like standardized tests where you're penalized for wrong answers, poor data quality damages trust. If your team consistently cranks out dashboards that are inaccurate, stale, and inconsistent, your customers will lose trust in you. And the damage isn't limited to you and your team; you're contributing to a culture of mistrust that can require years of work and huge turnover to repair.\nWe have a responsibility to our stakeholders to promote data quality as a key feature of our products, and we need to involve them in the tradeoffs. Since data quality has many [dimensions](https://towardsdatascience.com/the-six-dimensions-of-data-quality-and-how-to-deal-with-them-bdcf9a3dba71), our customers have to be involved in prioritizing: how should we handle unusual data volumes? What should we do when we encounter a schema change? Is it more important to deliver incomplete data on time or complete data late? While there's a sense of what \"poor\" data quality is, managing the tradeoffs in delivering \"good\" data is much more complicated and context-sensitive.\nImportant work is being done in the data governance space, and it's time to bring that to bear in our data products, from the start and every time. Quality is an essential feature, every bit as important as the design, interfaces, and use-cases enabled by our products.\n## The metrics we need\nWhile there are products and services that can provide us with usage data, the data in itself isn't enough; we need metrics and associated outcomes. I believe the following metrics (and related monitoring / observability) are critical components of a successful data product:\n  1. A way of measuring usage, ideally differentiating automation from ad-hoc\n  2. A way of measuring satisfaction, ideally at the feature level\n  3. A way of measuring data quality, all key aspects\n\n\nThese components are far from sufficient, but I believe they are necessary for data teams to adequately judge whether or not their work is having an impact. Yes, dollar or FTE-equivalent attribution is the gold standard, but in cases where that's not available, knowing that we're delivering high-quality data to engaged, satisfied users is a good proxy. These metrics also allow us to capture those unintended benefits of a data product; perhaps our users are applying the outputs to different processes altogether.\nOne salient point that Niral raised in a follow-up conversation is that data products should be actionable; an automation or dashboard should drive some action that generates value. It's critical to make the distinction between creating data products with the primary goal of psychosocial impact and considering psychosocial impact as a dimension of value. I wouldn't suggest that, in the planning phase, we make a product with the sole goal of improving morale or team cohesion, as that value proposition is tenuous at best. Rather, if our product fails to drive its intended action but is still wildly popular, we should have the framework in place to investigate why. Essentially, we don't want to throw away something valuable just because it's not \"working as intended.\"\n* * *\nTo wrap up with a brilliant insight from one attendee: data teams contribute to the workplace well-being of our stakeholders; if providing a data pull or a dashboard makes users happy, there's utility in that. It certainly can't be the data team's only value proposition, but it's also not something we should discount. While it may be tempting to lean into objectivity and dismiss the human elements of our work (\"weaknesses\" that data can \"overcome\"), the reality is that we're social creatures working in complex organizations. We have tools for cutting through subjectivity, but most of our work will pass through another person's hands; there's more value in acknowledging and recognizing that human element than there is in turning away from it.\n* * *\nLiterally minutes after I finished my first draft of this article, [Benn Stancil](https://towardsdatascience.com/missing-features-in-the-data-product-movement-613f4b5718b7/None) released a smart piece on [his discomfort with giving up on the objectivity of data](https://benn.substack.com/p/the-case-for-being-biased). I would be remiss if I didn't send you in his direction.\n## Register Now to Continue Reading\n### Unlock Towards Data Science with a Free Account\nAll articles on Towards Data Science are available to registered users. Create a free account today to access this article and thousands more.\nRegister for freeSign in to your account\n* * *\n![](../images/body-9e4c3e3de7a22688d8ce.jpeg)\nWritten By\n## [Chad Isenberg](https://towardsdatascience.com/author/cisenbe/)\n[See all from Chad Isenberg](https://towardsdatascience.com/author/cisenbe/)\n[Analytics](https://towardsdatascience.com/tag/analytics/)[Business](https://towardsdatascience.com/tag/business/)[Data Product Creation](https://towardsdatascience.com/tag/data-product-creation/)[Data Science](https://towardsdatascience.com/tag/data-science/)[Notes From Industry](https://towardsdatascience.com/tag/notes-from-industry/)\nShare This Article\n  * [](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Ftowardsdatascience.com%2Fmissing-features-in-the-data-product-movement-613f4b5718b7%2F&title=Missing%20features%20in%20the%20data%20product%20movement)\n  * [](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Ftowardsdatascience.com%2Fmissing-features-in-the-data-product-movement-613f4b5718b7%2F&title=Missing%20features%20in%20the%20data%20product%20movement)\n  * [](https://x.com/share?url=https%3A%2F%2Ftowardsdatascience.com%2Fmissing-features-in-the-data-product-movement-613f4b5718b7%2F&text=Missing%20features%20in%20the%20data%20product%20movement)\n\n\nTowards Data Science is a community publication. Submit your insights to reach our global audience and earn through the TDS Author Payment Program.\n[Write for TDS](https://towardsdatascience.com/submissions/)\n## Related Articles\n  * [![](../images/002.jpg)](https://towardsdatascience.com/how-to-successfully-run-a-b-tests-f3ca363dec98/)\n## [How to Successfully Run A/B Tests](https://towardsdatascience.com/how-to-successfully-run-a-b-tests-f3ca363dec98/)\n[Data Science](https://towardsdatascience.com/category/data-science/)\nBest practices from large tech companies that are aggressively experimenting with everything\n[Kevin Babitz](https://towardsdatascience.com/author/kevindbabitz/)\nFebruary 25, 202110 min read\n  * [![](../images/003.jpg)](https://towardsdatascience.com/getting-ai-ready-preparing-for-a-world-of-agentic-ai-as-tech-professionals/)\n## [Get AI-Ready: How to Prepare for a World of Agentic AI as Tech Professionals](https://towardsdatascience.com/getting-ai-ready-preparing-for-a-world-of-agentic-ai-as-tech-professionals/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nExplore how Agentic AI is reshaping the tech careers, from data to decision-making, and how professionals can prepare for the future of work\n[Rashi Desai](https://towardsdatascience.com/author/rashidesai/)\nAugust 27, 20256 min read\n  * [![](../images/004.jpeg)](https://towardsdatascience.com/under-the-hood-of-gradient-boosting-and-its-python-implementation-99cc63efd24d/)\n## [Under the Hood of Gradient Boosting and Its Python Implementation](https://towardsdatascience.com/under-the-hood-of-gradient-boosting-and-its-python-implementation-99cc63efd24d/)\n[Machine Learning](https://towardsdatascience.com/category/artificial-intelligence/machine-learning/)\nBoosting algorithms in machine learning - Part 3\n[Rukshan Pramoditha](https://towardsdatascience.com/author/rukshanpramoditha/)\nOctober 24, 20215 min read\n  * [![](../images/005.jpg)](https://towardsdatascience.com/python-logging-saving-logs-to-a-file-sending-logs-to-an-api-75ec5964943f/)\n## [Python logging - saving logs to a file & sending logs to an API](https://towardsdatascience.com/python-logging-saving-logs-to-a-file-sending-logs-to-an-api-75ec5964943f/)\n[Programming](https://towardsdatascience.com/category/programming/)\nGet your logs to where they are needed to debug your code\n[Mike Huls](https://towardsdatascience.com/author/mikehuls/)\nJune 9, 20225 min read\n  * [![](../images/006.jpeg)](https://towardsdatascience.com/math-vs-coding-data-science-43e216b4f671/)\n## [How to Get into Data Science - Math Or Coding](https://towardsdatascience.com/math-vs-coding-data-science-43e216b4f671/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nFor people who are still deciding whether Math or Coding is more important\n[Low Wei Hong](https://towardsdatascience.com/author/lowweihong/)\nOctober 20, 20195 min read\n  * [![](../images/007.jpg)](https://towardsdatascience.com/create-a-sms-spam-classifier-in-python-b4b015f7404b/)\n## [Create a SMS spam classifier in python](https://towardsdatascience.com/create-a-sms-spam-classifier-in-python-b4b015f7404b/)\n[NLP](https://towardsdatascience.com/category/artificial-intelligence/nlp/)\nNatural Language Processing basics using scikit-learn\n[Chia Dehan](https://towardsdatascience.com/author/thedehan/)\nAugust 16, 20206 min read\n  * [![](../images/008.png)](https://towardsdatascience.com/batch-norm-explained-visually-why-does-it-work-90b98bcc58a0/)\n## [Batch Norm Explained Visually - Why does it work](https://towardsdatascience.com/batch-norm-explained-visually-why-does-it-work-90b98bcc58a0/)\n[Deep Learning](https://towardsdatascience.com/category/artificial-intelligence/deep-learning/)\nA Gentle Guide to the reasons for the Batch Norm layer's success in making training converge faster, in Plain English\n[Ketan Doshi](https://towardsdatascience.com/author/ketanhdoshi/)\nMay 26, 20218 min read\n  * [![](../images/009.jpeg)](https://towardsdatascience.com/10-must-know-topics-of-python-for-data-science-9ce36a5b9681/)\n## [10 Must-Know Python Topics for Data Science](https://towardsdatascience.com/10-must-know-topics-of-python-for-data-science-9ce36a5b9681/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nWhat Pandas or Matplotlib does not teach you\n[Soner Yıldırım](https://towardsdatascience.com/author/sonery/)\nFebruary 13, 20217 min read\n  * [![](../images/010.jpg)](https://towardsdatascience.com/how-to-write-code-effectively-in-python-105dc5f2d293/)\n## [How To Write Code Effectively In Python](https://towardsdatascience.com/how-to-write-code-effectively-in-python-105dc5f2d293/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nAnalyzing the best practices that you should follow while writing code in Python\n[Bharath K](https://towardsdatascience.com/author/bharath-k1297/)\nSeptember 7, 202110 min read\n\n\n  * [YouTube](https://www.youtube.com/c/TowardsDataScience)\n  * [X](https://x.com/TDataScience)\n  * [LinkedIn](https://www.linkedin.com/company/towards-data-science/)\n  * [Threads](https://www.threads.net/@towardsdatascience)\n  * [Bluesky](https://bsky.app/profile/towardsdatascience.com)\n\n\n[](https://towardsdatascience.com/)\nYour home for data science and AI. The world's leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals.\nSubscribe to Our Newsletter[Write For TDS](https://towardsdatascience.com/submissions/)•[About](https://towardsdatascience.com/about-towards-data-science-d691af11cc2f/)•[Advertise](https://contact.towardsdatascience.com/advertise-with-towards-data-science)•[Privacy Policy](https://towardsdatascience.com/privacy-policy/)•[Terms of Use](https://towardsdatascience.com/website-terms-of-use/)\n© Insight Media Group, LLC 2026•[The New Stack](https://thenewstack.io)•[roadmap.sh](https://roadmap.sh)•[Creator Network](https://insightmediagroup.io/creator-network)\n####  Recommended Articles \nClose\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607686/image?etag=1782161464448&width=500&height=500) How Relevance Models Foreshadowed Transformers for NLP ](https://towardsdatascience.com/how-relevance-models-foreshadowed-transformers-for-nlp/ \"How Relevance Models Foreshadowed Transformers for NLP\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607639/image?etag=1781250125848&width=500&height=500) Javascript Fatigue: HTMX Is All You Need to Build ChatGPT — Part 1 ](https://towardsdatascience.com/javascript-fatigue-you-dont-need-js-to-build-chatgpt/ \"Javascript Fatigue: HTMX Is All You Need to Build ChatGPT — Part 1\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607930/image?etag=1782124566054&width=500&height=500) The Subset Sum Problem Solved in Linear Time for Dense Enough Inputs ](https://towardsdatascience.com/subset-sum-problem-solved-in-linear-time-for-dense-enough-inputs/ \"The Subset Sum Problem Solved in Linear Time for Dense Enough Inputs\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/3660/image?etag=1780176246070&width=500&height=500) Does Your Company Have a Data Strategy? ](https://towardsdatascience.com/does-your-company-have-a-data-strategy-e8944dbec4ae/ \"Does Your Company Have a Data Strategy?\")\n\n\n",
  "metadata": {
    "title": "Missing features in the data product movement | Towards Data Science",
    "description": "Engagement, delight, and trust as deliverables I lead a monthly data discussion group at Zendesk,...",
    "keywords": null,
    "author": "Chad Isenberg",
    "og:locale": "en_US",
    "og:type": "article",
    "og:title": "Missing features in the data product movement",
    "og:description": "Engagement, delight, and trust as deliverables I lead a monthly data discussion group at Zendesk,...",
    "og:url": "https://towardsdatascience.com/missing-features-in-the-data-product-movement-613f4b5718b7/",
    "og:site_name": "Towards Data Science",
    "og:image": "https://assets.insightmediagroup.io/media/wp-content/uploads/2023/02/0iQ9QMPRsipsV3UnM-scaled.jpg",
    "og:image:width": "2048",
    "og:image:height": "2560",
    "og:image:type": "image/jpeg",
    "twitter:card": "summary_large_image",
    "twitter:site": "@TDataScience",
    "twitter:creator": "@TDataScience",
    "twitter:label1": "Written by",
    "twitter:data1": "Chad Isenberg",
    "twitter:label2": "Est. reading time",
    "twitter:data2": "8 min read",
    "article:published_time": "2023-02-15T05:24:56.000Z",
    "article:modified_time": "2023-02-15T05:24:56.000Z",
    "article:author": "https://towardsdatascience.com/author/cisenbe/"
  },
  "paywall": {
    "listed_paid": false,
    "detected": false,
    "marker": "",
    "public_only": false,
    "policy": "付费/会员内容只保留页面公开可见部分，不绕过付费墙"
  },
  "crawl": {
    "success": true,
    "status_code": 200,
    "error": ""
  },
  "code_blocks": [],
  "images": [
    {
      "status": "http_404",
      "url": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607686/image?etag=1782161464448&width=500&height=500",
      "src": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607686/image?etag=1782161464448&width=500&height=500",
      "alt": "",
      "downloaded": false,
      "discovery": "saved_markdown",
      "retried_at": "2026-10-20T18:01:50Z"
    },
    {
      "status": "http_404",
      "url": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607639/image?etag=1781250125848&width=500&height=500",
      "src": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607639/image?etag=1781250125848&width=500&height=500",
      "alt": "",
      "downloaded": false,
      "discovery": "saved_markdown",
      "retried_at": "2026-10-20T18:01:50Z"
    },
    {
      "status": "http_404",
      "url": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607930/image?etag=1782124566054&width=500&height=500",
      "src": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607930/image?etag=1782124566054&width=500&height=500",
      "alt": "",
      "downloaded": false,
      "discovery": "saved_markdown",
      "retried_at": "2026-10-20T18:01:50Z"
    },
    {
      "status": "http_404",
      "url": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/3660/image?etag=1780176246070&width=500&height=500",
      "src": "https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/3660/image?etag=1780176246070&width=500&height=500",
      "alt": "",
      "downloaded": false,
      "discovery": "saved_markdown",
      "retried_at": "2026-10-20T18:01:50Z"
    }
  ],
  "audio": [],
  "videos": [
    {
      "url": "https://www.youtube.com/c/TowardsDataScience",
      "kind": "channel_reference",
      "status": "reference_only"
    }
  ],
  "links": [
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/latest/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/editors-pick/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/the-variable/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/shipai/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/submissions/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/category/business/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/author/cisenbe/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/the-six-dimensions-of-data-quality-and-how-to-deal-with-them-bdcf9a3dba71"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/missing-features-in-the-data-product-movement-613f4b5718b7/None"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/analytics/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/business/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/data-product-creation/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/data-science/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/tag/notes-from-industry/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/how-to-successfully-run-a-b-tests-f3ca363dec98/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/category/data-science/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/author/kevindbabitz/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/getting-ai-ready-preparing-for-a-world-of-agentic-ai-as-tech-professionals/"
    },
    {
      "type": "internal",
      "href": "https://towardsdatascience.com/category/artificial-intelligence/"
    },
    {
      "type": "external",
      "href": "https://write.insightmediagroup.io"
    },
    {
      "type": "external",
      "href": "https://www.linkedin.com/company/towards-data-science/"
    },
    {
      "type": "external",
      "href": "https://x.com/TDataScience"
    },
    {
      "type": "external",
      "href": "https://medium.com/airbnb-engineering/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70"
    },
    {
      "type": "external",
      "href": "https://benn.substack.com/p/how-dbt-fails"
    },
    {
      "type": "external",
      "href": "https://medium.com/towards-data-science/data-teams-as-support-teams-2bb1f1ed31b"
    },
    {
      "type": "external",
      "href": "https://roadmap.sh/ai-data-scientist"
    },
    {
      "type": "external",
      "href": "https://roadmap.sh/data-analyst"
    },
    {
      "type": "external",
      "href": "https://cisr.mit.edu/publication/2022_0101_Dashboarding_WeillWoerner"
    },
    {
      "type": "external",
      "href": "https://unsplash.com/@kathmandude_"
    },
    {
      "type": "external",
      "href": "https://unsplash.com"
    },
    {
      "type": "external",
      "href": "https://unsplash.com/@cadop"
    },
    {
      "type": "external",
      "href": "https://www.linkedin.com/in/niralpatel/"
    },
    {
      "type": "external",
      "href": "https://benn.substack.com/p/the-case-for-being-biased"
    },
    {
      "type": "external",
      "href": "https://www.facebook.com/sharer/sharer.php?title=Missing+features+in+the+data+product+movement&u=https%3A%2F%2Ftowardsdatascience.com%2Fmissing-features-in-the-data-product-movement-613f4b5718b7%2F"
    },
    {
      "type": "external",
      "href": "https://www.linkedin.com/shareArticle?mini=true&title=Missing+features+in+the+data+product+movement&url=https%3A%2F%2Ftowardsdatascience.com%2Fmissing-features-in-the-data-product-movement-613f4b5718b7%2F"
    },
    {
      "type": "external",
      "href": "https://x.com/share?text=Missing+features+in+the+data+product+movement&url=https%3A%2F%2Ftowardsdatascience.com%2Fmissing-features-in-the-data-product-movement-613f4b5718b7%2F"
    },
    {
      "type": "external",
      "href": "https://www.youtube.com/c/TowardsDataScience"
    },
    {
      "type": "external",
      "href": "https://www.threads.net/@towardsdatascience"
    },
    {
      "type": "external",
      "href": "https://bsky.app/profile/towardsdatascience.com"
    }
  ],
  "repair_version": 2,
  "repaired_at": "2026-10-20T17:31:01Z",
  "source_url": "https://towardsdatascience.com/missing-features-in-the-data-product-movement-613f4b5718b7/",
  "delivery_status": "unverified",
  "discovery_status": "http_403",
  "missing_reason": "源页面未重新核验:http_403；已按保留正文补采图片",
  "repair_error": "",
  "actual_video_files": [],
  "expected_saved_body_images": 4,
  "image_discovery": "saved_markdown",
  "source_body_markdown": "![Revisit consent button](https://cdn-cookieyes.com/assets/images/revisit.svg)\nWe value your privacy\nWe use cookies to enhance your browsing experience, serve personalised ads or content, and analyse our traffic. By clicking \"Accept All\", you consent to our use of cookies.\nCustomise Reject All Accept All\nCustomise Consent Preferences ![](https://cdn-cookieyes.com/assets/images/close.svg)\nWe use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.\nThe cookies that are categorised as \"Necessary\" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... Show more\nNecessaryAlways Active\nNecessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.\n  * Cookie\nBCTempID\n  * Duration\n10 minutes\n  * Description\nNo description available.\n\n\n  * Cookie\n__cf_bm\n  * Duration\n1 hour\n  * Description\nThis cookie, set by Cloudflare, is used to support Cloudflare Bot Management. \n\n\n  * Cookie\nAWSALBCORS\n  * Duration\n7 days\n  * Description\nAmazon Web Services set this cookie for load balancing.\n\n\n  * Cookie\n_cfuvid\n  * Duration\nsession\n  * Description\nCloudflare sets this cookie to track users across sessions to optimize user experience by maintaining session consistency and providing personalized services\n\n\n  * Cookie\nli_gc\n  * Duration\n6 months\n  * Description\nLinkedin set this cookie for storing visitor's consent regarding using cookies for non-essential purposes.\n\n\n  * Cookie\n__hssrc\n  * Duration\nsession\n  * Description\nThis cookie is set by Hubspot whenever it changes the session cookie. The __hssrc cookie set to 1 indicates that the user has restarted the browser, and if the cookie does not exist, it is assumed to be a new session.\n\n\n  * Cookie\n__hssc\n  * Duration\n1 hour\n  * Description\nHubSpot sets this cookie to keep track of sessions and to determine if HubSpot should increment the session number and timestamps in the __hstc cookie.\n\n\n  * Cookie\nwpEmojiSettingsSupports\n  * Duration\nsession\n  * Description\nWordPress sets this cookie when a user interacts with emojis on a WordPress site. It helps determine if the user's browser can display emojis properly.\n\n\n  * Cookie\nBCSessionID\n  * Duration\n1 year 1 month 4 days\n  * Description\nBlueconic sets this cookie as a unique identifier for the BlueConic profile.\n\n\n  * Cookie\n_octo\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nlogged_in\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\n__Secure-YEC\n  * Duration\npast\n  * Description\nYouTube sets this cookie to stores the user's video player preferences using embedded YouTube video\n\n\n  * Cookie\n__eoi\n  * Duration\n6 months\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nAWSALBTGCORS\n  * Duration\n7 days\n  * Description\nNo description available.\n\n\n  * Cookie\nlogin-status-p\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nAWSALBTG\n  * Duration\n7 days\n  * Description\nNo description available.\n\n\n  * Cookie\ncsrf_token\n  * Duration\nsession\n  * Description\nNo description available.\n\n\n  * Cookie\ntoken_v2\n  * Duration\n1 day\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nD\n  * Duration\n1 year\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nPHPSESSID\n  * Duration\nsession\n  * Description\nThis cookie is native to PHP applications. The cookie stores and identifies a user's unique session ID to manage user sessions on the website. The cookie is a session cookie and will be deleted when all the browser windows are closed.\n\n\n  * Cookie\nVISITOR_PRIVACY_METADATA\n  * Duration\n6 months\n  * Description\nYouTube sets this cookie to store the user's cookie consent state for the current domain. \n\n\n  * Cookie\ncookietest\n  * Duration\nsession\n  * Description\nThe cookietest cookie is typically used to determine whether the user's browser accepts cookies, essential for website functionality and user experience.\n\n\n  * Cookie\n__Host-airtable-session\n  * Duration\n1 year\n  * Description\nThis cookie is used to enable us to integrate the services of Airtable.\n\n\n  * Cookie\n__Host-airtable-session.sig\n  * Duration\n1 year\n  * Description\nThis cookie is used to enable us to integrate the services of Airtable.\n\n\n  * Cookie\nm\n  * Duration\n1 year 1 month 4 days\n  * Description\nStripe sets this cookie for fraud prevention purposes. It identifies the device used to access the website, allowing the website to be formatted accordingly.\n\n\n  * Cookie\nBIGipServer*\n  * Duration\nsession\n  * Description\nMarketo sets this cookie to collect information about the user's online activity and build a profile about their interests to provide advertisements relevant to the user. \n\n\n  * Cookie\n__cfruid\n  * Duration\nsession\n  * Description\nCloudflare sets this cookie to identify trusted web traffic.\n\n\n  * Cookie\n_GRECAPTCHA\n  * Duration\n6 months\n  * Description\nGoogle Recaptcha service sets this cookie to identify bots to protect the website against malicious spam attacks.\n\n\n  * Cookie\n__Secure-YNID\n  * Duration\n6 months\n  * Description\nGoogle cookie used to protect user security and prevent fraud, especially during the login process.\n\n\n  * Cookie\ncookieyes-consent\n  * Duration\n1 year\n  * Description\nCookieYes sets this cookie to remember users' consent preferences so that their preferences are respected on subsequent visits to this site. It does not collect or store any personal information about the site visitors.\n\n\nFunctional\nFunctional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.\n  * Cookie\nlidc\n  * Duration\n1 day\n  * Description\nLinkedIn sets the lidc cookie to facilitate data center selection.\n\n\n  * Cookie\nbrw\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nbrwConsent\n  * Duration\n5 minutes\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nWMF-Uniq\n  * Duration\n1 year\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nloom_anon_comment\n  * Duration\n1 year\n  * Description\nNo description available.\n\n\n  * Cookie\nloom_referral_video\n  * Duration\nsession\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nVISITOR_INFO1_LIVE\n  * Duration\n6 months\n  * Description\nA cookie set by YouTube to measure bandwidth that determines whether the user gets the new or old player interface.\n\n\n  * Cookie\nyt-remote-connected-devices\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to store the user's video preferences using embedded YouTube videos.\n\n\n  * Cookie\nytidb::LAST_RESULT_ENTRY_KEY\n  * Duration\nNever Expires\n  * Description\nThe cookie ytidb::LAST_RESULT_ENTRY_KEY is used by YouTube to store the last search result entry that was clicked by the user. This information is used to improve the user experience by providing more relevant search results in the future.\n\n\n  * Cookie\nyt-remote-device-id\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to store the user's video preferences using embedded YouTube videos.\n\n\n  * Cookie\nyt-remote-session-name\n  * Duration\nsession\n  * Description\nThe yt-remote-session-name cookie is used by YouTube to store the user's video player preferences using embedded YouTube video.\n\n\n  * Cookie\nyt-remote-fast-check-period\n  * Duration\nsession\n  * Description\nThe yt-remote-fast-check-period cookie is used by YouTube to store the user's video player preferences for embedded YouTube videos.\n\n\n  * Cookie\nyt-remote-session-app\n  * Duration\nsession\n  * Description\nThe yt-remote-session-app cookie is used by YouTube to store user preferences and information about the interface of the embedded YouTube video player.\n\n\n  * Cookie\nyt-remote-cast-available\n  * Duration\nsession\n  * Description\nThe yt-remote-cast-available cookie is used to store the user's preferences regarding whether casting is available on their YouTube video player.\n\n\n  * Cookie\nyt-remote-cast-installed\n  * Duration\nsession\n  * Description\nThe yt-remote-cast-installed cookie is used to store the user's video player preferences using embedded YouTube video.\n\n\n  * Cookie\ncp_session\n  * Duration\n3 months\n  * Description\nCodepen sets this cookie for Help systems found in the website.\n\n\n  * Cookie\nloid\n  * Duration\n1 year 1 month 4 days\n  * Description\nThis cookie is set by the Reddit. The cookie enables the sharing of content from the website onto the social media platform.\n\n\nAnalytics\nAnalytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.\n  * Cookie\n__hstc\n  * Duration\n6 months\n  * Description\nHubspot set this main cookie for tracking visitors. It contains the domain, initial timestamp (first visit), last timestamp (last visit), current timestamp (this visit), and session number (increments for each subsequent session).\n\n\n  * Cookie\nhubspotutk\n  * Duration\n6 months\n  * Description\nHubSpot sets this cookie to keep track of the visitors to the website. This cookie is passed to HubSpot on form submission and used when deduplicating contacts.\n\n\n  * Cookie\n_ga\n  * Duration\n1 year 1 month 4 days\n  * Description\nGoogle Analytics sets this cookie to calculate visitor, session and campaign data and track site usage for the site's analytics report. The cookie stores information anonymously and assigns a randomly generated number to recognise unique visitors.\n\n\n  * Cookie\n_ga_*\n  * Duration\n1 year 1 month 4 days\n  * Description\nGoogle Analytics sets this cookie to store and count page views.\n\n\n  * Cookie\n__Host-psifi.analyticsTrace\n  * Duration\n6 hours\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\n__Host-psifi.analyticsTraceV2\n  * Duration\n6 hours\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\n_gh_sess\n  * Duration\nsession\n  * Description\nGitHub sets this cookie for temporary application and framework state between pages like what step the user is on in a multiple step form.\n\n\n  * Cookie\nYSC\n  * Duration\nsession\n  * Description\nYSC cookie is set by Youtube and is used to track the views of embedded videos on Youtube pages.\n\n\n  * Cookie\najs_anonymous_id\n  * Duration\n1 year\n  * Description\nThis cookie is set by Segment to count the number of people who visit a certain site by tracking if they have visited before.\n\n\n  * Cookie\nvuid\n  * Duration\n1 year 1 month 4 days\n  * Description\nVimeo installs this cookie to collect tracking information by setting a unique ID to embed videos on the website. \n\n\nPerformance\nPerformance cookies are used to understand and analyse the key performance indexes of the website which helps in delivering a better user experience for the visitors.\n  * Cookie\nAWSALB\n  * Duration\n7 days\n  * Description\nAWSALB is an application load balancer cookie set by Amazon Web Services to map the session to the target.\n\n\n  * Cookie\nacq\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nacq.sig\n  * Duration\npast\n  * Description\nDescription is currently not available.\n\n\n  * Cookie\nptc\n  * Duration\n2 years\n  * Description\nNo description available.\n\n\nAdvertisement\nAdvertisement cookies are used to provide visitors with customised advertisements based on the pages you visited previously and to analyse the effectiveness of the ad campaigns.\n  * Cookie\nmuc_ads\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to collect user behaviour and interaction data to optimize the website.\n\n\n  * Cookie\nguest_id_marketing\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor.\n\n\n  * Cookie\nguest_id_ads\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor.\n\n\n  * Cookie\npersonalization_id\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to integrate and share features for social media and also store information about how the user uses the website, for tracking and targeting.\n\n\n  * Cookie\nguest_id\n  * Duration\n1 year 1 month 4 days\n  * Description\nTwitter sets this cookie to identify and track the website visitor. It registers if a user is signed in to the Twitter platform and collects information about ad preferences.\n\n\n  * Cookie\nbcookie\n  * Duration\n1 year\n  * Description\nLinkedIn sets this cookie from LinkedIn share buttons and ad tags to recognize browser IDs.\n\n\n  * Cookie\n__Secure-ROLLOUT_TOKEN\n  * Duration\n6 months\n  * Description\nYouTube sets this cookie to manage feature rollout and experimentation. It helps Google control which new features or interface changes are shown to users as part of testing and staged rollouts, ensuring consistent experience for a given user during an experiment.\n\n\n  * Cookie\nyt.innertube::nextId\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen.\n\n\n  * Cookie\nyt.innertube::requests\n  * Duration\nNever Expires\n  * Description\nYouTube sets this cookie to register a unique ID to store data on what videos from YouTube the user has seen.\n\n\n  * Cookie\nsession_tracker\n  * Duration\nsession\n  * Description\nThis cookie is set by the Reddit. This cookie is used to identify trusted web traffic. It also helps in adverstising on the website.\n\n\n  * Cookie\nedgebucket\n  * Duration\nsession\n  * Description\nReddit sets this cookie to save the information about a log-on Reddit user, for the purpose of advertisement recommendations and updating the content.\n\n\n  * Cookie\ndid\n  * Duration\n1 year\n  * Description\nArbor sets this cookie to show targeted ads to site visitors.This cookie expires after 2 months or 1 year.\n\n\nUncategorised\nOther uncategorised cookies are those that are being analysed and have not been classified into a category as yet.\nNo cookies to display.\nReject All Save My Preferences Accept All\nToggle Search[](https://towardsdatascience.com/)Toggle Mobile Navigation\n[](https://towardsdatascience.com/)\nPublish AI, ML & data-science insights to a global community of data professionals.\nSign in[Submit an Article](https://write.insightmediagroup.io)\n[Latest](https://towardsdatascience.com/latest/)[Editor's Picks](https://towardsdatascience.com/tag/editors-pick/)[Newsletter](https://towardsdatascience.com/tag/the-variable/)[ShipAI](https://towardsdatascience.com/shipai/)\n* * *\n[Write For TDS](https://towardsdatascience.com/submissions/)\n[LinkedIn](https://www.linkedin.com/company/towards-data-science/)[X](https://x.com/TDataScience)Toggle Search\n[Business](https://towardsdatascience.com/category/business/)\n# Missing features in the data product movement\n[Chad Isenberg](https://towardsdatascience.com/author/cisenbe/)\nFebruary 15, 20238 min read\n# The Missing Features in Your Data Product\nEngagement, delight, and trust as deliverables\nI lead a monthly data discussion group at Zendesk, where I'm fortunate to get to hear a variety of thoughts and perspectives from smart, diverse, and talented people. We cover topics ranging from the [technical ](https://medium.com/airbnb-engineering/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70)to the [procedural](https://benn.substack.com/p/how-dbt-fails), and we regularly tie these back to our work streams. Online discussion groups, local meetups, and conferences are terrific, but I feel there's even more value in getting the people in your organization together to discuss industry trends, as it can provide direction for your teams and their projects.\nOne of the themes we've been returning to is the idea of our team's value and how we can measure it. In an [earlier article](https://medium.com/towards-data-science/data-teams-as-support-teams-2bb1f1ed31b), I talked about how data teams generate value, but this isn't the only way. Regardless of whether you're providing business support, enabling automation through reverse ETL, or feeding data to advanced analytical and machine learning use-cases, there's always a lingering question: did we save or generate more than we spent?\nAs one of our attendees said, our customers frequently measure our impact \"based on vibes.\" This shouldn't be taken as a slight, but rather a concession to the difficulty in creating firm metrics around impact and value. Additionally, embedded in this idea is that there is subjective and perhaps non-quantifiable value in analytical outputs, which we'll discuss in a moment.\nBuilding an attribution model for data products is a notoriously tough nut to crack, and I won't try to tackle all of the elements here. While I believe we could benefit from a broad attribution framework, I don't know if that's even possible, given the number of ways data can reduce costs and increase revenue. Instead, I want to focus on a few specific components that I feel are neglected, in particular:\n  1. The psychosocial value of data\n  2. Customer delight and satisfaction\n  3. Data quality as a core deliverable\n\n\nLearn this step by step with the interactive [AI and Data Scientist](https://roadmap.sh/ai-data-scientist) and [Data Analyst](https://roadmap.sh/data-analyst) roadmaps.\n## Are we cheerleaders?\nThis first observation is less about how we should be \"doing data products\" and more about what the table stakes are. During our discussion, I brought up the idea that we don't necessarily know why data-driven companies succeed, but [research indicates that they do](https://cisr.mit.edu/publication/2022_0101_Dashboarding_WeillWoerner). One person responded with this insight: maybe the dashboards aren't \"doing anything,\" at least not in the sense of driving a specific, deliberate action. What if instead of (or in addition to) actionable insights, their value is in motivating and aligning our customers?\n![Photo by Rojan Maharjan on Unsplash](https://assets.insightmediagroup.io/media/wp-content/uploads/2023/02/0iQ9QMPRsipsV3UnM-scaled.jpg)\nPhoto by [Rojan Maharjan](https://unsplash.com/@kathmandude_?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral)\nAt one point in my career, I was working as a BI developer for a wholesale company, and we had reporting that provided our sales team with summaries of their sales metrics. This report saw reasonable usage throughout the month, but it sky-rocketed at month-end, with some users refreshing several times an hour. I remember being completely bewildered by this trend.\nI'm sure there were several operational use cases behind this behavior, but in hindsight, I believe one of the most valuable outputs of the report was motivation. Seeing their shipments go out in near real-time made our salespeople excited; it gave them the extra \"oomph\" to make calls and close deals as they rushed to meet or exceed quota. This reporting was doing very real work and driving a business process, even if it wasn't in the way that we would typically expect.\nIt's also worth noting that there's something inherently social about many of these data artifacts. A dashboard is a shared object and can serve as a common thread of conversation between colleagues. Even if the underlying data isn't remarkable or particularly insightful, the dialogues and shared narratives sparked by them can be valuable. Alignment is a powerful tool for an organization, and data can drive alignment.\nAs \"objective\" people, many data professionals may be reluctant to accept that \"inspiration\" is a valid or valuable output; however, we're missing something if we don't use data to motivate us. I resisted this idea initially, but reflecting on my career, I have many stories and anecdotes like the above, and I can't help but feel that this qualitative impact is significant. Perhaps the most important lesson I took away from this experience is that just because I couldn't perceive a mechanism for generating value doesn't mean that it didn't exist.\nFinally, the narrative of the data showing us some hidden insight or a contrarian opinion is a trope at this point, but there's something powerful that happens when data affirms our beliefs and reassures us that we're on the right track. That data often supports the status quo rather than upends it should be celebrated, not feared.\n## Bread and circuses\n![Photo by Mathew Schwartz on Unsplash](https://assets.insightmediagroup.io/media/wp-content/uploads/2023/02/0mxb7-m0OJ0oz_DLK-scaled.jpg)\nPhoto by [Mathew Schwartz](https://unsplash.com/@cadop?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com?utm_source=medium&utm_medium=referral)\nIn the same vein, I believe it's important to consider whether or not our customers like our data products. This could range from providing ergonomic naming conventions and easily-consumable tables for analysts and data scientists to delivering aesthetically-pleasing dashboards for business users.\nWhat does this look like? Should we be building in feedback mechanisms to our data products? Should we have surveys? I would caution that we don't want to be too heavy-handed; as with all internal products, we're at risk of having a tenuous relationship with the actual value chain (i. e., how we get paid).\nStill, I think there's room for providing lightweight systems to drive feedback in the data product lifecycle. Which features are loved? Which are hated? When is it safe for a data product to go into \"maintenance mode,\" and when do we sunset? In my experience, these questions are almost always raised in an ad-hoc fashion, and by that point in the product's lifecycle, even identifying active users can be complicated by process automation that has been long since forgotten.\n## Quality as a deliverable\nAs we were closing our monthly meeting, [Niral Patel](https://www.linkedin.com/in/niralpatel/), one of the data engineering managers on my team, brought up this cogent point: why is quality an afterthought when it's a critical component to satisfy our customers' demands?\nTo some extent, this is a matter of resources. Data teams are frequently scrappy and asked to take on far more work than they're capable of delivering. They're mired in operational woes and unclear requirements. When pressed for time, delivering an incomplete thing is better than delivering nothing.\nBut like standardized tests where you're penalized for wrong answers, poor data quality damages trust. If your team consistently cranks out dashboards that are inaccurate, stale, and inconsistent, your customers will lose trust in you. And the damage isn't limited to you and your team; you're contributing to a culture of mistrust that can require years of work and huge turnover to repair.\nWe have a responsibility to our stakeholders to promote data quality as a key feature of our products, and we need to involve them in the tradeoffs. Since data quality has many [dimensions](https://towardsdatascience.com/the-six-dimensions-of-data-quality-and-how-to-deal-with-them-bdcf9a3dba71), our customers have to be involved in prioritizing: how should we handle unusual data volumes? What should we do when we encounter a schema change? Is it more important to deliver incomplete data on time or complete data late? While there's a sense of what \"poor\" data quality is, managing the tradeoffs in delivering \"good\" data is much more complicated and context-sensitive.\nImportant work is being done in the data governance space, and it's time to bring that to bear in our data products, from the start and every time. Quality is an essential feature, every bit as important as the design, interfaces, and use-cases enabled by our products.\n## The metrics we need\nWhile there are products and services that can provide us with usage data, the data in itself isn't enough; we need metrics and associated outcomes. I believe the following metrics (and related monitoring / observability) are critical components of a successful data product:\n  1. A way of measuring usage, ideally differentiating automation from ad-hoc\n  2. A way of measuring satisfaction, ideally at the feature level\n  3. A way of measuring data quality, all key aspects\n\n\nThese components are far from sufficient, but I believe they are necessary for data teams to adequately judge whether or not their work is having an impact. Yes, dollar or FTE-equivalent attribution is the gold standard, but in cases where that's not available, knowing that we're delivering high-quality data to engaged, satisfied users is a good proxy. These metrics also allow us to capture those unintended benefits of a data product; perhaps our users are applying the outputs to different processes altogether.\nOne salient point that Niral raised in a follow-up conversation is that data products should be actionable; an automation or dashboard should drive some action that generates value. It's critical to make the distinction between creating data products with the primary goal of psychosocial impact and considering psychosocial impact as a dimension of value. I wouldn't suggest that, in the planning phase, we make a product with the sole goal of improving morale or team cohesion, as that value proposition is tenuous at best. Rather, if our product fails to drive its intended action but is still wildly popular, we should have the framework in place to investigate why. Essentially, we don't want to throw away something valuable just because it's not \"working as intended.\"\n* * *\nTo wrap up with a brilliant insight from one attendee: data teams contribute to the workplace well-being of our stakeholders; if providing a data pull or a dashboard makes users happy, there's utility in that. It certainly can't be the data team's only value proposition, but it's also not something we should discount. While it may be tempting to lean into objectivity and dismiss the human elements of our work (\"weaknesses\" that data can \"overcome\"), the reality is that we're social creatures working in complex organizations. We have tools for cutting through subjectivity, but most of our work will pass through another person's hands; there's more value in acknowledging and recognizing that human element than there is in turning away from it.\n* * *\nLiterally minutes after I finished my first draft of this article, [Benn Stancil](https://towardsdatascience.com/missing-features-in-the-data-product-movement-613f4b5718b7/None) released a smart piece on [his discomfort with giving up on the objectivity of data](https://benn.substack.com/p/the-case-for-being-biased). I would be remiss if I didn't send you in his direction.\n## Register Now to Continue Reading\n### Unlock Towards Data Science with a Free Account\nAll articles on Towards Data Science are available to registered users. Create a free account today to access this article and thousands more.\nRegister for freeSign in to your account\n* * *\n![](https://assets.insightmediagroup.io/media/1787657186741_l2ezf9.jpeg)\nWritten By\n## [Chad Isenberg](https://towardsdatascience.com/author/cisenbe/)\n[See all from Chad Isenberg](https://towardsdatascience.com/author/cisenbe/)\n[Analytics](https://towardsdatascience.com/tag/analytics/)[Business](https://towardsdatascience.com/tag/business/)[Data Product Creation](https://towardsdatascience.com/tag/data-product-creation/)[Data Science](https://towardsdatascience.com/tag/data-science/)[Notes From Industry](https://towardsdatascience.com/tag/notes-from-industry/)\nShare This Article\n  * [](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Ftowardsdatascience.com%2Fmissing-features-in-the-data-product-movement-613f4b5718b7%2F&title=Missing%20features%20in%20the%20data%20product%20movement)\n  * [](https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Ftowardsdatascience.com%2Fmissing-features-in-the-data-product-movement-613f4b5718b7%2F&title=Missing%20features%20in%20the%20data%20product%20movement)\n  * [](https://x.com/share?url=https%3A%2F%2Ftowardsdatascience.com%2Fmissing-features-in-the-data-product-movement-613f4b5718b7%2F&text=Missing%20features%20in%20the%20data%20product%20movement)\n\n\nTowards Data Science is a community publication. Submit your insights to reach our global audience and earn through the TDS Author Payment Program.\n[Write for TDS](https://towardsdatascience.com/submissions/)\n## Related Articles\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2021/02/099pZ6wVlEJ7T_aSQ.jpg)](https://towardsdatascience.com/how-to-successfully-run-a-b-tests-f3ca363dec98/)\n## [How to Successfully Run A/B Tests](https://towardsdatascience.com/how-to-successfully-run-a-b-tests-f3ca363dec98/)\n[Data Science](https://towardsdatascience.com/category/data-science/)\nBest practices from large tech companies that are aggressively experimenting with everything\n[Kevin Babitz](https://towardsdatascience.com/author/kevindbabitz/)\nFebruary 25, 202110 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2025/08/igor-omilaev-gVQLAbGVB6Q-unsplash-scaled-1.jpg)](https://towardsdatascience.com/getting-ai-ready-preparing-for-a-world-of-agentic-ai-as-tech-professionals/)\n## [Get AI-Ready: How to Prepare for a World of Agentic AI as Tech Professionals](https://towardsdatascience.com/getting-ai-ready-preparing-for-a-world-of-agentic-ai-as-tech-professionals/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nExplore how Agentic AI is reshaping the tech careers, from data to decision-making, and how professionals can prepare for the future of work\n[Rashi Desai](https://towardsdatascience.com/author/rashidesai/)\nAugust 27, 20256 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2021/10/1QC0djMPoZ_amSlZDjh9fHQ.jpeg)](https://towardsdatascience.com/under-the-hood-of-gradient-boosting-and-its-python-implementation-99cc63efd24d/)\n## [Under the Hood of Gradient Boosting and Its Python Implementation](https://towardsdatascience.com/under-the-hood-of-gradient-boosting-and-its-python-implementation-99cc63efd24d/)\n[Machine Learning](https://towardsdatascience.com/category/artificial-intelligence/machine-learning/)\nBoosting algorithms in machine learning - Part 3\n[Rukshan Pramoditha](https://towardsdatascience.com/author/rukshanpramoditha/)\nOctober 24, 20215 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2022/06/0AkmuzXL5mhIlIPod.jpg)](https://towardsdatascience.com/python-logging-saving-logs-to-a-file-sending-logs-to-an-api-75ec5964943f/)\n## [Python logging - saving logs to a file & sending logs to an API](https://towardsdatascience.com/python-logging-saving-logs-to-a-file-sending-logs-to-an-api-75ec5964943f/)\n[Programming](https://towardsdatascience.com/category/programming/)\nGet your logs to where they are needed to debug your code\n[Mike Huls](https://towardsdatascience.com/author/mikehuls/)\nJune 9, 20225 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2019/10/1fphpeJ1r_8PZ44vszrZHIg-scaled.jpeg)](https://towardsdatascience.com/math-vs-coding-data-science-43e216b4f671/)\n## [How to Get into Data Science - Math Or Coding](https://towardsdatascience.com/math-vs-coding-data-science-43e216b4f671/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nFor people who are still deciding whether Math or Coding is more important\n[Low Wei Hong](https://towardsdatascience.com/author/lowweihong/)\nOctober 20, 20195 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2020/08/01TLlQ-WnougLf4Zq-scaled.jpg)](https://towardsdatascience.com/create-a-sms-spam-classifier-in-python-b4b015f7404b/)\n## [Create a SMS spam classifier in python](https://towardsdatascience.com/create-a-sms-spam-classifier-in-python-b4b015f7404b/)\n[NLP](https://towardsdatascience.com/category/artificial-intelligence/nlp/)\nNatural Language Processing basics using scikit-learn\n[Chia Dehan](https://towardsdatascience.com/author/thedehan/)\nAugust 16, 20206 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2021/05/1bAu03xLF0XfpGf7u_YqiqA.png)](https://towardsdatascience.com/batch-norm-explained-visually-why-does-it-work-90b98bcc58a0/)\n## [Batch Norm Explained Visually - Why does it work](https://towardsdatascience.com/batch-norm-explained-visually-why-does-it-work-90b98bcc58a0/)\n[Deep Learning](https://towardsdatascience.com/category/artificial-intelligence/deep-learning/)\nA Gentle Guide to the reasons for the Batch Norm layer's success in making training converge faster, in Plain English\n[Ketan Doshi](https://towardsdatascience.com/author/ketanhdoshi/)\nMay 26, 20218 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2021/02/1wpdkkit6xN1EdirSc-gmqg-scaled.jpeg)](https://towardsdatascience.com/10-must-know-topics-of-python-for-data-science-9ce36a5b9681/)\n## [10 Must-Know Python Topics for Data Science](https://towardsdatascience.com/10-must-know-topics-of-python-for-data-science-9ce36a5b9681/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nWhat Pandas or Matplotlib does not teach you\n[Soner Yıldırım](https://towardsdatascience.com/author/sonery/)\nFebruary 13, 20217 min read\n  * [![](https://assets.insightmediagroup.io/media/wp-content/uploads/2021/09/0UjQYs1kKE9xnokWm-scaled.jpg)](https://towardsdatascience.com/how-to-write-code-effectively-in-python-105dc5f2d293/)\n## [How To Write Code Effectively In Python](https://towardsdatascience.com/how-to-write-code-effectively-in-python-105dc5f2d293/)\n[Artificial Intelligence](https://towardsdatascience.com/category/artificial-intelligence/)\nAnalyzing the best practices that you should follow while writing code in Python\n[Bharath K](https://towardsdatascience.com/author/bharath-k1297/)\nSeptember 7, 202110 min read\n\n\n  * [YouTube](https://www.youtube.com/c/TowardsDataScience)\n  * [X](https://x.com/TDataScience)\n  * [LinkedIn](https://www.linkedin.com/company/towards-data-science/)\n  * [Threads](https://www.threads.net/@towardsdatascience)\n  * [Bluesky](https://bsky.app/profile/towardsdatascience.com)\n\n\n[](https://towardsdatascience.com/)\nYour home for data science and AI. The world's leading publication for data science, data analytics, data engineering, machine learning, and artificial intelligence professionals.\nSubscribe to Our Newsletter[Write For TDS](https://towardsdatascience.com/submissions/)•[About](https://towardsdatascience.com/about-towards-data-science-d691af11cc2f/)•[Advertise](https://contact.towardsdatascience.com/advertise-with-towards-data-science)•[Privacy Policy](https://towardsdatascience.com/privacy-policy/)•[Terms of Use](https://towardsdatascience.com/website-terms-of-use/)\n© Insight Media Group, LLC 2026•[The New Stack](https://thenewstack.io)•[roadmap.sh](https://roadmap.sh)•[Creator Network](https://insightmediagroup.io/creator-network)\n####  Recommended Articles \nClose\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607686/image?etag=1782161464448&width=500&height=500) How Relevance Models Foreshadowed Transformers for NLP ](https://towardsdatascience.com/how-relevance-models-foreshadowed-transformers-for-nlp/ \"How Relevance Models Foreshadowed Transformers for NLP\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607639/image?etag=1781250125848&width=500&height=500) Javascript Fatigue: HTMX Is All You Need to Build ChatGPT — Part 1 ](https://towardsdatascience.com/javascript-fatigue-you-dont-need-js-to-build-chatgpt/ \"Javascript Fatigue: HTMX Is All You Need to Build ChatGPT — Part 1\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/607930/image?etag=1782124566054&width=500&height=500) The Subset Sum Problem Solved in Linear Time for Dense Enough Inputs ](https://towardsdatascience.com/subset-sum-problem-solved-in-linear-time-for-dense-enough-inputs/ \"The Subset Sum Problem Solved in Linear Time for Dense Enough Inputs\")\n  * [ ![](https://h030.towardsdatascience.com/rest/v2/contentStores/d7d3a4ab-7caf-4383-bbd2-fbf7fb4f1787/items/3660/image?etag=1780176246070&width=500&height=500) Does Your Company Have a Data Strategy? ](https://towardsdatascience.com/does-your-company-have-a-data-strategy-e8944dbec4ae/ \"Does Your Company Have a Data Strategy?\")\n\n\n",
  "body_base_path": "attachments/4010fc2c1b71/pages/",
  "body_markdown_path": "attachments/4010fc2c1b71/pages/archived-body.md",
  "local_html": "attachments/4010fc2c1b71/pages/archived-body.html",
  "body_source": "prior_capture"
}