Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Advertisement Create a free account

D&D 5th Edition by Roll20 (Q2Y2021)

1621445483
Nic B.
Roll20 Team
The thread for all things D&D 5E by Roll20 sheet related including both the sheet itself and the Charactermancers. This the place for to collect known issues, bug reports, and see recent changes. Sheet Summary Most Recent Updates We resolved an issue where the Level+ Toolbar was disappearing under certain circumstances. We resolved an issue where charactermancer level up would not complete. We fixed an issue where toggling options for NPC bonus actions would not display those actions What’s Next? Enhanced Support for Van Richten's Guide to Ravenloft! Enhanced Support for Tasha's Cauldron of Everything. Updates to Spell Roll Templates How to Report a Bug Use this link to report a bug on Roll20’s Help Center. This is the best way to ensure the problem is seen by our team of sheet authors. When reporting a bug in this thread, please use the templates below. Sheet Issue Template Description of issue: Try being as detailed as possible when writing a description. Documenting the exact steps you've taken will let us follow the same path in trying to replicate & test the issue. Screenshots: A picture is worth a 1,000 words and a Gif 10,000. Feature Request Template Brief Description: A quick summation of the feature, why it is needed and who it would help. Screenshots: Book (Core Rule Book, Bestiary...), page #s
1621446280

Edited 1621449365
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Woohoo! A new thread! Thanks, Nic B. The What's Next section looks to herald some very welcome changes. Edit: Since the old thread will eventually sink, here is the link for reference , in case anyone needs to quote an existing issue, or find an existing solution.
1621529343
Giger
Pro
API Scripter
I'm not sure if i'm just doing something wrong but... I'm trying to use Honor/Sanity features....I have them both turned on in the game settings, however, when I go into the game, i don't see added to the attributes list (or anywhere else on the page). I went into the sheet and don't see any additional settings i need to configure to have it appear. Any idea's what i need to do to get honor/sanity attributes to appear?
1621529847
Nic B.
Roll20 Team
Hi Geiger, Once you've enabled Honor and Sanity for your game, sheets created after that point will have those additional ability scores available. You can retroactively update this for existing sheets by going to the game settings (cogwheel in the sidebar), scrolling right to the bottom and clicking the button 'Apply Default Settings'. This should open a panel where you can selectively apply the changes you've made. Hope this helps, let me know if you need help!
1621529922
Brian C.
Pro
Marketplace Creator
Compendium Curator
I have run into an issue with the lazy-loading of NPC character sheets (possibly since the sanitization change on character sheets/when the loading icon started appearing). It occurred while I was loading all the character sheets for a game to make sure I checked them all for errors without skipping any. If you open a lot of character sheets in succession, the ones that are opened later load the NPC trait labels, but the text of the traits does not load. If the character sheet is loaded on its own, the text shows up. Once the character sheet has loaded successfully, it will continue to do so, even if it is loaded at the end of a string of character sheets.
1621530160

Edited 1621530218
Nic B.
Roll20 Team
Hi Brian, A few quick questions: Is this behavior displayed when opening existing characters from the journal, or when dragging in from the compendium? Do these trait descriptions reappear if you close the sheet and reopen it? Have you noticed this affecting any other descriptions (i.e. attacks, reactions, etc.)?
1621530509
Brian C.
Pro
Marketplace Creator
Compendium Curator
Nic B. said: Hi Brian, A few quick questions: Is this behavior displayed when opening existing characters from the journal, or when dragging in from the compendium? Do these trait descriptions reappear if you close the sheet and reopen it? Existing characters in the journal. If you open enough at once by rapidly clicking through the list to make them all load simultaneously, any that had to wait their turn don't load their traits. If you open them one at a time and wait for one to finish loading before opening the next one, they all load correctly. Once a character loads correctly, it will continue to load correctly regardless of whether it was opened on its own or along with a bunch of others. Once you exit the game and enter the game again, it is possible to encounter the bug again with a character sheet that had previously been loaded successfully. This is not isolated to any one game in particular.
1621531353
Nic B.
Roll20 Team
Hi Brian, I was able to reproduce, thanks! I'll put a ticket together for investigation. I do just want to confirm, though. In my testing it seems like closing and opening the sheet has these descriptions reappear. Did you see any data loss when you found this issue?
1621531852

