{"id":10987,"date":"2026-01-21T00:32:53","date_gmt":"2026-01-21T00:32:53","guid":{"rendered":"https:\/\/techtrendfeed.com\/?p=10987"},"modified":"2026-01-21T00:32:53","modified_gmt":"2026-01-21T00:32:53","slug":"does-calendar-based-mostly-time-intelligence-change-customized-logic","status":"publish","type":"post","link":"https:\/\/techtrendfeed.com\/?p=10987","title":{"rendered":"Does Calendar-Based mostly Time-Intelligence Change Customized Logic?"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n<p class=\"wp-block-paragraph\"> calendar-based Time Intelligence, the necessity for customized Time Intelligence logic has decreased dramatically.<\/p>\n<p class=\"wp-block-paragraph\">Now, we are able to create customized calendars to satisfy our Time Intelligence calculation wants.<\/p>\n<p class=\"wp-block-paragraph\">You might need learn my article about superior Time Intelligence:<\/p>\n<p class=\"wp-block-paragraph\"><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/towardsdatascience.com\/advanced-time-intelligence-in-dax-with-performance-in-mind\/\">https:\/\/towardsdatascience.com\/advanced-time-intelligence-in-dax-with-performance-in-mind\/<\/a><\/p>\n<p class=\"wp-block-paragraph\">A lot of the customized logic is now not wanted.<\/p>\n<p class=\"wp-block-paragraph\">However we nonetheless have situations the place we should have customized calculations, like working common.<\/p>\n<p class=\"wp-block-paragraph\">A while in the past, SQLBI <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.sqlbi.com\/articles\/rolling-12-months-average-in-dax\">wrote an article<\/a> about calculating the working common.<\/p>\n<p class=\"wp-block-paragraph\">This piece makes use of the identical rules described there in a barely totally different method.<\/p>\n<p class=\"wp-block-paragraph\">Let\u2019s see how we are able to calculate the working common over three months through the use of the brand new Calendars.<\/p>\n<h2 class=\"wp-block-heading\">Utilizing traditional Time Intelligence<\/h2>\n<p class=\"wp-block-paragraph\">First, we use the usual Gregorian calendar with the traditional Time Intelligence date desk.<\/p>\n<p class=\"wp-block-paragraph\">I exploit an identical method as described within the SQLBI article linked within the References part beneath.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-sql\">Operating Common by Month = \n\/\/ 1. Get the primary and final Date for the present Filter Context\nVAR MaxDate = MAX( 'Date'[Date] )\n\n\n\/\/ 2. Generate the Date vary wanted for the Shifting common (three months)\nVAR  DateRange =\n DATESINPERIOD( 'Date'[Date]\n        ,MaxDate\n        ,-3\n        ,MONTH\n    )\n\n\/\/ 3. Generate a desk filtered by the Date Vary generated at step 2\n\/\/ This desk accommodates solely three rows\nVAR SalesByMonth = \n    CALCULATETABLE(\n        SUMMARIZECOLUMNS(\n            'Date'[MonthKey]\n            , \"#Gross sales\", [Sum Online Sales]\n            \n        )\n        ,DateRange\n    )\n\nRETURN\n    \/\/ 4. Calculate the Common over the three values within the desk generate in step 3\n    AVERAGEX(SalesByMonth, [#Sales])\n<\/code><\/pre>\n<p class=\"wp-block-paragraph\">When executing this measure in DAX Studio, I get the anticipated outcomes:<\/p>\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2026\/01\/image-110.png\" alt=\"\" class=\"wp-image-643018\"\/><figcaption class=\"wp-element-caption\">Determine 1 \u2013 Operating Common over three months with the traditional Time Intelligence method (Determine by the Writer)<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">Up to now, so good.<\/p>\n<h2 class=\"wp-block-heading\">Utilizing a normal calendar<\/h2>\n<p class=\"wp-block-paragraph\">Subsequent, I created a Calendar named \u201cGregorian Calendar\u201d and adjusted the code to make use of this calendar.<\/p>\n<p class=\"wp-block-paragraph\">To make this simpler to grasp, I copied the date desk to a brand new desk named \u201cGregorian Date Desk\u201d.<\/p>\n<p class=\"wp-block-paragraph\">The change is when calling the <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/dax.guide\/datesinperiod\/\"><code>DATESINPERIOD()<\/code><\/a> perform.<\/p>\n<p class=\"wp-block-paragraph\">As an alternative of utilizing the date column, I exploit the newly created calendar:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-sql\">Operating Common by Month = \n\/\/ 1. Get the primary and final Date for the present Filter Context\nVAR MaxDate = MAX( 'Gregorian Date Desk'[Date] )\n\n\n\/\/ 2. Generate the Date vary wanted for the Shifting common (three months)\nVAR  DateRange =\n DATESINPERIOD( 'Gregorian Calendar'\n        ,MaxDate\n        ,-3\n        ,MONTH\n    )\n\n\n\n\/\/ 3. Generate a desk filtered by the Date Vary generated at step 2\n\/\/ This desk accommodates solely three rows\nVAR SalesByMonth = \n    CALCULATETABLE(\n        SUMMARIZECOLUMNS(\n            'Gregorian Date Desk'[MonthKey]\n            , \"#Gross sales\", [Sum Online Sales]\n            \n        )\n        ,DateRange\n    )\n\nRETURN\n    \/\/ 4. Calculate the Common over the three values within the desk generate in step 3\n    AVERAGEX(SalesByMonth, [#Sales])\n<\/code><\/pre>\n<p class=\"wp-block-paragraph\">As anticipated, the outcomes are equivalent:<\/p>\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2026\/01\/image.jpg\" alt=\"\" class=\"wp-image-643014\"\/><figcaption class=\"wp-element-caption\">Determine 2 \u2013 Identical End result as earlier than when utilizing the Calendar (Determine by the Writer)<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">The efficiency is superb, as this question completes in 150 milliseconds.<\/p>\n<h2 class=\"wp-block-heading\">Utilizing a customized calendar<\/h2>\n<p class=\"wp-block-paragraph\">However what occurs when utilizing a customized calendar?<\/p>\n<p class=\"wp-block-paragraph\">For instance, a calendar with 15 months per yr and 31 days for every month?<\/p>\n<p class=\"wp-block-paragraph\">I created such a calendar for my article, which describes use circumstances for calendar-based Time Intelligence (See the Hyperlink on the Prime and within the References part).<\/p>\n<p class=\"wp-block-paragraph\">If you have a look at the code for the measure, you&#8217;ll discover that it\u2019s totally different:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-sql\">Operating Common by Month (Customized) = \n    VAR LastSelDate = MAX('Monetary Calendar'[CalendarEndOfMonthDate])\n\n    VAR MaxDateID = CALCULATE(MAX('Monetary Calendar'[ID_Date])\n                                ,REMOVEFILTERS('Monetary Calendar')\n                                ,'Monetary Calendar'[CalendarEndOfMonthDate] = LastSelDate\n                                )\n\n    VAR MinDateID = CALCULATE(MIN('Monetary Calendar'[ID_Date])\n                                ,REMOVEFILTERS('Monetary Calendar')\n                                ,'Monetary Calendar'[CalendarEndOfMonthDate] = EOMONTH(LastSelDate, -2)\n                                )\n\n    VAR SalesByMonth = \n        CALCULATETABLE(\n            SUMMARIZECOLUMNS(\n                'Monetary Calendar'[CalendarYearMonth]\n                , \"#Gross sales\", [Sum Online Sales]\n                \n            )\n            ,'Monetary Calendar'[ID_Date] &gt;= MinDateID\n                &amp;&amp; 'Monetary Calendar'[ID_Date] &lt;= MaxDateID\n        )\n\n    RETURN\n    AVERAGEX(SalesByMonth, [#Sales])<\/code><\/pre>\n<p class=\"wp-block-paragraph\">The explanation for the adjustments is that this desk lacks a date column usable with the <code>DATESINPERIOD()<\/code> perform. For that reason, I have to use customized code to calculate the worth vary for <code>ID_Date<\/code>.<\/p>\n<p class=\"wp-block-paragraph\">These are the outcomes:<\/p>\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2026\/01\/image-110.png\" alt=\"\" class=\"wp-image-643019\"\/><figcaption class=\"wp-element-caption\">Determine 3 \u2013 Outcomes of the working common when utilizing a customized calendar with no Dates (Determine by the Writer)<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">As you may test, the outcomes are right.<\/p>\n<h2 class=\"wp-block-heading\">Optimizing through the use of a day index<\/h2>\n<p class=\"wp-block-paragraph\">However after I analyze the efficiency, it\u2019s not that nice.<\/p>\n<p class=\"wp-block-paragraph\">It takes virtually half a second to calculate the outcomes.<\/p>\n<p class=\"wp-block-paragraph\">We are able to enhance efficiency by eradicating the necessity to retrieve the minimal and most <code>ID_Date<\/code> and performing a extra environment friendly calculation.<\/p>\n<p class=\"wp-block-paragraph\">I do know that every month has 31 days.<\/p>\n<p class=\"wp-block-paragraph\">To return three months, I do know that I have to return by 93 days.<\/p>\n<p class=\"wp-block-paragraph\">I can use this to create a quicker model of the measure:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-sql\">Operating Common by Month (Monetary) = \n    \/\/ Step 1: Get the final Month (ID)\n    VAR SelMonth = MAX('Monetary Calendar'[ID_Month])\n    \n    \/\/ Step 2: Generate the Date Vary from the final 93 days\n    VAR DateRange =\n        TOPN(93\n        ,CALCULATETABLE(\n                    SUMMARIZECOLUMNS('Monetary Calendar'[ID_Date])\n                    ,REMOVEFILTERS('Monetary Calendar')\n                    ,'Monetary Calendar'[ID_Month] &lt;= SelMonth\n                )\n                ,'Monetary Calendar'[ID_Date], DESC\n            )\n    \n    \n    \/\/ 3. Generate a desk filtered by the Date Vary generated at step 2\n    \/\/ This desk accommodates solely three rows\n    VAR SalesByMonth = \n        CALCULATETABLE(\n            SUMMARIZECOLUMNS(\n                'Monetary Calendar'[ID_Month]\n                , \"#Gross sales\", [Sum Online Sales]\n                \n            )\n            ,DateRange\n        )\n    \n    RETURN\n        \/\/ 4. Calculate the Common over the three values within the desk generate in step 3\n        AVERAGEX(SalesByMonth, [#Sales])\n<\/code><\/pre>\n<p class=\"wp-block-paragraph\">This time, I used the <code>TOPN()<\/code> perform to retrieve the 93 earlier rows from the Monetary Calendar desk and used this checklist as a filter.<\/p>\n<p class=\"wp-block-paragraph\">The outcomes are equivalent to the earlier model:<\/p>\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2026\/01\/image-1.jpg\" alt=\"\" class=\"wp-image-643015\"\/><figcaption class=\"wp-element-caption\">Determine 4 \u2013 Outcomes of the Model which makes use of the final 93 days (Determine by the Writer)<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">This model wants solely 118 ms to finish.<\/p>\n<p class=\"wp-block-paragraph\">However can we go even additional with the optimization?<\/p>\n<p class=\"wp-block-paragraph\">Subsequent, I added a brand new column to the Fiscal Calendar to assign ranks to the rows. Now, every date has a novel quantity which is in direct correlation to the order of them:<\/p>\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2026\/01\/image-2.jpg\" alt=\"\" class=\"wp-image-643016\"\/><figcaption class=\"wp-element-caption\">Determine 5 \u2013 Extract from the Monetary Calendar desk with the RowRank column (Determine by the Writer)<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">The measure utilizing this column is the next:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-sql\">Operating Common by Month (Monetary) = \n    \/\/ Step 1: Get the final Month (ID)\n    VAR MaxDateRank = MAX('Monetary Calendar'[ID_Date_RowRank])\n    \n    \/\/ Step 2: Generate the Date Vary from the final 93 days\n    VAR DateRange =\n            CALCULATETABLE(\n                        SUMMARIZECOLUMNS('Monetary Calendar'[ID_Date])\n                        ,REMOVEFILTERS('Monetary Calendar')\n                        ,'Monetary Calendar'[ID_Date_RowRank] &lt;= MaxDateRank\n                            &amp;&amp; 'Monetary Calendar'[ID_Date_RowRank] &gt;= MaxDateRank - 92\n                    )\n                    --ORDER BY 'Monetary Calendar'[ID_Date] DESC\n    \n    \n    \/\/ 3. Generate a desk filtered by the Date Vary generated at step 2\n    \/\/ This desk accommodates solely three rows\n    VAR SalesByMonth = \n        CALCULATETABLE(\n            SUMMARIZECOLUMNS(\n                'Monetary Calendar'[ID_Month]\n                , \"#Gross sales\", [Sum Online Sales]\n                \n            )\n            ,DateRange\n        )\n    \n    RETURN\n        \/\/ 4. Calculate the Common over the three values within the desk generate in step 3\n        AVERAGEX(SalesByMonth, [#Sales])\n<\/code><\/pre>\n<p class=\"wp-block-paragraph\">The consequence is identical, I don\u2019t present it once more.<\/p>\n<p class=\"wp-block-paragraph\">However right here is the comparability from the execution statistics:<\/p>\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2026\/01\/image-111.png\" alt=\"\" class=\"wp-image-643020\"\/><figcaption class=\"wp-element-caption\">Determine 6 \u2013 Execution statistics of the 2 Measures. On high, you see the statistics for the one utilizing TOPN(). Beneath are the statistics for the one utilizing the RowRank column (Determine by the Writer)<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">As you may see, the Model utilizing <code>TOPN()<\/code> is barely slower than the one utilizing the RowRank column.<\/p>\n<p class=\"wp-block-paragraph\">However the variations are marginal.<\/p>\n<p class=\"wp-block-paragraph\">Extra importantly, the model utilizing the RowRank column requires extra knowledge to finish the calculations. See the Rows column for particulars.<\/p>\n<p class=\"wp-block-paragraph\">This implies extra RAM utilization.<\/p>\n<p class=\"wp-block-paragraph\">However with this small variety of rows, the variations are nonetheless marginal.<\/p>\n<p class=\"wp-block-paragraph\">It\u2019s your selection which model you favor.<\/p>\n<h2 class=\"wp-block-heading\">Utilizing a weekly calendar<\/h2>\n<p class=\"wp-block-paragraph\">Lastly, let\u2019s have a look at a week-based calculation.<\/p>\n<p class=\"wp-block-paragraph\">This time, I need to calculate the rolling common over the past three weeks.<\/p>\n<p class=\"wp-block-paragraph\">Because the calendar-based Time Intelligence permits for the creation of a week-based calendar, the measure is similar to the second:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-sql\">Operating Common by Week = \n\/\/ 1. Get the primary and final Date for the present Filter Context\nVAR MaxDate = MAX( 'Gregorian Date Desk'[Date] )\n\n\n\/\/ 2. Generate the Date vary wanted for the Shifting common (three months)\nVAR  DateRange =\n DATESINPERIOD( 'Week Calendar'\n        ,MaxDate\n        ,-3\n        ,WEEK\n    )\n\n\n\n\/\/ 3. Generate a desk filtered by the Date Vary generated at step 2\n\/\/ This desk accommodates solely three rows\nVAR SalesByMonth = \n    CALCULATETABLE(\n        SUMMARIZECOLUMNS(\n            'Gregorian Date Desk'[WeekKey]\n            , \"#Gross sales\", [Sum Online Sales]\n            \n        )\n        ,DateRange\n    )\n\nRETURN\n    \/\/ 4. Calculate the Common over the three values within the desk generate in step 3\n    AVERAGEX(SalesByMonth, [#Sales])\n<\/code><\/pre>\n<p class=\"wp-block-paragraph\">The important thing half is that I exploit the \u201cWEEK\u201d parameter within the <code>DATESINPERIOD()<\/code> name.<br \/>That\u2019s all.<\/p>\n<p class=\"wp-block-paragraph\">That is the results of the question:<\/p>\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" src=\"https:\/\/contributor.insightmediagroup.io\/wp-content\/uploads\/2026\/01\/image-3.jpg\" alt=\"\" class=\"wp-image-643017\"\/><figcaption class=\"wp-element-caption\">Determine 7 \u2013 End result for the working common over three weeks (Determine by the Writer)<\/figcaption><\/figure>\n<p class=\"wp-block-paragraph\">The efficiency is superb, with execution instances beneath 100 ms.<\/p>\n<p class=\"wp-block-paragraph\">Remember that weekly calculations are solely attainable with the calendar-based Time Intelligence.<\/p>\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n<p class=\"wp-block-paragraph\">As you have got seen, the calendar-based Time Intelligence makes life simpler with customized logic: we solely must go the calendar as a substitute of a date column to the features. And we are able to calculate weekly intervals.<\/p>\n<p class=\"wp-block-paragraph\">However the present function set doesn\u2019t embrace a semester interval. After we should calculate semester-based outcomes, we should both use traditional Time Intelligence or write customized code.<\/p>\n<p class=\"wp-block-paragraph\">However we nonetheless want customized logic, particularly after we don\u2019t have a date column in our calendar desk. In such circumstances, we are able to\u2019t use the usual time intelligence features, as they nonetheless work with date columns.<\/p>\n<p class=\"wp-block-paragraph\">Bear in mind: A very powerful process when working with calendar-based Time Intelligence is constructing a constant and full calendar desk. From my expertise, that is essentially the most advanced process.<\/p>\n<p class=\"wp-block-paragraph\">As a sidenote, I discovered some attention-grabbing features on daxlib.org a few working common.<\/p>\n<p class=\"wp-block-paragraph\">I added a hyperlink to the features within the References part beneath.<\/p>\n<p class=\"wp-block-paragraph\">These features observe a very totally different sample, however I needed to incorporate them to create a whole image of this subject.<\/p>\n<h2 class=\"wp-block-heading\">References<\/h2>\n<p class=\"wp-block-paragraph\">The talked about SQLBI.com article on calculating the working Common:<\/p>\n<p class=\"wp-block-paragraph\"><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.sqlbi.com\/articles\/rolling-12-months-average-in-dax\">https:\/\/www.sqlbi.com\/articles\/rolling-12-months-average-in-dax<\/a><\/p>\n<p class=\"wp-block-paragraph\">Time Sequence features on daxlib.org with a unique method:<\/p>\n<p class=\"wp-block-paragraph\"><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/daxlib.org\/package\/TimeSeries.MovingAverage\">https:\/\/daxlib.org\/bundle\/TimeSeries.MovingAverage<\/a><\/p>\n<p class=\"wp-block-paragraph\">Right here is my final article, the place I clarify Calendar-based Time-Intelligence:<\/p>\n<p class=\"wp-block-paragraph\"><a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/towardsdatascience.com\/use-cases-for-the-new-calendar-based-time-intelligence\/\">https:\/\/towardsdatascience.com\/use-cases-for-the-new-calendar-based-time-intelligence\/<\/a><\/p>\n<p class=\"wp-block-paragraph\">Like in my earlier articles, I exploit the Contoso pattern dataset. You possibly can obtain the ContosoRetailDW Dataset free of charge from Microsoft <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=18279\">right here<\/a>.<\/p>\n<p class=\"wp-block-paragraph\">The Contoso Information can be utilized freely beneath the MIT License, as described <a rel=\"nofollow\" target=\"_blank\" href=\"https:\/\/github.com\/microsoft\/Power-BI-Embedded-Contoso-Sales-Demo\">on this doc<\/a>. I modified the dataset to shift the information to modern dates.<\/p>\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Introduction calendar-based Time Intelligence, the necessity for customized Time Intelligence logic has decreased dramatically. Now, we are able to create customized calendars to satisfy our Time Intelligence calculation wants. You might need learn my article about superior Time Intelligence: https:\/\/towardsdatascience.com\/advanced-time-intelligence-in-dax-with-performance-in-mind\/ A lot of the customized logic is now not wanted. However we nonetheless have situations [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":10989,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[7485,1136,2451,7487,7486],"class_list":["post-10987","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-machine-learning","tag-calendarbased","tag-change","tag-custom","tag-logic","tag-timeintelligence"],"_links":{"self":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/10987","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=10987"}],"version-history":[{"count":1,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/10987\/revisions"}],"predecessor-version":[{"id":10988,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/posts\/10987\/revisions\/10988"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=\/wp\/v2\/media\/10989"}],"wp:attachment":[{"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techtrendfeed.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10987"}],"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-12 14:58:42 UTC -->