{"id":3803,"date":"2025-05-14T07:03:06","date_gmt":"2025-05-14T07:03:06","guid":{"rendered":"https:\/\/mailitics.com\/index.php\/2025\/05\/14\/survival-analysis-when-no-one-dies-a-value-based-approach\/"},"modified":"2025-05-14T07:03:06","modified_gmt":"2025-05-14T07:03:06","slug":"survival-analysis-when-no-one-dies-a-value-based-approach","status":"publish","type":"post","link":"https:\/\/mailitics.com\/index.php\/2025\/05\/14\/survival-analysis-when-no-one-dies-a-value-based-approach\/","title":{"rendered":"Survival Analysis When No One Dies: A Value-Based Approach"},"content":{"rendered":"<p>    Survival Analysis When No One Dies: A Value-Based Approach<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n    <!-- no image --><br \/>\n \t<BR><br \/>\n<BR><\/BR><\/p>\n<div>\n<p class=\"wp-block-paragraph\"><mdspan datatext=\"el1747181775942\" class=\"mdspan-comment\"><a href=\"https:\/\/towardsdatascience.com\/tag\/survival-analysis\/\" title=\"Survival Analysis\">Survival Analysis<\/a><\/mdspan> is a statistical approach used to answer the question: \u201cHow long will something last?\u201d That \u201csomething\u201d could range from a patient\u2019s lifespan to the durability of a machine component or the duration of a user\u2019s subscription.<\/p>\n<p class=\"wp-block-paragraph\">One of the most widely used tools in this area is the <strong>Kaplan-Meier estimator<\/strong>.<\/p>\n<p class=\"wp-block-paragraph\">Born in the world of biology, Kaplan-Meier made its debut tracking life and death. But like any true celebrity algorithm, it didn\u2019t stay in its lane. These days, it\u2019s showing up in business dashboards, marketing teams, and churn analyses everywhere.<\/p>\n<p class=\"wp-block-paragraph\">But here\u2019s the catch: <strong>business isn\u2019t biology<\/strong>. It\u2019s messy, unpredictable, and full of plot twists. This is why there are a couple of issues that make our lives more difficult when we try to use survival analysis in the business world.<\/p>\n<p class=\"wp-block-paragraph\">First of all, we are typically not just interested in whether a customer has \u201csurvived\u201d (whatever survival could mean in this context), but rather in <strong>how much of that individual\u2019s economic value has survived.<\/strong><\/p>\n<p class=\"wp-block-paragraph\">Secondly, contrary to biology, <strong>it\u2019s very possible for customers to \u201cdie\u201d and \u201cresuscitate\u201d multiple times<\/strong> (think of when you unsubscribe\/resubscribe to an online service).<\/p>\n<p class=\"wp-block-paragraph\">In this article, we will see how to extend the classical Kaplan-Meier approach so that it better suits our needs: <strong>modeling a continuous (economic) value instead of a binary one (life\/death) and allowing \u201cresurrections\u201d<\/strong>.<\/p>\n<h2 class=\"wp-block-heading\">A refresher on the Kaplan-Meier estimator<\/h2>\n<p class=\"wp-block-paragraph\">Let\u2019s pause and rewind for a second. Before we start customizing Kaplan-Meier to fit our business needs, we need a quick refresher on how the classic version works.<\/p>\n<p class=\"wp-block-paragraph\">Suppose you had 3 subjects (let\u2019s say lab mice) and you gave them a medicine you need to test. The medicine was given at different moments in time: subject <em>a <\/em>received it in January, subject <em>b<\/em> in April, and subject <em>c<\/em> in May.<\/p>\n<p class=\"wp-block-paragraph\">Then, you measure how long they survive. Subject <em>a<\/em> died after 6 months, subject <em>c<\/em> after 4 months, and subject <em>b<\/em> is still alive at the time of the analysis (November).<\/p>\n<p class=\"wp-block-paragraph\">Graphically, we can represent the 3 subjects as follows:<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img data-recalc-dims=\"1\" height=\"412\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/01-1024x412.png?resize=1024%2C412&#038;ssl=1\" alt=\"\" class=\"wp-image-604017\"><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">Now, <strong>even if we wanted to measure a simple metric, like average survival, we would face a problem<\/strong>. In fact, we don\u2019t know how long subject <em>b<\/em> will survive, as it is still alive today.<\/p>\n<p class=\"wp-block-paragraph\">This is a classical problem in statistics, and it\u2019s called \u201c<strong>right censoring<\/strong>\u201c.<\/p>\n<p class=\"wp-block-paragraph\">Right censoring is stats-speak for \u201cwe don\u2019t know what happened after a certain point\u201d and it\u2019s a big deal in survival analysis. So big that it <strong>led to the development of one of the most iconic estimators in statistical history: the Kaplan-Meier estimator<\/strong>, named after the duo who introduced it back in the 1950s.<\/p>\n<p class=\"wp-block-paragraph\">So, how does Kaplan-Meier handle our problem?<\/p>\n<p class=\"wp-block-paragraph\">First, we align the clocks. Even if our mice were treated at different times, <strong>what matters is <em>time since treatment<\/em><\/strong>. So we reset the <em>x<\/em>-axis to zero for everyone \u2014 day zero is the day they got the drug.<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img data-recalc-dims=\"1\" height=\"412\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/02-1024x412.png?resize=1024%2C412&#038;ssl=1\" alt=\"\" class=\"wp-image-604018\"><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">Now that we\u2019re all on the same timeline, we want to build something useful: an <strong>aggregate survival curve<\/strong>. This curve tells us the probability that a <em>typical<\/em> mouse in our group will survive at least <em>x<\/em> months post-treatment.<\/p>\n<p class=\"wp-block-paragraph\">Let\u2019s follow the logic together.<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Up to time 3? Everyone\u2019s still alive. So survival = 100%. Easy.<\/li>\n<li class=\"wp-block-list-item\">At time 4, mouse <em>c<\/em> dies. This means that out of the 3 mice, only 2 of them survived after time 4. That gives us a survival rate of 67% at time 4.<\/li>\n<li class=\"wp-block-list-item\">Then at time 6, mouse <em>a<\/em> checks out. Of the 2 mice that had made it to time 6, only 1 survived, so the survival rate from time 5 to 6 is 50%. Multiply that by the previous 67%, and we get 33% survival up to time 6.<\/li>\n<li class=\"wp-block-list-item\">After time 7 we don\u2019t have other subjects that are observed alive, so the curve has to stop here.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">Let\u2019s plot these results:<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img data-recalc-dims=\"1\" height=\"394\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/03-1024x394.png?resize=1024%2C394&#038;ssl=1\" alt=\"\" class=\"wp-image-604019\"><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">Since code is often easier to understand than words, let\u2019s translate this to Python. We have the following variables:<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">\n<code>kaplan_meier<\/code>, an array containing the Kaplan-Meier estimates for each point in time, e.g. the probability of survival up to time <em>t<\/em>.<\/li>\n<li class=\"wp-block-list-item\">\n<code>obs_t<\/code>, an array that tells us whether an individual is observed (e.g., not right-censored) at time <em>t<\/em>.<\/li>\n<li class=\"wp-block-list-item\">\n<code>surv_t<\/code>, boolean array that tells us whether each individual is alive at time <em>t<\/em>.<\/li>\n<li class=\"wp-block-list-item\">\n<code>surv_t_minus_1<\/code>, boolean array that tells us whether each individual is alive at time <em>t<\/em>-1.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">All we have to do is to take all the individuals observed at <em>t<\/em>, compute their survival rate from <em>t<\/em>-1 to <em>t<\/em> (<code>survival_rate_t<\/code>), and multiply it by the survival rate up to time <em>t<\/em>-1 (<code>km[t-1]<\/code>) to obtain the survival rate up to time <em>t <\/em>(<code>km[t]<\/code>)<em>.<\/em> In other words,<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-python\">survival_rate_t = surv_t[obs_t].sum() \/ surv_t_minus_1[obs_t].sum()\n\nkaplan_meier[t] = kaplan_meier[t-1] * survival_rate_t<\/code><\/pre>\n<p class=\"wp-block-paragraph\">where, of course, the starting point is <code>kaplan_meier[0] = 1<\/code>.<\/p>\n<p class=\"wp-block-paragraph\">If you don\u2019t want to code this from scratch, the Kaplan-Meier algorithm is available in the Python library <code>lifelines<\/code>, and it can be used as follows:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-python\">from lifelines import KaplanMeierFitter\n\nKaplanMeierFitter().fit(\n    durations=[6,7,4],\n    event_observed=[1,0,1],\n).survival_function_[\"KM_estimate\"]<\/code><\/pre>\n<p class=\"wp-block-paragraph\">If you use this code, you will obtain the same result we have obtained manually with the previous snippet.<\/p>\n<p class=\"wp-block-paragraph\">So far, we\u2019ve been hanging out in the land of mice, medicine, and mortality. Not exactly your average quarterly KPI review, right? So, how is this useful in business?<\/p>\n<h2 class=\"wp-block-heading\">Moving to a business setting<\/h2>\n<p class=\"wp-block-paragraph\">So far, we\u2019ve treated \u201cdeath\u201d as if it\u2019s obvious. In Kaplan-Meier land, someone either lives or dies, and we can easily log the time of death. But now let\u2019s stir in some real-world business messiness.<\/p>\n<p class=\"wp-block-paragraph\"><strong><em>What even <\/em>is<em> \u201cdeath\u201d in a business context?<\/em><\/strong><\/p>\n<p class=\"wp-block-paragraph\">It turns out it\u2019s not easy to answer this question, at least for a couple of reasons:<\/p>\n<ol class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">\n<strong>\u201cDeath\u201d is not easy to define<\/strong>. Let\u2019s say you\u2019re working at an e-commerce company. You want to know when a user has \u201cdied\u201d. Should you count them as dead when they delete their account? That\u2019s easy to track\u2026 but too rare to be useful. What if they just start shopping less? But <em>how<\/em> much less is dead? A week of silence? A month? Two? You see the problem. The definition of \u201cdeath\u201d is arbitrary, and depending on where you draw the line, your analysis might tell wildly different stories.<\/li>\n<li class=\"wp-block-list-item\">\n<strong>\u201cDeath\u201d is not permanent<\/strong>. Kaplan-Meier has been conceived for biological applications in which once an individual is dead there is no return. But in business applications, resurrection is not only possible but pretty frequent. Imagine a streaming service for which people pay a monthly subscription. It\u2019s easy to define \u201cdeath\u201d in this case: it\u2019s when users cancel their subscriptions. However, it\u2019s pretty frequent that, some time after cancelling, they re-subscribe.<\/li>\n<\/ol>\n<p class=\"wp-block-paragraph\">So how does all this play out in data?<\/p>\n<p class=\"wp-block-paragraph\">Let\u2019s walk through a toy example. Say we have a user on our e-commerce platform. Over the past 10 months, here\u2019s how much they\u2019ve spent:<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img data-recalc-dims=\"1\" height=\"211\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/04-1024x211.png?resize=1024%2C211&#038;ssl=1\" alt=\"\" class=\"wp-image-604021\"><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">To squeeze this into the Kaplan-Meier framework, we need to <strong>translate that spending behavior into a life-or-death decision<\/strong>.<\/p>\n<p class=\"wp-block-paragraph\">So we make a rule: if a user stops spending for 2 consecutive months, we declare them \u201cinactive\u201d.<\/p>\n<p class=\"wp-block-paragraph\">Graphically, this rule looks like the following:<\/p>\n<p class=\"wp-block-paragraph\">\n<figure class=\"wp-block-image alignwide size-large\"><img data-recalc-dims=\"1\" height=\"211\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/05-1024x211.png?resize=1024%2C211&#038;ssl=1\" alt=\"\" class=\"wp-image-604022\"><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">Since the user spent $0 for two months in a row (month 4 and 5) we will consider this user inactive starting from month 4 on. And we will do that despite the user started spending again in month 7. This is because, in Kaplan-Meier, resurrections are assumed to be impossible.<\/p>\n<p class=\"wp-block-paragraph\">Now let\u2019s add two more users to our example. Since we have decided a rule to turn their value curve into a survival curve, we can also compute the Kaplan-Meier survival curve:<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img data-recalc-dims=\"1\" height=\"763\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/06-1024x763.png?resize=1024%2C763&#038;ssl=1\" alt=\"\" class=\"wp-image-604023\"><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">By now, you\u2019ve probably noticed <strong>how much nuance (and data) we\u2019ve thrown away just to make this work<\/strong>. User <em>a<\/em> came back from the dead \u2014 but we ignored that. User <em>c<\/em>\u2018s spending dropped significantly \u2014 but Kaplan-Meier doesn\u2019t care, because all it sees is 1s and 0s. We forced a continuous value (spending) into a binary box (alive\/dead), and along the way, we lost a whole lot of information.<\/p>\n<p class=\"wp-block-paragraph\">So the question is: can we extend Kaplan-Meier in a way that:<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">\n<strong>keeps the original, continuous data intact<\/strong>,<\/li>\n<li class=\"wp-block-list-item\">\n<strong>avoids arbitrary binary cutoffs<\/strong>,<\/li>\n<li class=\"wp-block-list-item\">\n<strong>allows for resurrections<\/strong>?<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">Yes, we can. In the next section, I\u2019ll show you how.<\/p>\n<h2 class=\"wp-block-heading\">Introducing \u201cValue Kaplan-Meier\u201d<\/h2>\n<p class=\"wp-block-paragraph\">Let\u2019s start with the simple Kaplan-Meier formula we have seen before.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-python\"># kaplan_meier: array containing the Kaplan-Meier estimates,\n# \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 e.g. the probability of survival up to time t\n# obs_t: array, whether a subject has been observed at time t\n# surv_t: array, whether a subject was alive at time t\n# surv_t_minus_1: array, whether a subject was alive at time t\u22121\n\nsurvival_rate_t = surv_t[obs_t].sum() \/ surv_t_minus_1[obs_t].sum()\n\nkaplan_meier[t] = kaplan_meier[t-1] * survival_rate_t<\/code><\/pre>\n<p class=\"wp-block-paragraph\">The first change we need to make is to replace <code>surv_t<\/code> and <code>surv_t_minus_1<\/code>, which are boolean arrays that tell us whether a subject is alive (1) or dead (0) with arrays that tell us the (economic) value of each subject at a given time. For this purpose, we can use two arrays named <code>val_t<\/code> and <code>val_t_minus_1<\/code>.<\/p>\n<p class=\"wp-block-paragraph\">But this is not enough, because since we are dealing with continuous value, <strong>every user is on a different scale and so, assuming that we want to weigh them equally, we need to rescale them based on some individual value<\/strong>. But what value should we use? The most reasonable choice is to use their initial value at time 0, before they were influenced by whatever treatment we are applying to them.<\/p>\n<p class=\"wp-block-paragraph\">So we also need to use another vector, named <code>val_t_0<\/code> that represents the value of the individual at time 0.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-python\"># value_kaplan_meier: array containing the Value Kaplan-Meier estimates\n# obs_t: array, whether a subject has been observed at time t\n# val_t_0: array, user value at time 0\n# val_t: array, user value at time t\n# val_t_minus_1: array, user value at time t\u22121\n\nvalue_rate_t = (\n    (val_t[obs_t] \/ val_t_0[obs_t]).sum()\n    \/ (val_t_minus_1[obs_t] \/ val_t_0[obs_t]).sum()\n)\n\nvalue_kaplan_meier[t] = value_kaplan_meier[t-1] * value_rate_t<\/code><\/pre>\n<p class=\"wp-block-paragraph\">What we\u2019ve built is a <strong>direct generalization of Kaplan-Meier<\/strong>. In fact, if you set <code>val_t = surv_t<\/code>, <code>val_t_minus_1 = surv_t_minus_1<\/code>, and <code>val_t_0<\/code> as an array of 1s, this formula collapses neatly back to our original survival estimator. So yes\u2014it\u2019s legit.<\/p>\n<p class=\"wp-block-paragraph\">And here is the curve that we would obtain when applied to these 3 users.<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img data-recalc-dims=\"1\" height=\"438\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/07-1024x438.png?resize=1024%2C438&#038;ssl=1\" alt=\"\" class=\"wp-image-604024\"><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">Let\u2019s call this new version the <strong>Value Kaplan-Meier estimator<\/strong>. In fact, it answers the question:<\/p>\n<p class=\"wp-block-paragraph\"><strong><em>How much percent of value is still surviving, on average, after <\/em>x<em> time?<\/em><\/strong><\/p>\n<p class=\"wp-block-paragraph\">We\u2019ve got the theory. But does it work in the wild?<\/p>\n<h2 class=\"wp-block-heading\"><strong>Using Value Kaplan-Meier in practice<\/strong><\/h2>\n<p class=\"wp-block-paragraph\">If you take the Value Kaplan-Meier estimator for a spin on real-world data and compare it to the good old Kaplan-Meier curve, you\u2019ll likely notice something comforting \u2014 <strong>they often have the same shape<\/strong>. That\u2019s a good sign. It means we haven\u2019t broken anything fundamental while upgrading from binary to continuous.<\/p>\n<p class=\"wp-block-paragraph\">But here\u2019s where things get interesting: <strong>Value Kaplan-Meier usually sits a bit <em>above<\/em> its traditional cousin<\/strong>. Why? Because in this new world, users are allowed to \u201cresurrect\u201d. Kaplan-Meier, being the more rigid of the two, would\u2019ve written them off the moment they went quiet.<\/p>\n<p class=\"wp-block-paragraph\">So how do we put this to use?<\/p>\n<p class=\"wp-block-paragraph\">Imagine you\u2019re running an experiment. At time zero, you start a new treatment on a group of users. Whatever it is, you can track how much value \u201csurvives\u201d in both the treatment and control groups over time.<\/p>\n<p class=\"wp-block-paragraph\">And this is what your output will probably look like:<\/p>\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" height=\"439\" width=\"1024\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/08-1024x439.png?resize=1024%2C439&#038;ssl=1\" alt=\"\" class=\"wp-image-604025\"><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n<p class=\"wp-block-paragraph\">Kaplan-Meier is a widely used and intuitive method for estimating survival functions, especially when the outcome is a binary event like death or failure. However, many real-world business scenarios involve more complexity \u2014 resurrections are possible, and outcomes are better represented by continuous values rather than a binary state.<\/p>\n<p class=\"wp-block-paragraph\">In such cases, Value Kaplan-Meier offers a natural extension. <strong>By incorporating the economic value of individuals over time, it enables a more nuanced understanding of value retention and decay<\/strong>. This method preserves the simplicity and interpretability of the original Kaplan-Meier estimator while adapting it to better reflect the dynamics of customer behavior.<\/p>\n<p class=\"wp-block-paragraph\">Value Kaplan-Meier tends to provide a higher estimate of retained value compared to Kaplan-Meier, due to its ability to account for recoveries. This makes it particularly useful in evaluating experiments or tracking customer value over time.<\/p>\n<p>The post <a href=\"https:\/\/towardsdatascience.com\/survival-analysis-when-no-one-dies-a-value-based-approach\/\">Survival Analysis When No One Dies: A Value-Based Approach<\/a> appeared first on <a href=\"https:\/\/towardsdatascience.com\/\">Towards Data Science<\/a>.<\/p>\n<\/div>\n<p> \t<BR><br \/>\n <BR><\/BR><br \/>\n    Samuele Mazzanti<br \/>\n \t<BR><br \/>\n<BR><\/BR><br \/>\n<a href=\"https:\/\/towardsdatascience.com\/survival-analysis-when-no-one-dies-a-value-based-approach\/\">Go to original source<\/a><br \/>\n \t<BR><br \/>\n <BR><\/BR><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Survival Analysis When No One Dies: A Value-Based Approach Survival Analysis is a statistical approach used to answer the question: \u201cHow long will something last?\u201d That \u201csomething\u201d could range from a patient\u2019s lifespan to the durability of a machine component or the duration of a user\u2019s subscription. One of the most widely used tools in [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62,83,240,2670,238,2671,231],"tags":[7,2672,233],"class_list":["post-3803","post","type-post","status-publish","format-standard","hentry","category-aimldsaimlds","category-data-science","category-editors-pick","category-lifetime-value","category-statistics","category-survival-analysis-python","category-survival-analysis","tag-how","tag-subject","tag-survival"],"_links":{"self":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/posts\/3803"}],"collection":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/comments?post=3803"}],"version-history":[{"count":0,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/posts\/3803\/revisions"}],"wp:attachment":[{"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/media?parent=3803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/categories?post=3803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mailitics.com\/index.php\/wp-json\/wp\/v2\/tags?post=3803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}