Edited 1621531893
Brian C.
Pro
Marketplace Creator
Compendium Curator
Nic B. said: Hi Brian, I was able to reproduce, thanks! I'll put a ticket together for investigation. I do just want to confirm, though. In my testing it seems like closing and opening the sheet has these descriptions reappear. Did you see any data loss when you found this issue? You can merge it with #57083. No data loss per se. Everything is still on the server side. Closing an affected character and opening it on its own will cause the data to appear. However, someone could see the empty trait, think the data was lost, and update it, overwriting the old data. I spent a few hours re-entering text on character sheets for a marketplace patch before realizing the cause of the bug was not the automated UDL patch and realizing I had wasted my time.
Brief Description: Being able to add spells from your compendiums like in the charactermancer when finding a spellbook mid level and transcribing spells Screenshots:
1621730096
BP
Pro
Testing.
1622677832
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
The link for spell description in chat is very welcome, thanks! Spells with an attack that are dragged to the sheet or added through the charactermancer will now have a link to show the spell description displayed in the chat. However, I have noticed two oddities: 1. It does not seem to work with spells already on the sheet. If a given spell is deleted and re-added it works fine. Otherwise two error messages are generated:  No ability was found for %{undefined|repeating_spell-cantrip_output} undefined|repeating_spell-cantrip_-mpzik8vax2obaqysrf5_output The first is from the system (orange bg), the second is attributed to the caster (blue bg). 2. The spell in question needs to have spell description set to "On" or "Partial", otherwise the link does not appear. This seems to be counterintuitive, so I may be missing something.
1622722733

Edited 1622722825
Miguel
Roll20 Production Team
Sheet Author
Hey @Keith, I will take a look at the issue you have mentioned and see it I can release a hotfix for it, undefined should be instead the character_id, so there is probably something going on that slipped through the cracks. @Vamphuntor we have been working on a feature that should make this kind of suggestion viable in the near future. Keep an eye for future updates on this thread.
1622724603
I was seeing this too on Tuesday. After I saw this message, I went and checked all of my players' spells. I don't know if there was a hotfix for this but now, some spells, when clicked on do nothing.  And other spells are exhibiting weird, and counterintuitive and, IMHO wrong behavior. For example, casting "Scorching Ray" (2nd level wizard spell) puts an attack roll into the chat but doesn't decrement the "slots remaining" counter. But, if you click on the spell name in the chat window, it rolls the damage and shows a DC Save and then decrements the "slots remaining". This is not the way it should work, IMO. The spell is cast when you do the attack and so the "slots remaining" should be decremented immediately regardless of whether the spell hits or not.  Furthermore, "Scorching Ray" is an attack spell so the DC is irrelevant because there is no save involved. All that should display is the damage roll.   The same problem appears to exist now for ALL attack spells that I've tried.  keithcurtis said: The link for spell description in chat is very welcome, thanks! Spells with an attack that are dragged to the sheet or added through the charactermancer will now have a link to show the spell description displayed in the chat. However, I have noticed two oddities: 1. It does not seem to work with spells already on the sheet. If a given spell is deleted and re-added it works fine. Otherwise two error messages are generated:  No ability was found for %{undefined|repeating_spell-cantrip_output} undefined|repeating_spell-cantrip_-mpzik8vax2obaqysrf5_output The first is from the system (orange bg), the second is attributed to the caster (blue bg). 2. The spell in question needs to have spell description set to "On" or "Partial", otherwise the link does not appear. This seems to be counterintuitive, so I may be missing something.
1622737395
Miguel
Roll20 Production Team
Sheet Author
Dear Saul J., Slot tracking is handled by the companion script. I just checked how it was working on a sheet running an old version of the production code and slots were only decremented when you clicked the damage for "Scorching Ray." See animated GIF below: As for the Spell DC, I believe you are referencing the save that appears in the bottom of the information card, right? If so, when this feature was launched a while ago, the saving was set to be displayed on all the spells. Removing it for attack spells is on our todo list. With that said, please le me know if by Spell DC you meant something else. It would also be really useful if could list other weird things you found out on your spells. Cheers, Miguel
1622738621

