{"id":2431,"date":"2025-05-14T06:33:18","date_gmt":"2025-05-14T06:33:18","guid":{"rendered":"https:\/\/techtrendfeed.com\/?p=2431"},"modified":"2025-05-14T06:33:18","modified_gmt":"2025-05-14T06:33:18","slug":"survival-evaluation-when-no-one-dies-a-worth-primarily-based-strategy","status":"publish","type":"post","link":"https:\/\/techtrendfeed.com\/?p=2431","title":{"rendered":"Survival Evaluation When No One Dies: A Worth-Primarily based Strategy"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p class=\"wp-block-paragraph\"> is a statistical strategy used to reply the query: \u201cHow lengthy will one thing final?\u201d That \u201cone thing\u201d might vary from a affected person\u2019s lifespan to the sturdiness of a machine element or the period of a person\u2019s subscription.<\/p>\n<p class=\"wp-block-paragraph\">One of the vital extensively used instruments on this space is the <strong>Kaplan-Meier estimator<\/strong>.<\/p>\n<p class=\"wp-block-paragraph\">Born on the earth of biology, Kaplan-Meier made its debut monitoring life and dying. However like several true movie star algorithm, it didn\u2019t keep in its lane. Today, it\u2019s exhibiting up in enterprise dashboards, advertising groups, and churn analyses in every single place.<\/p>\n<p class=\"wp-block-paragraph\">However right here\u2019s the catch: <strong>enterprise isn\u2019t biology<\/strong>. It\u2019s messy, unpredictable, and stuffed with plot twists. This is the reason there are a few points that make our lives harder once we attempt to use survival evaluation within the enterprise world.<\/p>\n<p class=\"wp-block-paragraph\">To start with, we&#8217;re sometimes not simply all for whether or not a buyer has \u201csurvived\u201d (no matter survival might imply on this context), however relatively in <strong>how a lot of that particular person\u2019s financial worth has survived.<\/strong><\/p>\n<p class=\"wp-block-paragraph\">Secondly, opposite to biology, <strong>it\u2019s very potential for patrons to \u201cdie\u201d and \u201cresuscitate\u201d a number of occasions<\/strong> (consider whenever you unsubscribe\/resubscribe to a web-based service).<\/p>\n<p class=\"wp-block-paragraph\">On this article, we&#8217;ll see tips on how to prolong the classical Kaplan-Meier strategy in order that it higher fits our wants: <strong>modeling a steady (financial) worth as an alternative of a binary one (life\/dying) and permitting \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. Earlier than we begin customizing Kaplan-Meier to suit our enterprise wants, we want a fast refresher on how the traditional model works.<\/p>\n<p class=\"wp-block-paragraph\">Suppose you had 3 topics (let\u2019s say lab mice) and also you gave them a drugs it&#8217;s good to check. The drugs was given at completely different moments in time: topic <em>a <\/em>obtained it in January, topic <em>b<\/em> in April, and topic <em>c<\/em> in Could.<\/p>\n<p class=\"wp-block-paragraph\">Then, you measure how lengthy they survive. Topic <em>a<\/em> died after 6 months, topic <em>c<\/em> after 4 months, and topic <em>b<\/em> continues to be alive on the time of the evaluation (November).<\/p>\n<p class=\"wp-block-paragraph\">Graphically, we will characterize the three topics as follows:<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/01-1024x412.png\" alt=\"\" class=\"wp-image-604017\"\/><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">Now, <strong>even when we wished to measure a easy metric, like common survival, we&#8217;d face an issue<\/strong>. In truth, we don\u2019t understand how lengthy topic <em>b<\/em> will survive, as it&#8217;s nonetheless alive at present.<\/p>\n<p class=\"wp-block-paragraph\">It is a classical downside in statistics, and it\u2019s referred to as \u201c<strong>proper censoring<\/strong>\u201c.<\/p>\n<p class=\"wp-block-paragraph\">Proper censoring is stats-speak for \u201cwe don\u2019t know what occurred after a sure level\u201d and it\u2019s a giant deal in survival evaluation. So large that it <strong>led to the event of one of the iconic estimators in statistical historical past: the Kaplan-Meier estimator<\/strong>, named after the duo who launched it again within the Fifties.<\/p>\n<p class=\"wp-block-paragraph\">So, how does Kaplan-Meier deal with our downside?<\/p>\n<p class=\"wp-block-paragraph\">First, we align the clocks. Even when our mice have been handled at completely different occasions, <strong>what issues is <em>time since remedy<\/em><\/strong>. So we reset the <em>x<\/em>-axis to zero for everybody \u2014 day zero is the day they acquired the drug.<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/02-1024x412.png\" 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 identical timeline, we wish to construct one thing helpful: an <strong>combination survival curve<\/strong>. This curve tells us the chance {that a} <em>typical<\/em> mouse in our group will survive not less than <em>x<\/em> months post-treatment.<\/p>\n<p class=\"wp-block-paragraph\">Let\u2019s observe the logic collectively.<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">As much as time 3? Everybody\u2019s nonetheless alive. So survival = 100%. Straightforward.<\/li>\n<li class=\"wp-block-list-item\">At time 4, mouse <em>c<\/em> dies. Which means out of the three mice, solely 2 of them survived after time 4. That provides us a survival charge 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 two mice that had made it to time 6, just one survived, so the survival charge from time 5 to six is 50%. Multiply that by the earlier 67%, and we get 33% survival as much as time 6.<\/li>\n<li class=\"wp-block-list-item\">After time 7 we don\u2019t produce other topics which are noticed alive, so the curve has to cease right here.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">Let\u2019s plot these outcomes:<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/03-1024x394.png\" alt=\"\" class=\"wp-image-604019\"\/><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">Since code is commonly simpler to know than phrases, let\u2019s translate this to Python. We have now the next variables:<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><code>kaplan_meier<\/code>, an array containing the Kaplan-Meier estimates for every time limit, e.g. the chance of survival as much as time <em>t<\/em>.<\/li>\n<li class=\"wp-block-list-item\"><code>obs_t<\/code>, an array that tells us whether or not a person is noticed (e.g., not right-censored) at time <em>t<\/em>.<\/li>\n<li class=\"wp-block-list-item\"><code>surv_t<\/code>, boolean array that tells us whether or not every particular person is alive at time <em>t<\/em>.<\/li>\n<li class=\"wp-block-list-item\"><code>surv_t_minus_1<\/code>, boolean array that tells us whether or not every particular person is alive at time <em>t<\/em>-1.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">All we&#8217;ve to do is to take all of the people noticed at <em>t<\/em>, compute their survival charge from <em>t<\/em>-1 to <em>t<\/em> (<code>survival_rate_t<\/code>), and multiply it by the survival charge as much as time <em>t<\/em>-1 (<code>km[t-1]<\/code>) to acquire the survival charge as much as time <em>t <\/em>(<code>km[t]<\/code>)<em>.<\/em> In different phrases,<\/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\">the place, in fact, the start line is <code>kaplan_meier[0] = 1<\/code>.<\/p>\n<p class=\"wp-block-paragraph\">For those who don\u2019t wish to code this from scratch, the Kaplan-Meier algorithm is on the market within the Python library <code>lifelines<\/code>, and it may be used as follows:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-python\">from lifelines import KaplanMeierFitter\n\nKaplanMeierFitter().match(\n    durations=[6,7,4],\n    event_observed=[1,0,1],\n).survival_function_[\"KM_estimate\"]<\/code><\/pre>\n<p class=\"wp-block-paragraph\">For those who use this code, you&#8217;ll acquire the identical consequence we&#8217;ve obtained manually with the earlier snippet.<\/p>\n<p class=\"wp-block-paragraph\">To date, we\u2019ve been hanging out within the land of mice, drugs, and mortality. Not precisely your common quarterly KPI evaluation, proper? So, how is this handy in enterprise?<\/p>\n<h2 class=\"wp-block-heading\">Transferring to a enterprise setting<\/h2>\n<p class=\"wp-block-paragraph\">To date, we\u2019ve handled \u201cdying\u201d as if it\u2019s apparent. In Kaplan-Meier land, somebody both lives or dies, and we will simply log the time of dying. However now let\u2019s stir in some real-world enterprise messiness.<\/p>\n<p class=\"wp-block-paragraph\"><strong><em>What even <\/em>is<em> \u201cdying\u201d in a enterprise context?<\/em><\/strong><\/p>\n<p class=\"wp-block-paragraph\">It seems it\u2019s not simple to reply this query, not less than for a few causes:<\/p>\n<ol class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><strong>\u201cLoss of life\u201d is just not simple to outline<\/strong>. Let\u2019s say you\u2019re working at an e-commerce firm. You wish to know when a person has \u201cdied\u201d. Must you rely them as lifeless after they delete their account? That\u2019s simple to trace\u2026 however too uncommon to be helpful. What if they simply begin purchasing much less? However <em>how<\/em> a lot much less is lifeless? Per week of silence? A month? Two? You see the issue. The definition of \u201cdying\u201d is bigoted, and relying on the place you draw the road, your evaluation would possibly inform wildly completely different tales.<\/li>\n<li class=\"wp-block-list-item\"><strong>\u201cLoss of life\u201d is just not everlasting<\/strong>. Kaplan-Meier has been conceived for organic functions during which as soon as a person is lifeless there isn&#8217;t any return. However in enterprise functions, resurrection is just not solely potential however fairly frequent. Think about a streaming service for which individuals pay a month-to-month subscription. It\u2019s simple to outline \u201cdying\u201d on this case: it\u2019s when customers cancel their subscriptions. Nevertheless, it\u2019s fairly frequent that, a while after cancelling, they re-subscribe.<\/li>\n<\/ol>\n<p class=\"wp-block-paragraph\">So how does all this play out in information?<\/p>\n<p class=\"wp-block-paragraph\">Let\u2019s stroll by means of a toy instance. Say we&#8217;ve a person on our e-commerce platform. Over the previous 10 months, right here\u2019s how a lot they\u2019ve spent:<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/04-1024x211.png\" 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 have to <strong>translate that spending conduct right into a life-or-death resolution<\/strong>.<\/p>\n<p class=\"wp-block-paragraph\">So we make a rule: if a person stops spending for two consecutive months, we declare them \u201cinactive\u201d.<\/p>\n<p class=\"wp-block-paragraph\">Graphically, this rule seems to be like the next:<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/05-1024x211.png\" alt=\"\" class=\"wp-image-604022\"\/><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">For the reason that person spent $0 for 2 months in a row (month 4 and 5) we&#8217;ll contemplate this person inactive ranging from month 4 on. And we&#8217;ll do this regardless of the person began spending once more in month 7. It&#8217;s because, in Kaplan-Meier, resurrections are assumed to be unimaginable.<\/p>\n<p class=\"wp-block-paragraph\">Now let\u2019s add two extra customers to our instance. Since we&#8217;ve determined a rule to show their worth curve right into a survival curve, we will additionally compute the Kaplan-Meier survival curve:<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/06-1024x763.png\" 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 most likely observed <strong>how a lot nuance (and information) we\u2019ve thrown away simply to make this work<\/strong>. Person <em>a<\/em> got here again from the lifeless \u2014 however we ignored that. Person <em>c<\/em>\u2018s spending dropped considerably \u2014 however Kaplan-Meier doesn\u2019t care, as a result of all it sees is 1s and 0s. We pressured a steady worth (spending) right into a binary field (alive\/lifeless), and alongside the way in which, we misplaced an entire lot of knowledge.<\/p>\n<p class=\"wp-block-paragraph\">So the query is: can we prolong Kaplan-Meier in a approach that:<\/p>\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><strong>retains the unique, steady information intact<\/strong>,<\/li>\n<li class=\"wp-block-list-item\"><strong>avoids arbitrary binary cutoffs<\/strong>,<\/li>\n<li class=\"wp-block-list-item\"><strong>permits for resurrections<\/strong>?<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">Sure, we will. Within the subsequent part, I\u2019ll present you the way.<\/p>\n<h2 class=\"wp-block-heading\">Introducing \u201cWorth Kaplan-Meier\u201d<\/h2>\n<p class=\"wp-block-paragraph\">Let\u2019s begin with the easy Kaplan-Meier method we&#8217;ve seen earlier than.<\/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 chance of survival as much as time t\n# obs_t: array, whether or not a topic has been noticed at time t\n# surv_t: array, whether or not a topic was alive at time t\n# surv_t_minus_1: array, whether or not a topic 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 primary change we have to make is to exchange <code>surv_t<\/code> and <code>surv_t_minus_1<\/code>, that are boolean arrays that inform us whether or not a topic is alive (1) or lifeless (0) with arrays that inform us the (financial) worth of every topic at a given time. For this objective, we will use two arrays named <code>val_t<\/code> and <code>val_t_minus_1<\/code>.<\/p>\n<p class=\"wp-block-paragraph\">However this isn&#8217;t sufficient, as a result of since we&#8217;re coping with steady worth, <strong>each person is on a special scale and so, assuming that we wish to weigh them equally, we have to rescale them primarily based on some particular person worth<\/strong>. However what worth ought to we use? Probably the most affordable selection is to make use of their preliminary worth at time 0, earlier than they have been influenced by no matter remedy we&#8217;re making use of to them.<\/p>\n<p class=\"wp-block-paragraph\">So we additionally want to make use of one other vector, named <code>val_t_0<\/code> that represents the worth of the person at time 0.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-python\"># value_kaplan_meier: array containing the Worth Kaplan-Meier estimates\n# obs_t: array, whether or not a topic has been noticed at time t\n# val_t_0: array, person worth at time 0\n# val_t: array, person worth at time t\n# val_t_minus_1: array, person worth 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 constructed is a <strong>direct generalization of Kaplan-Meier<\/strong>. In truth, should 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 method collapses neatly again to our authentic survival estimator. So sure\u2014it\u2019s legit.<\/p>\n<p class=\"wp-block-paragraph\">And right here is the curve that we&#8217;d acquire when utilized to those 3 customers.<\/p>\n<figure class=\"wp-block-image alignwide size-large\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/07-1024x438.png\" alt=\"\" class=\"wp-image-604024\"\/><figcaption class=\"wp-element-caption\">[Image by Author]<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">Let\u2019s name this new model the <strong>Worth Kaplan-Meier estimator<\/strong>. In truth, it solutions the query:<\/p>\n<p class=\"wp-block-paragraph\"><strong><em>How a lot p.c of worth continues to be surviving, on common, after <\/em>x<em> time?<\/em><\/strong><\/p>\n<p class=\"wp-block-paragraph\">We\u2019ve acquired the speculation. However does it work within the wild?<\/p>\n<h2 class=\"wp-block-heading\"><strong>Utilizing Worth Kaplan-Meier in observe<\/strong><\/h2>\n<p class=\"wp-block-paragraph\">For those who take the Worth Kaplan-Meier estimator for a spin on real-world information and examine it to the great previous Kaplan-Meier curve, you\u2019ll possible discover one thing comforting \u2014 <strong>they typically have the identical form<\/strong>. That\u2019s an excellent signal. It means we haven\u2019t damaged something elementary whereas upgrading from binary to steady.<\/p>\n<p class=\"wp-block-paragraph\">However right here\u2019s the place issues get attention-grabbing: <strong>Worth Kaplan-Meier often sits a bit <em>above<\/em> its conventional cousin<\/strong>. Why? As a result of on this new world, customers are allowed to \u201cresurrect\u201d. Kaplan-Meier, being the extra inflexible of the 2, would\u2019ve written them off the second they went quiet.<\/p>\n<p class=\"wp-block-paragraph\">So how will we put this to make use of?<\/p>\n<p class=\"wp-block-paragraph\">Think about you\u2019re operating an experiment. At time zero, you begin a brand new remedy on a bunch of customers. No matter it&#8217;s, you may monitor how a lot worth \u201csurvives\u201d in each the remedy and management teams over time.<\/p>\n<p class=\"wp-block-paragraph\">And that is what your output will most likely appear to be:<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2025\/05\/08-1024x439.png\" 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 extensively used and intuitive methodology for estimating survival capabilities, particularly when the result is a binary occasion like dying or failure. Nevertheless, many real-world enterprise situations contain extra complexity \u2014 resurrections are potential, and outcomes are higher represented by steady values relatively than a binary state.<\/p>\n<p class=\"wp-block-paragraph\">In such instances, Worth Kaplan-Meier provides a pure extension. <strong>By incorporating the financial worth of people over time, it allows a extra nuanced understanding of worth retention and decay<\/strong>. This methodology preserves the simplicity and interpretability of the unique Kaplan-Meier estimator whereas adapting it to raised replicate the dynamics of buyer conduct.<\/p>\n<p class=\"wp-block-paragraph\">Worth Kaplan-Meier tends to offer the next estimate of retained worth in comparison with Kaplan-Meier, as a consequence of its skill to account for recoveries. This makes it notably helpful in evaluating experiments or monitoring buyer worth over time.<\/p>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>is a statistical strategy used to reply the query: \u201cHow lengthy will one thing final?\u201d That \u201cone thing\u201d might vary from a affected person\u2019s lifespan to the sturdiness of a machine element or the period of a person\u2019s subscription. One of the vital extensively used instruments on this space is the Kaplan-Meier estimator. Born on [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":2433,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[1455,1368,2377,2376,2378],"class_list":["post-2431","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-machine-learning","tag-analysis","tag-approach","tag-dies","tag-survival","tag-valuebased"],"_links":{"self":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/2431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2431"}],"version-history":[{"count":1,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/2431\/revisions"}],"predecessor-version":[{"id":2432,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/2431\/revisions\/2432"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/media\/2433"}],"wp:attachment":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<!-- This website is optimized by Airlift. Learn more: https://airlift.net. Template:. Learn more: https://airlift.net. Template: 69d9690a190636c2e0989534. Config Timestamp: 2026-04-10 21:18:02 UTC, Cached Timestamp: 2026-05-06 19:28:14 UTC -->