[{"data":1,"prerenderedAt":1975},["ShallowReactive",2],{"navigation":3,"\u002Fdocs\u002Fguides\u002Fscoring":143,"\u002Fdocs\u002Fguides\u002Fscoring-surround":1970},[4],{"title":5,"path":6,"stem":7,"children":8,"page":32},"Docs","\u002Fdocs","docs",[9,33,58,79,112,117],{"title":10,"path":11,"stem":12,"children":13,"page":32},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002Fgetting-started",[14,18,23,28],{"title":10,"path":15,"stem":16,"order":17},"\u002Fdocs\u002Fgetting-started\u002F_dir","docs\u002Fgetting-started\u002F_dir",1,{"title":19,"path":20,"stem":21,"order":22},"Configuration Reference","\u002Fdocs\u002Fgetting-started\u002Fconfiguration","docs\u002Fgetting-started\u002Fconfiguration",2,{"title":24,"path":25,"stem":26,"order":27},"Deployment Guide","\u002Fdocs\u002Fgetting-started\u002Fdeployment","docs\u002Fgetting-started\u002Fdeployment",3,{"title":29,"path":30,"stem":31,"order":17},"Quick Start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002Fgetting-started\u002Fquick-start",false,{"title":34,"path":35,"stem":36,"children":37,"page":32},"Guides","\u002Fdocs\u002Fguides","docs\u002Fguides",[38,41,45,49,54],{"title":34,"path":39,"stem":40,"order":22},"\u002Fdocs\u002Fguides\u002F_dir","docs\u002Fguides\u002F_dir",{"title":42,"path":43,"stem":44,"order":22},"Notifications","\u002Fdocs\u002Fguides\u002Fnotifications","docs\u002Fguides\u002Fnotifications",{"title":46,"path":47,"stem":48,"order":17},"Scoring Algorithm","\u002Fdocs\u002Fguides\u002Fscoring","docs\u002Fguides\u002Fscoring",{"title":50,"path":51,"stem":52,"order":53},"Sunset Mode","\u002Fdocs\u002Fguides\u002Fsunset-mode","docs\u002Fguides\u002Fsunset-mode",4,{"title":55,"path":56,"stem":57,"order":27},"Troubleshooting","\u002Fdocs\u002Fguides\u002Ftroubleshooting","docs\u002Fguides\u002Ftroubleshooting",{"title":59,"path":60,"stem":61,"children":62,"page":32},"Project","\u002Fdocs\u002Fproject","docs\u002Fproject",[63,67,71,75],{"title":59,"path":64,"stem":65,"order":66},"\u002Fdocs\u002Fproject\u002F_dir","docs\u002Fproject\u002F_dir",6,{"title":68,"path":69,"stem":70,"order":27},"Changelog","\u002Fdocs\u002Fproject\u002Fchangelog","docs\u002Fproject\u002Fchangelog",{"title":72,"path":73,"stem":74,"order":17},"Contributing","\u002Fdocs\u002Fproject\u002Fcontributing","docs\u002Fproject\u002Fcontributing",{"title":76,"path":77,"stem":78,"order":22},"Contributors","\u002Fdocs\u002Fproject\u002Fcontributors","docs\u002Fproject\u002Fcontributors",{"title":80,"path":81,"stem":82,"children":83,"page":32},"Reference","\u002Fdocs\u002Freference","docs\u002Freference",[84,87,108],{"title":80,"path":85,"stem":86,"order":27},"\u002Fdocs\u002Freference\u002F_dir","docs\u002Freference\u002F_dir",{"title":88,"path":89,"stem":90,"children":91,"page":32},"Api","\u002Fdocs\u002Freference\u002Fapi","docs\u002Freference\u002Fapi",[92,96,100,104],{"title":93,"path":94,"stem":95,"order":22},"API Reference","\u002Fdocs\u002Freference\u002Fapi\u002F_dir","docs\u002Freference\u002Fapi\u002F_dir",{"title":97,"path":98,"stem":99,"order":22},"API Examples","\u002Fdocs\u002Freference\u002Fapi\u002Fexamples","docs\u002Freference\u002Fapi\u002Fexamples",{"title":101,"path":102,"stem":103,"order":53},"API Versioning & Stability Guarantees","\u002Fdocs\u002Freference\u002Fapi\u002Fversioning","docs\u002Freference\u002Fapi\u002Fversioning",{"title":105,"path":106,"stem":107,"order":27},"Common Workflows","\u002Fdocs\u002Freference\u002Fapi\u002Fworkflows","docs\u002Freference\u002Fapi\u002Fworkflows",{"title":109,"path":110,"stem":111,"order":17},"Architecture","\u002Fdocs\u002Freference\u002Farchitecture","docs\u002Freference\u002Farchitecture",{"title":113,"path":114,"stem":115,"order":116},"Release Workflow","\u002Fdocs\u002Freleasing","docs\u002Freleasing",5,{"title":118,"path":119,"stem":120,"children":121,"order":17},"Security Policy","\u002Fdocs\u002Fsecurity","docs\u002Fsecurity\u002Findex",[122,123,127,131,134,137,140],{"title":118,"path":119,"stem":120,"order":17},{"title":124,"path":125,"stem":126,"order":53},"Security","\u002Fdocs\u002Fsecurity\u002F_dir","docs\u002Fsecurity\u002F_dir",{"title":128,"path":129,"stem":130,"order":22},"OWASP ZAP API Scan — Baseline Report","\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260310","docs\u002Fsecurity\u002Fzap-baseline-20260310",{"title":128,"path":132,"stem":133,"order":27},"\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260316","docs\u002Fsecurity\u002Fzap-baseline-20260316",{"title":128,"path":135,"stem":136,"order":53},"\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260323","docs\u002Fsecurity\u002Fzap-baseline-20260323",{"title":128,"path":138,"stem":139,"order":116},"\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260324","docs\u002Fsecurity\u002Fzap-baseline-20260324",{"title":128,"path":141,"stem":142},"\u002Fdocs\u002Fsecurity\u002Fzap-baseline-20260406","docs\u002Fsecurity\u002Fzap-baseline-20260406",{"id":144,"title":46,"body":145,"description":1963,"extension":1964,"links":1965,"meta":1966,"navigation":1967,"path":47,"seo":1968,"stem":48,"__hash__":1969},"docs\u002Fdocs\u002Fguides\u002Fscoring.md",{"type":146,"value":147,"toc":1941},"minimark",[148,161,164,169,301,305,308,313,319,371,374,378,383,434,441,445,450,486,493,497,502,552,559,563,568,608,614,618,623,657,664,668,673,709,712,716,719,727,730,735,738,756,759,763,770,774,869,873,882,898,902,917,922,1104,1108,1317,1321,1356,1375,1394,1398,1432,1436,1533,1536,1543,1547,1553,1620,1631,1637,1668,1672,1680,1685,1712,1715,1719,1722,1807,1811,1937],[149,150,151,152,156,157,160],"p",{},"Capacitarr uses a two-layer system to decide which media items to remove when disk space runs low: ",[153,154,155],"strong",{},"preference-based scoring"," ranks every item, and ",[153,158,159],{},"protection rules"," override scores to keep or target specific content.",[149,162,163],{},"Higher score = more likely to be deleted.",[165,166,168],"h2",{"id":167},"overview","Overview",[170,171,176],"pre",{"className":172,"code":173,"language":174,"meta":175,"style":175},"language-mermaid shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","flowchart TD\n    ITEMS[\"Media Items\u003Cbr\u002F>from Sonarr, Radarr, etc.\"]\n    RULES[\"Protection Rules\u003Cbr\u002F>always_keep, prefer_keep, etc.\"]\n    PREFS[\"Preference Weights\u003Cbr\u002F>0-10 sliders per factor\"]\n\n    EVAL[\"EvaluateMedia\u003Cbr\u002F>Score each item\"]\n    RULE_CHECK{\"Rule matched?\u003Cbr\u002F>always_keep = immune\"}\n    CALC[\"calculateScore\u003Cbr\u002F>Weighted factor sum\"]\n    MODIFY[\"Apply rule modifier\u003Cbr\u002F>score x modifier\"]\n    SORT[\"SortEvaluated\u003Cbr\u002F>Highest score first\"]\n    OUTPUT[\"Ranked Deletion Queue\"]\n\n    ITEMS ==> EVAL\n    PREFS ==> EVAL\n    RULES -.->|\"override\"| EVAL\n    EVAL ==> RULE_CHECK\n    RULE_CHECK -.->|\"always_keep\"| OUTPUT\n    RULE_CHECK ==>|\"score\"| CALC\n    CALC ==> MODIFY\n    MODIFY ==> SORT\n    SORT ==> OUTPUT\n","mermaid","",[177,178,179,186,191,196,201,207,212,218,224,230,236,242,247,253,259,265,271,277,283,289,295],"code",{"__ignoreMap":175},[180,181,183],"span",{"class":182,"line":17},"line",[180,184,185],{},"flowchart TD\n",[180,187,188],{"class":182,"line":22},[180,189,190],{},"    ITEMS[\"Media Items\u003Cbr\u002F>from Sonarr, Radarr, etc.\"]\n",[180,192,193],{"class":182,"line":27},[180,194,195],{},"    RULES[\"Protection Rules\u003Cbr\u002F>always_keep, prefer_keep, etc.\"]\n",[180,197,198],{"class":182,"line":53},[180,199,200],{},"    PREFS[\"Preference Weights\u003Cbr\u002F>0-10 sliders per factor\"]\n",[180,202,203],{"class":182,"line":116},[180,204,206],{"emptyLinePlaceholder":205},true,"\n",[180,208,209],{"class":182,"line":66},[180,210,211],{},"    EVAL[\"EvaluateMedia\u003Cbr\u002F>Score each item\"]\n",[180,213,215],{"class":182,"line":214},7,[180,216,217],{},"    RULE_CHECK{\"Rule matched?\u003Cbr\u002F>always_keep = immune\"}\n",[180,219,221],{"class":182,"line":220},8,[180,222,223],{},"    CALC[\"calculateScore\u003Cbr\u002F>Weighted factor sum\"]\n",[180,225,227],{"class":182,"line":226},9,[180,228,229],{},"    MODIFY[\"Apply rule modifier\u003Cbr\u002F>score x modifier\"]\n",[180,231,233],{"class":182,"line":232},10,[180,234,235],{},"    SORT[\"SortEvaluated\u003Cbr\u002F>Highest score first\"]\n",[180,237,239],{"class":182,"line":238},11,[180,240,241],{},"    OUTPUT[\"Ranked Deletion Queue\"]\n",[180,243,245],{"class":182,"line":244},12,[180,246,206],{"emptyLinePlaceholder":205},[180,248,250],{"class":182,"line":249},13,[180,251,252],{},"    ITEMS ==> EVAL\n",[180,254,256],{"class":182,"line":255},14,[180,257,258],{},"    PREFS ==> EVAL\n",[180,260,262],{"class":182,"line":261},15,[180,263,264],{},"    RULES -.->|\"override\"| EVAL\n",[180,266,268],{"class":182,"line":267},16,[180,269,270],{},"    EVAL ==> RULE_CHECK\n",[180,272,274],{"class":182,"line":273},17,[180,275,276],{},"    RULE_CHECK -.->|\"always_keep\"| OUTPUT\n",[180,278,280],{"class":182,"line":279},18,[180,281,282],{},"    RULE_CHECK ==>|\"score\"| CALC\n",[180,284,286],{"class":182,"line":285},19,[180,287,288],{},"    CALC ==> MODIFY\n",[180,290,292],{"class":182,"line":291},20,[180,293,294],{},"    MODIFY ==> SORT\n",[180,296,298],{"class":182,"line":297},21,[180,299,300],{},"    SORT ==> OUTPUT\n",[165,302,304],{"id":303},"scoring-factors","Scoring Factors",[149,306,307],{},"Each media item is scored across seven dimensions. Every factor produces a raw score between 0.0 (keep) and 1.0 (delete), which is then multiplied by the user-configured weight (0–10).",[309,310,312],"h3",{"id":311},"play-history","Play History",[149,314,315,318],{},[153,316,317],{},"What it measures:"," How many times the item has been played.",[320,321,322,335],"table",{},[323,324,325],"thead",{},[326,327,328,332],"tr",{},[329,330,331],"th",{},"Play Count",[329,333,334],{},"Raw Score",[336,337,338,347,355,363],"tbody",{},[326,339,340,344],{},[341,342,343],"td",{},"0 (never watched)",[341,345,346],{},"1.0",[326,348,349,352],{},[341,350,351],{},"1",[341,353,354],{},"0.5",[326,356,357,360],{},[341,358,359],{},"2",[341,361,362],{},"0.25",[326,364,365,368],{},[341,366,367],{},"N",[341,369,370],{},"0.5 \u002F N",[149,372,373],{},"Unwatched content scores highest — it gets deleted first when this factor has a high weight.",[309,375,377],{"id":376},"last-played","Last Played",[149,379,380,382],{},[153,381,317],{}," How recently the item was last played.",[320,384,385,394],{},[323,386,387],{},[326,388,389,392],{},[329,390,391],{},"Time Since Played",[329,393,334],{},[336,395,396,403,411,419,426],{},[326,397,398,401],{},[341,399,400],{},"Never played",[341,402,346],{},[326,404,405,408],{},[341,406,407],{},"1 month ago",[341,409,410],{},"~0.08",[326,412,413,416],{},[341,414,415],{},"6 months ago",[341,417,418],{},"~0.49",[326,420,421,424],{},[341,422,423],{},"1 year ago",[341,425,346],{},[326,427,428,431],{},[341,429,430],{},"> 1 year ago",[341,432,433],{},"1.0 (capped)",[149,435,436,437,440],{},"The score is linear: ",[177,438,439],{},"daysSincePlayed \u002F 365",", capped at 1.0. Items played recently are protected; items played long ago (or never) score high.",[309,442,444],{"id":443},"file-size","File Size",[149,446,447,449],{},[153,448,317],{}," How much disk space the item consumes.",[320,451,452,461],{},[323,453,454],{},[326,455,456,459],{},[329,457,458],{},"Size",[329,460,334],{},[336,462,463,471,479],{},[326,464,465,468],{},[341,466,467],{},"5 GB",[341,469,470],{},"0.10",[326,472,473,476],{},[341,474,475],{},"25 GB",[341,477,478],{},"0.50",[326,480,481,484],{},[341,482,483],{},"50 GB+",[341,485,433],{},[149,487,488,489,492],{},"Calculated as ",[177,490,491],{},"sizeGB \u002F 50.0",", capped at 1.0. Larger files score higher because removing them frees more space.",[309,494,496],{"id":495},"rating","Rating",[149,498,499,501],{},[153,500,317],{}," The item's community or user rating.",[320,503,504,513],{},[323,505,506],{},[326,507,508,511],{},[329,509,510],{},"Rating (0–10)",[329,512,334],{},[336,514,515,522,530,537,545],{},[326,516,517,520],{},[341,518,519],{},"9.0",[341,521,470],{},[326,523,524,527],{},[341,525,526],{},"7.0",[341,528,529],{},"0.30",[326,531,532,535],{},[341,533,534],{},"5.0",[341,536,478],{},[326,538,539,542],{},[341,540,541],{},"2.0",[341,543,544],{},"0.80",[326,546,547,550],{},[341,548,549],{},"0 (unknown)",[341,551,478],{},[149,553,554,555,558],{},"The score is inverted: ",[177,556,557],{},"1.0 - (rating \u002F 10.0)",". High-rated content scores low (keep it), low-rated content scores high (delete it). Ratings on a 0–100 scale are auto-normalized.",[309,560,562],{"id":561},"time-in-library","Time in Library",[149,564,565,567],{},[153,566,317],{}," How long the item has been in the library.",[320,569,570,578],{},[323,571,572],{},[326,573,574,576],{},[329,575,562],{},[329,577,334],{},[336,579,580,587,594,601],{},[326,581,582,585],{},[341,583,584],{},"1 month",[341,586,410],{},[326,588,589,592],{},[341,590,591],{},"6 months",[341,593,418],{},[326,595,596,599],{},[341,597,598],{},"1 year",[341,600,346],{},[326,602,603,606],{},[341,604,605],{},"> 1 year",[341,607,433],{},[149,609,488,610,613],{},[177,611,612],{},"daysSinceAdded \u002F 365",", capped at 1.0. Older content scores higher than recently added content.",[309,615,617],{"id":616},"show-status","Show Status",[149,619,620,622],{},[153,621,317],{}," Whether a show is still producing new episodes.",[320,624,625,633],{},[323,626,627],{},[326,628,629,631],{},[329,630,617],{},[329,632,334],{},[336,634,635,643,650],{},[326,636,637,640],{},[341,638,639],{},"Continuing",[341,641,642],{},"0.2",[326,644,645,648],{},[341,646,647],{},"Ended",[341,649,346],{},[326,651,652,655],{},[341,653,654],{},"Unknown",[341,656,354],{},[149,658,659,660,663],{},"Ended shows score higher because no new episodes are expected — keeping them offers less ongoing value. This factor ",[153,661,662],{},"only applies to shows and seasons"," — movies and other media types are excluded from this factor entirely (it does not contribute to their score). Unknown series status defaults to 0.5.",[309,665,667],{"id":666},"request-popularity","Request Popularity",[149,669,670,672],{},[153,671,317],{}," Whether the item was requested by a user (via Seerr).",[320,674,675,684],{},[323,676,677],{},[326,678,679,682],{},[329,680,681],{},"Request Status",[329,683,334],{},[336,685,686,694,702],{},[326,687,688,691],{},[341,689,690],{},"Requested, not watched by requestor",[341,692,693],{},"0.1",[326,695,696,699],{},[341,697,698],{},"Requested, watched by requestor",[341,700,701],{},"0.3",[326,703,704,707],{},[341,705,706],{},"Not requested",[341,708,354],{},[149,710,711],{},"Requested content is strongly protected from deletion. Items with unfulfilled requests (not yet watched by the requestor) receive the strongest protection.",[165,713,715],{"id":714},"score-calculation","Score Calculation",[149,717,718],{},"The final weighted score combines all factors:",[170,720,725],{"className":721,"code":723,"language":724},[722],"language-text","totalScore = Σ (rawScore_i × weight_i)  for each factor i\n\nfinalScore = totalScore \u002F Σ weight_i\n","text",[177,726,723],{"__ignoreMap":175},[149,728,729],{},"All weights are normalized so the final score stays between 0.0 and 1.0 regardless of how many factors are enabled or what weight values are chosen.",[149,731,732],{},[153,733,734],{},"Example:",[149,736,737],{},"With weights Watch History=10, File Size=6, Rating=5 (all others=0):",[739,740,741,745],"ul",{},[742,743,744],"li",{},"Total weight = 10 + 6 + 5 = 21",[742,746,747,748],{},"An unwatched (1.0), 25 GB (0.5), low-rated 3.0 (0.7) item:\n",[739,749,750],{},[742,751,752,753],{},"Score = (1.0×10 + 0.5×6 + 0.7×5) \u002F 21 = (10 + 3 + 3.5) \u002F 21 = ",[153,754,755],{},"0.79",[149,757,758],{},"If all weights are set to zero, the score is 0.0 for every item and no deletions are ranked.",[165,760,762],{"id":761},"protection-rules","Protection Rules",[149,764,765,766,769],{},"Rules override the scoring engine by applying ",[153,767,768],{},"score modifiers"," — multipliers that push an item's score up or down after the weighted calculation.",[309,771,773],{"id":772},"rule-effects","Rule Effects",[320,775,776,789],{},[323,777,778],{},[326,779,780,783,786],{},[329,781,782],{},"Effect",[329,784,785],{},"Modifier",[329,787,788],{},"Behavior",[336,790,791,804,817,830,843,856],{},[326,792,793,798,801],{},[341,794,795],{},[177,796,797],{},"always_keep",[341,799,800],{},"—",[341,802,803],{},"Item is immune to deletion. Score is set to 0.0 and the item is marked as protected. No further processing.",[326,805,806,811,814],{},[341,807,808],{},[177,809,810],{},"prefer_keep",[341,812,813],{},"×0.2",[341,815,816],{},"Strongly reduces the deletion score.",[326,818,819,824,827],{},[341,820,821],{},[177,822,823],{},"lean_keep",[341,825,826],{},"×0.5",[341,828,829],{},"Moderately reduces the deletion score.",[326,831,832,837,840],{},[341,833,834],{},[177,835,836],{},"lean_remove",[341,838,839],{},"×1.5",[341,841,842],{},"Slightly increases the deletion score.",[326,844,845,850,853],{},[341,846,847],{},[177,848,849],{},"prefer_remove",[341,851,852],{},"×3.0",[341,854,855],{},"Strongly increases the deletion score.",[326,857,858,863,866],{},[341,859,860],{},[177,861,862],{},"always_remove",[341,864,865],{},"×100.0",[341,867,868],{},"Pushes the score to the maximum — item is effectively always first in the queue.",[309,870,872],{"id":871},"keep-always-wins","\"Keep Always Wins\"",[149,874,875,876,878,879,881],{},"When multiple rules match the same item, ",[177,877,797],{}," takes absolute precedence. If any matching rule has the ",[177,880,797],{}," effect, the item is unconditionally protected regardless of any other matching rules.",[149,883,884,885,888,889,891,892,894,895,897],{},"For all other effects, modifiers ",[153,886,887],{},"multiply together",". For example, if an item matches both a ",[177,890,810],{}," (×0.2) and a ",[177,893,836],{}," (×1.5) rule, the combined modifier is 0.2 × 1.5 = ",[153,896,529],{}," — the keep effect dominates.",[309,899,901],{"id":900},"rule-matching","Rule Matching",[149,903,904,905,908,909,912,913,916],{},"Rules match media items by comparing a ",[153,906,907],{},"field"," against a ",[153,910,911],{},"value"," using an ",[153,914,915],{},"operator",":",[918,919,921],"h4",{"id":920},"string-fields","String Fields",[320,923,924,937],{},[323,925,926],{},[326,927,928,931,934],{},[329,929,930],{},"Field",[329,932,933],{},"Matches Against",[329,935,936],{},"Supported Operators",[336,938,939,964,984,1004,1024,1044,1064,1084],{},[326,940,941,946,949],{},[341,942,943],{},[177,944,945],{},"title",[341,947,948],{},"Item title",[341,950,951,954,955,954,958,954,961],{},[177,952,953],{},"==",", ",[177,956,957],{},"!=",[177,959,960],{},"contains",[177,962,963],{},"!contains",[326,965,966,971,974],{},[341,967,968],{},[177,969,970],{},"quality",[341,972,973],{},"Quality profile name",[341,975,976,954,978,954,980,954,982],{},[177,977,953],{},[177,979,957],{},[177,981,960],{},[177,983,963],{},[326,985,986,991,994],{},[341,987,988],{},[177,989,990],{},"seriesstatus",[341,992,993],{},"Show status (ended, continuing)",[341,995,996,954,998,954,1000,954,1002],{},[177,997,953],{},[177,999,957],{},[177,1001,960],{},[177,1003,963],{},[326,1005,1006,1011,1014],{},[341,1007,1008],{},[177,1009,1010],{},"tag",[341,1012,1013],{},"Any tag on the item",[341,1015,1016,954,1018,954,1020,954,1022],{},[177,1017,953],{},[177,1019,957],{},[177,1021,960],{},[177,1023,963],{},[326,1025,1026,1031,1034],{},[341,1027,1028],{},[177,1029,1030],{},"genre",[341,1032,1033],{},"Genre name",[341,1035,1036,954,1038,954,1040,954,1042],{},[177,1037,953],{},[177,1039,957],{},[177,1041,960],{},[177,1043,963],{},[326,1045,1046,1051,1054],{},[341,1047,1048],{},[177,1049,1050],{},"language",[341,1052,1053],{},"Language",[341,1055,1056,954,1058,954,1060,954,1062],{},[177,1057,953],{},[177,1059,957],{},[177,1061,960],{},[177,1063,963],{},[326,1065,1066,1071,1074],{},[341,1067,1068],{},[177,1069,1070],{},"type",[341,1072,1073],{},"Media type (movie, show, season, etc.)",[341,1075,1076,954,1078,954,1080,954,1082],{},[177,1077,953],{},[177,1079,957],{},[177,1081,960],{},[177,1083,963],{},[326,1085,1086,1091,1094],{},[341,1087,1088],{},[177,1089,1090],{},"collection",[341,1092,1093],{},"Collection name (Plex, Jellyfin, Emby)",[341,1095,1096,954,1098,954,1100,954,1102],{},[177,1097,953],{},[177,1099,957],{},[177,1101,960],{},[177,1103,963],{},[918,1105,1107],{"id":1106},"numeric-fields","Numeric Fields",[320,1109,1110,1120],{},[323,1111,1112],{},[326,1113,1114,1116,1118],{},[329,1115,930],{},[329,1117,933],{},[329,1119,936],{},[336,1121,1122,1149,1173,1197,1221,1245,1269,1293],{},[326,1123,1124,1128,1131],{},[341,1125,1126],{},[177,1127,495],{},[341,1129,1130],{},"Rating (0–10 or 0–100)",[341,1132,1133,954,1135,954,1137,954,1140,954,1143,954,1146],{},[177,1134,953],{},[177,1136,957],{},[177,1138,1139],{},">",[177,1141,1142],{},">=",[177,1144,1145],{},"\u003C",[177,1147,1148],{},"\u003C=",[326,1150,1151,1156,1159],{},[341,1152,1153],{},[177,1154,1155],{},"sizeBytes",[341,1157,1158],{},"File size in bytes",[341,1160,1161,954,1163,954,1165,954,1167,954,1169,954,1171],{},[177,1162,953],{},[177,1164,957],{},[177,1166,1139],{},[177,1168,1142],{},[177,1170,1145],{},[177,1172,1148],{},[326,1174,1175,1180,1183],{},[341,1176,1177],{},[177,1178,1179],{},"timeInLibrary",[341,1181,1182],{},"Days since added",[341,1184,1185,954,1187,954,1189,954,1191,954,1193,954,1195],{},[177,1186,953],{},[177,1188,957],{},[177,1190,1139],{},[177,1192,1142],{},[177,1194,1145],{},[177,1196,1148],{},[326,1198,1199,1204,1207],{},[341,1200,1201],{},[177,1202,1203],{},"seasonCount",[341,1205,1206],{},"Season number",[341,1208,1209,954,1211,954,1213,954,1215,954,1217,954,1219],{},[177,1210,953],{},[177,1212,957],{},[177,1214,1139],{},[177,1216,1142],{},[177,1218,1145],{},[177,1220,1148],{},[326,1222,1223,1228,1231],{},[341,1224,1225],{},[177,1226,1227],{},"episodeCount",[341,1229,1230],{},"Episode count",[341,1232,1233,954,1235,954,1237,954,1239,954,1241,954,1243],{},[177,1234,953],{},[177,1236,957],{},[177,1238,1139],{},[177,1240,1142],{},[177,1242,1145],{},[177,1244,1148],{},[326,1246,1247,1252,1255],{},[341,1248,1249],{},[177,1250,1251],{},"playCount",[341,1253,1254],{},"Number of plays",[341,1256,1257,954,1259,954,1261,954,1263,954,1265,954,1267],{},[177,1258,953],{},[177,1260,957],{},[177,1262,1139],{},[177,1264,1142],{},[177,1266,1145],{},[177,1268,1148],{},[326,1270,1271,1276,1279],{},[341,1272,1273],{},[177,1274,1275],{},"requestCount",[341,1277,1278],{},"Number of requests (Seerr)",[341,1280,1281,954,1283,954,1285,954,1287,954,1289,954,1291],{},[177,1282,953],{},[177,1284,957],{},[177,1286,1139],{},[177,1288,1142],{},[177,1290,1145],{},[177,1292,1148],{},[326,1294,1295,1300,1303],{},[341,1296,1297],{},[177,1298,1299],{},"year",[341,1301,1302],{},"Release year",[341,1304,1305,954,1307,954,1309,954,1311,954,1313,954,1315],{},[177,1306,953],{},[177,1308,957],{},[177,1310,1139],{},[177,1312,1142],{},[177,1314,1145],{},[177,1316,1148],{},[918,1318,1320],{"id":1319},"temporal-fields","Temporal Fields",[320,1322,1323,1333],{},[323,1324,1325],{},[326,1326,1327,1329,1331],{},[329,1328,930],{},[329,1330,933],{},[329,1332,936],{},[336,1334,1335],{},[326,1336,1337,1342,1345],{},[341,1338,1339],{},[177,1340,1341],{},"lastplayed",[341,1343,1344],{},"Days since last played",[341,1346,1347,954,1350,954,1353],{},[177,1348,1349],{},"in_last",[177,1351,1352],{},"over_ago",[177,1354,1355],{},"never",[739,1357,1358,1363,1369],{},[742,1359,1360,1362],{},[177,1361,1355],{}," matches items that have never been played",[742,1364,1365,1368],{},[177,1366,1367],{},"in_last N"," matches items played within the last N days",[742,1370,1371,1374],{},[177,1372,1373],{},"over_ago N"," matches items last played more than N days ago (never-played items also match)",[1376,1377,1378],"blockquote",{},[149,1379,1380,1383,1384,1387,1388,1390,1391,1393],{},[153,1381,1382],{},"Note:"," The ",[177,1385,1386],{},"timeinLibrary"," numeric field also supports ",[177,1389,1349],{}," and ",[177,1392,1352],{}," operators in addition to the standard numeric operators.",[918,1395,1397],{"id":1396},"string-fields-additional","String Fields (Additional)",[320,1399,1400,1410],{},[323,1401,1402],{},[326,1403,1404,1406,1408],{},[329,1405,930],{},[329,1407,933],{},[329,1409,936],{},[336,1411,1412],{},[326,1413,1414,1419,1422],{},[341,1415,1416],{},[177,1417,1418],{},"requestedby",[341,1420,1421],{},"Username of the requestor (Seerr)",[341,1423,1424,954,1426,954,1428,954,1430],{},[177,1425,953],{},[177,1427,957],{},[177,1429,960],{},[177,1431,963],{},[918,1433,1435],{"id":1434},"boolean-fields","Boolean Fields",[320,1437,1438,1449],{},[323,1439,1440],{},[326,1441,1442,1444,1446],{},[329,1443,930],{},[329,1445,933],{},[329,1447,1448],{},"Values",[336,1450,1451,1469,1485,1501,1517],{},[326,1452,1453,1458,1461],{},[341,1454,1455],{},[177,1456,1457],{},"monitored",[341,1459,1460],{},"Monitored status",[341,1462,1463,954,1466],{},[177,1464,1465],{},"true",[177,1467,1468],{},"false",[326,1470,1471,1476,1479],{},[341,1472,1473],{},[177,1474,1475],{},"requested",[341,1477,1478],{},"Has active request (Seerr)",[341,1480,1481,954,1483],{},[177,1482,1465],{},[177,1484,1468],{},[326,1486,1487,1492,1495],{},[341,1488,1489],{},[177,1490,1491],{},"incollection",[341,1493,1494],{},"Item belongs to any collection (Plex, Jellyfin, Emby)",[341,1496,1497,954,1499],{},[177,1498,1465],{},[177,1500,1468],{},[326,1502,1503,1508,1511],{},[341,1504,1505],{},[177,1506,1507],{},"watchlist",[341,1509,1510],{},"On watchlist (Plex on-deck \u002F Jellyfin\u002FEmby favorites)",[341,1512,1513,954,1515],{},[177,1514,1465],{},[177,1516,1468],{},[326,1518,1519,1524,1527],{},[341,1520,1521],{},[177,1522,1523],{},"watchedbyreq",[341,1525,1526],{},"Watched by the requestor (Seerr)",[341,1528,1529,954,1531],{},[177,1530,1465],{},[177,1532,1468],{},[149,1534,1535],{},"Rules can optionally be scoped to a specific integration — a rule scoped to one Sonarr instance will not affect items from Radarr or another Sonarr instance.",[1376,1537,1538],{},[149,1539,1540,1542],{},[153,1541,1382],{}," The rule builder's service dropdown only shows *arr integrations (Sonarr, Radarr, Lidarr, Readarr) because rules operate on *arr library items. Enrichment services like Plex, Jellyfin, Emby, Tautulli, Jellystat, Tracearr, and Seerr are not shown as selectable services. Instead, when an enrichment service is active, its fields (e.g., \"Play Count\" from Plex\u002FTautulli\u002FTracearr, \"Is Requested\" from Seerr) are automatically available in the rule builder for any *arr integration. This means you write a rule scoped to Sonarr using the \"Play Count\" field, and Capacitarr enriches the Sonarr items with play data from Plex\u002FTautulli\u002FTracearr behind the scenes.",[309,1544,1546],{"id":1545},"watchlist-enrichment","Watchlist Enrichment",[149,1548,1549,1550,1552],{},"The ",[177,1551,1507],{}," rule field reflects whether a media item is on the user's watchlist or favorites list. The data source depends on which media servers are connected:",[320,1554,1555,1568],{},[323,1556,1557],{},[326,1558,1559,1562,1565],{},[329,1560,1561],{},"Media Server",[329,1563,1564],{},"Source",[329,1566,1567],{},"What It Means",[336,1569,1570,1583,1596,1607],{},[326,1571,1572,1577,1580],{},[341,1573,1574],{},[153,1575,1576],{},"Plex",[341,1578,1579],{},"On-deck items",[341,1581,1582],{},"Items the user is actively interested in (partially watched or next in a series)",[326,1584,1585,1590,1593],{},[341,1586,1587],{},[153,1588,1589],{},"Jellyfin",[341,1591,1592],{},"Favorited items",[341,1594,1595],{},"Items the user has explicitly marked as favorites",[326,1597,1598,1603,1605],{},[341,1599,1600],{},[153,1601,1602],{},"Emby",[341,1604,1592],{},[341,1606,1595],{},[326,1608,1609,1614,1617],{},[341,1610,1611],{},[153,1612,1613],{},"Seerr",[341,1615,1616],{},"Requested items",[341,1618,1619],{},"Items with active user requests (Overseerr\u002FJellyseerr)",[149,1621,1622,1623,1626,1627,1630],{},"When multiple media servers are connected, an item is marked ",[177,1624,1625],{},"OnWatchlist = true"," if ",[153,1628,1629],{},"any"," connected source reports it as on-watchlist\u002Ffavorited\u002Frequested.",[149,1632,1633,1636],{},[153,1634,1635],{},"Example rule:"," To protect all items the user is actively interested in:",[739,1638,1639,1647,1654,1661],{},[742,1640,1641,1644,1645],{},[153,1642,1643],{},"Field:"," ",[177,1646,1507],{},[742,1648,1649,1644,1652],{},[153,1650,1651],{},"Operator:",[177,1653,953],{},[742,1655,1656,1644,1659],{},[153,1657,1658],{},"Value:",[177,1660,1465],{},[742,1662,1663,1644,1666],{},[153,1664,1665],{},"Effect:",[177,1667,797],{},[309,1669,1671],{"id":1670},"collection-autocomplete","Collection Autocomplete",[149,1673,1549,1674,1676,1677,1679],{},[177,1675,1090],{}," rule field matches against collection names from Plex, Jellyfin, and Emby. The rule builder provides autocomplete suggestions populated from all enabled media server integrations. When you select the ",[177,1678,1090],{}," field in the rule builder, a combobox shows all known collection names — you can type to filter or select from the list.",[149,1681,1682,1684],{},[153,1683,1635],{}," To protect all items in a \"Classics\" collection:",[739,1686,1687,1693,1699,1706],{},[742,1688,1689,1644,1691],{},[153,1690,1643],{},[177,1692,1090],{},[742,1694,1695,1644,1697],{},[153,1696,1651],{},[177,1698,953],{},[742,1700,1701,1644,1703],{},[153,1702,1658],{},[177,1704,1705],{},"Classics",[742,1707,1708,1644,1710],{},[153,1709,1665],{},[177,1711,797],{},[149,1713,1714],{},"Collection values are cached for performance and refreshed periodically from connected media servers.",[165,1716,1718],{"id":1717},"tiebreaker-methods","Tiebreaker Methods",[149,1720,1721],{},"When two items have the same score (within a tolerance of 0.0001), a tiebreaker determines the order:",[320,1723,1724,1737],{},[323,1725,1726],{},[326,1727,1728,1731,1734],{},[329,1729,1730],{},"Method",[329,1732,1733],{},"Sort Order",[329,1735,1736],{},"Description",[336,1738,1739,1755,1768,1781,1794],{},[326,1740,1741,1746,1749],{},[341,1742,1743],{},[177,1744,1745],{},"size_desc",[341,1747,1748],{},"Largest first",[341,1750,1751,1754],{},[153,1752,1753],{},"Default."," Frees the most space per deletion.",[326,1756,1757,1762,1765],{},[341,1758,1759],{},[177,1760,1761],{},"size_asc",[341,1763,1764],{},"Smallest first",[341,1766,1767],{},"Removes more items before hitting large ones.",[326,1769,1770,1775,1778],{},[341,1771,1772],{},[177,1773,1774],{},"name_asc",[341,1776,1777],{},"Alphabetical (A→Z)",[341,1779,1780],{},"Predictable, deterministic ordering.",[326,1782,1783,1788,1791],{},[341,1784,1785],{},[177,1786,1787],{},"oldest_first",[341,1789,1790],{},"Added earliest → latest",[341,1792,1793],{},"Older library items are removed first.",[326,1795,1796,1801,1804],{},[341,1797,1798],{},[177,1799,1800],{},"newest_first",[341,1802,1803],{},"Added latest → earliest",[341,1805,1806],{},"Recently added items are removed first.",[165,1808,1810],{"id":1809},"end-to-end-flow","End-to-End Flow",[170,1812,1814],{"className":172,"code":1813,"language":174,"meta":175,"style":175},"flowchart TD\n    POLL[\"Poller fetches media\u003Cbr\u002F>from all integrations\"]\n    GROUP[\"Items grouped\u003Cbr\u002F>by disk group\"]\n    THRESHOLD{\"Disk usage\u003Cbr\u002F>above threshold?\"}\n    EVALUATE[\"EvaluateMedia\u003Cbr\u002F>Score + rules for each item\"]\n    RANK[\"SortEvaluated\u003Cbr\u002F>Rank by score, apply tiebreaker\"]\n    PREVIEW[\"Preview queue\u003Cbr\u002F>shown on dashboard\"]\n    MODE{\"Engine mode?\"}\n    NOTIFY[\"Dry Run\u003Cbr\u002F>Notification only\"]\n    APPROVE[\"Approval\u003Cbr\u002F>User reviews queue\"]\n    AUTO[\"Auto\u003Cbr\u002F>Execute deletions\"]\n    SUNSET[\"Sunset\u003Cbr\u002F>Countdown period before deletion\"]\n\n    POLL --> GROUP\n    GROUP --> THRESHOLD\n    THRESHOLD -->|\"No\"| POLL\n    THRESHOLD -->|\"Yes\"| EVALUATE\n    EVALUATE --> RANK\n    RANK --> PREVIEW\n    PREVIEW --> MODE\n    MODE -.->|\"Dry Run\"| NOTIFY\n    MODE -->|\"Approval\"| APPROVE\n    MODE ==>|\"Auto\"| AUTO\n    MODE -->|\"Sunset\"| SUNSET\n",[177,1815,1816,1820,1825,1830,1835,1840,1845,1850,1855,1860,1865,1870,1875,1879,1884,1889,1894,1899,1904,1909,1914,1919,1925,1931],{"__ignoreMap":175},[180,1817,1818],{"class":182,"line":17},[180,1819,185],{},[180,1821,1822],{"class":182,"line":22},[180,1823,1824],{},"    POLL[\"Poller fetches media\u003Cbr\u002F>from all integrations\"]\n",[180,1826,1827],{"class":182,"line":27},[180,1828,1829],{},"    GROUP[\"Items grouped\u003Cbr\u002F>by disk group\"]\n",[180,1831,1832],{"class":182,"line":53},[180,1833,1834],{},"    THRESHOLD{\"Disk usage\u003Cbr\u002F>above threshold?\"}\n",[180,1836,1837],{"class":182,"line":116},[180,1838,1839],{},"    EVALUATE[\"EvaluateMedia\u003Cbr\u002F>Score + rules for each item\"]\n",[180,1841,1842],{"class":182,"line":66},[180,1843,1844],{},"    RANK[\"SortEvaluated\u003Cbr\u002F>Rank by score, apply tiebreaker\"]\n",[180,1846,1847],{"class":182,"line":214},[180,1848,1849],{},"    PREVIEW[\"Preview queue\u003Cbr\u002F>shown on dashboard\"]\n",[180,1851,1852],{"class":182,"line":220},[180,1853,1854],{},"    MODE{\"Engine mode?\"}\n",[180,1856,1857],{"class":182,"line":226},[180,1858,1859],{},"    NOTIFY[\"Dry Run\u003Cbr\u002F>Notification only\"]\n",[180,1861,1862],{"class":182,"line":232},[180,1863,1864],{},"    APPROVE[\"Approval\u003Cbr\u002F>User reviews queue\"]\n",[180,1866,1867],{"class":182,"line":238},[180,1868,1869],{},"    AUTO[\"Auto\u003Cbr\u002F>Execute deletions\"]\n",[180,1871,1872],{"class":182,"line":244},[180,1873,1874],{},"    SUNSET[\"Sunset\u003Cbr\u002F>Countdown period before deletion\"]\n",[180,1876,1877],{"class":182,"line":249},[180,1878,206],{"emptyLinePlaceholder":205},[180,1880,1881],{"class":182,"line":255},[180,1882,1883],{},"    POLL --> GROUP\n",[180,1885,1886],{"class":182,"line":261},[180,1887,1888],{},"    GROUP --> THRESHOLD\n",[180,1890,1891],{"class":182,"line":267},[180,1892,1893],{},"    THRESHOLD -->|\"No\"| POLL\n",[180,1895,1896],{"class":182,"line":273},[180,1897,1898],{},"    THRESHOLD -->|\"Yes\"| EVALUATE\n",[180,1900,1901],{"class":182,"line":279},[180,1902,1903],{},"    EVALUATE --> RANK\n",[180,1905,1906],{"class":182,"line":285},[180,1907,1908],{},"    RANK --> PREVIEW\n",[180,1910,1911],{"class":182,"line":291},[180,1912,1913],{},"    PREVIEW --> MODE\n",[180,1915,1916],{"class":182,"line":297},[180,1917,1918],{},"    MODE -.->|\"Dry Run\"| NOTIFY\n",[180,1920,1922],{"class":182,"line":1921},22,[180,1923,1924],{},"    MODE -->|\"Approval\"| APPROVE\n",[180,1926,1928],{"class":182,"line":1927},23,[180,1929,1930],{},"    MODE ==>|\"Auto\"| AUTO\n",[180,1932,1934],{"class":182,"line":1933},24,[180,1935,1936],{},"    MODE -->|\"Sunset\"| SUNSET\n",[1938,1939,1940],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":175,"searchDepth":17,"depth":22,"links":1942},[1943,1944,1953,1954,1961,1962],{"id":167,"depth":22,"text":168},{"id":303,"depth":22,"text":304,"children":1945},[1946,1947,1948,1949,1950,1951,1952],{"id":311,"depth":27,"text":312},{"id":376,"depth":27,"text":377},{"id":443,"depth":27,"text":444},{"id":495,"depth":27,"text":496},{"id":561,"depth":27,"text":562},{"id":616,"depth":27,"text":617},{"id":666,"depth":27,"text":667},{"id":714,"depth":22,"text":715},{"id":761,"depth":22,"text":762,"children":1955},[1956,1957,1958,1959,1960],{"id":772,"depth":27,"text":773},{"id":871,"depth":27,"text":872},{"id":900,"depth":27,"text":901},{"id":1545,"depth":27,"text":1546},{"id":1670,"depth":27,"text":1671},{"id":1717,"depth":22,"text":1718},{"id":1809,"depth":22,"text":1810},"Capacitarr uses a two-layer system to decide which media items to remove when disk space runs low: preference-based scoring ranks every item, and protection rules override scores to keep or target specific content.","md",null,{},{"order":17},{"title":46,"description":1963},"O4AfJWHouBWgHx0zslLWRImIgVn0aQbVY9auUmp-LwQ",[1971,1973],{"title":42,"path":43,"stem":44,"description":1972,"order":22,"children":-1},"Capacitarr provides real-time notifications through Discord webhooks and Apprise (supporting 80+ notification services). Notifications keep you informed about engine activity, disk usage alerts, and system events without needing to check the dashboard. System events are also recorded in the Activity Log on the dashboard for at-a-glance visibility.",{"title":50,"path":51,"stem":52,"description":1974,"order":53,"children":-1},"Sunset mode is a two-threshold countdown system that gives media a grace period before deletion. When disk usage crosses the sunset threshold, candidates enter a queue with a configurable countdown timer. During the countdown, labels and poster overlays notify household members that content is scheduled for removal. If usage spikes past the critical threshold, items are escalated to immediate deletion.",1776649613243]