Edited 1622739232
Until the recent changes, slots were decremented when you cast the spell. I'm ABSOLUTELY 100% positive about this. For example, Magic Missile, which is not an attack, subtracted the slot immediately as did other non-attack spells like Fireball and Cure Wounds. Now, the slots are not being decremented. And the save DC was NOT shown for attacks spells.  Here are two examples from the chat archive from last Tuesday: And Scorching Ray from two weeks ago did: Miguel said: Dear Saul J., Slot tracking is handled by the companion script. I just checked how it was working on a sheet running an old version of the production code and slots were only decremented when you clicked the damage for "Scorching Ray." See animated GIF below: As for the Spell DC, I believe you are referencing the save that appears in the bottom of the information card, right? If so, when this feature was launched a while ago, the saving was set to be displayed on all the spells. Removing it for attack spells is on our todo list. With that said, please le me know if by Spell DC you meant something else. It would also be really useful if could list other weird things you found out on your spells. Cheers, Miguel
1622740072
Miguel
Roll20 Production Team
Sheet Author
Hey Saul J., I have just tried the companion script with a version of the sheet 3 months old and the slot for casting scorching ray was only reduced when clicking the damage (if you happen to have auto roll attack and damage off.) So I decided to take a look at the companion script, here is the bit we are interested in: if(["dmg","atkdmg"].indexOf(msg.rolltemplate) > -1) { if(_.has(msg,'inlinerolls') && msg.content.indexOf("{{spelllevel=") > -1 && msg.content.indexOf("{{spelllevel=}}") === -1 && character && state.FifthEditionOGLbyRoll20.spelltracking != "off") { handleslotattack(msg,character,player); } } As you can see, the listeners are set up to listen for messages with either dmg or atkdmg templates. "dmg" is used when you click to roll the spell damage and "atkdmg" is used when you have "auto roll attack and damage" toggled on. Otherwise an attack spell will use the template "atk" which is not set up as a listener. The script was last updated 6 months ago. I hope that clarifies things.
1622748383
I'm not going to argue with you about the slots because I know what's been happening in my game and when the players have had to adjust the slots manually, which they have to do often for various reasons. And, like I said, the current methodology is incorrect.  First of all, the slot is used when the spell is cast, not when damage is done. If the attack misses, the slot is still used and should be decremented. Secondly, some spells like Scorching Ray, which shoots 3 rays, should only decrement the slot once even though there are 3 rays and 3 attack rolls (and potentially 3 damage rolls). As for spell save DC: Scorching Ray, a ranged attack spell, does not show the DC. But, Ray of Sickness, a ranged attack spell, does. It looks like that's because Ray of Sickness also applies the "poisoned" condition on a failed CON save so a DC is appropriate in that case. I haven't tried all the spells so I don't know if the DC is being properly displayed now in each case or not.  In the description boxes, I know it's wrong in some cases. For example, Magic Missile should not have a Spell Save DC displayed - it's neither an attack, nor a save and there should be no DC.  What I was noticing earlier today, after the error condition was apparently fixed, is that clicking a spell on a person's sheet sometimes did nothing - nothing would be displayed in chat. I don't know why. Every week my players are working around problems, mostly with casting spells. It can be frustrating.  Magic Missile and Hunter's Mark are the most frequent causes of frustration.  Magic Missile in particular because Roll20 only rolls damage for one dart, even though the base spell casts 3 darts and Roll20 doesn't ask if you want to upcast the spell, or roll the damage for all of the darts, which should be rolled individually because each dart can hit a different opponent.   Miguel said: Hey Saul J., I have just tried the companion script with a version of the sheet 3 months old and the slot for casting scorching ray was only reduced when clicking the damage (if you happen to have auto roll attack and damage off.) So I decided to take a look at the companion script, here is the bit we are interested in: if(["dmg","atkdmg"].indexOf(msg.rolltemplate) > -1) { if(_.has(msg,'inlinerolls') && msg.content.indexOf("{{spelllevel=") > -1 && msg.content.indexOf("{{spelllevel=}}") === -1 && character && state.FifthEditionOGLbyRoll20.spelltracking != "off") { handleslotattack(msg,character,player); } } As you can see, the listeners are set up to listen for messages with either dmg or atkdmg templates. "dmg" is used when you click to roll the spell damage and "atkdmg" is used when you have "auto roll attack and damage" toggled on. Otherwise an attack spell will use the template "atk" which is not set up as a listener. The script was last updated 6 months ago. I hope that clarifies things.
1622749497
Miguel
Roll20 Production Team
Sheet Author
Keith, this issue should be now fixed. keithcurtis said: The link for spell description in chat is very welcome, thanks! Spells with an attack that are dragged to the sheet or added through the charactermancer will now have a link to show the spell description displayed in the chat. However, I have noticed two oddities: 1. It does not seem to work with spells already on the sheet. If a given spell is deleted and re-added it works fine. Otherwise two error messages are generated:  No ability was found for %{undefined|repeating_spell-cantrip_output} undefined|repeating_spell-cantrip_-mpzik8vax2obaqysrf5_output The first is from the system (orange bg), the second is attributed to the caster (blue bg). 2. The spell in question needs to have spell description set to "On" or "Partial", otherwise the link does not appear. This seems to be counterintuitive, so I may be missing something.
1622750179
Miguel
Roll20 Production Team
Sheet Author
Saul J., I am not trying to imply the current methodology is right, actually you you stand correct: it is wrong. However, I am simply trying to funnel what problems are related to the display info feature that was recently released. As I mentioned earlier, the logic that controls slot tracking lives in the Companion API Script that is maintained by the community. As for the Spell DCs not being properly displayed, I will take a look at what is happening. As for Magic Missile, this is actually not so well known, but you actually only roll the d4 once and that is gonna be the damage for each missile, as already confirmed by Jeremy Crawford. As for upcasting, I will investigate it further. Last but not least, could you elaborate on the problems you have with Hunters Mark?
1622751623
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Miguel said: As for Magic Missile, this is actually not so well known, but you actually only roll the d4 once and that is gonna be the damage for each missile, as already confirmed by Jeremy Crawford.  Corroborating. This comes up often enough that it has its own section in the wiki entry for the sheet. [ link ] The section gives some techniques for running it differently. Roll20 can't house rule because the property is licensed.
Perfect!
1622812790
Wow. That's definitely something I did not know and I've been playing D&D for about 40 years!! It's possible in earlier editions of D&D it was written differently (I'll have to pull out older books to check) but, for 5E, that's absolutely correct: 1 d4 is rolled!  Wow.   You learn something new every day... :-) But it's still correct that there's no DC involved with Magic Missile. :-) keithcurtis said: Miguel said: As for Magic Missile, this is actually not so well known, but you actually only roll the d4 once and that is gonna be the damage for each missile, as already confirmed by Jeremy Crawford.  Corroborating. This comes up often enough that it has its own section in the wiki entry for the sheet. [ link ] The section gives some techniques for running it differently. Roll20 can't house rule because the property is licensed.
1622813606
Andreas J.
Forum Champion
Sheet Author
Translator
Saul J. said: Wow. That's definitely something I did not know and I've been playing D&D for about 40 years!! It's possible in earlier editions of D&D it was written differently (I'll have to pull out older books to check) but, for 5E, that's absolutely correct: 1 d4 is rolled!  Wow.  This is how the spell works in 5E, it's likely this wasn't how the spell was handled in older editions.
Saul J. said: But it's still correct that there's no DC involved with Magic Missile. :-) When I drag it from the compendium it doesn't show a DC with the damage roll. If it's showing the DC for you, you should be able to set Saving Throw to "none" in the spell's settings. Unless you're using the spellcard output, in which case I think those show your spell DC as a footer no matter what.
1622815262
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
That's the case. The DC footer was added by user request a while back. It's a "dumb" announcement, in that all it does is report your Spell Save DC after any spell. It doesn't care if the spell needs a save, or what kind of save it is. It's a "better to have and not need than need but not have" sort of feature.
1622824132
For amusement mostly, I just went and checked the wording in all the previous editions of D&D back to AD&D 1st edition. As far as I can tell, 5E added the word "simultaneously" to the spell description which is what basically triggers the rule previously quoted. In earlier editions, the description did not specify that the missiles fired simultaneously and each missile had its damage rolled separately because it was a ranged attack against each individual targeted creature. Andreas J. said: Saul J. said: Wow. That's definitely something I did not know and I've been playing D&D for about 40 years!! It's possible in earlier editions of D&D it was written differently (I'll have to pull out older books to check) but, for 5E, that's absolutely correct: 1 d4 is rolled!  Wow.  This is how the spell works in 5E, it's likely this wasn't how the spell was handled in older editions.
What's the best way on the 5e sheet to record a flying speed and/or climbing speed?
@TheWebCoder, I don't think there's a dedicated spot for it, so I usually put that kind of info under Features & Traits.
1622994762
You can record it in the speed box like, "30', fly 60'" The problem comes when linking to a token bubble. Everything but the numbers get stripped and you end up with 3060 in the token bubble.
I submitted a bug report for it, but Jack of All Trades is really funky when you have an odd number for your proficiency bonus. It gives you a rounded up half of the proficiency bonus, but then it deducts 1 from your ability score modifier. The net result is the correct modifier, but it looks wrong. In this example the character has a +3 proficiency bonus and a 10 Charisma, so it should be d20+1+0. There is a Jack field under the attributes which shows the correct bonus, so I'm not sure why it doesn't use that.
1623262787
Miguel
Roll20 Production Team
Sheet Author
Thanks Koda, I will make sure this goes into our backlog.
(I posted this in bugs as well, but I was advised to give this feedback here as well) Hey, I just stumbled upon this little formatting issue in the 5e stat block for NPC. You can set the HP and a text, usually something like "3d8+6", but as I am creating a stat block where this field reads "1 + your Intelligence modifier + your artificer level (the homunculus has a number of Hit Dice [d4s] equal to your artificer level)", I come to realize that it does not wrap this. Currently, it looks something like this: You can see that the action on the right side cuts of the text. Without the action, the text simply continues into the right column. Would be nice to have this issue fixed soon. Best regards Tim :)
1623717280
Is there any way to break the "features" card into multiples, or just to add new cards? I'm running a complex third party class (Binder from Mage Hand Press) and it'd be handy to not have the card just reach down and down and down like a Korean webcomic.
1623720829
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Sam A. said: Is there any way to break the "features" card into multiples, or just to add new cards? I'm running a complex third party class (Binder from Mage Hand Press) and it'd be handy to not have the card just reach down and down and down like a Korean webcomic. Even collapsed they take up too much room?
1623726672
keithcurtis said: Sam A. said: Is there any way to break the "features" card into multiples, or just to add new cards? I'm running a complex third party class (Binder from Mage Hand Press) and it'd be handy to not have the card just reach down and down and down like a Korean webcomic. Even collapsed they take up too much room? The problem is that there will eventually be a couple of dozen sets of class features on one card, only a few of which I will be using at once (the binder swaps out spirits that grant different power sets). It'd be much easier if I could organize them into separate cards.
1623767104
Miguel
Roll20 Production Team
Sheet Author
Hey @Sam, this is a known design issue which we hope to give some love in the near future.
1623815841
Miguel said: Hey @Sam, this is a known design issue which we hope to give some love in the near future. That's great to know, thanks :)
1624068899
Custom Lineage for Ability Increases is broken.  When toggled you no longer have the option to get your ability score increase for race.
1624291889
Am I missing the Spell Points Total?  If we turn on spell points the spell level "shows" how many points a spell of that level costs, but we cannot find where we are able to enter in the total points a character has.
1624296441
Miguel
Roll20 Production Team
Sheet Author
Dear Shawn , I was able to reproduce your problem on my side. Will try to squeeze a hotfix for this issue by today, at maximum by tomorrow. Dear Frank P. , you should get the amount of spell points auto-calculated for you on the sheet first page under resources.
1624296921
Miguel said: Dear Shawn , I was able to reproduce your problem on my side. Will try to squeeze a hotfix for this issue by today, at maximum by tomorrow. Dear Frank P. , you should get the amount of spell points auto-calculated for you on the sheet first page under resources. I see it now, missed it before not knowing it was there. It appears to be a manual deduction resource (i.e. not reduced on spell cast). Thank you.
1624339466

Edited 1624340364
Please add some extra features to the Roll20 D&D5E Character Sheets. In the Weapons Section it would be nice to have some toggle-able features so buttons can be easily sorted without it making a jumbled mess of abilities. To be able to toggle these headers on or off, as necessary for your character, I believe this organizational feature will help everybody.   Melee Weapon One-Handed/Mainhand   Melee Weapon One-Handed/Offhand   Melee Weapon Two-Handed   Ranged Weapon   Cantrip Attacks   Spell Attacks   Healing Then it would also be nice if there were sections for Deities, Factions, Renown (if not in a faction), Background, Trinkets, Gems, etc. This is what I have been doing to all my character sheets and it gets tedious. Also if Charactermancer didn't create a new heading for each proficiency that would be nice. have it auto add to the one category like this That way you don't have 20 different skills in there. it all condenses into one clickable link. Also can add Resistances, Immunities, and Condition Immunities to it as well. I know it has an "OTHER" function, but those three I just listed come up a lot and it would be cool to just click the button when needed. and if charactermancer would add all features instead of only a few... for those who don't want the clutter can just delete it.
1624360945
Feature Request: Stress Mod Brief Description: An optional section for Stress creating a negative global modifier affecting Attacks, Ability Checks, and saving throws. Screenshots:  Source:  Van Richten's Guide To Ravenloft Stress Charging headlong into terrifying situations is the stock in trade for  Adventurers . Among the  Domains of Dread , though, periods of respite between harrowing experiences can be rare. Even the hardiest  Adventurers  find themselves worn down over time, their  Performance  suffering as they struggle to cope with the dread and despair. Various circumstances might cause a character stress. Stress can be tracked numerically as a Stress Score, increasing in trying situations and decreasing with care. At your discretion, a character’s Stress Score might increase by 1 when one of the following situations occurs: A tense, dramatic moment, especially one involving one of a character’s Seeds of  Fear Every 24 hours the character goes without finishing a  Long Rest Witnessing the death of a loved one A  Nightmare  or darkest fear made real Shattering the character’s fundamental understanding of reality Witnessing a person transform into a horrid or unnatural creature When a character makes an  Attack  roll, an ability check, or a saving throw, they must apply their current Stress Score as a penalty to the roll.
1624650035
Sheet/Compendium Issue: Aura of Vitality is no Cleric spell Description of issue: I noticed that while creating a Life Domain cleric with 3rd lvl spells I could choose Aura of Vitality as a spell. Also in the compendium it is listed as a cleric spell. But in my physical copy of the Player's Handbook as well as on D&D Beyond it says that Aura of Vitality isn't a cleric spell. It's a paladin spell and Twilight Domain clerics get it as well. But not the other subclasses. The same problem might apply for other spells as well, idk.   Screenshots:
1624651138
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Tasha's Cauldron of Everything expanded the base list of spells for many classes, including cleric. Aura of Vitality is now a cleric spell as per the publication of that book. This is optional material of course, but it is considered AL legal. Here is a subsection of the expanded cleric base spell list: 3rd Level   Aura of Vitality   Spirit shroud* 4th Level   Aura of Life   Aura of Purity 5th Level   Summon celestial* Spells marked with an asterisk are new to TCE.
I don't know if this has to do with the update, but I can't change my stats anymore... or add proficiency to any of my skills... which is huge given I am a rogue.
1624655958
Nic B.
Roll20 Team
Hi Joshua, That sounds like a real emergency. I don't think any changes we've made recently should have changed this behavior, but let me look into this for you. Could you drop me a PM with a link to your game, please?
I would like to see a button to take care of short and long rest resets for the character sheets.  Are there any plans to add this to the standard 5e sheet?
1624785187
Andreas J.
Forum Champion
Sheet Author
Translator
Powder Keg said: I would like to see a button to take care of short and long rest resets for the character sheets.&nbsp; Are there any plans to add this to the standard 5e sheet? There are plans for this on the mobile 5e sheet, so it would be logical that the full sheet would eventually also get this. <a href="https://portal.productboard.com/roll20/1-product-portal/tabs/4-planning" rel="nofollow">https://portal.productboard.com/roll20/1-product-portal/tabs/4-planning</a>